BGP中的环路和次优路径问题

一、路由引入造成的环路

在这里插入图片描述
场景描述:
如图所示,R1将100.1.1.0 通告进BGP,且传递给AS 200,R2 与R4建立iBGP邻居,R4从iBGP学习到该路由,R4将iBGP引入进IGP,此时,R3访问100.1.1.0 时将会出现环路。。

具体原因:
由于R3没有运行BGP,只能通过IGP学习到该路由,R4 将BGP引入到IGP,R3将会从R4学习到该路由,如果R3访问100.1.1.0,下一跳数据包将会交给R4。而R4从iBGP中学到该路由,下一跳为R2,但是R4需要通过R3才能到达R2,因此数据包会再次经过R3,故而形成环路。

解决方式1:
改变AS 200的物理拓扑,将R2和R4直接相连,形成AS内三角形的组网,如下图所示,R4到达100.1.1.0 将会直接经过R2到达,不会造成环路。
在这里插入图片描述
解决方法2:
如图所示,在R2上引入路由,R3访问100.1.1.0 时则会直接经过R2访问,不会造成环路。
在这里插入图片描述

二、聚合路由引起的环路问题

在这里插入图片描述
场景描述:
如上图所示,AS 100 中通告了三条网段分别为172.16. 1.0/24、172.16.2.0/24、172.16.3.0/24, 为了减少AS 200的路由数量,在R2上进行了手动聚合,但没有携带AS-SET关键字。假设聚合时不生成指向NULL 0的路由条目,将会带来环路问题,具体过程如下所述。

问题分析:
由于没有携带AS-SET 关键字,该聚合路由被重新通告进R1,对于R1来说,明细路由来自于本地IGP (通告进OSPF),聚合路由来自于R2、R1,BGP聚合路由和明细路由都出现在IP路由表中。IGP收敛速度比BGP快,如果R1上OSPF中的明细路由消失了,R1没有了明细路由,此时,如果R1要访问一个明细地址,将会匹配到聚合路由,会将数据包发送给R2,而R2是通过BGP从R1学到的这些明细路由,但是由于BGP的收敛速度慢,R2 的BGP表无变化。数据包将再次指向R1,至此,将会出现短暂环路。

解决方法:
实际上BGP生成聚合路由时,将会在IP路由表中自动形成一条指向NULL 0接口的路由聚合条目。如果R1有了这条指向NULL 0的聚合路由,那么R1匹配到该路由条目时将会直接丢弃掉,从而避免环路。

三、默认路由注入造成的次优路径

BGP中的默认路由下放:
当对等体的BGP路由表中的多条路由都只是由本端发送时,可以在本端配置向对等体发送缺省路由功能。配置向对等体发送缺省路由功能后,无论本端的路由表中是否存在缺省路由,都向对等体发布一条下一跳地址为本地地址的缺省路由,从而很大程度地减少网络路由数量,节省对等体的内存资源与网络资源。
在这里插入图片描述

实验:
在这里插入图片描述

场景描述:
如图所示,AS 100中的路由器R1与R2和R3是eBGP邻居,R1分别向R2和R3发布默认路由,R2和R3为OSPF域中的ASBR路由器,分别向该域中有条件地发布默认路由(当ASBR的路由表中存在默认路由才向OSPF发布)。

问题分析:
假设R1与R2之间的链路出现故障,R2则收不到eBGP发布进来的默认路由,而R3从OSPF发布的默认路由被R2接收到,此时R2将会把该默认路由放进路由表,下一跳指向R4。但是如果R1与R2的链路恢复以后,R1通过eBGP向R2发布的默认路由也是不会注入到R2的路由表的,原因在于eBGP的路由优先级为255,而OSPF默认路由优先级为150(LSA5),因此R2也不会将eBGP的默认路由放进路由表,这样会造成R2选择一条次优路径,如果匹配到默认路由时将会沿着R4-R3-R1。

解决方法:
修改R2的路由优先级,将BGP的优先级改得更小(要小于OSPF的150),让BGP的默认路由出现在路由表中。

整理资料来源:《HCIE路由交换学习指南》

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

格洛米爱学习

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值