BGP和OSPF双点双向重发布

BGP和OSPF双点双向重发布_第1张图片

红色表示路由开始的传播路径,绿色表示重发布以后的路由传播路径。
开始时R4将8.8.8.8的路由传递给EBGP邻居R3,之后R1发给IBGP邻居R1。同时R3重发布给ospf,通过ospf给R1和R12传递了OE2的路由。
R1 可以通过R12和R3同时接收到OE2的路由。也可以通过BGP学到路由。但因为配置了OSPF到BGP的重发布,所以R1产生了一条AS-PATH为local的路由,并给了它的IBGP邻居R3.
R3在接收到IBGP邻居R1发来的AS-PATH为local的路由后,就优选了R1发来的路由,而默认情况下,bgp不能将ibgp邻居发来的路由重发布进igp。所以R3不再将8.8.8.8重发布进OSPF。则不能再将8.8.8.8通过BGP和OSPF发给R1
R1因为不能收到8.8.8.8的OE2路由,所以不再将它重发布进BGP,也不再给它的IBGP邻居R3发送AS-PATH为local的8.8.8.8路由。
R3不再收到R1发来的更优的AS-PATH为local的路由后,就优选了EBGP邻居R4发来的路由。
这样就形成了瞬时环路。
但如果在R3上开启了将IBGP邻居发来的路由重发布给IGP的话。 bgp redistribute-internal
R3优选了IBGP邻居R1发来路由后,还将其重发布进了IGP。那么它还会通过OSPF给R1发送OE2的路由。R1也就不会断绝OSPF的路由来源。**

那么这个环路就稳定下来了。

**
解决:
2种解决思路
1.方案1****:在R3上对BGP到OSPF的路由重发布时做标记,在R1上做Route-map抓取标记。R1在将OSPF路由重发布进BGP时不重发布(deny)带有标记的路由。同理R1也对BGP到OSPF的路由在重发布时标记,并在R3上抓取OE2的标记路由然后在将OSPF路由重发布进BGP时不重发布(deny)带有标记的路由。
同理,OSPF往BGP重发布时也做上社团(community)属性用来标记。用route-map抓取带社团属性标记的路由然后在往ospf重发布时不重发布带有社团属性标记的路由。
**2.方案2:**在R3上对BGP到OSPF的路由重发布时做标记,在R1上做Route-map抓取标记。并在R1的OSPF上使用分发列表拒绝带标记的路由。同理,R1也对BGP到OSPF的路由在重发布时标记,并在R3上抓取OE2的标记路由然后使用分发列表拒绝带标记的路由。
同理,OSPF往BGP重发布时也做上社团(community)属性用来标记。用route-map抓取带社团属性标记的路由然后在建立邻居时在in方向上挂上route-map。拒绝掉带标记的路由。

2种方案比较: 方案1:优点:重发布路由器可以通过IGP两个方向和BGP同时收到路由,因为对于R1来说是IBGP邻居发来的AD为200的路由,所以实际路由表优选IGP路由。这样,好处在于可以通过IGP多个方向收到路由,而且优选IGP中metric小的路径。可以更快的到达ibgp邻居处。
缺点:只适用与BGP和其他协议的多点双向重发布,在IGP和IGP中使用会存在选路不佳问题。
方案2:优点:因为拒绝收到了其他重发布路由器重发布后的路由,所以路由表优选了先收到那个路由的协议,即OSPF的路由信OSPF,BGP路由信BGP。
缺点:因为路由表是打B的路由,所以下一跳显示为R3。但实际上因为内部还需要走IGP,而OSPF在同一个区域不能直接过滤5类LSA,所以实际上的选路还是根据ospf。而不是路由表的路由接收方向。
方案二的配置:
R1:
BGP和OSPF双点双向重发布_第2张图片
BGP和OSPF双点双向重发布_第3张图片在这里插入图片描述
在这里插入图片描述
R3:

BGP和OSPF双点双向重发布_第4张图片BGP和OSPF双点双向重发布_第5张图片在这里插入图片描述在这里插入图片描述

你可能感兴趣的:(CCIE)