Appearance
408 > 计算机网络 > 路由协议:BGP
一、定位信息
- 所属圈层:核心层
- 前置知识:需了解自治系统(AS)的概念(CN-04-03),以及层次路由的基本思想;了解IGP(RIP/OSPF)的基本工作原理
- 知识网络位置:BGP是互联网唯一的外部网关协议(EGP),负责AS之间的路由选择。与OSPF/RIP(域内路由)形成互补,是互联网全局路由的最终实现
- 考点热度等级:H级(高频重点) — BGP的工作原理和与IGP的区别是408常考知识点
二、知识点讲解
2.1 BGP的基本概念
BGP(Border Gateway Protocol,边界网关协议) 是用于AS之间路由选择的外部网关协议,是当前互联网上唯一的EGP。BGP的核心任务是在AS之间传递可达性信息——告诉其他AS"我能到达哪些网络前缀"。
BGP的关键特征:
- 基于路径向量(Path Vector) 算法(不是距离-向量或链路状态)
- 使用TCP协议传输,端口号179
- 以AS路径(AS_PATH) 作为路由选择的重要依据
- 支持丰富的策略控制
2.2 BGP的两种类型
| 类型 | 说明 | 使用场景 |
|---|---|---|
| eBGP(外部BGP) | 不同AS之间的BGP会话 | AS之间交换路由信息 |
| iBGP(内部BGP) | 同一AS内部的BGP会话 | AS内部传递从外部学到的路由信息 |
2.3 BGP的工作过程
步骤一:建立TCP连接 两个BGP路由器(称为BGP Speaker或BGP Peer)首先建立TCP连接(端口179)。
步骤二:交换路由信息 连接建立后,BGP Speaker交换完整的路由表(OPEN报文→UPDATE报文)。之后只发送增量更新。
步骤三:持续维护 通过KEEPALIVE报文维持邻居关系(默认每60秒发送一次)。如果180秒未收到KEEPALIVE,认为邻居失效。
2.4 BGP的四种报文类型
| 报文类型 | 功能 |
|---|---|
| OPEN | 建立BGP邻居关系,交换参数 |
| UPDATE | 通告新的路由信息或撤销已通告的路由 |
| KEEPALIVE | 维持邻居关系(类似心跳) |
| NOTIFICATION | 报告错误并关闭连接 |
2.5 BGP路由选择
BGP选择路由时不只看"最短距离",而是综合考虑多种路径属性(Path Attributes):
| 属性 | 说明 | 优先级 |
|---|---|---|
| LOCAL_PREF | 本地优先级(越高越优先) | 最高 |
| AS_PATH | 经过的AS列表(越短越优先) | 高 |
| ORIGIN | 路由来源(IGP>EGP>不完整) | 中 |
| MED | 多出口鉴别器(越低越优先) | 低 |
关键理解:BGP的路由选择是策略驱动的,不仅仅是性能优化。AS可以选择"即使路径更长也走某条路",因为那条路的ISP更便宜或带宽更大。
2.6 BGP的AS_PATH属性
AS_PATH是BGP最核心的属性,记录了路由经过的所有AS编号:
- 当路由通告给另一个AS时,在AS_PATH前面加上自己的AS编号
- AS_PATH越短,路径越优先
- AS_PATH也用于环路检测:如果收到的UPDATE中AS_PATH包含自己的AS编号,则丢弃(防止环路)
三、记忆与理解辅助
- 口诀:"BGP域间路由选,TCP连接端口179;AS路径防环路,策略优先不只看路。"
- BGP与OSPF/RIP对比速记:
| 对比维度 | RIP | OSPF | BGP |
|---|---|---|---|
| 范围 | AS内 | AS内 | AS间 |
| 类型 | IGP | IGP | EGP |
| 算法 | 距离-向量 | 链路状态 | 路径向量 |
| 度量 | 跳数 | 链路代价 | 策略+AS路径 |
| 传输 | UDP | IP直接 | TCP |
| 优化目标 | 最短路径 | 最短路径 | 策略可达 |
- BGP报文记忆:"OPEN建关系,UPDATE传路由,KEEPALIVE保心跳,NOTIFICATION报错误"
四、例题与精解
例题1(基础巩固)
题目:以下关于BGP协议的描述中,正确的是( ) A. BGP使用UDP协议传输,端口号为179 B. BGP是AS内部使用的路由协议 C. BGP使用TCP协议建立邻居关系 D. BGP以跳数作为路由选择的主要依据
命题意图:考查BGP的基本特征。
精解:
- 审题分析:选出正确的描述。
- 解题思路:逐项核对BGP的关键特征。
- 完整步骤:
- A错误:BGP使用TCP协议,不是UDP,端口号179。
- B错误:BGP是AS之间的路由协议(EGP),不是AS内部的(IGP)。
- C正确:BGP使用TCP建立连接(端口179),这是BGP的可靠传输基础。
- D错误:BGP以AS路径和策略作为路由选择依据,不是跳数。
- 方法反思:BGP三个关键点:TCP传输、AS间协议、策略驱动。
例题2(中等提升)
题目:AS100从两个ISP(AS200和AS300)连接到互联网。从AS200学到的路由AS_PATH为200 400,从AS300学到的路由AS_PATH为300 500 600。两条路由的目的网络相同。请问BGP默认会选择哪条路由?如果AS100希望通过AS300转发流量(因为AS300更便宜),应该如何配置?
命题意图:考查BGP路由选择机制和策略控制能力。
精解:
- 审题分析:两条路由的目的相同,AS_PATH不同,需要分析BGP的选择逻辑。
- 解题思路:按照BGP路由选择的优先级顺序分析。
- 完整步骤:
默认选择:
- BGP默认优先选择AS_PATH较短的路由
- 路由1:AS_PATH =
200 400(经过2个AS) - 路由2:AS_PATH =
300 500 600(经过3个AS) - 默认选择路由1(AS_PATH更短)
策略控制:
- 要强制选择AS300的路由,可以通过设置LOCAL_PREF(本地优先级) 属性
- 将AS300路由的LOCAL_PREF设置为高于AS200路由的值
- 例如:AS200路由的LOCAL_PREF=100(默认),AS300路由的LOCAL_PREF=200
- BGP优先选择LOCAL_PREF高的路由,因此选择AS300的路由
配置示意(概念描述):
route-map SET_LOCAL_PREF permit 10
match as-path 300
set local-preference 200- 方法反思:BGP的路由选择是策略优先的。虽然默认看AS_PATH长度,但通过LOCAL_PREF等属性可以覆盖默认行为。这正是BGP与IGP的核心区别——IGP只看最短路径,BGP可以表达"我就是想走那条路"。
五、考情分析
- 考查频次:近5年出现3-4次
- 常见题型:选择题考查BGP的基本概念和与IGP的区别
- 分值占比:选择题2分
- 命题趋势:BGP与层次路由、AS概念常结合考查,近年对BGP策略选择的考查有增加趋势
六、易错点提醒
错误表现:认为BGP使用UDP传输
- 错误原因:看到BGP端口号179就联想到UDP
- 正确理解:BGP使用TCP端口179。选择TCP是因为AS间路由信息必须可靠传输,不能丢失
错误表现:将BGP归类为IGP(内部网关协议)
- 错误原因:BGP也是"网关协议",容易与IGP混淆
- 正确理解:BGP是EGP(外部网关协议),用于AS之间。记住:B = Border(边界),是AS边界上的协议
错误表现:认为BGP选择最短路径
- 错误原因:将IGP的最短路径思想套用到BGP
- 正确理解:BGP选择的是策略最优路径,不一定是AS_PATH最短的。通过LOCAL_PREF等属性,管理员可以控制路由选择
错误表现:混淆eBGP和iBGP
- 错误原因:两者都是BGP,名称相似
- 正确理解:eBGP用于不同AS之间(AS间通信),iBGP用于同一AS内部(传递从外部学到的路由)。eBGP默认修改NEXT_HOP,iBGP不修改
七、来源标注
- 依据2026考研统考大纲
- 依据《计算机网络(第8版)》谢希仁版
- 依据RFC 4271(A Border Gateway Protocol 4)