一、BGP基础
BGP(Border Gateway Protocol,边界网关协议)是一种实现AS(自治系统)之间路由通信的距离矢量动态路由协议。它不同于前面介绍的OSPF、ISIS等协议,它们均是用于解决一个AS内部网络路由的IGP(内部网关路由协议),而BGP则是用于解决不同AS间的网络路由EGP(Exterior Gateway Protocol,外部网关协议)。

二、BGP基本概念
为了方便管理规模不断扩大的网络,网络被分成了不同的自治系统。1982年,EGP被用于在AS之间动态交换路由信息。但是EGP设计得比较简单,只发布网络可达的路由信息,而不对路由信息进行优选,同时也没有考虑到环路避免等问题,所以很快就无法满足网络管理的要求。
BGP是用于取代最初的EGP而设计的另一种外部网关协议。与最初的EGP不同,BGP能够进行路由的优选、避免环路问题、更高效地传递路由和维护大量的路由。
BGP早期发布的3个版本分别是BGP-1(RFC1105)、BGP-2(RFC1163)和BGP-3(RFC1267)。1994年开始使用BGP-4(RFC1771);2006年之后单播IPv4网络使用BGP-4(RFC4271)版本,其他网络(如IPv6)使用MP-BGP(多协议BGP,对应RFC4760)版本。MP-BGP对BGP-4进行了扩展,来达到在不同网络中应用的目的,但BGP-4原有的消息机制和路由机制并没有改变。MP-BGP在IPv6单播网络上的应用称为BGP4+,在IPv4组播网络上的应用称为MBGP(Multicast BGP,组播BGP)。
ARG3系列路由器的BGP特性均同时支持BGP-4、BGP4+和MP-BGP,且在BGP视图下的配置将对BGP-4、BGP4+和MP-BGP同时生效,因为BGP视图是BGP的一级视图。缺省情况下,在BGP IPv4单播地址族视图下配置的命令也可以在BGP视图下直接配置,但只对BGP-4生效,因为这些配置命令仅适用于IPv4单播网络环境。例如,如果在BGP视图下配置BGP引入路由后,则只对BGP-4生效,对BGP4+和MP-BGP不生效,它们需要在对应的地址族视图下配置。
另外,虽然BGP用于在AS之间传递路由信息,但并不是所有AS之间传递路由信息都需要运行BGP。在一些网络出口比较单一的AS边界,可以用更为简单的静态路由来配置。比如在数据中心上行连入Internet的出口上,为了避免Internet海量路由对数据中心内部网络的影响,设备采用静态路由代替BGP与外部网络通信。

1、BGP中的AS
AS是指在一个组织机构下管辖的、拥有相同选路策略的IP网络。BGP网络中的每个AS都被分配了一个唯一的AS号,用于区分不同的AS。BGP中的AS号分为2字节AS号和4字节AS号,最初仅2字节AS号,取值范围为1~65535的整数,4字节AS号是后来才引入的,以便有更多AS号可以分配,其取值范围为1~4294967295的整数(可以有不同的表示格式),属于扩展AS号。支持4字节AS号的设备能够与支持2字节AS号的设备兼容。
在BGP AS中不仅有两种不同长度的AS编号方法,而且还有不同的输入格式,同时还有公网AS和私网AS之分。



2、BGP分类
BGP按照运行方式分为EBGP(External/Exterior BGP,外部BGP)和IBGP(Internal BGP,内部BGP)这两种BGP在网络中运行的位置如下图所示

- EBGP:运用于不同AS之间的BGP称为EBGP。为了防止AS间产生环路,当BGP设备接收EBGP对等体发来的路由时,会将带有本地AS号的路由丢弃。
- IBGP:运用于同一AS内部的BGP称为IBGP。为了防止AS内产生环路,BGP设备不将从IBGP对等体学习到的路由再发布给其他IBGP对等体,并缺省需要与所有IBGP对等体建立全连接才能实现AS内部各IBGP设备间的路由互通。为了解决现实网络中多数情况下AS内部各IBGP设备间很难实现全连接的问题,BGP提供了"路由反射器"和"联盟"两种解决方案。
如果在AS内一台BGP设备收到EBGP对等体发送的路由后,需要通过另一台BGP设备将该路由信息传播给其他AS时,则建立将在这两台BGP设备上配置运行IBGP。如上图所示,位于AS200中的R3收到AS100中EBGP对等体发送的路由后,希望把这条路由信息通过R2传播到AS300中,所以R3与R2要运行IBGP。实际上就是让它们成为IBGP对等体,由此可见IBGP对等体不一定是直接连接的,EBGP对等体也可以不是直接连接的。

