BGP故障诊断

无法建立BGP连接

本地生成的路由为何未发送出去

来自邻居的路由未能转发给其他邻居

 

无法建立BGP连接

现象描述:邻居间无法交换路由,邻居的BGP连接都没有建立。

可能原因

判断方法和解决方案

网络不通 双方互相通过ping命令可以测试neighbor配置中指定的邻居地址是否可以到达。
地址不匹配 BGP是通过检查TCP连接的远端地址和本地的配置来决定是否接受该连接请求的。本地发起连接所带的地址不一定是对方配置的neighbor地址,可以通过update-source来指定连接使用的本地地址。

 

步骤1 通过debug ip bgp可以看到对方发起的连接请求被拒绝,原因是邻居未配置。这说明对方BGP连接带的地址与本地配置不匹配。

 

步骤2 修改本地neighbor remote-as配置,或修改对方neighbor update-source配置,使得地址匹配。

自治系统号不匹配

步骤1 通过debug ip bgp可以显示连接请求带的自治系统号不匹配。

 

步骤2 检查router bgp命令和对方neighbor remote-as命令中指定的AS号码是否匹配。

EBGP邻居不在直连网络上 EBGP连接可能因为对方不在直连网段上,无法建立连接。

 

步骤1 通过debug ip bgp根本看不到对方的连接请求。

 

步骤2 双方可以通过neighbor ebgp-multihop命令来修改这种错误。

协议版本号不匹配 路由器软件BGP实现只支持BGP版本4。通过debug ip bgp opendebug ip bgp可以看到显示协议版本号不匹配。
邻居状态不对 BGP6种状态,但只有在2种状态下才能接受对方的连接请求。这种错误只要等待即可,多次连接后总可以建立连接的。

 

步骤1 通过debug ip bgp可以显示收到连接请求,但因为本地邻居状态不对,而断开连接。

 

步骤2 只需要等待。

 

本地生成的路由为何未发送出去

现象描述:本地通过networkaggregate-addressredistribute配置生成的路由在邻居的路由表中未出现。

可能原因

判断方法和解决方案

Network命令配置的网络无效 network命令配置的网络要求在IP路由表中有一条完全一致的非BGP路由才会有效。

 

步骤1 show ip bgp检查是否有network配置的路由。

 

步骤2 检查该路由是否被抑制。

Aggregate-address命令配置的网络无效 aggregate命令配置的聚合路由要求在BGP路由表中要有至少一条完全一致或更精确的路由存在,才会有效。
Redistribute路由无效 Redistribute路由无效往往是因为被抑制。Show ip bgp显示该路由前带有s标记。
路由有效但邻居的路由表中显示未收到

步骤1 检查本地的基于邻居和基于端口的出境过滤配置。

 

步骤2 检查邻居的基于邻居和基于端口的入境过滤配置。

 

 

来自邻居的路由未能转发给其他邻居

现象描述:来自邻居的路由不能够加入路由表或转发给其他邻居的。

可能原因

判断方法和解决方案

路由的Nexthop不可达 路由的Nexthop不可达时,认为该路由无效,不会向邻居发送,也不会加入路由表。
来自IBGP的路由不会发该其他IBGP邻居 根据协议规定,来自IBGP邻居的路由不会向其他IBGP邻居转发。

 

步骤1 检查发送该路由的邻居是否同一自治系统的。

 

步骤2 检查要发送的邻居是否同一自治系统的。

IGP同步检查失败 在向EBGP邻居转发来自IBGP邻居的路由时,需要检查IGP同步。如果IGP不同步,则不会向EBGP邻居发送来自IBGP邻居的路由。

 

步骤1 检查路由表中是否有与该路由相同的IGP路由。

 

步骤2 通过IGP或静态路由配置生成与该路由相同的路由。

路由不是最优 BGP只把最优路由加入路由表并向邻居通告。

 

步骤1 检查路由是否最优,show ip bgp显示最优路由应该带有*>标记。

路由被抑制

步骤1 路由可能因为路由波动控制被抑制。

 

步骤2 路由可能因为aggregate-address聚合命令被抑制。

路由被过滤

步骤1 路由可能因为table-map被过滤,而无法加入路由表。

 

步骤2 路由可能因为基于端口或基于邻居的出境过滤配置而无法发送给邻居。