实验拓扑及要求:

BGP 的network bgp的network宣告的特点_解决方案


一、配置IP及运行动态路由协议:

AR1:

#
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
#
interface LoopBack0
 ip address 1.1.1.1 255.255.255.0 
#
interface LoopBack1
 ip address 99.1.1.1 255.255.255.0 
#
ip route-static 2.2.2.2 255.255.255.255 10.1.12.2

AR2:

#
interface GigabitEthernet0/0/0
 ip address 10.1.23.2 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.12.2 255.255.255.0 
#
interface LoopBack0
 ip address 2.2.2.2 255.255.255.0 
#
ospf 1 router-id 2.2.2.2 
 area 0.0.0.0 
  network 2.2.2.0 0.0.0.255 
  network 10.1.23.0 0.0.0.255 
#
ip route-static 1.1.1.1 255.255.255.255 10.1.12.1

AR3:

[V200R003C00]
#
 sysname r3
#
interface GigabitEthernet0/0/0
 ip address 10.1.34.3 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.23.3 255.255.255.0 
#
interface LoopBack0
 ip address 3.3.3.3 255.255.255.0 
#
ospf 1 router-id 3.3.3.3 
 area 0.0.0.0 
  network 3.3.3.0 0.0.0.255 
  network 10.1.0.0 0.0.255.255

AR4:        

#
 sysname r4
#
interface GigabitEthernet0/0/0
 ip address 10.1.45.4 255.255.255.0 
#
interface GigabitEthernet0/0/1
 ip address 10.1.34.4 255.255.255.0 
#
interface LoopBack0
 ip address 4.4.4.4 255.255.255.0 
#
ospf 1 router-id 4.4.4.4 
 area 0.0.0.0 
  network 4.4.4.0 0.0.0.255 
  network 10.1.34.0 0.0.0.255 
#
ip route-static 5.5.5.5 255.255.255.255 10.1.45.5

AR5:

#
 sysname r5
#
interface GigabitEthernet0/0/1
 ip address 10.1.45.5 255.255.255.0 
#
interface LoopBack0
 ip address 5.5.5.5 255.255.255.0 
#
interface LoopBack1
 ip address 100.1.1.1 255.255.255.0 
#
ip route-static 4.4.4.4 255.255.255.255 10.1.45.4

 二、启动BGP协议以及宣告路由:

 AR1:

#
bgp 100
 router-id 1.1.1.1
 peer 2.2.2.2 as-number 200     
 peer 2.2.2.2 ebgp-max-hop 2          #由于AS-BY-AS的规则,从EBGP学习到的路由携带EGP的信息。

 peer 2.2.2.2 connect-interface LoopBack0     #真实链路中会出现链路断掉的可能性,故使用换回建立
 #
  network 1.1.1.0 255.255.255.0 
  network 99.1.1.0 255.255.255.0             #路由宣告

AR2:

#
bgp 200
 router-id 2.2.2.2
 peer 1.1.1.1 as-number 100 
 peer 1.1.1.1 ebgp-max-hop 2     #由于EGP的规则,会导致发包时TTL值减一,此时路由无法达到对面换                    
                                  回,故需要设置的最大条数为2   
 peer 1.1.1.1 connect-interface LoopBack0
 peer 3.3.3.3 as-number 200 
 peer 3.3.3.3 connect-interface LoopBack0 
 peer 4.4.4.4 as-number 200       #相邻的自治系统为200
 peer 4.4.4.4 connect-interface LoopBack0
 #
  network 2.2.2.0 255.255.255.0 
  peer 1.1.1.1 enable
  peer 3.3.3.3 enable
  peer 3.3.3.3 next-hop-local 
  peer 4.4.4.4 enable
  peer 4.4.4.4 next-hop-local

AR4:

#
bgp 200
 router-id 4.4.4.4
 peer 2.2.2.2 as-number 200 
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 200 
 peer 3.3.3.3 connect-interface LoopBack0
 peer 5.5.5.5 as-number 300               
 peer 5.5.5.5 ebgp-max-hop 2 
 peer 5.5.5.5 connect-interface LoopBack0
 #
  network 4.4.4.0 255.255.255.0 
  peer 2.2.2.2 enable
  peer 2.2.2.2 next-hop-local 
  peer 3.3.3.3 enable
  peer 3.3.3.3 next-hop-local 
  peer 5.5.5.5 enable

AR5:

#
bgp 300
 router-id 5.5.5.5
 peer 4.4.4.4 as-number 200 
 peer 4.4.4.4 ebgp-max-hop 2 
 peer 4.4.4.4 connect-interface LoopBack0 
 #
  network 5.5.5.0 255.255.255.0 
  network 100.1.1.0 255.255.255.0 
  peer 4.4.4.4 enable

