基本配置看我BGP五种报文的文章(本章主要看一下BGP路由在什么情况下回传什么情况下不会传)
BGP通告原则第一条:
只发布最优且有效的路由(即下一条可达的),自己只将最优放到IP路由表
BGP通告原则第三条:
从EBGP学习到的会发送给所有的对等体
BGP通告原则第三条:
从IBGP对等体获取到的路由,不会再发送给IBGP对等体。也就是这张拓扑上为什么R2/R3/R4两两要建立对等体
BGP通告原则第四条:
从IBGP对等体学习到的路由会传给EBGP对等体吗?答案:
遵从同步原则,也就是从BGP学到的路由,还从IGP学到了,才回传给EBGP对等体。华为缺省情况下关闭同步,而且开不了。
IBGP之间使用环回口建立,EBGP之间使用直连接口建立
在R1中使用network方式注入到BGP路由表中,然后发现R1的BGP路由表中出现了这条路由并传递给了R2,R2有传递给了R4,但是在R4上的这条路由是无效的。
解决掉这个无效路由问题:
[R2-bgp]peer 4.4.4.4 next-hop-local(这个local改为了和4.4.4.4建立TCP连接的源地址)
也就是这一个:
同样的在R5上在将5.5.5.5通过network方式注入到BGP路由表中
然后这条路有会传递的给R4下一跳没有改变还是192.168.4.2,R4再将这条路由传递给R2下一跳还是没有改变,所以在R2上看到的5.5.5.5的这条BGP路由还是无效的,同样的方式在R4上将BGP的路由的吓一跳给改变掉。
但是要想让R5与R1通信还要让R3有路由,在这采用full mesh全互联的方法,也就是让两两建立BGP关系。但是R3此时虽然学到了路由但是还是无效的,只有在R2和R4上也进行传递给3.3.3.3的路由的吓一跳修改掉。
总结修改下一条应该在那台设备上进行修改,首先你看,R2在R1上学到有效的路由但是传递给R4IBGP对等体时R4收到的路由是无效因为下一条不可达。所以我要在R2上对发往R4的路由的下一跳进行修改,也就是在R2上进行下一条的修改