引言
互联网之所以能连通全球,离不开自治系统(AS, Autonomous System)之间的路由交换。每个 AS 内部可以运行 OSPF、IS-IS 等 IGP 协议,但它们只适合小规模或单一管理域内使用。要在不同运营商、不同企业之间传递路由信息,就必须使用边界网关协议(BGP,Border Gateway Protocol)。
BGP 作为路径矢量路由协议,避免了环路问题,能够灵活控制路径选择,被称为“互联网的粘合剂”。它是全球互联网的核心协议,数百万条路由的传播都依赖于它。
一、BGP 的基本原理
1. EBGP 与 IBGP
- EBGP(External BGP):运行在不同 AS 之间,主要用于互联网骨干和边界互联。
- IBGP(Internal BGP):运行在同一 AS 内,用来保证路由在整个自治系统内传播。
在实际部署中,通常 AS 内部运行 IGP + IBGP,再通过 EBGP 与外部互联。
2. BGP 报文类型
BGP 运行在 TCP 179 端口上,可靠性由 TCP 提供。它使用 4 种报文完成邻居建立和路由维护:
- Open:建立邻居关系时的初始报文,包含 AS 号、BGP 版本号、Router ID。
- Update:最核心的报文,用于通告新增或撤销的路由。
- Keepalive:周期性发送,维持邻居关系。
- Notification:报告错误并关闭会话。
3. 邻居建立过程
BGP 邻居关系是通过状态机完成的,典型过程为:
- Idle:等待配置邻居。
- Connect:尝试建立 TCP 会话。
- Active:如果 Connect 失败,会反复尝试。
- OpenSent:已发送 Open 报文,等待对方响应。
- OpenConfirm:双方参数协商一致,等待 Keepalive。
- Established:会话建立成功,可以交换路由。

二、BGP 的路径属性
路径属性是 BGP 的核心,它不仅用于环路检测,还能影响选路结果,体现策略化的优势。
1. 公认必遵属性(Well-known Mandatory)
- AS_Path:记录路由经过的 AS 列表,用于环路检测和路径选择(越短越优)。
- Origin:表示路由的来源(IGP、EGP 或 Incomplete)。
- Next-Hop:指定路由的下一跳地址。
2. 公认自决属性(Well-known Discretionary)
- Local Preference:AS 内路由选择的关键属性,数值越大越优先。
- Atomic Aggregate:表明路由可能经过了汇总。
3. 可选传递属性(Optional Transitive)
- Community:为路由打标签,方便策略路由(如“禁止出口”或“只在区域内传播”)。
- Aggregator:标记路由汇总时的路由器信息。
4. 可选不传递属性(Optional Non-transitive)
- MED(Multi-Exit Discriminator):多出口环境中建议外部 AS 如何进入本 AS,数值越小越优。
三、BGP 的选路原则
当一条前缀有多条可选路径时,BGP 会依次比较属性,直到选出唯一的最优路由。常见的优先级顺序为:
- Weight(厂商私有,Cisco 特有,越大越优先)。
- Local Preference(越大越优先)。
- 自己产生的路由(Locally originated)。
- AS Path 长度(越短越优先)。
- Origin 类型(IGP 优于 EGP,优于 Incomplete)。
- MED(越小越优先)。
- EBGP 学到的路由优于 IBGP。
- IGP 度量到下一跳的路径(越短越优先)。
- Router ID 较小的路由器优先。

这套规则保证了全网的一致性,但同时也赋予了网络工程师极高的灵活度。
四、BGP 的高级特性
1. 路由反射器(Route Reflector, RR)
- 解决 IBGP 全互联问题(N 个路由器需要 N*(N-1)/2 个邻居)。
- 通过引入 RR,让 Client 路由器不需要全互联,只需和 RR 建立邻居关系即可。
2. 联盟(Confederation)
- 把一个大型 AS 拆分为多个子 AS,外部仍然表现为一个整体。
- 减少 IBGP 的复杂性,适合运营商级网络。
3. 对等体组(Peer Group)
- 一种配置简化机制,将多个邻居放在同一个组内,继承相同的属性配置。
4. 路由汇总与 AS_SET
- 可以减少路由表项,但可能导致丢失部分路径信息。
- AS_SET 是一个无序集合,用于表示路由汇总经过的多个 AS。

五、典型应用场景
- 企业与运营商的边界互联
- 多数企业通过 EBGP 与运营商连接,学习公网路由或默认路由。
- 多出口路由控制
- 企业接入多家 ISP,可以通过 Local Preference、AS Path prepend、Community 来实现出口流量控制。
- 互联网运营商骨干网
- 运营商之间互联的核心协议,承载全球路由信息。
- 安全策略
- BGP 认证(MD5)防止伪造连接。
- 前缀过滤防止路由劫持。
- RPKI(Resource Public Key Infrastructure)正在逐步部署,用于验证前缀与 AS 的合法性。
结语
BGP 是全球互联网赖以运行的关键协议,它不仅提供了跨域的路由交换,还通过灵活的路径属性与策略实现了精细化控制。
掌握 BGP,意味着能够理解互联网的核心运行机制,也是网络工程师向高级网络架构师迈进的必经之路。
评论(2)