要求:
在路由重分布中使用route-map控制分布到ospf进程中的路由条目,分析说明每个路由条目是由哪条语句允许或过滤的。
一、实现方法
(1) 配置端口ip和环回接口。
1R1路由器配置端口ip和3个环回接口
R 1(config)# interface [type][slot/number]
R 1(config-if)#ip address[address] [subnet-mask]
R 1(config-if)#no shutdown
R 1(config-if)#exit
2 R2配置端口ip
R2(config)# interface [type][slot/number]
R2(config-if)#ip address [address][subnet-mask]
R2(config-if)#no shutdown
R2(config-if)#exit
(2) 配置拓扑中的各个路由器所要运行的OSPF路由协议。
R1和R2上配置OSPF协议
R *(config)# router ospf 1
R *(config-router)#network [network] [wildcard-mask]area [area-id]
R *(config-router)#end
(3) 使用如下route-map将去往环回接口的路由按照需求通告到ospf进程中并分析。
1access-list 1 为空
route-map test permit 10
match ip address 1
配置:R1(config)# route-map [name] [permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL为空,所以route-map放行所有,重分布所有,R2的路由表里面有1.1.1.1、2.2.2.2和3.3.3.3网段的路由条目。
2access-list 1 permit 1.1.1.0 0.0.0.255
route-map test permit 10
match ip address 1
配置:R1(config)#access-list[listnumber 1-99] [permit| deny] [sourceaddress] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL中只有1.1.1.0网段,此网段被抓取,且ACL为允许,route-map test match这个ACL,也为允许,两者都为允许,所以这条路由条目permit,被重分布,R2的路由表里面有1.1.1.1网段的路由条目。而2.2.2.2和3.3.3.3网段,因为route-map只对于已经抓取的网络进行是否重分布的操作,这两个网段没有被抓取,所以route-map不会对其操作,R2的路由表里面没有2.2.2.2和3.3.3.3网段的路由条目。
3access-list 1 deny 1.1.1.0 0.0.0.255
route-map test permit 10
match ip address 1
配置:R1(config)#access-list[listnumber 1-99] [permit| deny] [sourceaddress] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL中拒绝了1.1.1.0网段,所以这个网段交给下一条route-map语句操作,但是当前下一条route-map语句是隐式拒绝所有,所以1.1.1.1网段被拒绝,没有被重分布,R2的路由表里面没有1.1.1.1网段的路由条目。而2.2.2.2和3.3.3.3,因为route-map只对于已经抓取的网络进行是否重分布的操作,这两个网段没有被抓取,所以route-map不会对其操作,R2的路由表里面没有2.2.2.2和3.3.3.3网段的路由条目。
4access-list 1 deny 1.1.1.1 0.0.0.255
access-list 1 permit any
route-map test permit 10
match ip address 1
配置:R1(config)#access-list[list number 1-99] [permit| deny] [source address] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL中拒绝了1.1.1.1网段,所以这个网段交给下一条route-map语句操作,但是当前下一条route-map语句是隐式拒绝所有,所以1.1.1.1网段被拒绝,没有被重分布,R2的路由表里面没有1.1.1.1网段的路由条目。由access-list1 deny 1.1.1.1 0.0.0.255和access-list 1 permit any可知,2.2.2.2和3.3.3.3网段被抓取。因为route-map只对于已经抓取的网络进行是否重分布的操作,所以route-map将抓取到的这两个网段进行重分布,R2的路由表上有这两个的路由条目。
5access-list 1 permit 1.1.1.1 0.0.0.255
route-map test deny 10
match ip address 1
配置:R1(config)#access-list[list number 1-99] [permit| deny] [source address] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL只负责抓取网段,且ACL为允许,所以此时抓取了1.1.1.1网段,但最终是由route-map决定是否将抓取到的网段重分布。因为route-map test deny 10,route-map拒绝重分布,所以最终1.1.1.1网段重分布,R2的路由表里面没有1.1.1.0网段的路由条目。而2.2.2.2和3.3.3.3,因为route-map只对于已经抓取的网络进行是否重分布的操作,这两个网段没有被抓取,所以route-map不会对其操作,R2的路由表里面没有2.2.2.2和3.3.3.3网段的路由条目。
6access-list 1 permit 1.1.1.1 0.0.0.255
route-map test deny 10
match ip address 1
route-map test permit 20
配置:R1(config)#access-list[list number 1-99] [permit| deny] [source address] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL只负责抓取网段,且ACL为允许,所以此时抓取了1.1.1.1网段,但最终是由route-map决定是否将抓取到的网段重分布。因为route-map test deny 10,route-map拒绝重分布,所以最终1.1.1.1网段未重分布,R2的路由表里面没有1.1.1.1网段的路由条目。又因为route-maptest permit 20并没有match,不调用ACL,所以与ACL为空一样,route-map放行所有,重分布所有。但因为route-map的执行也是有顺序的,由permit/deny后的数字决定,数字越小越先执行,所以拒绝重分布1.1.1.1网段优先于放行所有,所以R2的路由表里面没有1.1.1.1网段的路由条目,但有2.2.2.2和3.3.3.3网段的路由条目。
7access-list 1 deny 1.1.1.1 0.0.0.255
route-map test deny 10
match ip address 1
route-map test permit 20
配置:R1(config)#access-list[list number 1-99] [permit| deny] [source address] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL中拒绝了1.1.1.1网段,所以这个网段交给下一条route-map语句操作,因为下一条route-map test permit 20并没有match,不调用ACL,所以与ACL为空一样,route-map放行所有,重分布所有。所以R2的路由表里面有1.1.1.1、2.2.2.2和3.3.3.3网段的路由条目。
8access-list 1 permit 1.1.1.1 0.0.0.255
access-list 2 permit 2.2.2.20.0.0.255
access-list 3 deny 3.3.3.3 0.0.0.255
route-map test deny 10
match ip address 1
route-map test permit 20
match ip address 2
route-map test permit 30
match ip address 3
配置:R1(config)#access-list[listnumber 1-99] [permit| deny] [sourceaddress] [wildcard mask]
R1(config)# route-map [name][permit|deny] [语句号]
R1(config-route-map)# match ip add [ACLnumber]
R1(config-route-map)#set metric [度量值]
R1(config)# router ospf 1
R1(config-router)# redistribute connected subnets route-map[name]
R1(config-router)#end
结果分析:
因为ACL只负责抓取网段,且第一条ACL为允许,所以此时抓取了1.1.1.1网段,但最终是由route-map决定是否将抓取到的网段重分布。因为route-map test deny 10,route-map拒绝重分布,所以最终1.1.1.1网段未重分布,R2的路由表里面没有1.1.1.1网段的路由条目。因为第二条ACL中只有2.2.2.2网段,此网段被抓取,且ACL为允许,route-map test match这个ACL,也为允许,两者都为允许,所以这条路由条目permit,被重分布,R2的路由表里面有2.2.2.2网段的路由条目。因为第三条ACL中拒绝了3.3.3.3网段,所以这个网段交给下一条route-map语句操作,但是当前下一条route-map语句是隐式拒绝所有,所以3.3.3.3网段被拒绝,没有被重分布,R2的路由表里面没有3.3.3.3网段的路由条目。所以R2的路由表里面没有1.1.1.1和3.3.3.3网段的路由条目,但有2.2.2.2网段的路由条目。
分析
(1) 在配置OSPF时,network通告的一定是网段,而不是某个端口。
(2)
route-map
ACL
permit
deny
permit
路由条目permit
deny
deny
交给下一条route-map语句操作
交给下一条route-map语句操作
(3) ACL只负责抓取路由条目,route-map来决定是否重分布,route-map只操作被抓取的网段。
(4) route-map有执行顺序,序号小的先执行;一个route-map中可有多条语句;最后有一条隐式拒绝所有(除了在上面的route-map中明确允许或拒绝的网段,最终都会被隐式拒绝掉)。
(5) 重分布的是网络,不是语句。
(6) route-map没有match和set语句,不会调用ACL,所以与ACL为空的效果一样,route-map会放行所有。