用于默认信息的 Cisco Route-Map 对象跟踪

网络工程 思科 路由 思科-ios
2022-02-24 04:00:28

我的任务是仅在特定 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

我理解为什么这个解决方案有效,但我不明白为什么我的解决方案没有。有任何想法吗?

3个回答

可能默认信息来源命令与 IP SLA 不兼容。

您可能已经看到了这一点,但是这篇 Cisco 论坛帖子谈到了使用虚假静态路由(与您用来使其工作的方法相同)。

https://supportforums.cisco.com/document/116336/ospf-reliable-conditional-default-routing

使用这种方法意味着默认信息来源命令不直接与 IP SLA 交互。

路线图中的某些选项(例如 Match track)仅适用于 PBR,不适用于其他用途,在这种情况下,您需要虚拟路线,因为您使用的 Route-map 不适用于 track 选项。

我不了解考试,但在现实世界中,可以使用Cisco IOS Embedded Event Manager (EEM)完成类似的事情。

另请参阅EEM 脚本以报告路由表更改

event manager applet route-table-monitor

 event routing network 0.0.0.0/0 ge 1

 action 1.0 syslog msg "Route changed: Type: $_routing_type, Network: $_routing_network, Mask/Prefix: $_routing_mask, Protocol: $_routing_protocol, GW: $_routing_lastgateway, Intf: $_routing_lastinterface"