3、两种BGP报文交互角色
BGP报文交互中分为Speaker和Peer两种角色。
- Speaker:发送BGP报文的设备称为BGP Speaker(发言者)。它接收或产生新的报文信息,并发布给其他BGP Speaker。Speaker角色是针对具体报文发送过程而言的,网络中每台BGP路由器均可称为自己发送BGP报文的Speaker。
- Peer:相互交互报文的Speaker之间互相称为Peer(对等体)。多个相关的对等体可以构成对等体组(Peer Group),然后可以为这个对等体组进行集中配置。


4、BGP的路由器ID(Router ID)
与OSPF一样,BGP也是采用Router ID(路由器ID)来标识一个BGP设备的。路由器ID会在BGP会话建立时发送的Open报文中携带,也是一个32位值,通常是IPv4地址的形式。在对等体之间建立BGP会话时,整个BGP网络中的每台BGP设备都必须有唯一的路由器ID,否则对等体之间不能建立BGP连接。
BGP的Router ID与OSPF的Router ID是一样的,既可以手动配置,也可以让BGP自己在设备上选取。缺省情况下,BGP选择设备上的Loopback接口的最大IP地址作为BGP的路由器ID。如果设备上没有配置Loopback接口,系统会选择接口中最大的IPv4地址作为BGP的Router ID。一旦选出Router ID,除非发生接口地址删除等事件,否则即使配置了更大的地址,也保持原来的Router ID。
三、BGP AS
BGP的AS用于将整个外部网络划分为多个应用本地路由策略的路由子域,这样公司通过BGP可以简化路由域管理和统一策略配置,因为一个BGP设备可以连接多个AS。在BGP设备连接的每个AS中可以支持多种不同的路由协议,但BGP本身不产生路由,需要通过引入各种IGP路由、直连路由和静态路由来实现与各个子网的连接。不同的BGP AS中的BGP路由器间需通过EBGP对等会话动态交换路由信息;同一个AS内部的BGP路由器间通过IBGP对等会话交换路由信息。
1、AS的分类
AS也和IP地址一样,有公、私之分。公网中使用的AS(称之为"公网AS")必须是在公网注册,并由ISP统一分配,且在整个Internet中都是唯一的,就像公网IP地址一样。在企业内部网络使用的AS(称之为"私网 AS")可以由各企业重复使用,且无需注册,但不能在进入公网中的报文中携带。
RFC 5398中规定,在1~64511的2字节AS号是公网AS,64512~65534,共23个2字节AS号是私网AS(AS 65535保留用于特殊用途)。下图所示是两个在不同公网AS中路由器通过BGP建立的EBGP对等体连接。

