外观
驱动整个全球互联网运转的“终极外交官”:BGP 到底有多强大?
在前两课中我们学习的 OSPF 和 IS-IS,都是在一个组织或运营商内网中运转的“内部网关协议(IGP)”。它们的使命很纯粹:用最快的时间算出几何拓扑上的“最短路径”。
但设想一下,如果跨越国界与企业边界:
- 中国电信想要把数据交给中国移动;
- 某跨国银行需要把核心数据从香港分行传回伦敦总部;
- 欧洲某国由于地缘政治原因,绝对禁止其本国流量经过特定第三国的路由器。
在这些错综复杂的跨国、跨大洲、跨商业利益的边界上,“谁的物理距离最短”根本不重要,“政策(Policy)、商业合同、政治边界与安全性”才是绝对的主宰!
能够驾驭这种全球万国互联、容纳全网 100 万条公网路由的唯一王者协议,就是——边界网关协议(BGP)(Border Gateway Protocol,边界网关协议)!
学完本课后,你将能够:
- 辨析 自治系统(AS)的概念,并识记 BGP 承载在可靠的 传输控制协议(TCP) 179 端口 之上的连接特性。
- 深刻理解 EBGP 与 IBGP 的差异,以及 IBGP 水平分割 为何必须依靠**路由反射器(RR)**来化解全互联危机。
- 分类掌握 BGP 丰富的路径属性:公认必遵(Origin、AS_Path 路径属性、Next_Hop)、公认自决(Local_Pref)与可选属性(MED)。
- 背诵 华为 ICT 大赛最顶级的考点口诀:华为 BGP 13 条黄金选路规则的前序关键顺序。
1. 互联网的积木:自治系统(AS)与 TCP 179
1. 什么是自治系统(AS, Autonomous System)?
自治系统是指由同一个技术管理机构(如一个国家级运营商、一所顶级高校、一家跨国科技集团)统一管理的一组路由器的集合。
- 每一个 AS 都有一个全球唯一的编号(AS 号,早期为 2 字节 1 ~ 65535,现代支持 4 字节)。
- 私有 AS 号:
64512 ~ 65534(类似于私网 IP,仅在内网使用,不可在公网路由)。
2. BGP 的底层:基于 TCP 179 端口
与 OSPF 直接在 IP 上裸奔不同,BGP 是一个极其成熟稳重的“应用级”路由协议:
- BGP 两端路由器在交换路由之前,必须首先经历 TCP 三次握手,在 TCP 179 端口上建立可靠连接!
- 收益:BGP 本身无需再费心设计重传、分片与滑动窗口机制,全部交给强大可靠的 TCP 底层代劳。因此,BGP 邻居甚至不需要物理直连,哪怕中间隔了 10 台路由器,只要 IP 互相可达,就能跨越千山万水建立 BGP 对等体!
2. EBGP vs IBGP 与路由反射器(RR)
根据建立连接的两台路由器所处的 AS 归属,BGP 划分为两大家族:
1. EBGP(External BGP,外部 BGP)
- 运行在不同自治系统之间的 BGP 对等体(例如 AS 100 的路由器与 AS 200 的路由器)。
- 缺省要求物理直连(报文 TTL 默认强制定格为 1,防止外部恶意长程探测)。
2. IBGP(Internal BGP,内部 BGP)
- 运行在同一个自治系统内部的 BGP 对等体。报文 TTL 默认为 255。
3. 核心机制:IBGP 水平分割与路由反射器(RR)
在 BGP 协议中,防环的核心依靠的是在公网上记录的 AS_Path 路径属性(经过的 AS 号列表)。如果收到一条路由发现里面赫然写着自己的 AS 号,路由器直接丢弃,天然杜绝了环路。
但是在 AS 内部传递时,AS_Path 是不会增加的!那 AS 内部怎么防环?
- 协议规定了绝对铁律——IBGP 水平分割:
“从一个 IBGP 邻居学到的路由,绝对不会再转发给其他任何 IBGP 邻居!”
- 引发的灾难:如果 AS 内部有 100 台路由器,为了让所有人都学到路由,两两之间必须全部拉 TCP 连接,形成极其恐怖的全互联(Full-Mesh,需要建立
条会话!),路由器内存瞬间被撑爆!
终极解法:路由反射器(RR, Route Reflector)
- 将某台高性能核心路由器指定为“反射器(RR)”,其他路由器作为“客户机(Client)”。
- 打破水平分割限制:客户机发给 RR 的路由,RR 可以名正言顺地“反射”给其他所有客户机!
- 防环新机制:RR 在反射路由时,贴上两个新的属性标签——Originator_ID(始发者 Router-ID)与 Cluster_List(反射簇列表),只要发现自己的 ID 在上面就直接丢弃,兼具防环与轻量!
3. 丰富的兵器谱:BGP 核心路径属性
BGP 之所以能实现极其复杂的商业策略,是因为每一条 BGP 路由条目后面都可以挂载十几个甚至几十个属性(Attributes):
| 属性大类 | 属性名称 | 传播范围与典型规则 |
|---|---|---|
| 公认必遵 (所有 BGP 节点必须识别且必须包含在 Update 中) | Origin(起源) | 路由生成来源:IGP > EGP > Incomplete (?)(如重分布引入为 Incomplete)。 |
| AS_Path 路径属性 | 记录所经 AS 序列。经过的 AS 数量越少越优! 同时充当 AS 间防环利剑。 | |
| Next_Hop(下一跳) | 到达目的网络的下一个 IP。EBGP 传给 IBGP 时,缺省不改 Next_Hop,需配 next-hop-local。 | |
| 公认自决 (所有节点必须识别,但报文中可选携带) | Local_Pref(本地优先级) | 用于在 AS 内部指导出国流量。数值越大越优(缺省 100)。仅在 AS 内传播! |
| 可选非过渡 (不强求识别,跨 AS 传递时不可转发) | MED(多出口度量值) | 用于告诉相邻的外部 AS “进入我本 AS 哪个入口最好”。数值越小越优(缺省 0)。 |
| 华为私有属性 | Preferred-Value(协议首选值) | 华为设备本地私有!只在本地路由器有效,绝不传给任何邻居。数值越大越优! |
4. 华为 ICT 大赛真题王牌:BGP 黄金选路 13 条法则
当 BGP 路由器为同一个网段收到了多条来自不同方向的有效路由时,它绝不随波逐流,而是像严苛的裁判一样,按照以下顺序逐项硬碰硬比对,直到分出胜负(前八项为历年省赛初复赛绝杀考点!):
- 第一条:比 Preferred-Value:优先比较华为私有的协议首选值,数值最大者胜出!
- 第二条:比 Local_Pref:优先选择本地优先级最高的路由,数值最大者胜出!
- 第三条:比路由始发者:本地手工生成的路由(如
network或汇总)优于从邻居学来的路由。 - 第四条:比 AS_Path:优先选择 AS_Path 长度最短 的路由!
- 第五条:比 Origin 属性:起源类型越优质越好,规则为 IGP > EGP > Incomplete (?)。
- 第六条:比 MED:对于来自同一相邻 AS 的路由,优先选择 MED 最小 的路由!
- 第七条:EBGP 优于 IBGP:外部学来的路由(EBGP)优先于从自家兄弟学来的(IBGP)。
- 第八条:比到 Next_Hop 的内部 IGP 开销:在本地路由表中,查找到达该下一跳 IP 的 IGP(OSPF/IS-IS)Cost,Cost 最小者胜出!
- 依次比对 Cluster_List 长度、Router-ID 最小、对等体 IP 地址最小...
华为大赛 10 秒选路口诀
“首选(Pref-Val)本(Local_Pref)地始(始发),AS(AS_Path)起(Origin)点 MED;外(EBGP)部优于内部走,下(Next_Hop)跳近者 Router-ID 评。”
5. 课后核心测验
6. 下一步学习
从 RSTP、MSTP、OSPF、IS-IS 到 BGP,大型网络的骨干路由体系已经全面成型。
但在现实的生产网中,光纤随时可能被挖断、主路由器的电源模块可能会老化短路。如何确保当主网关在 10 毫秒内突然暴毙时,用户的网络连接丝毫不受影响?
下一课,让我们学习网络工程中最高境界的高可靠性设计——第 37 课 · 网络高可用:VRRP、BFD 与链路热备!