本文面向网络工程师、运维工程师、架构师及希望系统理解 IP 路由的读者。内容覆盖直连路由、静态路由、默认路由、策略路由,以及 RIP、OSPF、IS-IS、EIGRP、BGP、Babel 等动态路由协议,并延伸到收敛、路由引入、安全防护、故障排查和选型方法。
摘要
路由的本质不是"运行某个协议",而是持续回答三个问题:
- 哪些目的网络可达?
- 到同一目的网络存在多条路径时,哪一条更优?
- 拓扑或策略变化后,如何快速、稳定且安全地更新转发表?
直连路由和静态路由依赖本地接口状态或人工配置;OSPF、IS-IS 等内部网关协议负责自治系统内部的拓扑发现与最短路径计算;BGP 则在自治系统之间交换可达性信息,并以策略为核心进行路径选择。工程上真正困难的部分,通常不在协议命令本身,而在地址规划、故障域划分、路由策略、重分发边界、收敛目标和安全控制。

1. 先建立统一认知:路由、路由协议与转发不是一回事
1.1 路由条目是什么
一条典型路由至少包含以下信息:
- 目的前缀 :例如
10.20.30.0/24。 - 下一跳 :例如
192.0.2.2,表示数据包应交给哪个相邻设备。 - 出接口 :例如
GE0/0/1。 - 路由来源:直连、静态、OSPF、BGP 等。
- 度量值:协议内部比较路径优劣的数值或属性集合。
- 状态与附加属性:标签、路由标记、BGP 社区、路由类型等。
路由器通常维护多个逻辑层次的数据结构:
- 协议数据库:例如 OSPF 的链路状态数据库 LSDB、BGP 的邻居入向路由库。
- RIB(路由信息库):汇集不同来源的候选路由,并选出活动路由。
- FIB(转发信息库):面向数据平面的高效查找结构。
- 邻接表:保存下一跳对应的二层重写信息,例如目的 MAC 地址。
路由协议工作在控制平面,负责学习和选择路径;FIB 工作在数据平面,负责逐包转发。控制平面"知道怎么走"不等于数据平面"一定能走通",邻接解析失败、硬件表项耗尽、策略丢弃或 MTU 问题都可能造成两者不一致。
1.2 路由来源不等于路由协议
"直连路由""静态路由"是路由来源或配置方式,不是路由器之间交换路由信息的协议。OSPF、IS-IS、BGP 才是动态路由协议。策略路由则改变了传统的纯目的地址查表逻辑,也不属于动态路由协议。