三、AR3也启用BGP策略

1、查询AR1的路由表:

BGP 的network bgp的network宣告的特点_BGP 的network_02

 经过查询,发现到也有到达AR5的路由,下面进行ping通测试。

BGP 的network bgp的network宣告的特点_解决方案_03

  由此可见,即使AR1上有到达AR5换回的路由,但依旧连接失败。

原因:由于BGP的路由黑洞问题, 导致AR3上没有到达AR5的路由,只是一台单纯的IGP路由器,所以到数据层面的流量到达AR3上会被丢弃,这就是路由黑洞。

2、进行AR3的配置,让AR3成为一台IBGP路由器,临时解决路由黑洞问题。

 AR3配置:

#
bgp 200
 router-id 3.3.3.3              #并非全网唯一,但邻居之间要做到唯一
 peer 2.2.2.2 as-number 200     #邻居的区域
 peer 2.2.2.2 connect-interface LoopBack0
 peer 4.4.4.4 as-number 200 
 peer 4.4.4.4 connect-interface LoopBack0
 #                                        
  network 3.3.3.0 255.255.255.0 #宣告路由
  peer 2.2.2.2 enable
  peer 4.4.4.4 enable

 此时查看AR3上的路由表:

BGP 的network bgp的network宣告的特点_网络_04


  四、ping通测试

AR1上的换回可以ping通AR5上的换回,故实验结束。


 五、合理补充

1、BGP的宣告问题

如果我们在AR4的路由器上,写一条到达AR5网段的静态,命令:

#
ip route-static 5.5.5.0 255.255.255.0 10.1.45.5

AR4:

BGP 的network bgp的network宣告的特点_解决方案_05

AR3:

BGP 的network bgp的network宣告的特点_路由表_06

 从AR4上的路由器和AR3上的路由器我们查询发现,AR4上到达AR5换回的路由不优,而AR3上更是没有到达AR5的路由。

 解释:这是由于逻辑悖论而导致的问题,刚才我们修改了AR4上的静态路由,从而AR4有到达AR5的换回的路由,但是由于AR4与AR5建立EBGP邻居的关系,是为了AR4可以获取到AR5身上的换回的路由,而AR4上由于有了AR5上换回的路由,才可以建立EBGP的邻居关系(就如同,我想去和对面需要造船,而我造船仅仅是为了去河对面)

解决方案:

在AR4上写到5换回的路由为单个地址,由于上述规则,所以我们仅需要在AR4上建立BGP邻居时仅用AR5的换回即可(实际工程也是如此,BGP的邻居建立仅仅需要两台运行BGP的换回即可,而底下的真实网段与换回完全不在一个网段)

配置命令:

AR4:
#
ip route-static 5.5.5.5 255.255.255.255 10.1.45.5
1、现在查看AR3上的路由(路由已恢复现状) 

BGP 的network bgp的network宣告的特点_网络_07

2、进行ping通测试: 

BGP 的network bgp的network宣告的特点_网络_08

2、在一个EBGP上宣告IGP上的换回:

1、首先删除其他路由器上宣告,从AR2上可以查询到BGP表:

BGP 的network bgp的network宣告的特点_路由表_09


 2、修改其他路由器上的换回接口为broadcast

BGP 的network bgp的network宣告的特点_链路_10

 我们可以明显的查询到在AR2上的BGP表中,掩码变成了24位


 3、在AR2上进行网段宣告:

AR2:
#
  network 2.2.2.0 255.255.255.0 
  network 3.3.3.0 255.255.255.0 
  network 4.4.4.0 255.255.255.0

查看BGP表:

BGP 的network bgp的network宣告的特点_解决方案_11

 通过路由器的表可以看到:

BGP 的network bgp的network宣告的特点_路由表_12

这个字符含义代表该路由器到达该网段的度量。


 现在,我们在AR5上查询BGP表,不难发现AR5上的路由器MED值位空,从中我们可以得出由于AR4上的路由是通过IBGP学到的,所以当他传给AR5时,此时度量会被清零。 

BGP 的network bgp的network宣告的特点_路由表_13

此刻,我们在AR4上宣告IGP中的网段:

AR4:
#
  network 2.2.2.0 255.255.255.0 
  network 3.3.3.0 255.255.255.0 
  network 4.4.4.0 255.255.255.0

随后,在AR5上查看BGP表:

BGP 的network bgp的network宣告的特点_解决方案_14

所以,此刻我们可以得出结论,在相邻的两个区域中,一定不止一台EBGP路由器,要做到两台AS区域中的BGP路由器都进行宣告网段,此时BGP选路才能达到正确,不然为宣告网段的路由器度量为0,选路不佳。