6.4.3 BGP的工作原理

6.4.3 BGP的工作原理

1.建立BGP连接

BGP连接是建立在TCP连接之上的,TCP端口号为179。使用TCP连接交换BGP报文(以建立BGP连接)的两个BGP路由器,彼此成为对方的邻站或对等体(Peer)。BGP并不像IGP一样能够自动发现邻居和路由,需要人工配置BGP对等体。

BGP连接有IBGP和EBGP两种类型。

(1)IBGP

若两个交换BGP报文的对等体属于同一个自治系统,则这两个对等体就是IBGP(Internal BGP)对等体,图6-18中的B和D即为IBGP对等体。虽然BGP是运行于自治系统(AS)之间的路由协议,但是一个AS内的不同边界路由器之间也要建立BGP连接,以实现路由信息在全网的传递。IBGP对等体之间不一定是物理相连,但必须要逻辑相连。

图6-18 IBGP和EBGP示意图

(2)EBGP

如果两个交换BGP报文的对等体属于不同的自治系统,那么它们就是EBGP(External BGP)对等体,图6-18中的A和B即为EBGP对等体。EBGP对等体之间一般要实现物理连接,所以EBGP通常建立在互连的接口上。

2.注入路由

路由器之间建立BGP邻居关系之后,就可以相互交换BGP路由。BGP路由器会同时拥有两张路由表:一张是IGP路由表,其路由信息只能从IGP和手工配置获得,并且只能传递给运行IGP的网络;另外一张就是运行BGP之后创建的路由表,称为BGP路由表。

在初始状态下,BGP路由表为空,没有任何路由,要让BGP传递相应的路由信息,只能先将该路由导入BGP路由表,之后才能在BGP邻居之间传递。将路由导入BGP路由表,主要有如下两种方式:

(a)将BGP路由器所在AS中IGP路由表中的路由手工导入BGP路由表,路由注入称为Network方式(路由的源属性为IGP)。

(b)BGP路由表中引入其他AS使用的路由协议(OSPF协议、IS-IS协议等)的路由信息,路由注入称为Import方式(路由的源属性为Incomplete)。

3.路由通告

BGP Speaker(BGP路由器)将自已获取的BGP路由告诉别的BGP对等体称为路由通告,BGP的路由通告应遵循相应的原则。

4.路由更新

在BGP刚刚运行时,BGP的邻站是交换整个的BGP路由表。以后在路由发生变化时,只需要更新有变化的部分(增加、修改、删除的路由信息),即BGP不要求对整个路由表进行周期性刷新,这大大减少了BGP传播路由时所占用的带宽和路由器的处理开销。

小结

(a)路由器是基于IP的数据通信网的核心设备,它是在网络层实现网络互连,可实现网络层、链路层和物理层协议转换。

路由器可用于局域网之间的互连、局域网与广域网之间的互连、广域网与广域网的互连。

(b)路由器的结构可划分为两大部分:路由选择部分和分组转发部分。分组转发部分包括3个组成:输入端口、输出端口和交换结构。

(c)路由器的基本功能有:选择最佳传输路由;实现IP、TCP、UDP、ICMP等互联网协议;流量控制和差错指示;分段和重新组装功能;提供网络管理和系统支持机制等。

路由器可从不同的角度分类:按能力可分为中高端路由器和中低端路由器;按结构可分为模块化结构路由器和非模块化结构路由器;按位置可分为核心路由器和接入路由器;按功能可分为通用路由器和专用路由器;按性能可分为线速路由器和非线速路由器。

(d)IP网的路由选择协议的特点是:IP网的路由选择属于自适应的(即动态的);IP网路由选择是分布式路由选择;IP网采用分层次的路由选择协议。

IP网的路由选择协议划分为两大类,即:内部网关协议IGP(具体有RIP、OSPF协议和IS-IS协议)和外部网关协议EGP(使用最多的是BGP)。

(e)RIP是一种分布式的基于距离向量的路由选择协议,它要求网络中的每一个路由器都要维护从自己到其他每一个目的网络的最短距离记录。

RIP路由表中的主要信息是到某个网络的最短距离及应经过的下一跳地址。

RIP的距离向量算法如图6-9所示。

RIP的优点是实现简单,开销较小。但缺点为:当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器;RIP限制了网络的规模;由于路由器之间交换的路由信息是路由器中的完整路由表,所以随着网络规模的扩大,开销也就增加。

(f)OSPF协议是分布式的链路状态协议。“链路状态”是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(表示距离、时延、费用等)。

OSPF协议具有以下几个要点:当链路状态发生变化时,OSPF协议使用洪泛法向本自治系统中的所有路由器发送信息;各路由器之间频繁地交换链路状态信息,所有的路由器最终都能建立一个链路状态数据库(LSDB),每一个路由器使用链路状态数据库中的数据,利用最短路径优先(SPF)算法,可计算出到达任意目的地的路由,构造出自己的路由表;OSPF协议规定每隔一段时间,要刷新一次数据库中的链路状态,以确保链路状态数据库的同步。

对于规模较大的网络,OSPF协议通常将一个自治系统进一步划分为若干个区域(Area),将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,减少了整个网络上的通信量。

OSPF协议的工作原理可以分成3步:建立邻接关系;链路状态信息泛洪;计算路径。

OSPF协议的特点有:适合规模较大的网络,能自动和快速地适应网络环境的变化,没有“坏消息传播得慢”的问题,OSPF协议对于不同类型的业务可计算出不同的路由,可以进行多路径间的负载平衡,有良好的安全性等。

(g)IS-IS协议是一种链路状态路由协议,由路由器收集其所在网络区域上各路由器的链路状态信息,生成链路状态数据库(LSDB),利用最短路径优先算法(SPF),计算到网络中每个目的地的最短路径。

IS-IS协议的路由选择分两个区域等级:普通区域Level-1和骨干区域Level-2。Level-1由L1路由器组成;Level-2由所有的L2(及L12)路由器组成。

IS-IS路由器类型可以分为3种:L1路由器、L2路由器和L12路由器。L1路由器参与Level-1路由选择;L2路由器实现Level-2路由选择;L12路由器同时执行L1和L2路由选择功能。

与OSPF协议类似,IS-IS协议的工作原理也分成3步:建立邻接关系;泛洪链路状态信息;计算路径。

(h)边界网关协议(BGP)是不同自治系统的路由器之间交换路由信息的协议,它是一种路径向量路由选择协议。BGP与内部网关协议(IGP)不同,它只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由。

BGP的基本特征有:不生成路由,只传播路由;可扩展性好;BGP是唯一支持大量路由的路由协议,具有强大的组网能力。

BGP的基本功能是:交换网络的可达性信息,建立AS路径列表,从而构建出一幅AS和AS间的网络连接图,以便进行路由选择。

BGP是通过BGP路由器来交换自治系统之间网络的可达性信息的。每一个自治系统要确定至少一个路由器作为该自治系统的BGP路由器,一般就是自治系统边界路由器。

BGP工作原理包括:建立BGP连接、注入路由、路由通告和路由更新。