1.3 IGP 与 EGP
- IGP(内部网关协议):在一个自治系统内部运行,典型协议有 RIP、OSPF、IS-IS、EIGRP。
- EGP(外部网关协议):在自治系统之间交换路由。现代互联网实际使用的是 BGP-4。
这里的"自治系统"并不等同于"一家公司"。它更准确地表示:对外呈现一致路由策略、由统一管理主体控制的一组网络。一个大型组织可能拥有多个 AS,也可能在一个 AS 内运行多个 IGP 域。
2. 直连、静态、默认与策略路由
2.1 直连路由
当三层接口配置了有效 IP 地址、接口状态可用,且协议栈确认该网络直接连接时,设备会自动生成直连路由。例如:
text
接口:10.10.10.1/24
直连网络:10.10.10.0/24
本地地址:10.10.10.1/32(具体表现因平台而异)
直连路由的特点:
- 无须下一跳路由器即可到达目标网段。
- 生命周期与接口状态、地址配置和链路协议状态密切相关。
- 常作为动态协议建立邻居、解析下一跳和发布网段的基础。
- 不代表二层邻接一定成功;ARP 或 IPv6 邻居发现失败仍会导致转发异常。
工程风险
- 接口物理状态正常,但业务不可达:例如链路单向故障、对端二层配置错误。
- 大二层故障域扩大影响:接口仍显示正常,实际路径中间已中断。
- 错误掩码形成意外直连范围:设备可能尝试在错误的二层网络内解析本应交给网关的地址。
2.2 静态路由
静态路由由管理员显式配置,一般形式为:
text
目的前缀 + 下一跳
目的前缀 + 出接口
目的前缀 + 下一跳 + 出接口
适用场景
- 小型、拓扑稳定的网络。
- 末梢站点仅有一个出口。
- 默认路由、黑洞路由、汇总路由。
- 管理网、带外网等要求行为高度可预测的网络。
- 动态协议的补充路径或应急路径。
优点
- 行为可预测,控制面开销低。
- 不会主动接收错误路由通告。
- 易于构造精确的单向策略和安全边界。
缺点
- 不自动感知远端故障。
- 配置量随网络规模快速增长。
- 容易因变更遗漏产生黑洞或绕路。
- 多设备配置的一致性依赖自动化和审计。
递归静态路由与直连下一跳
若静态路由只指定下一跳,设备需要再次查询如何到达该下一跳,这叫递归解析。若底层路径变化,递归结果也可能变化。只指定广播型出接口可能使设备对大量目的地址逐一执行 ARP,因此在以太网环境中通常应谨慎。
浮动静态路由
通过设置低于主路径优先级的静态路由,可将其作为备份。这里的"优先级"常由厂商所谓的管理距离、协议优先级或路由偏好控制,具体数值和比较顺序属于平台实现,不能跨厂商机械套用。
跟踪静态路由
仅跟踪本地接口只能发现近端故障。更可靠的方法是将静态路由与对象跟踪、链路检测或 BFD 联动,验证远端关键地址或转发路径是否仍可用。
2.3 默认路由
IPv4 默认路由是 0.0.0.0/0,IPv6 默认路由是 ::/0。它匹配所有未被更具体前缀覆盖的目的地址。
默认路由适合:
- 单出口分支。
- 汇聚层向核心层收敛。
- 防火墙指向上游运营商。
- Stub 区域或末梢区域减少路由规模。
默认路由不是"优先级最高"的路由。由于最长前缀匹配,更具体路由会优先于默认路由。
2.4 黑洞路由
黑洞路由把匹配流量送入 Null、Discard 等逻辑接口。常见用途:
- 为汇总路由提供兜底,避免递归回流形成环路。
- DDoS 场景下执行远程触发黑洞。
- 明确丢弃不应出现的地址空间。
黑洞路由必须与精确的前缀范围、优先级和监控配合,否则可能误伤正常流量。
2.5 策略路由
传统路由主要依据目的地址。策略路由可以进一步依据:
- 源地址或源网段。
- 入接口。
- DSCP、协议类型、端口号。
- 应用标识或安全域。
典型用途包括多出口分流、特定业务引流至防火墙或代理、让不同租户使用不同链路。策略路由会增加排障复杂度,因为普通路由表可能显示路径正确,但实际流量在进入接口时已被策略改写下一跳。
3. 路由器究竟怎样选路
3.1 第一原则:最长前缀匹配
假设路由表同时存在:
text
0.0.0.0/0 -> 出口 A
10.0.0.0/8 -> 出口 B
10.20.0.0/16 -> 出口 C
10.20.30.0/24 -> 出口 D
10.20.30.8/32 -> 出口 E
访问 10.20.30.8 时,/32 最具体,因此选择出口 E;访问 10.20.30.99 时选择 /24;访问 10.20.40.1 时选择 /16。

最长前缀匹配发生在不同前缀长度之间。只有当前缀长度相同、目标相同且存在多个候选来源时,设备才需要比较路由偏好、协议内部度量或其他规则。
3.2 第二层:不同来源之间的偏好
同一前缀可能同时由静态路由、OSPF 和 BGP 提供。设备需要决定哪一种来源进入活动 RIB。常见厂商使用"管理距离""协议优先级""路由偏好"等概念,但:
- 名称不同。
- 默认数值不同。
- 数值越大越优还是越小越优也可能不同。
- 某些路由类型还会在协议内部先进行分类比较。
因此,设计文档应写"期望优先关系",不要只写一个脱离平台的数字。
3.3 第三层:协议内部的路径比较
- RIP 主要比较跳数。
- OSPF 比较 Cost,并区分区域内、区域间和外部路由类型。
- IS-IS 使用链路度量并区分 Level 1、Level 2 等路由层次。
- EIGRP 使用复合度量和 DUAL 可行性条件。
- BGP 使用策略属性进行多级比较,目标不是单纯寻找物理最短路径。
3.4 等价多路径
如果多条路径在协议和平台规则下被认为等价,设备可将多个下一跳安装到 FIB,即 ECMP。数据平面通常按流进行哈希,常见输入包括源/目的 IP、协议号、源/目的端口。
注意:
- ECMP 不保证每条链路字节级完全均衡。
- 少量大流可能造成明显偏斜。
- 双向业务经过不同设备时,状态防火墙、NAT 和会话检测可能失败。
- 成员路径的 MTU、时延和丢包差异过大,会影响应用体验。
3.5 路由选择与转发查找的关系
控制平面先从多个候选路径中选出活动路由,再将下一跳编程到 FIB;数据平面随后对每个数据包执行前缀查找。可以把过程概括为:
text
路由学习 -> 策略过滤 -> 同前缀归组 -> 候选比较 -> 活动 RIB -> 下一跳/递归解析 -> FIB/邻接表 -> 实际转发

