备考HCIP的时候,重发布这一章前后啃了两遍。第一次看考点以为就是几条 import-route 命令的事,真正在模拟器里搭起双点双向拓扑一跑,路由要么绕路,要么反复震荡,严重的时候整个网络直接不通。后来把原理、配置、排错三条线拆开重新过了一遍,才明白这一章为什么被频繁拿出来考。这篇文章就按我当时的学习路径来写,适合正在备考HCIP的工程师,也适合做企业网运维、需要处理多协议边界的人。读完你会发现,重发布真正的难点不在那条引入命令,而在引入之后你打算怎么收拾局面。
1. 为什么必须做重发布:两种协议之间没有“通用语言”
1.1 现实网络里,很少只跑一种路由协议
很多人以为只有在运营商骨干网才会遇到多协议并存,其实企业网里更常见。比如公司总部核心跑OSPF,分支或旧区域保留着一套RIP;比如通过静态路由连了专线和合作伙伴,外部路由需要进入内部OSPF域;再比如引入了BGP以后,要把BGP路由注入到内部IGP里。现实网络不会为了保持某一种协议的“纯洁”而重搭物理架构,协议边界一旦存在,路由信息就必须在两个体系之间搬运,这就是路由重发布的本职工作。
HCIP对重发布的考察,表面上是你会不会敲 import-route 命令,实际上考的是三件事:能不能判断边界在哪、敢不敢让两个协议域互相“看见”、以及知不知道引入以后会带来什么连锁反应。前两件都好办,多数人栽在最后一件上。因为重发布不是把路由表“复制粘贴”过去那么简单,它自带一套副作用,尤其是当网络里有两台边界设备同时做双向引入的时候,环路和次优路径几乎是必然出现的。
1.2 重发布的本质:给另一边的路由器“翻译”路由信息
OSPF和RIP为什么不能直接互通?因为两者的路由描述方式完全不在一个维度。OSPF携带的是Cost,RIP携带的是跳数,IS-IS也有自己的metric体系,但语义和OSPF根本不可比。更麻烦的是,OSPF的路由通过LSA扩散,RIP直接往UDP 520端口周期性发送报文,IS-IS则靠PDU在二层直接交换。协议栈设计都不一样,路由信息没办法原样递过去。
所以重发布只能由边界设备来完成:边界路由器同时运行两个协议,把A协议的路由表项取出来,按B协议的格式重新封装,再以B协议的方式通告出去。你可以把这个过程理解成翻译:OSPF的Cost翻译成RIP的跳数,RIP的下一跳地址翻译成OSPF的LSDB里的外部LSA信息。翻译必然丢“原意”,比如Metric值的量纲对不上,比如路由的原始来源信息部分丢失,这就是后面所有环路的导火索。
提示:做重发布的设备,必须同时维护两个协议的路由表,它自己的全局路由表里也必须同时存在两边路由。如果边界路由器自己都没学到某条路由,重发布就无从谈起。这是排查“路由为什么没重发布出去”时第一个要查的点。
H2正好也解释了一个常见困惑:为什么我在单协议环境里从不需要重发布?因为同一个协议内部的路由信息天然就是统一的,只有跨协议才需要“翻译”。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 重发布的三要素:方向、种子度量和Tag
2.1 方向性:import-route 永远是单向的
华为路由器上重发布命令的格式是:
bash复制ospf 1
import-route rip 1
或者反向:
bash复制rip 1
import-route ospf 1
一次配置只完成一个方向。所谓“双向重发布”,实际操作时就是在两台设备或者同一台设备上各写一条方向相反的引入命令。单方向不会形成环路,但它也解决不了“两边路由都要通”的需求,所以绝大多数的实验和真实网络都会配置双向。
理解方向性有个很简单的方法:每一条 import-route 命令都固定有一个“源协议”和一个“宿协议”。命令写在哪个协议视图下,哪个就是宿协议;被引入的是源协议。这个方向一旦看反,配置就会写到错误的位置,或者写对了地方却把过滤策略加反,第5节会详细讲这种低级的致命错误。重发布方向的规划,本质上就是在设计流量边界:哪个区域是主,哪个区域是备,路由主要从哪个方向流入,这些都会直接决定策略往哪儿挂。
2.2 种子度量值:每个协议的默认值不一样
重发布时最容易被忽略的
