第33篇:动态路由协议分类:IGP 与 EGP 的区别
关键词:动态路由、IGP、EGP、AS、OSPF、IS-IS、BGP、自治系统
一、引言
前面我们学习的静态路由和策略路由都需要人工逐条配置。当网络规模扩大时,手动维护路由信息变得不可行。动态路由协议让路由器之间自动交换路由信息,根据网络拓扑的变化自动调整转发路径。
动态路由协议按照使用范围,分为域内路由协议(IGP,Interior Gateway Protocol)和域间路由协议(EGP,Exterior Gateway Protocol)。理解这两类协议的设计目标和差异,是深入学习具体协议的前置知识。
二、核心概念
2.1 自治系统(AS)
自治系统(Autonomous System,AS)是理解 IGP 与 EGP 分界的核心概念。一个 AS 是由同一个管理机构控制、使用统一路由策略的一组路由器和链路。每个 AS 被分配一个全局唯一的 AS 编号(ASN)。
| 属性 | 说明 |
|---|---|
| AS 编号长度 | 早期 16 bit(1-65535),RFC 6793 扩展为 32 bit(最高 4294967295) |
| 公有 AS | 1-64511(IANA 分配,需向运营商或区域注册机构申请) |
| 私有 AS | 64512-65534(16 bit);4200000000-4294967294(32 bit 私有段,RFC 6793/RFC 6996),企业内部专用、不能进入公网路由 |
| 保留值 | 65535(保留);32 bit 中的 0 / 4294967295 通常保留 |
| 示例 | 中国电信 ASN 4134,中国移动 ASN 9808 |
2.2 IGP 与 EGP 的划分
| 维度 | IGP(域内路由协议) | EGP(域间路由协议) |
|---|---|---|
| 作用范围 | AS 内部 | AS 之间 |
| 设计目标 | 快速收敛、最优路径 | 策略控制、路径选择 |
| 典型协议 | OSPF、IS-IS、RIP | BGP(唯一广泛使用的 EGP) |
| 路由信息粒度 | 具体子网(前缀) | 聚合前缀、AS 路径 |
| 收敛速度 | 秒级 | 分钟级 |
| 邻居关系 | 基于直连或泛洪发现 | 手动配置对等体(Peer) |
| 度量方式 | 成本(Cost)、跳数 | 多属性综合比较 |
2.3 为什么需要两种协议
网络的分层架构决定了不同层级需要不同特性的路由协议:
| 层级 | 协议类型 | 原因 |
|---|---|---|
| 接入/汇聚/核心(域内) | IGP | 需要快速收敛保证业务连续性 |
| 运营商之间/企业到运营商 | EGP(BGP) | 需要灵活的路由策略控制 |
例如,企业内部使用 OSPF 实现全网互通(IGP),在边界路由器上运行 BGP 与运营商交换路由(EGP)。
三、技术细节
3.1 IGP 协议概览
| 协议 | 类型 | 度量值 | 收敛速度 | 适用场景 |
|---|---|---|---|---|
| RIP v1 | 距离矢量 | 跳数(≤15) | 慢 | 已淘汰 |
| RIP v2 | 距离矢量 | 跳数(≤15) | 慢 | 小型网络(已少用) |
| OSPF v2 | 链路状态 | 带宽倒数(Cost) | 快 | 企业主流 IPv4 |
| OSPF v3 | 链路状态 | 带宽倒数(Cost) | 快 | 企业主流 IPv6 |
| IS-IS Level 1 | 链路状态 | 度量值 | 快 | 运营商核心网 |
| IS-IS Level 2 | 链路状态 | 度量值 | 快 | 运营商骨干网 |
3.2 EGP 协议:BGP 的地位
严格来说,历史上的 EGP(Exterior Gateway Protocol)协议已被 BGP 取代。目前 BGP 是唯一广泛部署的 EGP:
| BGP 版本 | 状态 | 说明 |
|---|---|---|
| EGP(1984) | 已淘汰 | 最早的域间路由协议 |
| BGP-1/2/3 | 已淘汰 | 早期过渡版本 |
| BGP-4(RFC 4271) | 主流 | 路径矢量协议,支持 CIDR |
3.3 IGP 与 BGP 的协作关系