4. 动态路由算法的三大思想
4.1 距离矢量
距离矢量协议向邻居表达:"我到某个目的地的距离是多少,应通过我到达。"设备通常不掌握完整拓扑,只知道邻居通告的方向和代价。
代表协议:RIP、传统距离矢量算法;EIGRP 和 Babel 也建立在距离矢量思想之上,但引入了更强的无环与收敛机制。
优点:
- 模型简单。
- 状态和计算开销通常较低。
不足:
- 可能出现计数到无穷、临时环路和慢收敛。
- 大规模网络中的故障传播与查询范围需要严格控制。
4.2 链路状态
链路状态协议让每台路由器描述自己的本地链路状态,并在域内可靠泛洪。各设备形成基本一致的拓扑数据库,再以自己为根运行最短路径算法。
代表协议:OSPF、IS-IS。
优点:
- 掌握拓扑全貌。
- 收敛通常较快。
- 支持分层、汇总和较大规模部署。
代价:
- 邻接、数据库同步、泛洪和 SPF 计算更复杂。
- 错误 LSA/LSP 或大规模抖动会放大控制面压力。
4.3 路径矢量
BGP 不只通告"距离",还携带经过的 AS 路径和一组策略属性。AS_PATH 既帮助检测 AS 级环路,也让网络运营者能依据商业关系和流量工程目标选路。

5. RIP:简单,但边界非常明确
RIPv2 是经典距离矢量 IGP,以跳数作为度量。RFC 2453 明确指出,RIP 的"无穷大"取值限制了其可用网络直径,工程上通常理解为最大有效跳数 15,16 表示不可达。
5.1 工作过程
- 路由器周期性向邻居发送路由信息。
- 邻居收到路由后,将跳数加一。
- 选择跳数更小的路径。
- 拓扑变化时使用触发更新加快传播。
5.2 环路抑制手段
- 水平分割:不向学习该路由的接口再次通告。
- 毒性逆转:向原邻居通告该路由不可达。
- 触发更新:变化发生时不等待完整周期。
- 失效与抑制定时器:避免旧信息永久保留。

5.3 适用与不适用
适用:
- 教学、实验环境。
- 规模很小且设备能力有限的封闭网络。
- 少量遗留系统兼容。
不适用:
- 跳数较多的网络。
- 要求快速收敛和精细链路度量的生产核心网。
- 大规模、多区域或复杂冗余拓扑。
6. OSPF:企业网络中最常见的链路状态 IGP
OSPFv2 用于 IPv4,核心规范是 RFC 2328;OSPFv3 最初为 IPv6 设计,核心规范是 RFC 5340。OSPF 通过 Hello 建立邻居关系,交换并泛洪 LSA,形成 LSDB,再运行 SPF 算法计算最短路径树。
6.1 OSPF 的核心对象
- Router ID:32 位路由器标识,不应随接口抖动变化。
- 邻居与邻接:邻居不一定都形成完整邻接。
- LSA:描述路由器、网络或外部可达性的信息单元。
- LSDB:区域内拓扑视图。
- SPF 树:以本机为根计算的最短路径树。
- Cost:路径代价,通常与接口带宽相关,但计算方式和参考带宽可配置。
6.2 邻居状态
常见状态序列可概括为:
text
Down -> Init -> 2-Way -> ExStart -> Exchange -> Loading -> Full
排障时:
- 卡在
Init:常与单向通信、组播或 ACL 有关。 - 卡在
ExStart/Exchange:常见于 MTU、主从协商或报文交互异常。 - 到达
2-Way但不进入 Full:在广播网络的 DROther 之间可能是正常现象。
6.3 DR 与 BDR
在广播或 NBMA 多路访问网络上,如果所有路由器两两建立完整邻接,邻接数量会快速增长。OSPF 通过选举 DR 和 BDR 减少邻接及泛洪开销。点到点链路通常不需要 DR/BDR。
6.4 区域设计
OSPF 通过区域控制 LSDB 大小和故障传播范围:
- Area 0:骨干区域。
- 普通区域:可接收区域内、区域间和外部信息。
- Stub 区域:减少外部路由。
- Totally Stubby:常见厂商扩展,进一步减少区域间明细。
- NSSA:允许区域内部引入外部路由,再由边界转换。
ABR 连接多个区域,ASBR 将其他来源的路由引入 OSPF。
在经典多区域设计中,非骨干区域应逻辑连接到 Area 0;虚链路更适合作为过渡或特殊场景手段,不应替代清晰的长期骨干规划。

