Appearance
BGP 路由协议
考情分析
BGP 在 408 中考频不高,多以选择题形式出现,常考点包括 BGP 基于 TCP、路径向量协议的特点、eBGP 和 iBGP 的区别等。一般不会出计算大题。
考频:★★☆
自治系统与路由协议分类
互联网被划分为多个自治系统(AS, Autonomous System),每个 AS 由一个机构管理,内部使用统一的路由策略。
路由协议分为两类:
| 类型 | 全称 | 作用范围 | 代表协议 |
|---|---|---|---|
| IGP(内部网关协议) | Interior Gateway Protocol | AS 内部 | RIP、OSPF |
| EGP(外部网关协议) | Exterior Gateway Protocol | AS 之间 | BGP |
BGP(Border Gateway Protocol,边界网关协议)就是在不同自治系统之间交换路由信息的协议。当前使用的是 BGP-4 版本。
自治系统间的路由协调
AS 内部的路由协议(RIP/OSPF)追求的是"最短路径"——找到代价最小的路由。但 AS 之间的情况要复杂得多:
- 不同 AS 的管理者有各自的策略(商业关系、安全考虑等)
- "最短路径"不一定是最优选择——可能要绕开某些 AS
- 互联网规模太大,不可能让所有路由器都跑同一种 IGP
BGP 的设计目标不是找"最短路径",而是找一条可达的、满足各 AS 策略的路径。
BGP 的工作原理
路径向量协议
BGP 属于**路径向量(Path Vector)**协议。每条路由信息都携带了到达目的网络所经过的 AS 序列。
例如,一条 BGP 路由可能是:到达网络 N,经过的路径是 AS3 → AS5 → AS1。
路径向量的好处:可以检测是否存在环路——如果收到的路由中包含自己的 AS 号,说明形成了环路,直接丢弃。
BGP 邻居(对等体)
两个 BGP 路由器之间建立的关系叫做 **BGP 对等体(peer)**或邻居关系。
- eBGP(外部 BGP):位于不同 AS 的两个 BGP 路由器之间的会话
- iBGP(内部 BGP):位于同一个 AS 内的两个 BGP 路由器之间的会话
eBGP 对等体通常直连,iBGP 对等体可以不直连(通过 IGP 路由可达即可)。
BGP 基于 TCP
BGP 使用 TCP 端口 179 建立连接。这是 BGP 和 RIP/OSPF 的一个显著区别:
| 协议 | 传输方式 |
|---|---|
| RIP | UDP 端口 520 |
| OSPF | 直接封装在 IP 中(协议号 89) |
| BGP | TCP 端口 179 |
为什么基于 TCP?因为 AS 之间的路由信息量大、对可靠性要求高。TCP 提供了可靠传输,BGP 不需要自己实现确认和重传机制。
BGP 报文类型
BGP 定义了 4 种报文:
| 报文 | 功能 |
|---|---|
| OPEN | 建立 BGP 连接,协商参数(AS 号、保持时间等) |
| UPDATE | 通告新路由或撤销失效路由,携带路径属性 |
| KEEPALIVE | 保持连接活跃,定期发送(默认 60 秒一次) |
| NOTIFICATION | 报告错误,随后关闭连接 |
BGP 连接建立的过程:
BGP 的路由选择
BGP 路由器在收到多条到达同一目的网络的路由时,会根据一系列属性来选择最优路由。主要考虑的属性包括:
- LOCAL_PREF(本地优先级):iBGP 内部使用,值越大越优先
- AS_PATH(AS 路径长度):经过的 AS 越少越优先
- NEXT_HOP(下一跳)
- MED(多出口鉴别):用于影响外部 AS 选择进入本 AS 的入口
408 考试一般只要求了解 AS_PATH 最短优先这一条。
BGP vs RIP vs OSPF 对比
| 对比项 | RIP | OSPF | BGP |
|---|---|---|---|
| 类型 | IGP | IGP | EGP |
| 算法 | 距离向量 | 链路状态 | 路径向量 |
| 传输 | UDP | IP | TCP |
| 适用范围 | 小型 AS | 大型 AS | AS 之间 |
| 最大规模 | 15 跳 | 无限制 | 整个互联网 |
| 路由依据 | 跳数最少 | 代价最小 | 策略最优 |
| 收敛速度 | 慢 | 快 | 慢(但对稳定性要求高于速度) |
易错点
1. BGP 基于 TCP,不是 UDP
RIP 用 UDP,BGP 用 TCP。这是选择题的常见陷阱。
2. BGP 不追求"最短路径"
BGP 的选路依据是策略,不是单纯的距离或代价。AS 管理者可能出于商业原因选择更长的路径。
3. eBGP 和 iBGP 的区别
eBGP 在不同 AS 之间,iBGP 在同一 AS 内部。iBGP 的存在是为了在 AS 内部传递从 eBGP 学到的外部路由信息。
4. 路径向量可以避免环路
BGP 在 UPDATE 报文中携带完整的 AS 路径。如果发现路径中包含自己的 AS 号,就拒绝该路由,从而避免环路。
高频考点清单
- BGP 是 AS 之间的 EGP 协议,当前版本 BGP-4
- BGP 基于 TCP 端口 179
- BGP 是路径向量协议,通过 AS_PATH 避免环路
- 四种报文类型:OPEN、UPDATE、KEEPALIVE、NOTIFICATION
- eBGP 用于不同 AS 之间,iBGP 用于同一 AS 内部
- BGP 选路基于策略,不是最短路径