ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

RIP路由协议作业完全指南:从配置原理到故障排查

RIP路由协议作业完全指南:从配置原理到故障排查 看到“RIP作业”这四个字很多人的第一反应是这不就是每条路由器上敲两条 network 命令吗当年我拿到这份作业时也是这么想的结果验收时被老师一句话问懵了“RIP 的更新报文多久发一次从哪个接口发出去十六跳意味着什么”那次之后我才意识到RIP 作业表面上是配置题本质上考的是距离矢量路由协议的工作原理。这篇文章就围绕一份典型的 RIP 路由协议作业把从拓扑设计、地址规划、设备配置到故障排查的完整过程拆开讲一遍适合正在为路由协议作业头秃的同学也适合想快速理解 RIP 的初学者。1. 拿到RIP作业先别急着敲network命令1.1 先看懂作业在考什么RIP可不只是三行配置以我见过的大多数课程作业为例RIP 相关的题目通常包含三类第一类是纯原理题要求说明 RIP 的工作过程、度量方式、更新周期、防环机制第二类是配置题给一个多路由器拓扑要求用 RIP 实现全网互通第三类是综合题在配置的基础上还要做故障排查或性能分析。很多人只把第二类当作业所以交上去的配置确实能 Ping 通但原理解答和实验分析部分大面积空白最后分数并不高。说白了RIP 作业是把“理解路由协议”和“会配路由协议”捆在一起考的。我建议拿到作业先做三件事第一把 RIP 的五个关键参数背下来——UDP 520 端口、30 秒更新周期、180 秒失效时间、120 秒垃圾回收时间、15 跳上限第二把 RIPv1 和 RIPv2 的区别列成一张表第三在模拟器里把拓扑搭起来哪怕配置还没写先把接口和 IP 对应关系理清楚。这三点做完作业已经完成了一半。另外有个容易被忽视的知识点RIP 是距离矢量协议它只知道“到达某个网段经过多少跳”而不知道整张网络地图。打个比方它就像那个只告诉你“往前走三站路右转”的路人而不是给你一张全局地图的导航。这种设计的好处是配置简单、开销小坏处是收敛慢、容易出环、度量单一。作业里让你用 RIP 而不是 OSPF往往不是为了让你感受它的简单而是为了让你通过它理解距离矢量家族的通病——所以别只背配置要能说清“为什么 RIP 会这样”。1.2 拓扑设计与地址规划大多数人丢分都丢在这配置写不对可以查但拓扑和地址规划一旦定错了整个作业可能直接返工。我见过很多同学上来就把 R1、R2、R3 之间的互联地址写成 192.168.1.1/24、192.168.1.2/24三个 LAN 也都在同一个大网段里这就会触发 RIP 自动汇总的坑。IP 规划第一原则互联地址用 30 位掩码每个链路单独一个子网终端业务网段用 24 位掩码按部门或 VLAN 划分。如果作业里涉及的网段较多建议画一张地址规划表把设备、接口、IP、掩码、所属网段全部对应上这一步看似浪费几分钟却能省掉后面一整晚的排查时间。第二原则业务网段尽量连续或者至少保证同一个主类网络内连续。RIPv1 和默认开启自动汇总的 RIPv2 会把子网自动汇总到主类边界比如 192.168.10.0/24 和 192.168.20.0/24 会被汇总成 192.168.0.0/16 向外通告。如果拓扑里同时存在 172.16.0.0 和 192.168.0.0 两个主类网络跨主类通信本身没问题但汇总行为会让路由表比想象中少几条排查时容易一头雾水。自动汇总这个坑后面我会专门展开。第三原则不要忘记设备名、接口名和 VLAN 的标记。作业要求一般都会让你提交拓扑截图很多同学的拓扑图上设备名是 Router0、Router1看不出层次关系老师的印象分直接就低了。用 R1 表示核心、R2/R3 表示分部用不同颜色的链路区分业务流量和管理流量这属于“白送的加分项”。1.3 实验工具选型用模拟器还是真机做 RIP 作业工具基本三选一GNS3、Cisco Packet TracerPT、华为 eNSP。我的建议是如果作业用的是 Cisco 指令优先用 GNS3 或 PT如果作业是华为 VRP 风格就用 eNSP。PT 胜在轻量、开箱即用适合纯入门缺点是有些 RIP 细节比如 debug 输出、组播抓包不如 GNS3 真实。GNS3 能跑真实的 IOS 镜像Wireshark 抓包完全可用排错体验最接近真机代价是配置复杂度高一点。这里多说一句不管选哪个工具都建议把“抓包验证”作为作业的必备环节。RIP 的更新包能直接证明协议真的在工作而不是配置敲上去就万事大吉。后面第三部分我会放一份基于 Wireshark 的抓包分析案例。如果条件允许也可以在两台真实路由器之间做这个实验30 秒更新周期内能直观看到路由协议报文的收发那种感受是模拟器给不了的。2. RIPv1、RIPv2与那些必踩的配置细节2.1 version 2与no auto-summary为什么作业里要成对出现RIP 有两个版本差在哪RIPv1 是“有类路由协议”更新报文里不带子网掩码所以它无法支持 VLSM可变长子网掩码和 CIDRRIPv2 是“无类路由协议”更新报文里明确携带子网掩码支持 VLSM、路由认证和组播更新。今天的任何网络作业只要地址规划用了不是主类边界的子网比如 /30 互联段、/24 业务段RIPv1 就直接无法正确传递路由——它会把 172.16.100.0/30 当成 172.16.0.0 这个主类网络的一部分来处理直接导致路由混乱。所以配置 RIP 的第一件事想都不用想R1(config)# router rip R1(config-router)# version 2 R1(config-router)# no auto-summaryversion 2 是让 RIP 使用无类更新no auto-summary 是关闭自动汇总。为什么要单独关闭自动汇总因为即使启用了 RIPv2很多设备默认仍然会在主类网络边界做自动汇总。自动汇总的本意是减少路由条目但它会把 172.16.1.0/30 和 192.168.10.0/24 汇总成一条主类路由发布出去对于需要明细路由的场景来说这会让其他路由器学习到错误的路由汇总丢包定位半天也找不到原因。在实际工作中关闭自动汇总几乎是所有 RIP 部署的默认操作。2.2 network命令的真实含义它宣告的是接口不是网段这是 RIP 作业里翻车率最高的一个点。很多人以为 network 命令后面要写具体的 IP 地址或子网号于是写下R1(config-router)# network 192.168.10.0 255.255.255.0然后发现配置根本进不去或者进去了路由学习不到。原因很简单RIP 的 network 命令后面跟的是主类网络号Classful Network而且它的作用不是“宣告这个网段”而是“在该网段所在的接口上启用 RIP 并通告该接口的地址”。比如路由器有一个接口是 192.168.10.1/24正确的写法是 network 192.168.0.0如果有接口是 172.16.1.1/30就写 network 172.16.0.0。所以配置 RIP 前必须先把每个接口的 IP 和主类网络关系列清楚否则大概率会漏宣告。打个比方network 命令更像是说“我这个路由器身上所有属于 192.168.0.0 这个家族的接口都参与 RIP”而不是“请把 192.168.10.0 这个网段广播出去”。理解了这个语义RIP 的配置错误能少一半。2.3 被动接口、默认路由与定时器进阶加分项把基础配置写完之后作业里值得加分的点还有三个。第一是被动接口passive-interface连接 PC 或服务器的接口根本不需要发 RIP 更新报文因为它对面没有路由器发出去纯属浪费带宽。华为里叫 silent-interface思科里是 passive-interface。如果懒得一条条敲可以直接 passive-interface default然后再用 no passive-interface 把真正跑 RIP 的互联接口放出来。我在作业里就见过有人把所有接口都设成了被动接口导致路由器之间完全学不到路由。第二是默认路由注入。如果拓扑里有一台路由器上联 ISP通常会配置一条静态默认路由R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.2 R1(config)# router rip R1(config-router)# default-information originatedefault-information originate 命令会把这条静态默认路由通过 RIP 通告给其他路由器让内网设备不需要配置默认网关就能访问外部网络。这个技巧在很多作业的最后一问里会出现属于“平时没讲过但验收时会问”的知识点。注意这里的 203.0.113.0 是文档用测试网段模拟器里可以直接使用。第三是定时器调整。RIP 默认 30 秒更新、180 秒失效、120 秒垃圾回收这个收敛速度在现代网络里确实太慢了。作业要求分析收敛时间时可以用 timers basic 命令调整比如R1(config-router)# timers basic 5 30 30更新周期改成 5 秒失效 30 秒垃圾回收 30 秒。这样能让实验中的收敛效果更快体现但注意这只是为了实验演示生产环境中改 RIP 定时器需要全网络一致且非常谨慎否则会造成路由抖动。2.4 手工汇总与RIP认证作业里隐藏的加分点如果作业要求里出现了“减少路由表条目”或“提高安全性”就需要用到两个进阶功能。第一个是手工汇总RIPv2 支持在接口下做汇总R1(config)# interface g0/1 R1(config-if)# ip summary-address rip 192.168.0.0 255.255.0.0假设 R1 的 LAN 有 192.168.10.0/24 和 192.168.20.0/24在 R1 的互联接口上执行这条命令后R2 和 R3 只会收到一条 192.168.0.0/16路由表干净很多。但有一个坑汇总路由必须能和现有明细路由匹配如果汇总范围里包含了不存在的网段就可能形成黑洞路由。作业里做这个实验时一定要在汇总完成后用 show ip route 验证目标路由器是否真的只学到汇总路由。第二个是 RIP 认证。RIPv2 支持明文认证和 MD5 认证配置方式是接口级而不是进程级R1(config)# key chain RIP-KEY R1(config-keychain)# key 1 R1(config-keychain-key)# key-string cisco123 R1(config)# interface g0/1 R1(config-if)# ip rip authentication mode md5 R1(config-if)# ip rip authentication key-chain RIP-KEY如果只在一台路由器上配了认证另一台没配RIP 路由会直接学习不到因为更新报文被丢弃了。这是作业里常见的人为故障点很适合作为排错题出现。报告里如果能写明“认证在接口下配置而不是在 router rip 进程下配置”会显得你对协议细节理解很到位。3. 一次完整的RIP作业实操配置、验证与报告3.1 一个典型的作业场景与IP规划表下面我用一份常见的课程作业来完整走一遍流程。场景是某公司总部一台路由器 R1下接两个分部路由器 R2 和 R3三个路由器的 LAN 分别代表三个业务部门要求全网互通R1 上联 ISP。拓扑做成三角形R2 和 R3 之间也有一条直连链路这是为了讨论环路和水平分割。IP 规划如下设备接口IP地址掩码用途R1G0/0192.168.10.1255.255.255.0总部LANR1G0/1172.16.1.1255.255.255.252互联到R2R1G0/2172.16.1.5255.255.255.252互联到R3R1G0/3203.0.113.1255.255.255.252上联ISPR2G0/0192.168.20.1255.255.255.0分部A LANR2G0/1172.16.1.2255.255.255.252互联到R1R2G0/2172.16.1.9255.255.255.252互联到R3R3G0/0192.168.30.1255.255.255.0分部B LANR3G0/1172.16.1.6255.255.255.252互联到R1R3G0/2172.16.1.10255.255.255.252互联到R2这里故意用了 192.168.0.0 和 172.16.0.0 两个主类网络模拟跨主类场景互联段全部用 /30体现 VLSM。配置 RIP 时每台路由器需要宣告两个主类网络192.168.0.0 和 172.16.0.0。写配置前先把每台路由器每个接口属于哪个主类网络标出来后面就不会漏宣告。这个习惯在真实项目里同样重要接口一多靠脑子记必然出错。3.2 逐台设备敲配置从基础接口到RIP进程R1 的完整配置如下R1(config)# interface g0/0 R1(config-if)# ip address 192.168.10.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# interface g0/1 R1(config-if)# ip address 172.16.1.1 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# interface g0/2 R1(config-if)# ip address 172.16.1.5 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# interface g0/3 R1(config-if)# ip address 203.0.113.1 255.255.255.252 R1(config-if)# no shutdown R1(config)# ip route 0.0.0.0 0.0.0.0 203.0.113.2 R1(config)# router rip R1(config-router)# version 2 R1(config-router)# no auto-summary R1(config-router)# network 192.168.0.0 R1(config-router)# network 172.16.0.0 R1(config-router)# passive-interface default R1(config-router)# no passive-interface g0/1 R1(config-router)# no passive-interface g0/2 R1(config-router)# default-information originate R1(config-router)# end注意几个细节。第一203.0.113.0/30 是上联 ISP 的直连接口不需要作为 RIP 内部路由宣告外部网络靠默认路由覆盖所以 network 命令里不写 203.0.113.0。第二passive-interface default 把所有接口变成了被动接口然后只放行了 g0/1 和 g0/2 这两个跑 RIP 的互联口上联口 g0/3 留在被动状态是对的。第三default-information originate 把静态默认路由注入 RIP让 R2、R3 能学到默认路由。R2 的配置R2(config)# interface g0/0 R2(config-if)# ip address 192.168.20.1 255.255.255.0 R2(config-if)# no shutdown R2(config-if)# interface g0/1 R2(config-if)# ip address 172.16.1.2 255.255.255.252 R2(config-if)# no shutdown R2(config-if)# interface g0/2 R2(config-if)# ip address 172.16.1.9 255.255.255.252 R2(config-if)# no shutdown R2(config)# router rip R2(config-router)# version 2 R2(config-router)# no auto-summary R2(config-router)# network 192.168.0.0 R2(config-router)# network 172.16.0.0 R2(config-router)# passive-interface default R2(config-router)# no passive-interface g0/1 R2(config-router)# no passive-interface g0/2 R2(config-router)# endR2 没有上联 ISP 的接口所以不需要静态默认路由和 default-information originate。R3 的配置和 R2 结构一致只需要把接口 IP 换成 192.168.30.1/24、172.16.1.6/30 和 172.16.1.10/30。配置完成后三台路由器会在三个互联链路上建立 RIP 邻居关系互相通告各自所连接的 LAN 网段。用相同逻辑把 R3 配完然后进入验证环节。3.3 验证、抓包与报告撰写让作业有说服力配置完成后验证环节才是拉开差距的地方。首先用 show ip route rip 确认 RIP 学到的路由R1# show ip route rip 172.16.0.0/30 is subnetted, 3 subnets R 172.16.1.8/30 [120/2] via 172.16.1.6, 00:00:18, GigabitEthernet0/2 192.168.20.0/24 [120/2] via 172.16.1.2, 00:00:05, GigabitEthernet0/1 192.168.30.0/24 [120/2] via 172.16.1.6, 00:00:10, GigabitEthernet0/2这里的 [120/2] 中的 120 是 RIP 的管理距离2 是跳数。R1 到达 192.168.20.0/24 需要经过 R2 再转发所以度量是 2。写实验报告时建议把 show ip route 的输出完整贴出来并在旁边标注关键字段的含义说明“为什么度量是 2”这比贴一百行配置更能体现理解深度。然后是 show ip protocols它会显示 RIP 版本、更新周期、路由过滤器、邻居等。这两条命令的输出已经能证明 RIP 协议运行正常。如果想进一步展示报文层面的工作就打开抓包。GNS3 环境下在连接 R1 和 R2 的链路上开启 Wireshark过滤 udp.port520可以看到周期性的 RIP Response 报文每约 30 秒到达一次源端口 520、目的端口 520目的地址是 224.0.0.9 组播地址。展开报文里面就是一棵路由清单每一条包含 AFI、目的地址、掩码、下一跳和度量值。用 debug ip rip 也能看到实时更新但注意这条命令在 GNS3 或真机上会刷屏并且消耗 CPU实验做完要立刻 undebug all。华为设备上对应的是 debugging rip 1并且要先 terminal monitor 才能在终端看到输出。我通常抓包和 debug 二选一抓包放在报告里更直观debug 放在自己定位问题时更高效。作业报告最后还应该加一段“协议行为观察”。比如观察 RIP 的触发更新在一个接口上 shutdown 再 no shutdown马上就能看到 RIP 发送触发更新报文而不是等下一个 30 秒周期。这个细节可以写进分析报告属于老师想看的“你自己动手观察过”的证据。报告中把数据包截图、命令输出、解释说明三个要素放齐这份作业的完整度就非常高了。4. 常见问题与故障排查实录4.1 路由学不全先查版本、方向与被动接口RIP 作业最常见的故障就是某些路由器路由表里明明有直连路由但 RIP 路由学不全。遇到这个问题我的排查顺序固定三步。第一步在学不全路由的设备上执行 show ip protocols确认 RIP 版本是不是 2有没有误用 v1同时确认 network 宣告是否覆盖了对端互联地址所在的主类网络。第二步检查链路两端的接口是不是被设为被动接口或者接口 shutdown 被中断了。第三步在想学路由的设备上执行 debug ip rip看 30 秒周期内有没有收到来自邻居的 Response 报文。如果报文收到了但没有写入路由表就要看收到的路由的度量值。比如 RIP 报文中过来的路由度量是 16代表这条路由被毒性反转了也就是邻居认为它不可达故意用 16 跳告诉你“别走这条路”这时候要去源头查为什么邻居认为它不可达而不是在接收端反复折腾。这个排查思路在真实网络里同样适用遇到“学不到路由”先别急着重置配置抓包和 debug 能直接把问题定位到协议层面。4.2 环路与16跳不可达RIP的防环机制要会讲RIP 作业里几乎必问的一个问题是距离矢量协议为什么容易有路由环路答案要分三层。第一层RIP 只知道下一跳和跳数不知道全局拓扑所以当链路抖动、路由表收敛不一致时可能把一个已经不可达的网段继续向邻居通告。第二层RIP 用三个机制防环水平分割——从某个接口学到的路由不再从这个接口原路发回去毒性反转——明确把不可达路由以 16 跳通告出去让邻居尽快扔掉这条路径触发更新——拓扑变化时立刻发更新不等 30 秒周期。第三层如果防环机制失效RIP 最终靠“16 跳不可达”兜底超过 16 跳视为不可达这也解释了为什么 RIP 只适合小型网络。作业里让你搭三角形拓扑目的多半就是让你观察这些机制。比如在 R2 和 R3 之间的链路上抓包能看到 R2 从 R1 学到 R3 的 LAN 路由后并不会把它从 R2-R3 直连链路再发回给 R3——这就是水平分割在工作。写报告时把这个抓包结果放进去比抄一段教材定义强太多。4.3 收敛慢与等价负载两个需要单独提的现象RIP 收敛慢是它的先天特性。30 秒周期更新意味着一条坏路由最坏情况下要等几十秒甚至几分钟才能全网同步。作业里让做故障切换实验时可以用 traceroute 观察断开 R2-R1 的链路后R3 到达 192.168.20.0/24 的路径要过多久才切换到 R2-R3 直连。如果需要让实验结果更快呈现可以用 timers basic 临时加速但报告里一定要说明生产环境不推荐乱改定时器。另一个现象是等价负载均衡。如果拓扑中存在多条等跳数路径RIP 会把它们都放进去形成同时存在两条等价路由的情况。Cisco 路由器默认最多 4 条等价路径show ip route 里会看到同一目的地址出两条下一跳。这个现象在作业里通常是对的不用觉得“路由表里有两条一样的路由是不是配置错了”反而应该在报告里解释这是 RIP 的等价负载分担行为。4.4 排查命令速查表给这份作业配一张排查命令表建议贴在屏幕边上场景命令作用查看RIP全局状态show ip protocols版本、定时器、宣告的network、邻居查看RIP路由表show ip route ripRIP学到的路由及跳数实时观察更新debug ip rip查看收发的RIP Request/Response报文查看指定路由show ip route 192.168.30.0确认某条路由的详细来源与度量抓RIP报文Wireshark过滤 udp.port520验证RIPv2组播224.0.0.9更新关闭调试undebug all防止刷屏影响实验华为版路由表display ip routing-table protocol rip对应show ip route rip华为版RIP全局display rip 1对应show ip protocols如果碰到“配置完全一样但其中一台设备就是不通”的情况多半是接口 IP 掩码写错、接口被 shutdown或者 network 的主类网络号写错。逐台检查配置时我习惯用 show run | section router rip 只看 RIP 相关段再用 show ip interface brief 核对接口状态两步下来问题基本都能定位。5. 写在最后RIP作业真正教会我的事做这份作业之前我也觉得 RIP 是“过时协议”学它不如直接学 OSPF。但真正把 RIP 的每一个机制亲手验证过一遍之后我的看法变了RIP 是距离矢量路由协议家族里最精简的一个样本把水平分割、毒性反转、触发更新、定时器这些概念吃透后面学 EIGRP、BGP 时会顺畅很多。很多面试题也喜欢拿 RIP 当引子问“RIP 为什么最大跳数 15”表面考配置实际考的是对度量和环路边界的理解。所以这份作业别急着抄答案把它当成一次协议实验来做。我当时就是多花了一个晚上抓包、改拓扑、看 debug 输出最后不仅作业拿了高分对路由协议的判断力也上了一个台阶。希望这篇能帮你把 RIP 作业做得又快又稳少走我当年走过的弯路。
返回列表