BGP路由器协议排错教程:事件监控器/追踪器
事件追踪器是一个重要的特性,可以帮助工程师为各种协议收集与事件相关的信息。事件
追踪器会根据事件生成与调试消息类似的信息,而无需启用调试程序,并且这些信息会储存在
路由器的内存中。路由器并不会为事件追踪器生成调试输出信息或系统日志消息。这些追踪程
序是在后台运行的,因此对路由器的影响最小。IOS 中并没有与 BGP 相关的事件追踪或事件历
史日志,但 XR 和 NX-OS 平台上有记录 BGP 信息的功能。
在 IOS 设备上可以收集与邻接关系和 CEF 相关的事件追踪信息,这在排查由邻接关系引发
的转发问题或对等体关系失效问题时非常有用。例 2-21 中展示了 Cisco IOS 上事件追踪的各种
配置选项。在本例中,工程师启用了与邻接关系相关的事件追踪。
例 2-21 邻接关系事件追踪配置
IOS_R2(config)# monitor event-trace ?
ac AC traces
adjacency Adjacency Events
all-traces Configure merged event traces
arp ARP Events
atom AToM traces
c3pl Group traces
cce Group traces
cef CEF traces
! Output omitted for brevity
IOS_R2(config)# monitor event-trace adjacency
针对邻接关系的事件追踪可以在路由器上任意邻接关系出现变化时进行记录。举例来说,在
路由器上建立一个子接口,比如 GE0/1.100,并尝试通过这个接口建立邻接关系,这就可以在事
件追踪中记录与邻接关系相关的消息。例 2-22 展示了事件追踪器为子接口生成的邻接关系消息。
在本例中,当工程师开始执行 ping 测试后,邻接关系事件追踪器显示出路由器发出了 ARP 请求,
并且在学到 ARP 后,它通过子接口 GE0/1.100 与 IP 地址 100.1.1.12 建立了邻接关系。
例 2-22 事件追踪显示出的邻接关系建立过程
IOS_R2# show run int GigabitEthernet0/1.100
interface GigabitEthernet0/1.100
encapsulation dot1Q 100
ip address 100.1.1.1 255.255.255.252
IOS_R2# ping 100.1.1.2
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 100.1.1.2, timeout is 2 seconds:
.!!!!
Success rate is 80 percent (4/5), round-trip min/avg/max = 7/10/14 ms
IOS_R2# show monitor event-trace adjacency all
! Output omitted for brevity
05:19:12.964: GLOBAL: adj mgr notified of fibidb state change int
GigabitEthernet0/1 to up [Ignr]
05:19:16.906: GLOBAL: adj mgr notified of fibidb state change int
GigabitEthernet0/1.100 to up [Ignr]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: request to add ARP [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: update oce
bundle, IPv4 incomplete adj oce [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: allocate [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: add source ARP [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: incomplete
behaviour change to drop [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: request to
update [OK]
05:23:04.952: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: update oce
bundle, IPv4 no fixup, no redirect adj oce [OK]
05:23:04.953: ADJ: IP 100.1.1.2 GigabitEthernet0/1.100: update [OK]
如果邻接关系没有建立成功,或者工程师在命令 show ip arp 的输出信息中看到不完整的
ARP,那么事件追踪器中就看不到任何与邻接关系建立完成相关的事件。这表示网络中出现了
一层(Layer1)问题或错误的配置,比如中间路径中的交换机上没有放行相应的 VLAN ID。类
似地,工程师可以为其他特性和协议启用事件追踪器,比如 EIGRP、MPLS 和 ATOM,但没有
必要启用所有的追踪器。当设备上出现了一些问题,并且工程师认为这些特性需要为此负责,
就可以针对指定的特性和协议启用事件追踪器。在 Cisco IOS 中,设备默认是对事件追踪器的
存储空间做出了限制的,因此如果在问题出现的一段时间之后捕获追踪信息,这些信息可能用
处不大,因为日志消息会被覆盖。工程师可以增加事件追踪器的大小,但设备支持的最大条目
数量是 100 万。还有一种方法,如果针对某个特性的问题频繁发生,工程师可以为这个特性启
用事件追踪器,并且要在问题发生前启用,然后在捕获到相关的日志消息后将其禁用。这种做
法也会节省系统资源。
在 IOS XR 中,工程师可以为指定协议启用事件追踪器,并且这种做法在排错时非常有用。
举例来说,在 IOS XR 中,当 BGP 邻居关系出现问题时,工程师可以查看 BGP 追踪器。例 2-23
中展示了邻居关系建立起来时捕获到的 BGP 追踪信息。工程师使用命令 show bgp trace 可以查
看 BGP 中发生的所有事件。在一开始,追踪器显示出设备向对等体 IP 地址 192.168.200.1 发送
了 OPEN 消息。在最后,追踪器显示出邻居关系已经建立起来。
例 2-23 IOS XR 上的 BGP 邻居关系事件追踪
RP/0/0/CPU0:XR_R3# show bgp trace
! Output omitted for brevity
17:55:22.373 default-bgp/spkr-tr2-err 0/0/CPU0 t14 [ERR][GEN]:1300: OPEN from
'192.168.200.1' has unrecognized cap code/len 70/0 - Ignored
17:55:22.373 default-bgp/spkr-tr2-upd 0/0/CPU0 t14 [UPD]:1820: Updgrp change
scheduled after open processing: nbr=192.168.200.1, nbrfl=0x8310000
17:55:22.373 default-bgp/spkr-tr2-gen 0/0/CPU0 t14 [GEN]:546: nbr 192.168.200.1,
old state 4, new state 5, fd type 1, fd 124
17:55:22.373 default-bgp/spkr-tr2-gen 0/0/CPU0 t14 [GEN]:2295: calling bgp_send_
keepalive, nbr 192.168.200.1, loc 1, data 0,0
17:55:22.373 default-bgp/spkr-tr2-gen 0/0/CPU0 t14 [GEN]:546: nbr 192.168.200.1,
old state 5, new state 6, fd type 1, fd 124
17:55:22.373 default-bgp/spkr-tr2-gen 0/0/CPU0 t14 [GEN]:549: Nbr '192.168.200.1'
established
工程师可以在 show bgp trace 命令后使用多种关键字选项来过滤输出内容,比如 show bgp
trace error 或 show bgp trace update,这样可以有针对性地查看错误和 BGP 更新消息。
NX-OS 中的情况也类似,工程师可以在特性命令行下使用关键字 event-history。例 2-24
中展示了 BGP 中的事件历史 CLI 选项。在本例中,事件历史日志中显示出一个事件
clear_ip_bgp_cmd,这说明路由器上曾经执行过 clear ip bgp 命令。
例 2-24 BGP 事件历史 CLI
Nexus_R1# show bgp event-history msgs
! Output omitted for brevity
46) Event:E_DEBUG, length:66, at 35995 usecs after Fri Aug 28 18:25:48 2015
[100] [28046]: comp-mts-rx opc - from sap 9530 cmd clear_ip_bgp_cmd
47) Event:E_DEBUG, length:42, at 245222 usecs after Fri Aug 28 18:25:43 2015
[100] [28046]: nvdb: terminate transaction
NX-OS 不仅会维护事件历史日志,还允许工程师自定义为每个特性记录事件追踪使用的内
存大小。工程师可以设置不同的大小,比如小、中、大等。
工程师也可以查看其他 BGP 事件历史 CLI 选项,比如 event(事件)、error(错误)、log(日
志)等。本书的其他章节会讨论并使用这些选项。
文章来自于网络,如果侵犯了您的权益,请联系站长删除!