2、BGP AS格式
在2009年1月之前,RFC4271 BGP-4中使用的AS号是一个2字节数,取值为1~65535。为了满足日益增加的AS号需求,IANA从2009年1月开始在RFC5396中定义了4字节的AS号,取值范围为65536~4294967295。
AS又有以下两种表示格式
- Asplain AS(无格式AS)
- Asplain AS号格式是一个普通的十进制整数,是BGP缺省的AS号格式。AsplainAS号格式中的AS号可以是2字节的,也可以是4字节的,不同长度仅代表AS编号的取值范围不同。如65526是一个2字节的AS号,而234567是一个4字节的AS号。
- AsdotAS(点分AS)
- Asdot格式AS号是一个点分记数法所表示的十进制。它规定:如果是2字节的AS号(最大值为65535),则直接用它的十进制整数表示;如果是4字节的AS号,则要采用点分计数法表示。
点分计数法的计算方法是先把这个十进制AS号转换成二进制,然后从右向左每16位(2字节)分成一段,在两段之间以小圆点分隔,再将这两段分别换算成十进制。例如65526是一个2字节的AS号,仍采用65526表示,而234567是一个4字节的AS号,则要表示为3.37959。转换方法是先把234567十进制转换成二进制,结果为111001010001000111,然后从右向左每16位分成一段,分别得到11和1001010001000111,然后在两段之间以小圆点分隔,再对这两段分别换算成十进制即为3.37959。
尽管可以任意使用Asplain格式或者Asdot格式4字节AS号,但在display命令的输出中,或者在正则表达式中仅显示或控制一种格式。在使用正则表达式来匹配Asdot格式AS号时,因为在Asdot格式AS中包括了一个在正则表达式中代表特殊含义的句点(.)符号,所以在句号前必须键入一个反斜杠(\),如1\.14,以确保正则表达式不会匹配失败。
下表1所示为采用缺省的Asplain格式时,两种不同AS配置格式的输出及正则表达式匹配的格式。从中可以看出,当采用Asdot格式输出4字节的AS号时,最终是以Asplain格式显示和匹配的,原来点分格式的1.0~65 535.655 35转换成了非点分格式的65 536~4 294 967 295。
表1 采用缺省的Asplain格式时,配置格式与输出及正则表达式匹配的格式比较
| 配置格式 | display命令输出格式及正则表达匹配格式 |
|
Asplain格式:2字节:1~65 535 4字节:65 536~4 294 967 295 |
2字节:1~65 535 4字节:65 536~4 294 967 295 |
|
Asdot格式:2字节:1~65 535 4字节:1.0~65 535.655 35 |
2字节:1~65 535 4字节:65 536~4 294 967 295 |
下表2所示为当强制设置为Asdot格式时,两种不同AS配置格式的输出及正则表达式匹配的格式。从中可以看出,当采用Asplain格式输入4字节的AS号时,最终是以Asdot格式显示和匹配的,原来非点分格式的65 536~4 294 967 295转换成了点分格式的1.0~65 535.655 35。
表2 采用Asdot格式时,配置格式与输出及正则表达式匹配的格式比较
| 配置格式 | display命令输出格式及正则表达式匹配格式 |
|
Asplain格式:2字节:1~65 535 4字节:65 536~4 294 967 295 | 2字节:1~65 535 4字节:1.0~65 535.655 35 |
|
Asdot格式:2字节:1~65 535 4字节:1.0~65 535.655 35 |
2字节:1~65 535 4字节:1.0~65 535.655 35 |
3、保留的AS号
在RFC4893BGP-4标准中,支持由2字节AS向4字节的过度。但在这个标准中新增了保留的AS号23 456。后来又在新的RFC 5398标准中规定了新的保留AS号,它们是在64 496~64 511之间的2字节AS号和在65 536~65 551之间的4字节AS号。
四、BGP地址族
最初的BGP-4标准仅支持IPv4网络,为了解决BGP对多种网络层协议的支持,IETF对BGP-4进行了地址族能力扩展,形成了MP-BGP(Multi-Protocol BGP,多协议BGP),使BGP能够为多种网络应用提供路由信息。在RFC4760(Multiprotocol Extensions for BGP-4)中,定义了两个新的可选非过度属性("非过度属性"就是该属性不能传递到其他设备上,仅在本地设备上使用),BGP的多种协议扩展都用到了这两个属性。
- 扩展协议可达NLRI(MP_REACH_NLRI,属性类型14)。
- 扩展协议不可达NLRI(MP_UNREACH_NLRI,属性类型15)。
这两种扩展属性适用于所有的BGP扩展。为了对不同的扩展类型进行区分,在这两种属性中都携带了BGP地址族(Address Family)和子地址族(Sub-Address Family)信息。所谓"地址族"就是一种网络层协议(如TCP/IP网络种的IPv4、IPv6,以及OSI网络中的CNLS)配置模块,简单地说,就是把不同类型的网络分块进行配置。其目的就是针对运行不同网络层协议的网络分别进行功能配置,这样配置起来就更加有条理,因为这些不同网络层协议的地址格式的应用需求或许根本不一样。
为了进一步区分统一类型网络种不同类型的网络应用(如IPv4和IPv6网络中都有单播、组播、VPN等),又可在地址族下划分子地址族。"地址族"使用AFI(Address Family Identifier,地址族标识符)进行标识,对应的子地址族为SAFI(Suabsequent Address Family Identifier,子序列地址族标识符)。
目前,在IP网络中,MP-BGP主要包括4个地址族:IPv4、IPv6、L2VPN和VPLS地址族。在IPv4地址族下又有IPv4单播、IPv4组播、IPv4 VPN、IPv4MPLS和IPv4 MDT子地址族等,IPv6地址族下又有IPv6单播和IPv6组播子地址族等。下表中列出了这些地址族对应的AFI和SAFI值。
| MP-BGP族 | AFI | SAFI |
| IPv4 Unicast(IPv4单播) | 1 | 1 |
| IPv4 Multicast(IPv4组播) | 1 | 2 |
| IPv4 Lable(IPv4 MPLS) | 1 | 4 |
|
IPv4 VPNv4(IPv4 VPN) AR100&AR120&AR150&AR160&AR200系列不支持BGP-VPNv4地址族 | 1 | 128 |
| IPv6 Unicast(IPv6单播) | 2 | 1 |
| IPv4 MDT(IPv4组播分布树) | 1 | 66 |
| IPv6Multicast(IPv6组播) | 2 | 2 |
| L2VPN(二层VPN) | 196 | 128 |
| VPLS(虚拟专用局域网服务) | 25 | 65 |
以上就是本章的全部内容了,感谢大家的浏览观看!文章如有错误或疑问可联系博主删除更改,文章中部分内容源自教材《华为路由器学习指南》感兴趣可购买相关书籍浏览。


1213

被折叠的 条评论
为什么被折叠?



