BGP(Border Gateway Protocol边界网关协议)配置比较复杂,邻居建立不起来有各种各样的原因,我总结了6种原因导致BGP无法建立邻居,大家都学会了,基本上能解决90%以上无法建立邻居的问题,我们先来看一下拓扑:
我们就以R1和R3来演示BGP邻居建立的问题,BGP无法建立邻居主要是以下6种原因:
- 1、网络不可达
- 2、TCP 179端口不可达
- 3、通过loopback地址建立邻居,未配置更新源为loopback
- 4、AS号与对端指定不符
- 5、配置了相同的router-id
- 6、EBGP不是通过直连接口建立
解决故障的思路流程是这样:
接下来我们分别讲解这6种原因的第一种:网络不可达。
要想建立起BGP邻居,首先第一步网络需要可达,这样才能建立起BGP邻居,我们现在在R3上PING一下R1的地址。
无法PING通,我们再看一下是否有路由。
路由表中没有R1 1.1.1.1的路由。
建立BGP邻居必须要网络可达,所以BGP邻居无法建立,这里的BGP连接状态是Idle,这个说明R3向R1发起了BGP连接,但重试计时器超时,所以就转为Idle状态。
路由可达有两种方式来实现:
- 1、动态路由协议
- 运行动态路由协议RIP、OSPF、EIGRP、ISIS等,通过动态路由协议把loopback地址宣告出去,这样BGP对等体的地址就能互通了,一般动态路由运行在一个域内。
- 2、静态路由
- 通过静态路由指定的方式,来实现BGP对等体地址的互访,静态路由一般常用在建议EBGP邻居。
我们就通过静态路由的方式来实现,在R3路由器上输入:
R3(config)#ip route 1.1.1.1 255.255.255.255 13.0.0.1
配置好静态路由,我们再查看一下路由表并PING一下。
从上图可以看出已经有路由了,也能PING通,我们再看一下BGP状态。
从BGP状态中可以看出,一会出现Active一会出现Idle,为什么还不通呢?这就涉及到第二种原因了,具体如何分析,欢迎大家关注一下,下期我们继续排查BGP邻居建立的问题。