6.5 OSPF 路由类型与外部度量
工程上常见:
- 区域内路由。
- 区域间路由。
- 外部类型 1:外部代价与到 ASBR 的内部代价共同影响总成本。
- 外部类型 2:主要比较外部代价,内部代价通常作为后续比较因素。
- NSSA 外部路由。
不同类型的优先关系由 OSPF 规则和设备实现共同决定,不能仅比较显示出来的一个 Cost 数字。
6.6 OSPFv2 与 OSPFv3
OSPFv3 保留了泛洪、DR 选举、区域和 SPF 等基本机制,但采用按链路处理、显式泛洪范围、链路本地地址作为邻接通信基础,并将地址前缀从基础拓扑描述中分离出来。
OSPFv3 最初支持 IPv6 单播地址族;RFC 5838 又定义了多地址族机制,使其可以在独立实例中承载 IPv4 等其他地址族。具体设备是否支持及其配置方式仍需按平台核实。
6.7 OSPF 设计建议
- Router ID 使用稳定的逻辑接口地址。
- 只在真正需要建立邻居的接口启用协议报文,其余接口设为被动接口。
- 统一 Hello/Dead、网络类型、MTU、认证和区域配置。
- 合理设置参考带宽,避免高速链路 Cost 大量相同。
- 在 ABR/ASBR 边界做汇总、过滤与标记。
- 不要为了"看起来分层"而创建大量小区域;区域划分应服务于规模、故障域和运维边界。
- 调整 SPF/LSA 节流参数前先评估 CPU、拓扑规模和抖动特征。
7. IS-IS:运营商与大型骨干常用的链路状态协议
集成 IS-IS 由 RFC 1195 将 OSI IS-IS 扩展到 IP 环境。它同样使用链路状态数据库和 SPF 算法,但协议封装、层次结构和信息编码方式与 OSPF 不同。
7.1 Level 1 与 Level 2
- Level 1:负责区域内部路由。
- Level 2:负责区域之间的骨干路由。
- L1/L2 路由器:连接区域内与区域间层次。
与 OSPF 的 Area 0 模型相比,IS-IS 的骨干由连续的 Level 2 路由器构成,不要求一个显式编号为 0 的区域。
7.2 LSP、TLV 与扩展能力
IS-IS 使用 LSP 描述链路状态,并通过 TLV(类型、长度、值)编码可达性和扩展信息。TLV 机制使协议较容易承载 IPv6、流量工程、分段路由等新能力。
7.3 DIS 与伪节点
在广播网络中,IS-IS 选举 DIS,并用伪节点简化拓扑表示。DIS 与 OSPF DR 的职责和备份机制并不完全相同,不能直接一一类比。

7.4 IS-IS 的工程优势
- 协议直接运行在二层之上,IP 地址配置变化通常不直接决定协议报文能否传送。
- TLV 扩展机制成熟。
- 适合大规模、双栈、MPLS 和分段路由骨干。
- 层次结构清晰,常用于运营商或大型数据中心底层网络。
7.5 主要挑战
- 企业网络团队的经验储备可能少于 OSPF。
- NET、区域地址、Level 和 TLV 的概念学习成本较高。
- 抓包、监控和运维平台需要完整支持。
8. EIGRP:带可行性条件的高级距离矢量协议
RFC 7868 将 EIGRP 描述为基于距离矢量技术、使用 DUAL 扩散更新算法的协议。该 RFC 属于信息类文档,而非互联网标准轨规范。
8.1 DUAL 的核心概念
- 后继(Successor):当前最优且用于转发的下一跳。
- 可行后继(Feasible Successor):满足可行性条件的无环备用下一跳。
- 可行距离(Feasible Distance):自上次进入稳定状态后记录的最小距离。
- 通告距离(Reported Distance):邻居通告的其自身到目的地的距离。
- 稳定状态(Passive):路由当前无须执行扩散计算。
- 活动状态(Active):需要向邻居发起查询以重新计算无环路径。
若备用路径满足可行性条件,主路径故障后可快速切换;若没有可行后继,路由进入活动状态并扩散查询。查询范围过大可能造成收敛压力和 SIA 问题。

