今天,这个专题应用下route-map,在这个之前,有很多内容需要掌握,不是简单的制定一个路由图就可以了。
--------
本次专题理论的东西居多,但是不是复制黏贴,是加上自己的理解思想。
第一个要解决的问题:路由策略和策略路由有什么区别?到底为何物?
先说策略路由,影响的不是路由表的生产,策略路由又叫PBR,是Policy-based routing策略基于路由,那么这个路由表存在是已经存在而且稳定的。
用TCP/IP路由技术一书的表述就是:策略路由就是一个复杂的静态路由。
总结:策略路由是一个基于路由表的影响特定数据包的转发的一个方式,这个方式是应用于接口下的。
例如:让192.168.1.1的数据包都从s0/1走,让192.168.1.2的数据包都从s0/1走
access-list 1 permit host 192.168.1.1
access-list 2 permit host 192.168.1.2
route-map ccie permit 10
match ip address 1
set interface s0/1
router0map ccie permit 20
match ip address 2
set interface s0/2
int fa1/0
ip policy route-map ccie
注意:set interface s0/1 与 set default interface s0/1
set ip next-hip 与 set default ip next-hop 是有区别的,前者不查找路由直接进行了转发,而后者是先查找路由表,查找不到精确的路由表时才会转发到下一跳接口或IP。
注意:PBR只有进方向方向,一定要注意!PBR优先于路由表查找
注意:策略路由PBR默认只对穿越流量生效,
(config)#(ip local policy route-map ccie) //这样写是策略理由也影响本地产生的流量
思科利用策略路由最常用的方式是丢弃报文:
set interface null 0 (这样比acl deny 减少很多开销)
int null 0
no ip unreachable //为了防止丢弃报文返回大量的不可达信息
路由策略开始了,路由策略说白了就是影响路由表最终生成的结果的,比如我可以匹配ACL之后修改OSPF网络中的COST,达到改变路由表的效果。我也可以匹配ACL 一些源路由信息,然后修改下一跳的出口或IP
路由策略一般与BGP结合使用的比较常见,这里要注意一下:
match interface s0/1 //不是判断s0/1接口Up与down的,他是用于匹配“指定下一跳接口是否是s0/1的路由“
2个概念性问题先说到这里,下面说route-map 路由图
route-map 10 是默认的
route-map 10 route-map 20 这样是按匹配成功与否顺序执行的,对于route-map 的命名一定要注意!!
route-map isp1 permit 10
route-map isp12 permit 10
route-map isp permit 10
肯定是先执行isp,如果匹配失败执行isp1 ,如果失败再执行isp12。
注意:对于route-map有一个隐含的默认拒绝,但是对于拒绝行为依赖于这个路由图是应用于 策略路由还是应用于 重新分配(重分布),如果是IP数数据包匹配策略路由没有成功,是会重新查找路由表的,对于重新分配则,是对于路由来说的,它是不会被重分布的。
注意:对于match interface s0/1 这个配置一般和 match ip route-source 一起使用,用于匹配这个路由信息的下一跳接口是否是s0/1!
set ip next-hop verify-availability 利用CDP表验证下一跳IP是否可达,来判断是否继续策略路由或者切换线路
route-map的match可以对标准ACL匹配,也可以对扩展ACL匹配
access-list 1 permit host 172.16.1.1
match ip address 1
access-list 100 permit tcp 172.16.1.0 0.0.0.255 any eq ftp
access-list 100 permit tcp 172.16.1.0 0.0.0.255 eq ftp any //一样的
match ip adress 100
match length 1000 1600 //匹配三层的数据包字节大小范围