对“关闭 BGP”连接进行故障排除

网络工程 cisco催化剂 bgp
2021-07-31 14:28:01

昨天,当我们的 BGP 路由之一出现短时间故障时,我们的网络出现了短暂中断。幸运的是,我们的连接在几分钟后故障转移到了我们的辅助 BGP 路由,并且主路由在 ISP 端关闭/不关闭后开始运行。

我们正在运行 2 个运行 iOS 12.2 58 的堆叠(背板)Cisco 3750e 交换机。

在我与我们的 ISP 的对话中,他们无法对原因给出任何明确的答案。我们可以做些什么来查明我们最终的原因以避免将来出现此问题?

出错时的日志

172258: May  6 14:43:06: %BGP-5-ADJCHANGE: neighbor xxx.xxx.12.34 Down BGP Notification sent
172259: May  6 14:43:06: %BGP-3-NOTIFICATION: sent to neighbor xxx.xxx.12.34 4/0 (hold time expired) 0 bytes
172260: May  6 14:43:06: %BGP_SESSION-5-ADJCHANGE: neighbor xxx.xxx.12.34 IPv4 Multicast topology base removed from session  BGP Notification sent
172261: May  6 14:43:06: %BGP_SESSION-5-ADJCHANGE: neighbor xxx.xxx.12.34 IPv4 Unicast topology base removed from session  BGP Notification sent

记录 ISP 何时关闭/不关闭以在他们这边重置 BGP

172542: May  6 15:04:15: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/49, changed state to down
172543: May  6 15:04:16: %LINK-3-UPDOWN: Interface GigabitEthernet2/0/49, changed state to down
172544: May  6 15:04:16: %PIM-5-NBRCHG: neighbor xxx.xxx.12.34 DOWN on interface GigabitEthernet2/0/49 non DR
172545: May  6 15:04:16: %PIM-5-NBRCHG: neighbor xxx.xxx.12.34 UP on interface GigabitEthernet2/0/49 
172546: May  6 15:04:16: %PIM-5-DRCHG: DR change from neighbor 0.0.0.0 to xxx.xxx.12.35 on interface GigabitEthernet2/0/49
172547: May  6 15:04:18: %LINK-3-UPDOWN: Interface GigabitEthernet2/0/49, changed state to up
172548: May  6 15:04:19: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet2/0/49, changed state to up

BGP 连接最终从空闲状态变为 Up 时的日志

172828: May  6 15:27:33: %BGP-5-ADJCHANGE: neighbor xxx.xxx.12.34 Up

我们这边的 BGP 接口(注意:没有 CRC、丢包、冲突报告……)

GigabitEthernet2/0/49 is up, line protocol is up (connected)
Hardware is Gigabit Ethernet, address is xxxx.xxxx
Internet address is xxx.xxx.12.35/31
MTU 1500 bytes, BW 1000000 Kbit/sec, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 3/255
Encapsulation ARPA, loopback not set
Keepalive not set
Full-duplex, 1000Mb/s, link type is auto, media type is 1000BaseLX SFP
input flow-control is off, output flow-control is unsupported
ARP type: ARPA, ARP Timeout 04:00:00
Last input 00:00:09, output 00:00:12, output hang never
Last clearing of "show interface" counters never
Input queue: 0/75/52/0 (size/max/drops/flushes); Total output drops: 0
Queueing strategy: fifo
Output queue: 0/40 (size/max)
5 minute input rate 14536000 bits/sec, 1655 packets/sec
5 minute output rate 1010000 bits/sec, 640 packets/sec
413176726 packets input, 428902543141 bytes, 0 no buffer
Received 143495 broadcasts (0 IP multicasts)
0 runts, 0 giants, 0 throttles
0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored
0 watchdog, 139275 multicast, 0 pause input
0 input packets with dribble condition detected
125748632 packets output, 42915625632 bytes, 0 underruns
0 output errors, 0 collisions, 0 interface resets
0 unknown protocol drops
0 babbles, 0 late collision, 0 deferred
0 lost carrier, 0 no carrier, 0 pause output
0 output buffer failures, 0 output buffers swapped out
4个回答

172259:5 月 6 日 14:43:06:%BGP-3-NOTIFICATION:发送到邻居 xxx.xxx.12.34 4/0(保持时间已过)0 字节

这通常意味着连接的另一端在保持计时器(默认为 180 秒)内没有响应任何保持连接。有多种问题可能导致这种情况。通常是第 3 层可达性问题。如果再次发生,您应该通过 ping 和 telnet(telnet 到端口 179,查看它是否响应)测试对等方来排除第 3 层问题。

如果不是第 3 层可达性问题,则邻居的一端(在这种情况下更可能是远端)存在问题。

如果您只是想寻找“根本原因”这个问题:

您可能想询问您的提供商,在这发生之前,他们的一端是否进行了任何配置更改。在 Cisco 路由器上有一些实例(目前不能 100% 确定什么代码修订版),当一侧删除并重新添加带有“mpls-ip”和/或“mtu”的“路由映射”时,BGP 会话将发生抖动" BGP 对等互连中的配置。虽然这种维护不应该导致对等会话出现问题,但我听说过这种情况发生的故事。

此外,我不确定他们是否需要删除接口并将其恢复以“修复”问题。我认为简单地重置对等会话就足够了,但是如果在失败时没有流量通过,人们可能会争辩说他们放弃接口以使事情再次滚动并不重要。

可能是 MTU 问题。前一段时间有这个。启动正常,但是当收到包含大量路由的 UPDATE 时,由于 MTU 不匹配,它会丢失。此外,如果您的两个路由器之间有 L2 设备(交换机?媒体转换器?),则连接可能会中断,而接口不会关闭。

不是从我所看到的。您的 ISP 的路由器停止响应来自路由器的 hello 消息,这就是您丢失 BGP 连接的原因。您的路由器也可能停止收听来自 ISP 的 hello 消息,但我在消息中没有看到任何有助于查明问题的明显信息。也许更专注于 ISP 轨道的人可以发表评论并阐明一些观点?