我的任务是仅在特定 IP 地址可访问 ICMP 时使用 RIP 有条件地通告默认路由。(是的,CCIE研究,不是真正的网络设计)。
我的想法是使用跟踪对象匹配功能来完成此任务:
R1#show run | s route-map|sla|track|router rip
track 1 ip sla 1
router rip
version 2
network 150.1.0.0
network 155.1.0.0
default-information originate route-map RELIABLE_DEFAULT
no auto-summary
ip sla 1
icmp-echo 155.1.7.7
frequency 5
ip sla schedule 1 life forever start-time now
route-map RELIABLE_DEFAULT permit 10
match track 1
track 对象和 SLA 实际上工作正常,并且 route-map 已注册到 track 对象:
R1#show ip sla summary
IPSLAs Latest Operation Summary
Codes: * active, ^ inactive, ~ pending
ID Type Destination Stats Return Last
(ms) Code Run
-----------------------------------------------------------------------
*1 icmp-echo 155.1.7.7 RTT=12 OK 0 seconds ago
R1#show track 1
Track 1
IP SLA 1 state
State is Up
2 changes, last change 00:08:55
Latest operation return code: OK
Latest RTT (millisecs) 12
Tracked by:
Route Map 0
然而,这不起作用(没有公布默认路由)。首选的解决方案是使用像这样实际有效的虚拟静态路由。
ip sla 1
frequency 5
icmp-echo 155.1.7.7
ip sla schedule 1 start-time now life forever
track 1 ip sla 1
!
ip route 169.254.0.1 255.255.255.255 Null0 track 1
!
ip prefix-list DUMMY_ROUTE seq 5 permit 169.254.0.1/32
!
route-map RELIABLE_DEFAULT permit 10
match ip address prefix-list DUMMY_ROUTE
!
router rip
default-information originate route-map RELIABLE_DEFAULT
我理解为什么这个解决方案有效,但我不明白为什么我的解决方案没有。有任何想法吗?