一、首先复习一下BGP
1.BGP简介
- 边界网关协议BGP(Border Gateway Protocol)是一种实现自治系统AS(Autonomous System)之间的路由可达,并选择最佳路由的距离矢量路由协议。
- 早期发布的三个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267),1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络(如IPv6等)使用的版本是MP-BGP(RFC4760)。
- MP-BGP是对BGP-4进行了扩展,来达到在不同网络中应用的目的,BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP)。
- 为方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,外部网关协议EGP(Exterior Gateway Protocol)被用于实现在AS之间动态交换路由信息。
- 但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑环路避免等问题,很快就无法满足网络管理的要求。
- BGP是为取代最初的EGP而设计的另一种外部网关协议。不同于最初的EGP,BGP能够进行路由优选、避免路由环路、更高效率的传递路由和维护大量的路由信息。
- 虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。比如在数据中心上行的连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。
2.BGP从多方面保证了网络的安全性、灵活性、稳定性、可靠性和高效性:
1、BGP采用认证和GTSM的方式,保证了网络的安全性。
2、BGP提供了丰富的路由策略,能够灵活的进行路由选路。
3、BGP提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
4、BGP使用TCP作为其传输层协议(端口号为179),并支持BGP与BFD联动、BGP Tracking和BGP GR,提高了网络的可靠性。
二、BGP联盟
解决AS内部的IBGP网络连接激增问题,除了使用路由反射器之外,还可以使用联盟(Confederation)。联盟将一个AS划分为若干个子AS。每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系,但联盟外部AS仍认为联盟是一个AS。配置联盟后,原AS号将作为每个路由器的联盟ID。这样有两个好处:一是可以保留原有的IBGP属性,包括Local Preference属性、MED属性和NEXT_HOP属性等;二是联盟相关的属性在传出联盟时会自动被删除,即管理员无需在联盟的出口处配置过滤子AS号等信息的操作。
三、路由反射器和联盟的比较
下表从配置、设备连接和应用方面对比了路由反射器和联盟
路由反射器 | 联盟 |
---|---|
不需要更改现有的网络拓扑,兼容性好。 | 需要改变逻辑拓扑。 |
配置方便,只需要对作为反射器的设备进行配置,客户机并不需要知道自己是客户机。 | 所有设备需要重新进行配置。 |
集群与集群之间仍然需要全连接。 | 联盟的子AS之间是特殊的EBGP连接,不需要全连接。 |
适用于中、大规模网络。 | 适用于大规模网络。 |
四、实例
实验拓扑:
1.所有设备的IP配置:
[R1]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.12.1/24 up up
LoopBack0 10.0.1.1/32 up up(s)
LoopBack1 10.0.11.11/32 up up(s)
[R2]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.12.2/24 up up
GigabitEthernet0/0/1 10.0.23.2/24 up up
GigabitEthernet0/0/2 10.0.25.2/24 up up
LoopBack0 10.0.2.2/32 up up(s)
[R3]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.23.3/24 up up
GigabitEthernet0/0/1 10.0.34.3/24 up up
LoopBack0 10.0.3.3/32 up up(s)
[R4]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.34.4/24 up up
LoopBack0 10.0.4.4/32 up up(s)
[R5]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.25.5/24 up up
GigabitEthernet0/0/1 10.0.56.5/24 up up
LoopBack0 10.0.5.5/32 up up(s)
[R6]display ip interface brief
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.56.6/24 up up
LoopBack0 10.0.6.6/32 up up(s)
2.配置BGP联盟,每个子AS内部建立IBGP全连接关系,子AS之间建立联盟EBGP连接关系:
[R2]bgp 2002
[R2-bgp]router-id 10.0.2.2
[R2-bgp]confederation id 200 -----创建联盟ID
[R2-bgp]confederation peer-as 2034 2056 -----指定联盟子AS
[R2-bgp]peer 10.0.23.3 as-number 2034 -----建立邻居关系
[R2-bgp]peer 10.0.23.3 next-hop-local -----更改下一跳属性
[R2-bgp]peer 10.0.25.5 as-number 2056
[R2-bgp]peer 10.0.25.5 next-hop-local
[R2-bgp]peer 10.0.12.1 as-number 100
[R2-bgp]network 10.0.2.2 32
[R2-bgp]network 10.0.23.0 24
[R2-bgp]network 10.0.25.0 24
[R3]bgp 2034
[R3-bgp]router-id 10.0.3.3
[R3-bgp]confederation id 200
[R3-bgp]confederation peer-as 2002
[R3-bgp]peer 10.0.23.2 as-number 2002
[R3-bgp]peer 10.0.34.4 as-number 2034
[R3-bgp]network 10.0.3.3 32
[R3-bgp]network 10.0.23.0 24
[R3-bgp]network 10.0.34.0 24
[R4]bgp 2034
[R4-bgp]router-id 10.0.4.4
[R4-bgp]confederation id 200
[R4-bgp]peer 10.0.34.3 as-number 2034
[R4-bgp]network 10.0.4.4 32
[R4-bgp]network 10.0.34.0 24
[R5]bgp 2056
[R5-bgp]router-id 10.0.5.5
[R5-bgp]confederation id 200
[R5-bgp]confederation peer-as 2002
[R5-bgp]peer 10.0.25.2 as-number 2002
[R5-bgp]peer 10.0.56.6 as-number 2056
[R5-bgp]network 10.0.5.5 32
[R5-bgp]network 10.0.25.0 24
[R5-bgp]network 10.0.56.0 24
[R6]bgp 2056
[R6-bgp]router-id 10.0.6.6
[R6-bgp]confederation id 200
[R6-bgp]peer 10.0.56.5 as-number 2056
[R6-bgp]network 10.0.6.6 32
[R6-bgp]network 10.0.56.0 24
配置完成,在R4、R6上再创建一个LoopBack接口进行测试:
通过宣告到BGP中R4、R6可以互相学习到路由,并且是最优的,R1也会学到
R1前后路由对比:
R4前后路由对比:
R6前后路由对比: