第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 的协作关系

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 的协作

思考

  1. 为什么企业内网通常使用 OSPF 或 IS-IS,而不直接用 BGP?
  2. 一个 AS 内部可以使用多个 IGP 进程吗?有什么注意事项?
  3. BGP 为什么被称为"路径矢量协议"而不是"距离矢量协议"?

下篇预告:第34篇:距离矢量 vs 链路状态:RIP 与 OSPF 的根本差异