在上图中: - R1、R2、R3 之间运行 OSPF(IGP),学习 AS 内部所有子网 - R2 与运营商运行 eBGP(EGP),学习和发布 AS 的路由 - R2 在 IGP 和 BGP 之间做路由重分发(Redistribution)
3.4 IGP 与 EGP 的设计哲学差异
| 设计维度 | IGP | EGP(BGP) |
|---|---|---|
| 信任模型 | 域内邻居相互信任 | 域间需要策略验证 |
| 路径选择 | 最优路径(最短/最快) | 策略优先(商业/安全) |
| 路由聚合 | 区域内明细,区域/层级边界可配置聚合 | 手动(AS 边界) |
| 环路防止 | 链路状态:SPF 计算天然无环;距离矢量:水平分割/最大跳数 | AS_PATH 属性 |
| 扩展性 | 区域/层级划分 | 路径属性机制 |
四、实战配置与故障案例
4.1 案例一:配置 OSPF(IGP)基础
# R1 上配置 OSPF
[R1] ospf 1 router-id 1.1.1.1
[R1-ospf-1] area 0
[R1-ospf-1-area-0.0.0.0] network 10.1.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0] quit
[R1-ospf-1] quit
# R2 上配置 OSPF
[R2] ospf 1 router-id 2.2.2.2
[R2-ospf-1] area 0
[R2-ospf-1-area-0.0.0.0] network 10.1.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] network 10.1.3.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0] quit
# 验证 OSPF 邻居
<R1> display ospf peer
OSPF Process 1 with Router ID 1.1.1.1
Neighbors
Area 0.0.0.0 interface 10.1.2.1(GigabitEthernet0/0/1)'s neighbors
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 1 Full/DR 00:00:32 10.1.2.2 GigabitEthernet0/0/1
# 广播网上会选举 DR/BDR;回显为简化示意,具体字段以设备版本为准
4.2 案例二:配置 BGP eBGP(EGP)基础
# R2 上配置 eBGP(假设企业 AS=100,对端运营商 AS=4134)
[R2] bgp 100
[R2-bgp] router-id 2.2.2.2
[R2-bgp] peer 203.0.113.1 as-number 4134
[R2-bgp] import-route ospf 1 # 将 OSPF 路由引入 BGP
[R2-bgp] quit
# 验证 BGP 对等体
<R2> display bgp peer
BGP local router ID : 2.2.2.2
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
203.0.113.1 4 4134 120 118 0 00:17:23 Established 5
# 回显为简化示意,具体字段以设备版本为准
4.3 案例三:IGP 路由未引入 BGP
故障描述:BGP 对等体建立成功,但运营商无法学到企业内网的路由。
# 检查 BGP 路由表
<R2> display bgp routing-table
# BGP 路由表中没有内网前缀
# 检查 BGP 配置
<R2> display current-configuration configuration bgp
# 发现缺少 import-route 命令
# 根因:BGP 默认不会自动引入 IGP 路由
# 需要手动配置路由引入(重分发)
[R2] bgp 100
[R2-bgp] import-route ospf 1
[R2-bgp] quit
# 再次检查
<R2> display bgp routing-table
# 内网前缀已出现在 BGP 路由表中
4.4 案例四:AS 号规划不当
故障描述:企业出口使用私有 AS 号 65000 与运营商建立 eBGP,并希望内网路由进入公网,但运营商始终没有通告这些路由——私有 AS 号不允许出现在公网 BGP 路由中,通常会被运营商按策略过滤。
# 检查 BGP 运行状态,确认本地 AS 号
<R2> display bgp summary
BGP local router ID : 2.2.2.2
Local AS number : 65000 ← 落在私有 AS 区间(64512-65534)
# 验证:从运营商收到的路由为空(对端策略过滤了私有 AS 路由)
<R2> display bgp routing-table peer 203.0.113.1 received-routes
Total number of routes: 0
# 根因:
# 公有 AS = 1-64495(IANA 分配、全球唯一,可出现在公网 BGP 路由中)
# 文档/测试保留 = 64496-64511
# 私有 AS = 64512-65534(16 bit);4200000000-4294967294(32 bit,RFC 6996)
# 携带私有 AS 号的 eBGP 路由进入公网时被运营商按策略过滤
# 解决方案:需要公网可达时,改用 IANA 分配的公有 AS 号
[R2] bgp 64000 # 64000 属于公有 AS 区间(1-64495)
[R2-bgp] peer 203.0.113.1 as-number 4134
注意:私有 AS 号不能直接进入公网路由,企业需要公网传播时应改用运营商/注册机构分配的公有 AS 号(是否接纳以运营商策略为准)。另需注意:
allow-as-loop(华为peer x.x.x.x allow-as-loop [次数])的作用是放宽 AS_PATH 中本地 AS 号重复出现的环路检查(如同一个 AS 号在内部多处复用),并不是让私有 AS 号上公网的手段。
五、总结
| 对比项 | IGP | EGP(BGP) |
|---|---|---|
| 典型协议 | OSPF、IS-IS、RIP | BGP-4 |
| 作用域 | AS 内部 | AS 之间 |
| 邻居建立 | 自动发现 | 手动配置 |
| 收敛速度 | 秒级 | 分钟级 |
| 环路防止 | 协议内建机制 | AS_PATH 检查 |
| 策略能力 | 有限 | 强大(多属性) |
| 学习路径 | 顺序 |
|---|---|
| 第一步 | 理解 AS 概念 |
| 第二步 | 掌握 IGP 协议(OSPF/IS-IS) |
| 第三步 | 理解 BGP 基本原理 |
| 第四步 | 学习 IGP 与 BGP 的协作 |
思考
- 为什么企业内网通常使用 OSPF 或 IS-IS,而不直接用 BGP?
- 一个 AS 内部可以使用多个 IGP 进程吗?有什么注意事项?
- BGP 为什么被称为"路径矢量协议"而不是"距离矢量协议"?
下篇预告:第34篇:距离矢量 vs 链路状态:RIP 与 OSPF 的根本差异