2026-05-27 · 网络技术
为什么需要 BGP?
互联网并不是一张网,而是成千上万个自治系统(AS, Autonomous System)相互连接组成的。每个运营商、大型企业、云厂商都有自己的 AS 编号。问题来了——这么多 AS 之间,怎么知道去某个 IP 该走哪条路?
这就是 BGP(Border Gateway Protocol,边界网关协议)要做的事。
BGP 在骨干网里的角色
运营商的骨干网是国家乃至全球互联网的主干道。BGP 在骨干网里扮演三个核心角色:
1. 跨运营商互联:eBGP
中国电信(AS4134)、中国联通(AS4837)、中国移动(AS9808)三大运营商之间,通过 eBGP 交换路由信息。你访问另一个运营商的服务器时,数据包就靠这些 BGP 路由找到出口。
一个典型的 BGP 路由条目长这样:
Network Next Hop Path
1.1.1.0/24 202.97.x.x 4134 4837 13335 i这里的 Path 就是 AS 路径——数据包要依次穿过电信(4134)、联通(4837),最后到达 Cloudflare(13335)。
2. 域内路由:iBGP
运营商内部的路由器之间用 iBGP 同步外部路由。通常配合 IGP(OSPF 或 IS-IS)使用——IGP 负责路由器之间的连通性,iBGP 负责传递路由条目。
一个重要原则:iBGP 邻居之间必须全互联(full mesh),或者使用路由反射器(Route Reflector)来打破全互联的限制。
3. 流量工程和策略控制
BGP 最强大的地方在于它不只是"选最短路径",而是可以基于各种策略做流量调度:
- Local Preference — 控制出站流量走哪个出口
- MED(Multi-Exit Discriminator) — 告诉对端运营商,从哪个入口进来
- AS Path Prepending — 故意加长 AS 路径,让某些链路变成"备选"
- Community — 给路由打标签,批量控制
BGP 宣告黑洞与互联网"断网"
你也许见过新闻:某国互联网突然断开。这类事件在技术层面通常是该国的 AS 停止向全球宣告其 IP 前缀——不宣告 BGP 路由,外面的世界就找不到进来的路。
同时,误宣告他人的 IP 前缀也可能造成流量劫持,这也是 BGP 安全(RPKI)一直在推进的方向。
小结
| 场景 | 用什么 |
|---|---|
| 运营商之间交换路由 | eBGP |
| 运营商内部传递外部路由 | iBGP + Route Reflector |
| 流量调度、多出口选路 | BGP 策略(LP/MED/Community) |
| 宣告 IP 地址给全球互联网 | BGP Announcement |
BGP 协议本身快 30 年了,至今仍是互联网的基石协议之一。理解它是理解整个互联网路由体系的第一步。