8.2 设计要点
- 使用 Stub 能力限制查询范围。
- 在层次边界进行汇总。
- 保持链路度量和 K 值一致。
- 避免任意改变复合度量参数。
- 多厂商环境中应先核实实现完整性、互通能力和长期支持策略。
9. BGP:互联网与大型多域网络的策略路由核心
BGP-4 由 RFC 4271 定义,是自治系统之间交换网络可达性信息的路径矢量协议。BGP 使用 TCP 端口 179 建立会话,并通过 UPDATE 消息发布或撤销 NLRI。
BGP 的核心目标不是寻找"最短物理路径",而是在满足无环和可达性的基础上执行本地策略。
9.1 eBGP 与 iBGP
- eBGP:不同 AS 之间建立邻居。
- iBGP:同一 AS 内传播 BGP 路由。
iBGP 的基本规则会带来全互联扩展问题。大规模网络通常使用:
- 路由反射器:减少 iBGP 会话数量。
- 联盟:将大 AS 在内部划分为多个子 AS,对外仍表现为一个 AS。
9.2 常见路径属性
- AS_PATH:路由经过的 AS 序列,可用于环路检测和策略。
- NEXT_HOP:到达该前缀的下一跳。
- LOCAL_PREF:在本 AS 内表达出口偏好,通常越高越优。
- MED:向相邻 AS 表达入站入口建议,通常越低越优,但其比较条件与平台策略有关。
- ORIGIN:路由起源类型。
- COMMUNITY:为路由附加策略标签。
- 大型社区:使用更大的字段表达策略,便于 4 字节 ASN 场景。
常见厂商还提供 Weight 等本地私有属性,这不是 BGP 标准属性。
9.3 不要死记一条"全球统一"的 BGP 选路口诀
RFC 4271 定义的是概念性决策过程,各厂商会加入实现和配置相关的比较步骤。工程上应:
- 先通过导入策略决定路由是否有资格进入候选集。
- 再依据本地策略和路径属性选择最佳路径。
- 最后通过导出策略决定向哪些邻居发布什么内容。
确切顺序应以目标平台和版本文档为准,并通过实验验证。

9.4 BGP 的入站与出站流量工程
控制本 AS 的出站路径
优先使用:
- LOCAL_PREF。
- 本地导入策略。
- 下一跳可达性和 IGP Cost。
影响外部进入本 AS 的路径
可使用:
- 更具体前缀发布。
- AS_PATH Prepend。
- MED。
- 运营商约定的 BGP Community。
外部网络拥有最终决策权,因此"影响入站"不等于"强制入站"。发布更具体前缀还会增加全网路由规模,应严格控制。
9.5 路由反射的收益与代价
路由反射器显著减少 iBGP 会话,但可能隐藏部分路径,使控制平面看到的最佳路径与真实 IGP 转发代价不完全一致。设计时需要考虑:
- 反射器的部署位置与冗余。
- 客户端分组和故障域。
- 下一跳策略。
- Add-Path、ORR 等增强能力是否需要。
- 控制面路径多样性与数据面最优性之间的权衡。

10. 其他值得了解的路由协议与技术
10.1 Babel
Babel 由 RFC 8966 定义,是具有无环机制的距离矢量协议,面向有线网络与动态无线网状网络。它使用可行性条件和序列化路由,重点限制重收敛期间的环路与黑洞。
适合:
- 社区网络。
- 无线网状网络。
- 链路质量变化频繁、拓扑不稳定的环境。
10.2 RIPng
RIPng 是面向 IPv6 的 RIP 变体,继承了距离矢量和跳数限制等基本特征。其定位与 RIPv2 类似,主要适合简单、小规模环境。
10.3 MP-BGP
多协议 BGP 通过地址族扩展承载 IPv6、VPNv4、VPNv6、EVPN 等可达性信息。现代网络中的"BGP"往往不仅是互联网 IPv4 路由,还可能承担 MPLS VPN、VXLAN EVPN 控制平面等职责。
10.4 分段路由(Segment Routing)与传统路由协议
分段路由不是替代 OSPF/IS-IS/BGP 的单一"新路由协议"。它通常借助 IGP 或 BGP 分发 SID,再通过源路由思想表达路径。底层仍需要稳定的拓扑发现、可达性和策略体系。
10.5 SDN 控制器与路由协议
SDN 并不意味着动态路由协议消失。常见架构是:
- IGP 维护底层网络(underlay)的基础可达性。
- BGP/EVPN 分发叠加网络(overlay)信息。
- 控制器通过 NETCONF、RESTCONF、gNMI、PCEP 或厂商接口下发策略。
协议负责分布式生存能力,控制器负责全局编排,两者往往协同而不是互斥。
11. 收敛:从发现故障到业务恢复
收敛时间不是一个单独的 Hello 定时器,而是多阶段总和:
text
故障检测
+ 邻接状态变化
+ 路由信息传播
+ SPF/DUAL/BGP 决策
+ RIB 更新
+ FIB 编程
+ 邻接解析
+ 业务重新建立或重传
11.1 BFD 的作用
RFC 5880 定义的 BFD 可独立于介质和路由协议,以较低时延检测双向转发路径故障。OSPF、IS-IS、BGP 或静态路由可与 BFD 联动。
BFD 不是越快越好:
- 会消耗设备 CPU 或专用硬件会话资源。
- 大量低间隔会话可能在拥塞时误判。
- 两端能力和最小收发间隔需要协商。
- 应按核心、汇聚、接入和广域链路等级设置不同目标。

