4、动态路由协议入门:动态路由协议分类(IGP vs EGP)、距离矢量 vs 链路状态、路由选路原则

聊到动态路由协议,很多刚入行的朋友容易一头扎进各种协议细节里。我个人的习惯是,先退一步,把整个路由协议的分类体系看清楚。说白了,就像你整理衣柜,得先分清楚哪些是外套、哪些是内衣,然后再谈怎么叠、怎么挂。

这一节,我们就来把动态路由协议的「家谱」捋一捋。你搞懂了这些分类,后面学OSPF、BGP的时候,心里就有底了。

4.1 动态路由协议的两大阵营:IGP vs EGP

路由协议的第一个分水岭,是看它在哪个范围内跑。

  • IGP(内部网关协议):在一个自治系统(AS)内部跑的。你可以把AS理解成一家公司或者一个机构的自有网络。IGP负责把公司内部的路由信息搞通畅。典型代表:RIP、OSPF、IS-IS。
  • EGP(外部网关协议):在不同自治系统之间跑的。说白了,就是你家公司和隔壁公司之间的网络怎么连。EGP负责跨组织的路由交换。现在的EGP,基本上就剩BGP了。

核心区别一句话:IGP管内部,EGP管外部。IGP追求快速收敛和路径最优,EGP追求策略控制和路径可达。

我在项目中遇到过不少新手,把OSPF和BGP混着用。比如在公司内部用BGP跑路由,结果搞得收敛慢得要命。嗯,这里要注意:IGP和EGP的设计目标完全不同,别乱套。

4.2 距离矢量 vs 链路状态:两种不同的「世界观」

IGP内部,又分成了两个流派:距离矢量(Distance Vector)和链路状态(Link State)。

你想想看,这两种协议看待网络的方式完全不同。

4.2.1 距离矢量:只听邻居说

距离矢量协议,比如RIP,它的工作方式很简单:

  • 每个路由器只知道自己的直连路由。
  • 它定期把自己的路由表「广播」给邻居。
  • 邻居收到后,根据「跳数」来更新自己的路由表。

说白了,就是「道听途说」。路由器A告诉路由器B:「我去网络X有3跳」,路由器B就信了,然后告诉路由器C:「我去网络X有4跳」。这种模式有个经典问题——路由环路

避坑指南:我曾经在一个老旧的园区网里见过RIP的环路问题。两台路由器互相告诉对方「我能去那个网段」,结果数据包在中间来回跳,直到TTL耗尽。后来我强制配置了水平分割(Split Horizon),才把这个问题压下去。

4.2.2 链路状态:自己画地图

链路状态协议,比如OSPF和IS-IS,就聪明多了。每个路由器都会:

  • 收集自己直连的链路状态(比如接口IP、带宽、开销)。
  • 把这个信息(LSA/LSP)泛洪给整个区域的所有路由器。
  • 每台路由器都有一张完整的网络拓扑图(LSDB)。
  • 然后各自用SPF算法(Dijkstra算法)算出最短路径。

你想想看,这就像你手里有一张完整的地图,而不是只听邻居指路。所以链路状态协议收敛快、环路风险低,适合大型网络。

我的建议:如果你在搭建一个新网络,规模超过几十台路由器,直接上OSPF或者IS-IS。别碰RIP了,除非你是在做实验或者维护老古董。

4.3 路由选路原则:到底听谁的?

好了,现在网络里可能同时跑着多种路由协议。比如静态路由、OSPF、BGP都告诉你同一个目标网段怎么走。那路由器听谁的?

路由器有一套严格的选路原则,我把它总结成三步走:

  1. 最长前缀匹配:先看掩码。掩码越长,越精确,优先级越高。比如去192.168.1.0/24和192.168.1.0/25,后者更精确,走后者。
  2. 管理距离(AD值):如果前缀一样长,就看路由来源的可信度。AD值越小,越可信。比如直连路由AD=0,静态路由AD=1,OSPF AD=110,RIP AD=120,BGP外部AD=20(eBGP)或200(iBGP)。
  3. 度量值(Metric):如果AD值也一样(比如都是OSPF学来的),那就比度量值。OSPF看开销(Cost),RIP看跳数,EIGRP看复合度量。

记住这个顺序:先比掩码长度,再比AD值,最后比Metric。这三步走完,路由表里就只剩下一条最优路径了。

我刚开始学的时候,总搞混AD值和Metric。后来我给自己编了个口诀:「先看谁更准(掩码),再看谁更亲(AD),最后看谁更近(Metric)」。嗯,这个口诀帮我省了不少事。

4.4 一张图看懂本章知识体系

下面这张SVG图,把动态路由协议的分类和选路原则串起来了。你盯着看一分钟,整个框架就清楚了。

动态路由协议知识体系 动态路由协议 IGP(内部网关协议) EGP(外部网关协议) 距离矢量(RIP) 链路状态(OSPF/IS-IS) BGP 路由选路原则(三步走) ① 最长前缀匹配 ② 管理距离(AD) ③ 度量值(Metric) IGP管内部,EGP管外部;距离矢量听邻居,链路状态画地图 选路:先看谁更准,再看谁更亲,最后看谁更近

4.5 实战中的一点体会

说实话,理论归理论,真正到了项目里,你会发现现实比书本复杂得多。我记得有一次帮客户做网络迁移,他们原本全网跑RIP,要改成OSPF。结果发现RIP的跳数限制(15跳)导致某些分支节点根本学不到路由。改完OSPF后,收敛时间从几分钟降到了几秒。

所以我的建议是:别只看协议本身,要理解它背后的设计哲学。距离矢量协议简单但脆弱,适合小型网络;链路状态协议复杂但健壮,适合大型网络。EGP(BGP)则是为策略控制而生的,别拿它当IGP用。

一个小技巧:如果你不确定该用哪种IGP,先看网络规模。少于10台路由器,RIP也能凑合;10-50台,OSPF是主流;50台以上或者有特殊需求(比如MPLS),考虑IS-IS。

好了,这一节的内容就到这里。你只要把IGP vs EGP、距离矢量 vs 链路状态、选路原则这三块吃透,后面学具体协议的时候,就会觉得豁然开朗。


公众号:蓝海资料掘金营,微信deep3321