BGP 概述
-
边界网关协议(Border Gateway Protocol,BGP)是一种实现自治系统 AS 之间的路由可达,并选择最佳路由的矢量性协议。早期发布的三个版本分别是 BGP-1(RFC1105)、BGP-2(RFC1163)和 BGP-3(RFC1267),1994年开始使用 BGP-4(RFC1771),2006年之后单播 IPv4 网络使用的版本是 BGP-4(RFC4271),其他网络使用的版本是 MP-BGP(RFC4760)。
-
BGP 的特点:
-
BGP 能够承载大批量的路由信息,能够支撑大规模网络。
-
BGP 提供了丰富的路由策略,能够灵活的进行路由选路,并能指导邻居按策略发布路由。
-
BGP 能够支撑 MPLS/VPN 的应用,传递客户 VPN 路由。
-
BGP 提供了路由聚合和路由衰减功能用于防止路由振荡,有效提高了网络的稳定性。
-
BGP 使用 TCP 作为其传输层协议(端口号为179),并支持 BGP 与 BFD 联动、BGP Tracking、BGP Auto FRR 和 BGP GR 和 NSR,提高了网络的可靠性。
-
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 协议特征
-
BGP 使用 TCP 为传输层协议,TCP 端口号179。路由器之间的 BGP 会话基于 TCP 连接而建立。
-
运行 BGP 的路由器被称为 BGP 发言者(BGP Speaker),或 BGP 路由器。
-
两个建立 BGP 会话的路由器互为对等体(Peer)。BGP 对等体之间交换 BGP 路由表。
-
BGP 路由器只发送增量的 BGP 路由更新,或进行触发更新(不会周期性更新)。
-
BGP 具有丰富的路径属性和强大的路由策略工具。
-
BGP 能够承载大批量的路由前缀,用于大规模的网络中。
BGP 报文类型
BGP 的状态机
BGP Peer
-
运行 BGP 的路由器被称为 BGP 发言者,或者 BGP 路由器。
-
BGP 对等体也叫 BGP 邻居,与 OSPF、RIP等协议不同,BGP 的会话是基于 TCP 建立的。建立 BGP 对等体关系的两台路由器并不要求必须直连。
-
BGP 存在两种对等体关系类型:EBGP及IBGP。针对这两种对等体类型,BGP 处理路由的操作存在较大差异。
-
EBGP(External BGP):位于不同自治系统的 BGP 路由器之间的 BGP 邻接关系。
-
两台路由器之间要建立 EBGP 对等体关系,必须满足两个条件:
-
两个路由器所属 AS 不同(也即 AS 号不同)。
-
在配置 BGP 时,Peer 命令所指定的对等体 IP 地址要求路由可达,并且 TCP 连接能够正确建立。
-
-
-
IBGP(Internal BGP):为相同自治系统的 BGP 路由器之间的 BGP 邻接关系。
-
两台路由器之间要建立 IBGP 对等体关系,必须满足两个条件:
-
两个路由器所属 AS 需相同(也即 AS 号相同)。
-
在配置 BGP 时,Peer 命令所指定的对等体 IP 地址要求路由可达,并且 TCP 连接能够正确建立。
-
-