11.2 快速重路由
快速重路由通过预计算备用下一跳,在控制面完成全局收敛前先局部绕过故障。常见思路包括:
- LFA 与远端 LFA。
- TI-LFA。
- MPLS 快速重路由。
- EIGRP 可行后继。
- 设备本地链路或下一跳保护。
快速重路由解决"短时间业务连续性",最终仍需正常路由协议完成全局一致收敛。
11.3 优雅重启与不间断转发
优雅重启允许控制平面重启时暂时保留转发表,但存在一个重要前提:转发平面确实仍然正确。若把真实故障误认为控制面短暂重启,旧路由可能造成黑洞。因此必须结合平台能力、拓扑和故障检测机制评估。
12. 路由重分发、汇总与默认路由注入
12.1 为什么重分发危险
当 OSPF、IS-IS、BGP、静态路由之间互相引入时,会发生"度量体系翻译"。一个协议的高质量路径进入另一个协议后,原始语义可能丢失。
双点双向重分发尤其危险:
- 路由从协议 A 引入协议 B。
- 在另一边界又从 B 引回 A。
- 因来源属性、优先级或度量变化,设备把回流路由当成新路径。
- 形成路由环路、次优路径或持续振荡。

12.2 安全的重分发原则
- 尽量单点、单向。
- 在边界使用前缀列表精确允许。
- 写入 Route Tag 或 BGP Community。
- 回向引入时拒绝已标记路由。
- 明确设置种子度量。
- 配置最大前缀和异常告警。
- 变更前进行路径模拟和回滚设计。
12.3 路由汇总
汇总能减少路由数量、隐藏局部抖动、缩小故障传播范围,但前提是地址规划连续。
风险:
- 汇总覆盖的部分明细实际不存在,产生黑洞。
- 多出口站点汇总后破坏路径对称性。
- 过度汇总掩盖精细流量工程需求。
通常需要配合指向 Null 的同长度汇总路由,阻止未命中明细的流量再次沿默认路由返回形成环路。
12.4 默认路由注入
动态协议发布默认路由时,应明确:
- 是无条件发布,还是仅在上游可达时发布?
- 检测的是接口、下一跳、远端探针,还是完整业务?
- 多出口同时发布时如何表达主备或负载分担?
- 默认路由撤销会不会触发大范围业务震荡?
13. 路由安全:认证只是第一层
路由安全应分为会话、信息、策略、资源和监控五层。
13.1 邻接与会话保护
- 限制允许建立邻居的接口和源地址。
- 使用协议支持的认证机制。
- 对控制平面配置 ACL 与限速。
- BGP 可采用 GTSM/TTL Security,降低非直连攻击者伪造会话报文的风险。
- 在平台支持时评估 TCP-AO 等会话保护机制。
13.2 路由信息过滤
- 入向只接收对端有权发布的前缀。
- 出向只发布本 AS 或客户授权的前缀。
- 拒绝特殊用途、过长、默认或不合理的前缀。
- 设置最大前缀阈值。
- 校验 AS_PATH、下一跳与社区。
RFC 8212 提出的安全默认原则是:eBGP 会话没有明确导入和导出策略时,不应接收或发送路由。
13.3 RPKI 与起源验证
RPKI 使用资源证书和 ROA 建立"前缀可由哪些 AS 起源"的可验证映射。BGP 起源验证通常将路由分为:
- 有效(Valid):前缀长度和起源 AS 与 ROA 匹配。
- 无效(Invalid):存在相关 ROA,但前缀长度或起源 AS 不匹配。
- 未找到(Not Found):没有覆盖该路由的 ROA。
RPKI-ROV 主要验证起源授权,不能单独验证完整 AS_PATH,也不能替代前缀过滤、会话保护和泄漏防护。
13.4 路由泄漏防护
路由泄漏通常不是伪造前缀,而是违反商业或拓扑关系地传播真实路由。例如把从一个上游学到的全表错误发布给另一个上游。RFC 9234 定义 BGP Role 和 OTC 属性,用于协助预防和检测此类泄漏。
BGP Role 与 OTC 的实际效果取决于相邻双方及设备软件的支持情况,不能替代现有的导入、导出和客户前缀过滤策略。

