- 在R4 上通过network 命令向iBGP 宣告 192.168.4.4. 可以看到这条路由会一直到R2,但是R1上没有。而且在R2和R3 上存在差别,R3上多了1个>标识,表示会写进路由表。在R3上看到的
- 在R2上查看具体的BGP 路由条目,提示10.34.1.2 不可达。状态为 Not advertised to any peer
方法1:通过IGP宣告
- 在R2、R3间配置OSPF
- R3 上配置OSPF,宣告10.34.1.0 网络,同时把和R4相连的接口设为 passive-interface。 因为宣告的目的已经可以实现,而实际情况中,不知道对端是什么情况,为了减少不必要的麻烦——对端也跑了OSPF,导致OSPF互相注入
- OSPF 关系建立后,R2就知道了去往10.34.1.0 的路径,对应的BGP路由条目也发生了变化
- 此时,R1也学到了这条路由
方法2:通过BGP宣告
- 先 no 掉上一步R3 宣告10.34.1.0的设置
- 在R3 上 通过BGP network 宣告10.34.1.0
- 此时R2 多学到了 1条 BGP路由
- 注意R3 向R2 传递eBGP 路由(192.168.4.4 )的时候,没有修改下一跳地址
- R3向R2 传递iBGP路由(10.34.1.0)的时候,修改了下一跳地址(从0.0.0.0 到 10.23.1.2)
- R1 也多学到了1条去往10.34.1.0 的BGP路由,同时192.168.4.4 可达 —— 可以看到这种方式 “泄漏”了10.34.1.0
方法3:通过 next-hop-self
- 清理方法2的现场
- 在R3 BGP中补1条命令:neighbor 10.23.1.1 next-hop-self
- 在R2 上观察变化,下一跳地址变为了10.23.1.2
- 而在R1上,下一跳地址也变为了 10.12.1.2
总结
- 可以看到,方法3 最简单,不存在其他网络地“泄漏”或者协议配置的调整