IBGP是内部BGP协议(IBGP)的主要作用是向你的内部路由器提供更多信息,而EBGP 是外部边界网关协议,用于在不同的自治系统间交换路由信息。下面就让我们来看一下IBGP对等体未学到EBGP路由的故障是怎么解决的。
网络环境
在图的网络中,RouterA和RouterB在AS100内建立IBGP邻居,RouterB和RouterC建立EBGP邻居。RouterB通过aggregate命令向外发布掩码长度为22的聚合路由,造成和RouterA连接的部分网段的用户无法访问RouterC。
图IBGP对等体未学到EBGP路由
故障分析
步骤 1 在RouterA上,执行display bgp routing-table命令查看所有路由,有与其连接的所有网段的路由,排除链路故障。
步骤 2 在RouterA上,执行ping命令可以ping通用户端,说明RouterA到用户网段通畅。
步骤 3 在RouterB上,执行ping命令不能ping通用户端。
步骤 4 在RouterB上,执行display bgp routing-table命令查看所有BGP路由,发现掩码长度小于22的BGP的路由下一跳指向RouterA,但掩码长度为22的路由下一跳却指向Null0。
由此可知,可能是由于aggregate命令的不正确使用导致。BGP的aggregate命令会自动针对聚合的路由,产生一条指向Null0的黑洞路由。其作用类似以network方式发布聚合路由。由于aggregate命令中配置的聚合路由掩码长度与从RouterA上学习的BGP路由掩码长度一样,导致RouterB自动产生指向Null0的聚合黑洞路由,把所有回程报文全部丢弃。
----结束
处理步骤
在RouterB上分别执行如下操作。
步骤 1 执行命令system-view,进入系统视图。
步骤 2 执行bgp命令,进入BGP视图。
步骤 3 执行undo aggregate命令取消聚合后,运行display bgp routing-table命令查看RouterB的所有BGP路由,发现掩码长度为22的路由的下一跳为RouterA。
步骤 4 执行aggregate命令(掩码长度须小于22),进行路由聚合。
步骤 5 执行命令return退回到用户视图,执行命令save,保存对配置的修改。
----结束
配置完成后,在RouterB上可以ping通用户端,故障排除。
案例总结
aggregate命令会自动对要聚合的路由产生下一跳指向Null0的路由。如果要实现路由聚合,聚合路由掩码长度必须小于学习到的精细路由掩码长度,这样自动产生的黑洞路由才不会覆盖具体路由;要抑制具体路由发布,可以添加detail-suppressed参数。
【编辑推荐】