13.5 监控与审计
至少监控:
- 邻居状态和抖动次数。
- 路由总量及变化速率。
- 默认路由、关键业务前缀和下一跳。
- RPKI 验证状态。
- BGP 更新风暴、OSPF LSA/LSP 异常增长。
- RIB 与 FIB 编程失败。
- BFD 会话状态与误判。
- 配置变更、策略命中数和被拒绝前缀。
14. 协议横向对比
| 类型 | 代表 | 核心算法/思想 | 典型度量或属性 | 规模与收敛 | 主要优势 | 主要限制 |
|---|---|---|---|---|---|---|
| 路由来源 | 直连 | 本地接口状态 | 无协议度量 | 本地即时变化 | 简单、基础可信 | 只能覆盖直连网段 |
| 路由来源 | 静态 | 人工指定 | 平台优先级、跟踪状态 | 不自动或依赖跟踪 | 可预测、低开销 | 扩展与维护困难 |
| 距离矢量 IGP | RIPv2/RIPng | Bellman-Ford 思想 | 跳数 | 小规模、较慢 | 简单 | 最大有效跳数 15 |
| 链路状态 IGP | OSPF | LSDB + SPF | Cost | 中大型、较快 | 标准化、企业生态成熟 | 区域与 LSA 设计复杂 |
| 链路状态 IGP | IS-IS | LSDB + SPF | 链路度量 | 大型骨干、较快 | TLV 扩展强、骨干常用 | 学习和运维门槛较高 |
| 高级距离矢量 | EIGRP | DUAL | 复合度量 | 中大型、可快速切换 | 可行后继、配置直观 | 多厂商策略需评估 |
| 路径矢量 EGP | BGP | 策略 + AS_PATH | 多种路径属性 | 超大规模、策略优先 | 可扩展、策略能力强 | 收敛与策略复杂 |
| 无环距离矢量 | Babel | 可行性条件 + 序列化 | 链路代价 | 动态网状网络 | 对不稳定链路适应性强 | 企业主流生态较小 |
表中的"快、慢"和"规模"是相对描述。真实表现取决于设备性能、定时器、拓扑、前缀数量、策略复杂度、硬件编程速度和故障类型。
"大型骨干"一行中的 BGP"必需"是指跨域、互联网或业务路由分发场景;骨干底层网络通常仍需要 OSPF、IS-IS 或其他机制提供基础下一跳可达性。
15. 如何选择:从业务约束反推协议

