拓扑如图,配置地址,配置ospf并宣告相应地址
1、观察bgp邻居的建立
a R1和R3建立bgp邻居
抓包可以看到TCP的三次握手,端口号179
可以看到R1和R3成功建立了IBGP邻居
b 缺省情况下,BGP使用报文出接口作为TCP连接的本地接口,但是会存在一些问题。
在R7与R9之间,采用了直连接口建立了IBGP邻居,那么一旦接口或直连链路发生了故障,BGP会话也就断了。但实际上,由于冗余链路的存在(R7-R8-R9),R7与R9之间的ip连通性并没有down 所以建立IBGP对等体关系时,可以使用loopback接口作为更新源地址,loopback接口非常稳定,可以借助AS内的IGP协议保证可靠性。
c 接下来用R1和R3的loopback接口建立IBGP邻居
首先undo掉相关配置,可以看到邻居已经没有了
可以看到,一直处于idle状态,排查发现是因为没有去往8.8.8.8/32的路由 缺少去往对等体的路由是BGP路由器的状态机一直处于idle状态的常见原因
将相关的路由宣告进ospf,可以看到状态机从idle变成了active,还是没有建立成功;通过抓包可以发现,TCP的连接一直没有建立 尝试建立TCP连接时,状态机处于connect,建立失败则进入active
这里虽然使用了loopback接口建立邻居,但是建立TCP的接口依然是报文的出接口,即12.0.0.1和13.0.0.3 指定源地址为loopback源接口
可以看到邻居已经成功建立
2、BGP路由的生成(BGP并不产生路由,只是路由的搬运工)
a BGP路由的生成有两种,network和import
在R1将本地直连路由宣告进BGP(BGP只能宣告已有的路由条目),查看R1的BGP路由表,可以看到了
R1会将这条路由发给它的IBGP邻居R3和EBGP邻居R6
这条路由在R3和R6都是有效的,但是在R3并没有被选进全局路由表,因为ospf的路由更优