概念简述
1.路由策略:路由策略是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。
操作对象:路由条目
2.策略路由:策略路由是一种比基于目标网络进行路由更加灵活的数据包路由转发机制。应用了策略路由,路由器将通过路由图决定如何对需要路由的数据包进行处理,路由图决定了一个数据包的下一跳转发路由器。
操作对象:数据包
路由策略
使用相应的技术将路由条目分离、打标签、独立出来,然后针对路由条目做控制,做过滤,或者做条目属性的更改。路由重分发、分发列表是典型的路由策略。
重分布
注意:
1.所有的重分布都是在各协议的边界上进行相关配置
2.进行重分布的两个区域必须相邻。
RIP与EIRGP的重分布:
R2(config)#router eigrp 100
//将RIP的路由条目重分布进EIGRP中,5K值如下所示
R2(config-router)#redistribute rip metric 10000 100 255 1 1500
R2(config-router)#exit
R2(config)#router rip
//将EIGRP的路由条目重分布进RIP中,并为其设置跳数
R2(config-router)#redistribute eigrp 100 metric 1
R2(config-router)#exit
EIGRP与OSPF的重分布:
R3(config)#router eigrp 100
//将OSPF的路由条目重分布到EIGRP中
R3(config-router)#redistribute ospf 100 metric 10000 100 255 1 1500
R3(config-router)#exit
R3(config)#router ospf 100
//将EIGRP的路由条目重分布到OSPF中
R3(config-router)#redistribute eigrp 100 subnets
RIP与OSPF的重分布:
R1(config)#router ospf 100
//将RIP的路由条目重分布进OSPF中
R1(config-router)#redistribute rip subnets
R1(config-router)#exit
R1(config)#router rip
//将OSPF的路由条目重分布进RIP中
R1(config-router)#redistribute ospf 100 metric 1
R1(config-router)#exit
分发列表
1.对于距离矢量路由协议,如RIP,EIGRP
路由器之间,传递的是路由信息,分发列表对路由信息是有绝对的控制权。因此如果是in方向,那么通过部署分发列表,可以过滤特定的路由,使得执行分发列表的本地路由路由表发生变化,同时,本地路由器在更新路由信息给下游路由器的时候,实际上更新的内容是受分发列表影响之后的条目。同时在out方向,也是没有问题的。
//抓取路由前缀并进行匹配
R2(config)#access-list 2 permit 3.3.3.0
R2(config)#route-map AA deny 10
R2(config-route-map)#match ip address 2
R2(config-route-map)#exit
R2(config)#route-map AA permit 20
R2(config-route-map)#exit
R2(config)#router eigrp 100
R2(config-router)#redistribute ospf 100 metric 10000 100 255 1 1500 route-map AA
R2(config-router)#exit
2.对于链路状态路由协议,如OSPF
值得注意的是,对于OSPF这样的链路状态路由协议,路由器之间传递的消息不再是路由信息了,而是LSA,而分发列表是无法对LSA进行过滤的。因此,在链路状态协议中部署分发列表,就需要留意了:
in方向,分发列表只能在本地收到LSA后,生成路由的那一刹那进行路由的过滤,执行分发列表的路由器自己路由表会被分发列表影响(但是本地LSDB仍然是有LSA的),而且该路由器仍会将LSADB中的LSA发送给邻居,因此本地被过滤的路由,邻居还会有。
out方向,分发列表只能工作在执行路由重分发动作的那个ASBR上,且只能针对外部引入的路由起作用。因为OSPF执行重发布时,其实这些外部路由是以路由的形式引入进来的,因此分发列表在这个场合下能够正常工作,但是如果不是本地始发的外部路由,或者是内部的OSPF路由,out方向的分发列表均束手无策。
R2(config-router)#do show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/2] via 100.1.1.1, 00:06:04, FastEthernet0/0
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
100.0.0.0/24 is subnetted, 1 subnets
C 100.1.1.0 is directly connected, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/156160] via 101.1.1.2, 00:01:56, FastEthernet1/0
101.0.0.0/24 is subnetted, 1 subnets
C 101.1.1.0 is directly connected, FastEthernet1/0
现要使R2不再接收1.1.1.1的路由条目,则需要在R2上进行如下配置
//ACL抓取感兴趣数据流
R2(config)#access-list 1 permit 1.1.1.1
//定义route-map名称及拒绝的编号
R2(config)#route-map A deny 10
//匹配ACL抓取的数据流
R2(config-route-map)#match ip address 1
R2(config-route-map)#exit
//定义允许通过的数据流编号
R2(config)#route-map A permit 20
R2(config-route-map)#exit
配置完成后,R2的路由表如下所示,拒绝访问要求完成:
R2(config-router)#do show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route
Gateway of last resort is not set
2.0.0.0/24 is subnetted, 1 subnets
C 2.2.2.0 is directly connected, Loopback0
100.0.0.0/24 is subnetted, 1 subnets
C 100.1.1.0 is directly connected, FastEthernet0/0
3.0.0.0/24 is subnetted, 1 subnets
D 3.3.3.0 [90/156160] via 101.1.1.2, 00:14:08, FastEthernet1/0
101.0.0.0/24 is subnetted, 1 subnets
C 101.1.1.0 is directly connected, FastEthernet1/0
R2(config-router)#do show run | section access-list
access-list 1 permit 1.1.1.1
策略路由
在路由的基础之上,针对数据层面做控制,可以精确把控数据的走向,策略优先于路由,先匹配策略,再匹配路由。
//抓取感兴趣数据流
GW(config)#access-list 100 permit tcp host 192.168.1.10 host 130.1.1.1 eq telnet
GW(config)#access-list 101 permit tcp host 192.168.1.20 host 130.1.1.1 eq telnet
GW(config)#access-list 102 permit icmp host 192.168.1.10 host 130.1.1.1 echo
GW(config)#access-list 103 permit icmp host 192.168.1.20 host 130.1.1.1 echo
//进行匹配并设置下一跳地址
GW(config)#route-map AA permit 10
GW(config-route-map)#match ip address 100
GW(config-route-map)#set ip next-hop 100.1.1.1
GW(config-route-map)#exit
GW(config)#route-map AA permit 20
GW(config-route-map)#match ip address 101
GW(config-route-map)#set ip next-hop 200.1.1.1
GW(config-route-map)#exit
GW(config)#route-map AA permit 30
GW(config-route-map)#set ip next-hop 200.1.1.1
GW(config-route-map)#exit
GW(config)#route-map AA permit 40
GW(config-route-map)#set ip next-hop 100.1.1.1
GW(config-route-map)#exit
//在接口下进行挂接
GW(config)#interface f0/0
GW(config-if)#ip policy route-map AA
GW(config-if)#exit
查看已配置的策略
GW(config)#do show run | section route-map
route-map AA permit 10
match ip address 100
set ip next-hop 100.1.1.1
route-map AA permit 20
match ip address 101
set ip next-hop 200.1.1.1
route-map AA permit 30
match ip address 102
set ip next-hop 200.1.1.1
route-map AA permit 40
match ip address 103
set ip next-hop 100.1.1.1
实验验证:
telnet验证
验证结果:telnet相关的实验要求已完成。
ping 数据包验证:
首先在电信和联通设备上开启DEBUG功能,然后使用两台PC ping 130.1.1.1 。
验证结果:ping 数据包指定路径要求已完成。
总结:策略优先于路由,通过策略告诉设备去往哪里要从哪走。数据包在传输过程中,先查策略,若没有策略,则查路由。
参考资料:http://blog.sina.com.cn/s/blog_5ec353710101ebbr.html