拓扑及需求:
需求:
- 在 R1 上创建四个环回接口,172.16.X.1。在不宣告进 RIP 进程的前提下加入路由传递。
- 这四个子网到达 R2 时,40.1 消失,其他三个正常。
- 10.1~30.1 到达 R3 时只剩下 10.1、20.1。
- 在 R4 上的路由满足:
O E2 172.16.10.0 /24 ,metric=233
O E1 172.16.20.0 /24
除上述两条路由外其他来自 rip 的路由必须为 OE1
来自 eigrp 的路由 必须为 OE2 且 metric=666。
IP 地址配置不在话下。且每台设备均配置环回接口以方便实验。
R1:
access-list 1 permit 172.16.40.0 #配置ACL,
route-map r-e deny 10
match ip address 1 #route-map,匹配ACL1中的地址时执行deny
route-map r-e permit 20 #关掉默认的最后一条禁止一切
router rip
version 2
redistribute connected route-map r-e #进入重发布,套上准备好的route-map条件。
开启 route-map 的命令中,r-e 为该 map 的名字,可随意,
deny 为执行动作
10 为排序编号,如果不写,默认从 10 开始。
在 R1 的操作使得 40.1 没有被重发布进入 rip 进程中。
R2:
R2 作为 rip 进入 eigrp 的自治系统边界路由器。要求其在重分发时不让 30.1 进入 R3。
那么,如法炮制咯~
access-list 1 permit 172.16.30.0 #ACL,抓取30.0
route-map r-e deny 10 #map10,deny为减掉30.0
match ip address 1 以ACL1中的地址作为匹配条件
!
router eigrp 100
redistribute rip metric 10000 100 255 1 1500 route-map r-e
! #将rip中路由重分发进入eigrp中,套上route-map的条件
router rip
redistribute eigrp 100 metric 5
!
R3
应该早就有所认识的事。要想控制一台路由器上的路由条目细节,应当向路由的上游去修改,即目标设备依赖其所学习路由的路由器。因此 R4 上的需求只能从 R3 上去满足。
对 R4 要求的多样性和苛刻也体现了 route-map 的强大之处:
access-list 1 permit 172.16.10.0
access-list 2 permit 172.16.20.0
!
route-map e-o permit 10
match ip address 1
set metric 233 #修改10.0的metric值为20
set metric-type type-2 OE2
route-map e-o permit 20 #修改20.0为OE1
match ip address 3
set metric-type type-1
route-map e-o permit 40
set metric 666 #过滤之后的其他路由。metric=666
set metric-type type-2
router eigrp 100 #重分发
redistribute ospf 1 metric 10000 100 255 1 1500
!
router ospf 1
redistribute eigrp 100 subnets route-map e-o
!
但是这样的配置就无法满足需求四的第三点:“其他来自 rip 的路由必须为 OE1”。
而这样的路由应用什么条件 match 呢?
此时需要 R2 上帮忙。
R2:
route-map r-e permit 20
set tag 123
!
#我们在R2上设置除30.0外的其他路由(此时全部来自rip)上打上标签,标签值为“123”。此时在下游路由器R3上show ip route 192.168.12.0可看到其标签。见下图。
#而后在R3上靠此标签作set
R3
route-map e-o permit 30
match tag 123 #???
set metric-type type-1
R4:
因为要求 R5 上路由全消失,当然不是让 R5 断网。。配置为 ospf 中的 stub 区域就好。