路由器故障:IBGP邻居间路由环路
创始人
2024-07-29 07:21:47
0

IBGP邻居间路由环路的故障解决步骤如下:

 

网络环境

在下图的网络中,RouterA和RouterC建立EBGP邻居关系,并且通过network方式发布所有路由给RouterC。RouterB和RouterD的配置与RouterA和RouterC完全对称。当RouterA和RouterC的互连接口down掉后,在RouterC上发现去往RouterA的所有网段都不通。

图 IBGP邻居间路由环路

路由器故障:IBGP邻居间路由环路

故障分析

步骤 1 在RouterC上执行display current-configuratiion命令查看配置。

RouterC通过route-policy将如下城域网的路由再通告给RR的时候强制指定其下一跳为虚拟下一跳地址202.105.0.5。

 

  1. ip route-static 202.105.0.5 255.255.255.255 61.142.140.166  
  2.  
  3. ip route-static 202.105.0.5 255.255.255.255 61.142.140.170  
  4.  
  5. ip route-static 202.105.0.5 255.255.255.255 61.145.84.94 

 

这三条静态路由的下一跳地址分别是RouterA和RouterC互连的三条链路接口地址(未指定出接口,RouterA上和RouterC互连的接口是POS1/0/0、POS2/0/0和POS2/1/0)。

在RouterC的ISIS中使用路由策略通过import方式引入这三条静态路由。

 

  1. ip ip-prefix virtualaddress index 10 permit 202.105.0.5 32  
  2.  
  3. route-policy virtual-to-IS-IS permit node 10  
  4.  
  5. if-match ip-prefix virtualaddress  
  6.  
  7. IS-IS  
  8.  
  9. cost-style wide-compatible  
  10.  
  11. network-entity 86.xxxx.2020.9702.8090.00  
  12.  
  13. import-route static cost 1 level-1-2 route-policy virtual-to-IS-IS  
  14.  
  15. preference 110 

 

步骤 2 当RouterA和RouterC的互连接口down掉后,在RouterC上发现去往RouterA的路由下一跳还是虚拟下一跳202.105.0.5,但是出接口却指向了RouterE。

 

  1.  dislay ip routing-table 61.145.84.90  
  2.  
  3. Destination/Mask Proto Pre Cost NextHop Interface  
  4.  
  5. 61.145.84.0/22 BGP 200 0 202.105.0.5 Pos6/0/0  
  6.  
  7. BGP 200 0 202.105.0.5 Pos6/0/0 

 

步骤 3 当RouterC和城域网RouterA的互连接口down掉时,由于虚拟下一跳静态路由没有指定出接口,因此静态路由不会失效,此时虚拟下一跳通过路由迭代选择了BGP路由,该路由指向RouterE从而造成环路。

虚拟下一跳202.105.0.5地址是匹配手工添加的静态路由,且下一跳地址并未改变,只是由于原先的出接口已经down掉,因此现在的出接口发生变化指向RouterE。

 

  1.  dislay ip routing-table 202.105.0.5  
  2.  
  3. Destination/Mask Proto Pre Cost NextHop Interface  
  4.  
  5. 202.105.0.5/32 Static 60 0 61.142.140.166 Pos6/0/0  
  6.  
  7. Static 60 0 61.142.140.170 Pos6/0/0  
  8.  
  9. Static 60 0 61.145.84.94 Pos6/0/0 

 

选择虚拟下一跳202.105.0.5的其中一个下一跳地址61.142.140.166为例,发现61.142.140.166匹配了一条BGP路由,该路由的下一跳又重新指向了202.105.0.5。该路由是RouterC从RR接收到的城域网内部路由(RouterB通过EBGP关系通告城域网路由给RouterD,RouterD将这些路由发布给RR的同时将其下一跳改变为虚拟地址202.105.0.5,RR又将这些路由反射给RouterC)。这说明此时去往RouterA的路由在RouterC和RouterE之间发生了环路。

RouterA和RouterC之间的直连链路down掉后发现RouterC上到城域网的路由没有指向RouterD,而是指向RouterE。在RouterE上去往城域网的路由又指向了RouterC从而造成路由环路。

----结束

处理步骤

在RouterC和RouterD上分别执行如下操作。

步骤 1 执行system-view命令,进入系统视图。

步骤 2 执行ip route-static 202.105.0.5 32 Pos1/0/0 61.142.140.166、ip route-static 202.105.0.5 32 Pos2/0/0 61.142.140.170和ip route-static 202.105.0.5 32 Pos2/1/0 61.145.84.94命令,绑定出接口。

配置虚拟下一跳静态路由的时候没有和出接口进行关联,导致出接口down掉的时候这些静态路由还是生效的,因此配置虚拟下一跳静态路由的时候绑定出接口。

RouterD上的操作同RouterC。

当对端接口down掉的时候该静态路由会失效,此时由于RouterD上在ISIS中同时引入了虚拟下一跳静态路由,因此RouterC上对应虚拟下一跳202.105.0.5的路由应该指向了RouterD,从而不会出现上述情况导致的不通问题。

步骤 3 执行命令return退回到用户视图,执行命令save,保存对配置的修改。

----结束

配置完成后,在RouterC上执行ping命令可以ping通RouterA上的所有网段,故障排除。

案例总结

BGP虚拟下一跳是指通过Route-Policy在通告给BGP邻居路由的时候强制改变这些路由的下一跳地址为一个虚拟出来的地址。虚拟下一跳的应用中,建议配置静态路由的时候绑定出接口。

 

【编辑推荐】

  1. BGP基本配置之IBGP和EBGP
  2. 路由器故障:IBGP邻居不传递团体属性
  3. 关于边界网关协议BGP中同步问题浅析
  4. IBGP路由协议在不同网络结构中的应用
  5. 路由器故障:EBGP路由自动改变下一跳
  6. 路由器故障:IBGP对等体未学到EBGP路由
  7. 路由器故障:EBGP邻居的Loopback地址ping不通

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...