IBGP邻居无法建立连接的故障解决步骤如下:
网络环境
在下图的网络中,RouterA分别通过接口POS5/0/0和GE1/0/0与RouterB配置IBGP连接。配置完成后,RouterA和RouterB之间的BGP邻居down掉了,一直处于OpenSent状态,但是从RouterA上可以ping通RouterB的Loopback0地址10.0.0.1。
图IBGP邻居无法建立连接
故障分析
步骤 1 在RouterA上,执行display ip routing-table命令检查,发现POS5/0/0接口down掉后,有一条下一跳为NULL0口的到公网的等值路由。
POS5/0/0接口down掉后,RouterA上到公网路由及其对应BGP邻居状态如下。
<RouterA>displayiprouting-table219.133.0.0 RoutingTable:Public SummaryCount:2 Destination/MaskProtoPreCostNextHopInterface 0.0.0.0/0BGP100010.0.0.1GigabitEthernet1/0/0 BGP100010.0.0.1NUll0 <RouterA>displaybgppeer BGPlocalrouterID:172.16.0.1 LocalASnumber:64640 Totalnumberofpeers:3Peersinestablishedstate:2 PeerVASMsgRcvdMsgSentOutQUp/DownStatePrefRcv
由此可知发生了路由迭代。如果没有迭代发生,那么POS5/0/0接口down掉后,原先的两条等值路由上行,应该只剩下一条从GE1/0/0出去的路由才对。
步骤 2 在RouterB上,执行display bgp peer命令查看对等体状态,一直处于OpenSent状态。
4413401000:01:10OpenSent0
POS5/0/0接口没有down时,到公网路由:
<RouterA>displayiprouting-table219.133.0.3 RoutingTable:Public SummaryCount:2 Destination/MaskProtoPreCostNextHopInterface 0.0.0.0/0BGP100010.0.0.1GigabitEthernet1/0/0 BGP100010.0.0.1Pos5/0/0
步骤 3 在RouterA上,使用display current-configuration命令查看配置,发现配置了如下的指向RouterB Loopback地址32位掩码的静态路由。
ip route-static 10.0.0.1 255.255.255.255 192.168.1.1
ip route-static 10.0.0.1 255.255.255.255 192.168.0.1
现在RouterA POS5/0/0接口down了,如上的静态路由配置会导致RouterA进行路由迭代,另外还有如下路由配置到达192.168.0.1(RouterB和RouterA对接的10G POS口地址)。
ip route-static 192.168.0.0 255.255.255.0 NULL0 preference 255
因此就出现了在RouterA POS口down掉后,双上行的两条等值路由,有一条的下一跳变成NULL0口了。
指向NULL0的路由出现和BGP邻居down掉有关系,此时从RouterA上可以ping通RouterB Loopback地址(10.0.0.1),一般而言,此时BGP邻居应该不会down掉。
但因为RouterA是双路由上行,因此发包就有个Hash问题,直接不带源地址的ping,Hash的结果是从10GE口出去,因此是通的。如果在RouterA上带Loopback地址作为源地址来ping RouterB的Loopback地址,RouterA上Hash的结果就是从10G POS口出去了,结果导致不通,而这恰巧是RouterA和RouterB建立BGP邻居的源和目的地址,因此RouterA上出现了BGP邻居down掉的问题,因为10G POS口现在迭代到的路由的下一跳是NULL0口。由此可知,RouterA路由迭代导致BGP邻居down掉。
—-结束
处理步骤
在RouterA上分别执行如下操作。
步骤 1 执行system-view命令,进入系统视图。
步骤 2 分别执行undo ip route-static 10.0.0.1 255.255.255.255 192.168.1.1和undo ip route-static 10.0.0.1 255.255.255.255 192.168.0.1命令,删除原有静态路由。
步骤 3 分别执行ip route-static 10.0.0.1 32 GigabitEthernet 1/0/0 192.168.1.1和ip route-static 10.0.0.1 32 Pos 5/0/0 192.168.0.1命令,在静态路由后加上下一跳和对应的出接口。
步骤 4 在RouterA POS5/0/0接口down掉后,迭代到如上静态路由就迭代中止了,就宣布POS口的静态路由不可达,从路由表中撤销掉该路由,到对端RouterB的所有报文都走对应的GE口出去了。
步骤 5 执行命令return退回到用户视图,执行命令save,保存对配置的修改。
—-结束
配置完成后,在RouterA上执行display ip routing-table命令查看,发现指向Null0口的路由消失,故障排除。
案例总结
配置静态路由时,如果不是点对点的网络类型,建议同时配置下一跳和对应的出接口,否则容易引发路由迭代错误。
转载请注明:IT运维空间 » 运维技术 » 路由器故障:IBGP邻居无法建立连接
发表评论