15.1 小型单出口办公室
推荐:
- 直连 + 默认静态路由。
- 对关键出口增加远端探测或 BFD 跟踪。
不必为了"高级"而引入复杂动态协议。少量设备上的清晰静态配置往往更可靠。
15.2 多分支企业 WAN
可选:
- OSPF 作为统一 IGP。
- 在特定单厂商环境评估 EIGRP。
- SD-WAN 控制器负责业务策略,底层仍保留稳定的基础路由。
重点:
- 分支 Stub 化。
- 路由汇总。
- 默认路由与双出口策略。
- 避免在大量分支全量泛洪内部明细。
15.3 大型园区网
常见方案:
- 接入层尽量二层或简化三层。
- 汇聚/核心运行 OSPF 或 IS-IS。
- 建立明确的区域、故障域与汇总边界。
- 关键链路启用 ECMP、BFD 和快速重路由。
15.4 数据中心
传统三层 Clos 常使用:
- eBGP 作为底层网络协议。
- OSPF/IS-IS 作为底层网络协议。
- BGP EVPN 作为叠加网络控制平面。
选择 eBGP 作为底层协议的原因通常是策略边界清晰、故障域隔离和水平扩展;选择 OSPF/IS-IS 则可能基于团队经验、设备特性和统一 IGP 运维体系。
15.5 运营商骨干
常见组合:
- IS-IS 或 OSPF 维护基础拓扑和底层网络可达性。
- iBGP/MP-BGP 承载互联网、VPN 和 EVPN 路由。
- MPLS 或分段路由(Segment Routing)提供业务路径。
- BFD、FRR 和精细遥测满足高可用要求。
15.6 多运营商互联网出口
推荐 BGP,并重点建设:
- 入/出方向前缀过滤。
- LOCAL_PREF 和社区策略。
- 最大前缀。
- RPKI-ROV。
- GTSM 与控制平面保护。
- 路由泄漏防护。
- 双路由器、双链路、双电源和独立故障域。
16. 常见误区
误区一:管理距离可以跨厂商直接比较
管理距离或路由偏好是本地实现概念,不在不同设备之间通告。跨厂商设计必须核对各自平台。
误区二:Cost 最小就一定最终胜出
只有同一协议、同一路由类型且进入同一比较阶段时,Cost 才可能直接决定结果。前缀长度、路由来源、路由类型和策略都可能先于 Cost 生效。
误区三:BGP 总是选择 AS_PATH 最短
AS_PATH 只是 BGP 多级决策中的一个属性。本地策略、LOCAL_PREF、路由资格和厂商特性可能更早决定结果。
误区四:邻居 Full 就说明业务一定正常
Full 只说明控制面邻接和数据库同步达到预期。ACL、NAT、FIB、ARP/ND、MTU、QoS 和回程路径仍可能导致业务失败。
误区五:把所有路由都重分发最省事
无边界的双向重分发会破坏协议域隔离,增加回流、环路和故障扩散风险。
误区六:把定时器调到最小就能获得最佳高可用
过度激进的定时器可能在拥塞或 CPU 繁忙时制造误判和振荡。快速检测、快速修复和控制面稳定必须平衡。
17. 标准化排障方法
17.1 第一步:明确故障平面
- 物理层:光功率、误码、双工、链路单向。
- 二层:VLAN、STP、LACP、MAC 学习。
- 邻接层:ARP/ND、Hello、认证、定时器。
- 控制平面:邻居、数据库、策略、RIB。
- 数据平面:FIB、ECMP、ACL、NAT、MTU。
- 业务层:DNS、会话状态、应用重试。
17.2 第二步:按路径逐跳验证
建议检查顺序:
- 本机是否有匹配的最长前缀。
- 活动路由来源是否符合设计。
- 下一跳是否可递归解析。
- FIB 是否已安装。
- 邻接表是否完整。
- 出接口和链路是否正常。
- 对端是否有回程路由。
- 中间策略是否允许。
17.3 第三步:检查协议状态
OSPF/IS-IS
- 邻接状态。
- 区域或 Level。
- 认证和定时器。
- LSDB/LSP 是否一致。
- SPF 运行频率。
- 是否存在异常泛洪。
BGP
- TCP 会话和状态机。
- 收到、接受、最佳、发布的路由数量。
- 前缀过滤和 Route Policy 命中情况。
- NEXT_HOP 是否可达。
- 属性是否被策略改写。
- RPKI 状态和最大前缀告警。
静态路由
- 下一跳递归。
- 跟踪对象。
- 备份路径优先关系。
- 黑洞路由是否覆盖过宽。
17.4 第四步:用事实建立时间线
把接口日志、BFD、邻居变化、路由撤销、SPF/BGP 决策、FIB 更新和业务告警对齐到同一时间轴。没有时间线的排障容易把"后果"误认为"原因"。
18. 生产网络设计检查表
地址与拓扑
- 地址是否支持按区域、站点和业务汇总?
- 关键设备与链路是否处于独立故障域?
- 是否存在不必要的大二层或三层环?
协议与层次
- IGP 域、BGP 域和静态边界是否清晰?
- 区域或 Level 划分是否服务于规模和运维?
- 路由反射器、ABR、ASBR 是否有冗余?
策略
- 导入、导出和重分发是否默认拒绝、按需允许?
- 是否使用标签防止路由回流?
- 默认路由是否与真实上游状态联动?
收敛
- 业务允许中断多久?
- 故障检测、局部修复和全局收敛分别需要多久?
- BFD 和 FRR 的规模是否在设备能力范围内?
安全
- 邻接是否认证?
- 控制平面是否过滤和限速?
- BGP 是否配置最大前缀、RPKI-ROV 和严格前缀策略?
可观测性
- 能否看到邻居、RIB、FIB 和策略命中?
- 是否保存路由变化历史?
- 是否能把配置变更与收敛事件关联?
变更与自动化
- 配置是否模板化并经过语法、策略和拓扑验证?
- 是否支持分批发布、自动回滚和变更后验证?
- 是否定期演练链路、设备和控制平面故障?
19. 结语
路由协议没有脱离场景的"最强者":
- 直连和静态路由胜在简单、可预测。
- RIP 适合极小规模或教学环境。
- OSPF 适合大量企业网络。
- IS-IS 擅长大型骨干与强扩展场景。
- EIGRP 在合适生态中具有快速、直观的优势。
- BGP 是跨域策略和超大规模可达性分发的核心。
- Babel 对动态网状网络和不稳定链路具有独特价值。
高质量网络设计并不是堆叠最多协议,而是用最少的机制满足明确的可达性、收敛、扩展、安全和运维目标。协议选择只是起点,真正决定网络可靠性的,是清晰的层次、可验证的策略、受控的故障域、完整的监控和可回滚的变更流程。
参考标准
- RFC 1812:IPv4 路由器要求
- RFC 2453:RIP Version 2
- RFC 2328:OSPF Version 2
- RFC 5340:OSPF for IPv6
- RFC 5838:OSPFv3 多地址族支持
- RFC 1195:集成 IS-IS 支持 IP
- RFC 7868:EIGRP 协议设计与架构
- RFC 4271:BGP-4
- RFC 4760:Multiprotocol Extensions for BGP-4
- RFC 5880:BFD
- RFC 8966:Babel Routing Protocol
- RFC 8402:Segment Routing Architecture
- RFC 7454:BGP Operations and Security
- RFC 8212:eBGP 无策略时默认拒绝
- RFC 6811:BGP Prefix Origin Validation
- RFC 9234:BGP 路由泄漏预防与检测