内部BGP邻居(下)

简介: 文章目录系列文章实验目的实验拓扑实验步骤步骤1的配置步骤2的配置步骤3的配置步骤4的配置

然后再次查看R2的BGP表项:

R2#show ip bgp
R2#

R2此时表项为空,说明R1并没有把关于R4的路由发给R2。

回到R1显示的BGP表项,我们发现下一跳属性为10.10.34.4,和在R3上的属性一致。这说明IBGP邻居之间发送路由更新时不会更改下一跳属性。

而对于R1而言,10.10.34.4这个地址不可达,因此这条下一跳不可达的路由不能成为“best”。

对于这种情况,往往我们可以在IBGP邻居建立时显示的更改这个行为。使得IBGP发送更新时将下一跳属性更改为自己,这样就不会出现下一跳不可达的现象了。

我们在R3上,对R2发送更新时下一跳更改为自己。

R3(config)#router bgp 1
R3(config-router)#neighbor 1.1.1.1 next-hop-self  //更改下一跳为自己
R3(config-router)#exit

然后再次回到R1的BGP表,结果如下:

R1#show ip bgp 
BGP table version is 3, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*>i4.4.4.0/24       3.3.3.3                  0    100      0 2 i

这里可以看到,R1将到R4的路由显示为“best”。下一跳属性也相应更改。

接着在R2上的BGP表示查看。

R2#show ip bgp
R2#

依然为空。

这里需要注意两个重要的问题:

BGP路由器只会发送最优路由给邻居,不管是EBGP还是IBGP。

由于BGP内部没有相关属性能防止环路,因此为了避免BGP路由在域内产生环路,所以BGP路由器不会将IBGP路由发给另一个IBGP路由器。

在本例中,R1从IBGP邻居R3上学习到的R4路由,所以它为了防止环路,不会将该路由再次发给另一个IBGP路由器,即R2.所以R2上收不到关于R4的路由。

步骤4的配置

现在我们再来关注下R1到达R4的情况。

我们首先将R1的环回口一样加入到BGP进程中,使得R4也能学习到1.1.1.0/24的路由。

R1(config)#router bgp 1
R1(config-router)#network 1.1.1.0 mask 255.255.255.0
R1(config-router)#exit


然后再重置下R1的BGP连接。

接着查看R1的BGP表项:

R1#show ip bgp
BGP table version is 2, local router ID is 1.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
   Network          Next Hop            Metric LocPrf Weight Path
*> 1.1.1.0/24       0.0.0.0                  0         32768 i
* i4.4.4.0/24       3.3.3.3                  0    100      0 2 i

此时R4的路由已经去除了“best”标记。

这就是著名的BGP同步。

BGP同步的概念是:不会把来自于IBGP对1路由作为最优,除非该路由已经通过IGP学习到了或者已经存在 在路由表中。

由于R1开启了同步,因此R4的路由无法作为“bset”使用。这样也就使得R1根本无法再路由表中插入R4的路由。

结合之前在R2上丢包的实验,这种路由黑洞将不会发送,如果同步开启的话。

同步的作用就是防止发生上述的路由黑洞。

但往往现在我们默认是关闭的,因此为了避免路由黑洞,我们对于IBGP邻居必须要进行全互连。

最后我们将R1的同步关闭,然后使得AS 1域内的IBGP连接达到全互连。即添加上R2和R3的IBGP连接。

R1:
R1(config)#router bgp 1
R1(config-router)#no synchronization
R1(config-router)#exit
R2:
R2(config)#router bgp 1
R2(config-router)#neighbor 3.3.3.3 remote-as 1
R2(config-router)#neighbor 3.3.3.3 update-source lo0
R2(config-router)#exit
R3:
R3(config)#router bgp 1
R3(config-router)#neighbor 2.2.2.2 remote-as 1
R3(config-router)#neighbor 2.2.2.2 update-source lo0
R3(config-router)#neighbor 2.2.2.2 next-hop-self  //更改下一跳命令
R3(config-router)#exit


在一切完成后,接着再在R1上使用1.1.1.1去ping4.4.4.4,查看连通性。


此时就已经能够正常通信了。

目录
相关文章
|
3月前
|
监控 网络协议 数据安全/隐私保护
确定 OSPF 邻居关系问题原因的方法
【8月更文挑战第24天】
78 0
|
5月前
|
网络架构 Perl
BGP路由属性与选路
BGP路由属性与选路
|
网络架构
内部BGP邻居(上)
文章目录 系列文章 实验目的 实验拓扑 实验步骤 步骤1的配置 步骤2的配置 步骤3的配置 步骤4的配置
154 0
内部BGP邻居(上)
|
NoSQL Redis 网络架构
BGP邻居路由黑洞+mpls ip
文章目录 要求: 拓扑: 命令:
112 0
BGP邻居路由黑洞+mpls ip
|
负载均衡 网络协议 数据库
|
网络协议 网络架构
|
网络协议 网络架构