BGP(反射器&联邦)实验


作业要求:

bgp更新源和反射器_IP


bgp更新源和反射器_路由器_02

首先进行第二个要求,AS2网段地址使用172.16.0.0/16,意思就是按照需求划分子网。
首先是划分R2-R7骨干网络,可以看到AS2中总共有六段骨干网络,因此需要划分6个网段,同时考虑到骨干网络IP地址的不浪费,因此借14位,所以得到以下IP地址:
172.16.0.0/30
172.16.0.4/30
172.16.0.8/30
172.16.0.12/30
172.16.0.16/30
172.16.0.20/30
第二步是考虑到BGP协议中的IBGP区域下使用环回作为建邻地址,同时考虑到IP地址的不浪费,因此直接使用32位子网掩码的主机地址作为建邻地址,所以得到以下IP地址:
R2-R7建邻地址:
172.16.1.2/32
172.16.1.3/32
172.16.1.4/32
172.16.1.5/32
172.16.1.6/32
172.16.1.7/32
最后根据题目要求,AS2区域中的每台路由器需要配置一个环回接口作为用户接口,同时考虑到IP地址的不浪费,且一般用户网络都是使用24位子网掩码,所以得到以下IP地址:
R2-R7环回地址:
172.16.2.0/24
172.16.3.0/24
172.16.4.0/24
172.16.5.0/24
172.16.6.0/24
172.16.7.0/24

划分好子网后,接下来就是配置IP地址了,由于IP地址配置过于简单,这里不做演示。那么下面进行IGP环境的建立,因为BGP环境的构建是建立在IGP环境的基础上的。而拓补图中仅有AS2区域存在IGP环境,那么运行ospf动态路由配置一个区域0就够了(此处根据具体需求而定)。

bgp更新源和反射器_IP_03


bgp更新源和反射器_网络_04


上图是R2和R3的配置指令,R4-R7以此类推不做演示。

构建完IGP环境后,查看R2的IP动态路由表(OSPF)可以看到

bgp更新源和反射器_接口_05


当IGP环境构建好了之后就是构建BGP环境了。而BGP分为EBGP(外部BGP)和IBGP(内部BGP),因此配置的过程也有所区别。根据拓补图可以看出,AS1和AS2之间以及AS2和AS3之间需要使用EBGP,在AS2区域中需要使用IBGP。其中AS2由于路由器数量较多,处理不好会出现路由黑洞,处理路由黑洞的方法有很多,在这里不多解释。在这个实验使用的解决方法是全部路由器使用BGP(在现实不可取),但是使用这种方法会触发IBGP的水平分割导致其它路由器无法收到路由,因此可以通过使用反射器和联邦解决IBGP的水平分割,因此在AS2的IBGP区域下又分了两个虚拟的EBGP区域,分别是AS64512和AS64513。接下来就是配置过程了,先配置EBGP。

先是R1和R2

bgp更新源和反射器_接口_06


下图R2由于使用了联邦(AS64512挂靠在AS2中),所以要另外敲指令“confederation id 2”

bgp更新源和反射器_接口_07


下面是R7和R8

道理和上面一样,R7使用了联邦,也是需要另外敲指令“confederation id 2”

bgp更新源和反射器_IP_08


bgp更新源和反射器_网络_09


这样EBGP环境就配置完成,下面是配置IBGP环境。

bgp更新源和反射器_路由器_10


由于使用了联邦,所以联邦之间连接的两台路由器要先敲指令

“confederation peer-as AS号”。然后由于是IBGP环境,因此建议使用环回建邻,所以要敲指令“peer 邻居入接口地址 connect-interface 环回接口号”。紧接着由于在EBGP环境中(虚拟EBGP也是)使用环回地址建邻需要更改TTL(生存时间,默认为1),不然会不可达导致无法成功建邻,所以要敲指令

“peer 邻居入接口地址 ebgp-max-hop 2”(此处TTL最大可改为2)。在R5上也是如此

bgp更新源和反射器_接口_11


以此类推,R4和R7也是一样,因此省略。那么接下来配置反射器,根据反射器的工作原理,需要客户端和非客户端,三台路由器为一个簇。然后根据拓补图,反射器建议为R3和R6。

下图为R3配置反射器过程

bgp更新源和反射器_接口_12


可以看到红框框住的指令就是反射器配置指令,可以看到只需要指定谁是该簇中的客户端,然后根据输入该指令的是反射器,剩下的路由器就是非客户端,因此R2是该簇中的客户端,R3是该簇中的反射器,R4为该簇中的非客户端。同理R5,R6,R7为一个簇,以此类推,配置过程省略。那么整个BGP环境就配置完成了,接下来就是宣告路由。

BGP的路由宣告原理是根据IP路由表中的路由进行宣告。那么先看R1和R8的宣告。

bgp更新源和反射器_路由器_13


bgp更新源和反射器_网络_14


以上两图分别宣告了用户接口和骨干网络,建邻环回无需宣告。紧接着到IBGP环境中的路由宣告,原理大致一样,但是由于IBGP下一跳属性规则原因,因此需要更改下一跳,不然会下一跳不可达导致路由条目不优而无法正常传递路由,因此要敲指令“peer 邻居入接口地址 next-hop-local”从而把下一跳地址改为本地,如下两图所示。当然,这条指令只用在连接连接其它AS区域的路由器敲。

bgp更新源和反射器_bgp更新源和反射器_15


bgp更新源和反射器_路由器_16


最后只需要完成实验的最后一个要求——减少路由条目。而完成这个要求只需要做一步,那就是路由聚合(汇总)。到此有一个问题出现,BGP的路由汇总有一个麻烦的设定,那就是首先要将需要汇总的路由条目宣告到BGP路由表中,然后再进行汇总,最后会产生一条通向空接口的路由条目避免路由黑洞的产生。然而很多时候路由条目数量达到一定数量时,逐一宣告路由就会显得很乏力,同时进行路由汇总往往就是为了方便自己进行路由宣告,简单来说,路由汇总可以相对应减少我们进行路由宣告的操作量。而BGP对于路由汇总的设定只会加大我们的操作量。因此也相对应的出现了另外的一种路由汇总的方法。这个方法其实就是进行反向操作,先在IGP环境下通过静态路由配置一个汇总的路由条目指向空接口,这样就会在IP路由表中出现汇总后的路由指向空接口的路由条目,我们都知道BGP的宣告方式只能是宣告IP路由表中出现的路由条目,那么此时就可以直接在BGP宣告汇总后的路由条目,这种方式可以大大的减少我们的操作量,同时效果也是一样的。那么以下四张图就是配置的指令,其中的路由宣告只需要在连接其它AS区域(虚拟的不算)的路由器上宣告(R2和R7)。

bgp更新源和反射器_接口_17


bgp更新源和反射器_IP_18


bgp更新源和反射器_IP_19


bgp更新源和反射器_接口_20


配置完成后查看R1上的BGP路由表

bgp更新源和反射器_bgp更新源和反射器_21


可以看到路由条目极其的少,另外AS2中的172网段也汇总完成。

bgp更新源和反射器_路由器_22

同时,使用R1的环回也是顺利的ping通R7和R8的环回,也就证明BGP环境已经完全建成,同时全网可达。实验正式完成。