BGP的详细介绍
BGP(Border Gateway Protocol,边界网关协议) 是互联网的核心路由协议,用于在不同自治系统(AS,Autonomous System)之间交换路由信息。它是目前唯一用于大规模互联网骨干网的路由协议,属于 路径向量协议(Path Vector Protocol)。以下是 BGP 的详细介绍:
一、BGP 的核心特性
-
自治系统(AS)间路由
- BGP 用于在 不同 AS 之间 交换路由信息(例如:ISP 之间的互联)。
- 每个 AS 由唯一的 AS 号(ASN) 标识(范围:1-64511 为公有,64512-65534 为私有)。
-
路径向量协议
- BGP 通告的路由信息包含完整的 AS 路径(AS Path),用于避免环路和选择最优路径。
- 例如:
AS100 → AS200 → AS300表示路由经过的 AS 路径。
-
基于策略的路由
- BGP 允许管理员通过策略(如权重、本地优先级、AS Path 修改)控制路由的传播和选择。
-
高可靠性与稳定性
- 使用 TCP 协议(端口 179)传输路由信息,确保可靠性。
- 支持增量更新(仅发送变化的路由条目)。
二、BGP 的工作机制
1. BGP 报文类型
| 报文类型 | 作用 |
|---|---|
| OPEN | 建立 BGP 邻居关系(Peer),协商参数(如 ASN、Hold Time)。 |
| UPDATE | 携带路由更新信息(新增/撤销路由)。 |
| KEEPALIVE | 维持邻居关系,默认每 60 秒发送一次。 |
| NOTIFICATION | 报告错误(如配置不匹配)并终止会话。 |
2. BGP 邻居建立(Peer Session)
- iBGP(Internal BGP):同一 AS 内的 BGP 路由器之间建立邻居。
- eBGP(External BGP):不同 AS 的 BGP 路由器之间建立邻居。
- 建立过程:
Idle → Connect → Active → OpenSent → OpenConfirm → Established
3. 路由通告规则
- 从 eBGP 学到的路由:可通告给所有 iBGP 和 eBGP 邻居。
- 从 iBGP 学到的路由:不可通告给其他 iBGP 邻居(需通过 路由反射器 或 全互联 解决)。
三、BGP 选路原则
当存在多条到达同一目的地的路由时,BGP 按以下顺序选择最优路径(可通过策略调整):
- 最高权重(Weight)(思科私有属性,仅本地有效)。
- 最高本地优先级(Local Preference)(影响本 AS 内所有路由器的选择)。
- 优选本路由器发起的路由(如手动聚合或 Network 命令生成的路由)。
- 最短 AS 路径(AS Path)。
- 最低 Origin 类型(IGP < EGP < Incomplete)。
- 最低 MED(Multi-Exit Discriminator)(影响相邻 AS 的路由选择)。
- eBGP 优于 iBGP。
- 到下一跳的 IGP 开销最小。
四、BGP 配置示例(以 Cisco IOS 为例)
1. 配置 eBGP 邻居
router bgp 65001
neighbor 203.0.113.1 remote-as 65002 # 指定邻居 IP 和 ASN
neighbor 203.0.113.1 description ISP-A
network 192.168.1.0 mask 255.255.255.0 # 宣告本地网络
2. 配置路由策略(MED 修改)
route-map SET_MED permit 10
set metric 200 # 设置 MED 值为 200
!
router bgp 65001
neighbor 203.0.113.1 route-map SET_MED out # 应用策略到出方向
五、BGP 的安全机制
-
MD5 认证
- 在邻居之间启用认证,防止未经授权的路由更新。
neighbor 203.0.113.1 password MY_SECURE_KEY -
前缀列表与过滤
- 限制接收或发送的路由前缀范围。
ip prefix-list ALLOW_LIST permit 192.168.0.0/16 router bgp 65001 neighbor 203.0.113.1 prefix-list ALLOW_LIST in
六、BGP 的优缺点
| 优点 | 缺点 |
|---|---|
| 高度可扩展(支持海量路由) | 配置复杂,策略设计需谨慎 |
| 灵活的路由策略控制 | 收敛速度较慢(依赖 TCP 和定时器) |
| 支持多宿主和负载均衡 | 对管理员经验要求较高 |
| 互联网事实标准 | 安全性依赖额外机制(如 RPKI、过滤) |
七、常见问题与解决
-
BGP 邻居无法建立
- 检查物理连接、ASN 配置、ACL 是否阻止 TCP 179 端口。
-
路由未通告
- 确认
network语句或路由重分发(Redistribution)是否正确。
- 确认
-
路由环路
- 检查 AS Path 是否包含自身 ASN,配置
bgp bestpath as-path ignore谨慎使用。
- 检查 AS Path 是否包含自身 ASN,配置
-
高 CPU 占用
- 优化路由表规模(如聚合路由),减少 UPDATE 报文频率。
八、扩展学习
- RFC 文档:
- RFC 4271(BGP-4 协议规范)。
- RFC 7938(BGP 安全增强)。

浙公网安备 33010602011771号