注:本文基于模型知识整理,建议结合权威教材与 RFC 原文核对细节。
一句话定义
边界网关协议(Border Gateway Protocol, BGP)是自治系统之间交换可达性信息的路径向量协议,它不追求全局最优路径,而是让每个自治系统按自身商业策略选择「接受哪些路由、优先走哪条路」,是今天整个互联网赖以互联的协议。
为什么重要
你在浏览器里访问的每一个网站,流量都经过一串由 BGP 通告串起来的自治系统。理解 BGP 才能理解互联网为什么这样互联:为什么某些访问会绕道另一个大洲、为什么一次错误通告能让大面积网络瘫痪、云厂商为什么要满世界建设对等连接。它也是网络方向面试区分「会配置」与「懂生态」的分水岭。
前置知识
建议先读 kp-014《内部网关协议:RIP 与 OSPF》,理解 IGP 与 EGP 的分工、距离向量的思想及其局限;同时需要 kp-011 中 CIDR 前缀的表示方法。
核心概念
- IGP 为什么不能用于域间:其一,规模——域间前缀达数十万条,任何 IGP 的泛洪与 SPF 计算都无法承受;其二,目标不同——域间选路首先服从商业与安全策略,而非「最短」;其三,信任边界——机构之间互不信任,不能向外部暴露内部拓扑。
- 自治系统(Autonomous System, AS):在同一管理权威下、执行统一路由策略的网络集合,用自治系统号 ASN 标识,由 IANA 与各区域注册机构分配。
- eBGP 与 iBGP:eBGP 运行在不同 AS 的边界路由器之间交换路由;iBGP 运行在同一 AS 内部,把外部可达性同步给本 AS 的其他边界路由器。
- 路径向量:BGP 更新携带完整 AS_PATH(途经的 AS 号列表)。收到更新后发现路径里已包含自己的 AS 号就直接拒收,环在入口即被识别——这与距离向量「只传距离数字」有本质区别:看得见完整路径,才谈得上按路径制定策略。
- 关键属性与简化选路顺序:LOCAL_PREF(本地优先级)只在本 AS 内传播,值越大越优先,决定出流量走哪个出口;其次比较 AS_PATH,越短越优;MED(Multi-Exit Discriminator)是本 AS 向邻居传递的「希望你从哪个入口进来」的暗示,影响进流量。
- 商业关系与选路偏好:AS 之间的关系分客户(对方付费买转接)、对等(双方免费互换流量)、转接(向付费上游买全球可达)。运营商的路由偏好是客户路由 > 对等路由 > 转接路由——承载客户流量赚钱、走对等不花钱、走转接要掏钱,即使转接路径更短也优先客户路径。
- BGP 劫持与路由泄漏:错误或恶意通告不属于本 AS 的前缀(劫持),或把从一个邻居学来的路由错误传给另一个邻居(泄漏),会把流量引向错误路径,造成断网、黑洞或被监听;防御手段之一是 RPKI 起源验证,用密码学签名证明「该前缀确已授权该 AS 通告」。
- 互联网生态:大型 Tier-1 运营商之间互相对等、向下游出售转接;中小 ISP 与内容平台通过 IXP(Internet Exchange Point,互联网交换中心)或直连线路对等互联,形成「转接在上、对等在中、客户在下」的分层结构。
图示
互联网商业层级(简化模型)
+------------------------+
| 转接商 AS(上游) | Tier-1 之间相互免费对等
+------------------------+
/ \
付费转接 / \ 付费转接
/ \
+---------+ 对等互联 +---------+
| AS 100 | <---------------> | AS 200 |
+---------+ (直连或经 IXP) +---------+
\ /
\----- 接入 IXP 交换点 --/
选路偏好:客户路由 > 对等路由 > 转接路由原理与机制
BGP 用 TCP(端口 179)建立可靠会话,邻居之间增量交换更新与撤回报文:通告前缀时附带一串路径属性,撤销时发送撤回消息。选路是对每条候选路径按属性逐级比较:先看本地优先级等出流量策略,再比 AS_PATH 长短,再看 MED 等,策略始终优先于「最短路径」,这是 BGP 与 IGP 的根本分野。防环机制内建于协议:AS_PATH 让每条路由自带履历,自己的 AS 号出现即拒绝。策略实例:AS 100 同时从客户、对等方与转接商学到同一前缀,即使转接商路径的 AS_PATH 更短,配置正确的 AS 100 也会优先客户路径——因为每个包走客户路径有收入、走转接路径要付费。风险面:任何 AS 都可能错误或恶意通告任意前缀且会被全球接受,历史上多次大范围断网事故源于此,RPKI 通过验证「前缀与授权 AS」的签名绑定关系来收窄攻击面。
实例分析
一个中小 ISP 的选型全景:它向上游 Tier-1 购买转接以保证全球可达,同时在本城 IXP 与本地视频平台对等以节省跨城流量,并为若干下游企业客户提供转接服务。到达某个前缀若有客户通告,优先走客户路径(有收入);否则走 IXP 对等(零成本);都没有才走付费转接。这套「客户 > 对等 > 转接」的偏好用属性落实:客户路由配最高 LOCAL_PREF,对等次之,转接最低;同时用 MED 向邻居暗示优选入口。若某天它误把从转接商学来的全球路由表通告给了对等伙伴,就构成路由泄漏——对等伙伴会把本应付费转接的流量免费灌给它,轻则链路被打爆,重则引发大范围路由紊乱。
常见误区
- 以为 BGP 是「更大号的 OSPF」:二者目标不同,BGP 管域间策略与可达性,从不承诺最短路径。
- 以为路径越短越会被选中:LOCAL_PREF 等策略属性的比较顺序排在 AS_PATH 长度之前。
- 以为 iBGP 与 IGP 功能重复:iBGP 只同步外部可达性,不承载内部拓扑,两者是配合关系。
- 以为互联网路由天然可信:任何 AS 的错误通告都可能被全网接受,起源验证需要额外部署 RPKI。
自测题
- 为什么 IGP 不能直接用于自治系统之间?
答案要点:规模上数十万前缀使泛洪与 SPF 失效;目标上域间首重商业策略而非最短路径;边界上跨 AS 缺乏信任、不能暴露内部拓扑。
- BGP 如何天然防环?
答案要点:更新携带完整 AS_PATH,收到含自己 AS 号的路径直接拒收,环在入口即被识别。
- LOCAL_PREF 与 MED 各影响哪个方向的流量?
答案要点:LOCAL_PREF 在本 AS 内部比较,决定出流量选哪个出口;MED 是向邻居 AS 传递的进流量入口偏好提示。
- 为什么客户路由优先于转接路由?
答案要点:承载客户流量有收入,走转接要付费;商业激励使运营商宁可路径更长也优先选客户通告的路由。
- RPKI 防的是什么问题?
答案要点:用密码学验证「前缀与通告它的 AS」之间的授权关系,缓解前缀劫持与路由泄漏中的起源伪造。
延伸阅读
- RFC 4271《A Border Gateway Protocol 4 (BGP-4)》
- RFC 7454《BGP Operations and Security》
- 谢希仁《计算机网络》