BGP协议 工作原理
一、自治区系 AS
自治系统(Autonomous System,AS),指的是在同一个组织管理下、使用相同策略的设备的集合。
BGP 网络中的每个AS都被分配一个唯一的AS号,用于区分不同的AS。AS号可分为2个字节AS号和4个字节AS号,其中 2字节AS的取值范围为 1至 65535,其中64512-65535是私有AS号。4字节AS号的取值范转为 1至 4294967295,支持 4字节AS号的设备能与支持 2字节AS号的设备兼容,IANA负责AS号的分发。
二、边界网关协议 BGP
边界网关协议 BGP(Border Gateway Protocol)是运行于 TCP 上的一种自治系统的路由协议,用于在AS之间实现路由信息的交互。1994年开始使用BGP-4(RFC1771),2006年之后单播IPv4网络使用的版本是BGP-4(RFC4271),其他网络使用的版本是MP-BGP(RFC4760)。
BGP的特点:
(1)BGP能够承载大批量的路由信息,能够支撑大规模网络。
(2)BGP能够支持多协议的扩展(IP v4、IP v6)。
(3)BGP能够支撑MPLS/VPN的应用,传递客户VPN路由。
三 、BGP的路径矢量特征
BGP通常被称为路径矢量路由协议(Path-Vector Routing Protocol)。每条BGP路由都携带着多种路径属性(Path attribute),在各种路径属性中,AS_Path属性是非常关键的一个,AS_Path属性记录了BGP路由传递过程中所经过的AS号,实际上它是一个AS号的列表。
BGP路由器不接受AS_Path中包含其自身AS号的路由更新。AS_Path属性值的长短(AS号的个数)会作为一个比较的依据,影响BGP路由选择的决策。
四、BGP协议特证
(1)BGP使用TCP为传输层协议,TCP端口号179,BGP路由器之间基于TCP建立BGP会话,BGP对等体无需直连。
(2)运行BGP的路由器被称为BGP发言者(BGP Speaker),两台BGP路由器需建立对等体关系(邻居关系)才能交互BGP路由,存在两种类型的BGP对等体关系 EBGP和 IBGP。
(3)在BGP对等体关系建立完成之后,BGP路由器只发增量更新或触发更新(不会发周期性更新)。
(4)目前主要的 BGP版本为 V4和 MP-BGP
BGP工作原理

1、初始为Idle状态,发起第一个TCP连接,并且开始监听远程对等体发起的连接,转向connet态;
2、TCP连接成功,进入OpenSent态,TCP连接失败进入Active态;
3、Open sent态发送第一个OPEN报文,如果收到对方的OPEN报文,并检查无误,则发送Keepalive报文,进入Open confirm态;
4、收到Keepalive报文,转为Established态,邻居关系协商完成。
5、邻居关系建立后,路由器和邻居交换Update报文。
BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于发现和计算路由,而在于控制路由的传播和选择最佳路由。
1、BGP进行域间的路由选择,对协议的稳定性要求非常高,因此BGP使用TCP作为其传输层协议(端口号为179),提高了协议的可靠性。
2、BGP支持无类别域间路由CIDR(Classless Inter-Domain Routing)。
3、路由更新时,BGP只发送更新的路由,减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
4、BGP是一种距离矢量(Distance-Vector)路由协议。
5、BGP从设计上避免了环路的发生。
AS之间:BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
AS内部:BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。
6、BGP提供了丰富的路由策略,能够对路由实现灵活地过滤和选择。
7、BGP提供了防止路由振荡的机制,有效提高了Internet网络的稳定性。