
静态路由综合实验这个题几乎是每个学网络的人都会碰到的一关。把eNSP打开、拉几台AR路由器、连上线然后一条一条敲ip route-static命令最后发现PC1能ping通PC2——就这么简单的事很多人从下午折腾到晚上也搞不定。问题出在哪多半不是命令记不住而是对“路由到底怎么走的”这件事没想明白。这篇文章我按自己的实验习惯完整走一遍从拓扑设计、地址规划、静态路由配置到排查回程路由和常见故障把能踩的坑都尽量替你踩一遍。整个过程基于华为eNSP模拟器命令可直接照抄思路可以平移到真实路由器上。适合正在学华为路由交换、准备HCIA考试或者在公司里用模拟器搭实验环境练手的朋友。1. 实验目标与拓扑设计1.1 这个实验到底在验证什么先说人话静态路由综合实验的核心目标就是让两台不同网段的PC通过三台路由器组成的链式网络完成通信。听起来简单但这里面的核心考点不只是“敲三条命令”而是理解路由的逐跳转发特性——每一台途经的路由器都必须知道自己该把数据包交给谁。很多人做完实验发现ping不通第一反应是“我的静态路由配错了吧”于是反复检查命令、改下一跳、甚至重置设备最后发现根本不是命令问题而是某一个中间路由器上少了一条“回来的路由”。这种问题在真实网络里同样常见所以这个实验本质上练的是两件事一是把静态路由配通二是学会用路由表和抓包去定位“通到一半断了”的问题。1.2 拓扑结构、IP地址与路由需求总览我采用的拓扑是三台路由器串联这个结构比两台路由器更能暴露问题。两台路由器时去程和回程的路由各配一条就行逻辑上很好补全但三台串联时中间那台路由器要同时维护“去”和“回”两个方向的静态路由漏配一条就立刻出问题排查起来也更接近真实网络场景。具体的地址规划如下表设备接口IP地址掩码对端R1GigabitEthernet0/0/0192.168.10.1255.255.255.0PC1R1GigabitEthernet0/0/110.0.12.1255.255.255.252R2R2GigabitEthernet0/0/010.0.12.2255.255.255.252R1R2GigabitEthernet0/0/110.0.23.1255.255.255.252R3R3GigabitEthernet0/0/010.0.23.2255.255.255.252R2R3GigabitEthernet0/0/1192.168.30.1255.255.255.0PC2PC1的地址是192.168.10.10网关192.168.10.1PC2的地址是192.168.30.10网关192.168.30.1。需要静态路由到达的网段一共有两个R1需要知道192.168.30.0/24怎么走R3需要知道192.168.10.0/24怎么走R2则两个方向都需要知道。提示中间链路用30位掩码是最规范的做法点对点链路规划成255.255.255.252既节省地址也方便将来加设备。很多新手习惯用24位掩码实验里也能通但养成的习惯不够专业。2. 静态路由原理逐跳转发与回程路由2.1 路由表是怎么工作的路由器转发数据包依赖的是路由表。display ip routing-table能看到完整表项每一行都由目的网段、掩码、下一跳、出接口这些关键信息组成。数据包到达路由器后路由器用目的IP查路由表找到最长匹配的条目然后把数据包从对应的出接口发出去交给下一跳设备。这里有个新手非常容易误解的点路由器只关心“下一跳在哪”并不关心“最终目的地怎么走完”。换句话说它不需要知道全网所有路由器上的路由条目只需要知道“把包交给谁离目的地更近”。这就是逐跳转发也意味着每一台设备都必须独立地做出正确的转发决策。举一个生活中的例子你在北京问路去某个小区路人告诉你“先坐地铁到朝阳门到了再问别人”。你不需要那位路人告诉你从朝阳门怎么走但你必须确保到了朝阳门之后的下一位路人也知道怎么指路。任何一环的人说“不知道”你就卡在那里了。路由转发就是一个接一个的问路过程。2.2 回程路由为什么这么容易漏很多新手在配置时脑子里想的都是“PC1要访问PC2所以要给R1配一条到192.168.30.0/24的路由”。这当然没错但只想到这一步就漏了关键问题PC2收到PC1发来的ICMP请求后它的回复包目标地址是192.168.10.10这个数据包同样需要经过R3、R2、R1逐跳转发回去。也就是说光给R1配置到了192.168.30.0/24的路由是不够的R3也必须有一条到192.168.10.0/24的路由否则PC2的回应包到了R3就被丢了。R2作为中间路由器更是要同时具备两个方向的路由条目。漏配回程路由的直接表现就是PC1 ping PC2一直请求超时但你在R1上看路由表、看接口状态全都没问题。这就是为什么这个实验一定要用三台路由器——当你在中间路由器R2上只配了一条方向的静态路由时故障现象立刻浮现你会直观感受到“路由是双向的”这个核心概念。2.3 去程路由和回程路由的关系去程路由和回程路由本质上都是静态路由只不过服务的报文方向不同。去程路由服务于主动发起访问方向的报文回程路由服务于被访问设备返回的报文。它们就像一对方向相反的路由条目必须都存在于途经的所有路由器上通信才算完整。搜热词的时候我看到有人专门问“回程路由和静态路由的区别”这里我直接给一个明确定义回程路由并不是一种单独的路由类型它就是静态路由也可以是动态路由中的一条具体条目只是按数据流向来称呼它。华为设备上配置回程路由的命令跟配置普通静态路由完全一样ip route-static 192.168.10.0 24 10.0.23.1这条命令在R3上配置意思就是“去192.168.10.0/24这个网段把包交给10.0.23.1”。不需要任何特殊关键字也不需要单独的模式它和普通静态路由共用同一个命令体系。3. eNSP中的配置实操3.1 设备与PC的基础配置先把拓扑搭好三台AR2220路由器串联R1下挂PC1R3下挂PC2。设备启动后第一件事是改设备名并给接口配置IP地址。华为eNSP里的GigabitEthernet接口默认处于shutdown状态必须执行undo shutdown激活这个细节漏掉的话后面查故障会绕很大圈子。R1的接口配置如下R2和R3类似操作system-view sysname R1 interface GigabitEthernet0/0/0 ip address 192.168.10.1 255.255.255.0 undo shutdown quit interface GigabitEthernet0/0/1 ip address 10.0.12.1 255.255.255.252 undo shutdown quitPC端的配置更简单在eNSP的PC图标上右键“设置”填入IP地址、掩码、网关然后点击命令行窗口敲ipconfig确认配置生效。网关联不关联得上直接决定了PC能不能把跨网段的数据包送给路由器这一步配置错误的话后面连路由表都不用查。3.2 静态路由命令配置接口配完后开始配置静态路由。R1需要一条去往PC2所在网段的路由R3需要一条去往PC1所在网段的路由R2需要两条# R1 ip route-static 192.168.30.0 24 10.0.12.2 # R3 ip route-static 192.168.10.0 24 10.0.23.1 # R2 ip route-static 192.168.30.0 24 10.0.23.2 ip route-static 192.168.10.0 24 10.0.12.1华为的静态路由命令格式是ip route-static 目的网段 掩码长度 下一跳地址。这里有个关键点在以太网链路比如GigabitEthernet上下一跳地址必须写对端路由器的接口IP不能只写出接口。因为在交换式网络中路由器需要知道对端的IP才能解析出对应的MAC地址如果链路类型是串行链路的点对点场景才可以直接写interface Serial这种出接口写法。R2上配置了两条路由一条指向R1方向的10.0.12.1一条指向R3方向的10.0.23.2。这两条条目缺一不可——R2是中间的转发节点少任何一条都会导致单向通信中断或数据到了R2被丢弃。3.3 配置后的路由表检查命令敲完后不要急着去ping先查路由表确认条目正确加载了。在R2上执行display ip routing-table protocol static能看到静态路由的生效情况Route Flags: R - relay, D - download to fib ------------------------------------------------------------------------------ Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.10.0/24 Static 60 0 RD 10.0.12.1 GigabitEthernet0/0/0 192.168.30.0/24 Static 60 0 RD 10.0.23.2 GigabitEthernet0/0/1我发现很多新手在这步容易忽略一个细节路由条目的Proto显示Static、状态Flags是RD或者D说明路由已经正常下发到转发了。如果这里显示一条都没有或者Status是Inactive说明配置本身可能有问题——要么下一跳不可达要么接口是down的状态。这时display ip interface brief查接口IP和物理状态大多数问题能立刻定位到。4. 验证测试与故障排查记录4.1 连通性测试的正确步骤路由配置和检查完成后从PC1发起ping测试。这里我建议分三步去验证每步都有关键意义第一步ping 192.168.10.1也就是PC1 ping自己的网关。这一步连通说明PC和R1之间的二层链路没问题。如果这一步不通PC的IP或网关配置大概率有误也可能是eNSP里网线和接口没连接好。第二步ping 10.0.12.2从PC1 ping R2的接口地址。这时候数据包已经穿越了R1能通说明R1的转发路径是正常的。注意观察R1的路由表它必须知道10.0.12.2这个网段直连路由即可否则包会被丢弃。第三步才是ping 192.168.30.10完整验证全网通信。分步ping的好处是可以快速缩小问题范围——走到哪一步不通问题就在那一段不用在三台设备上瞎猜。4.2 常见问题速查与排查思路静态路由实验里出现过的故障我整理了一个速查表基本覆盖了90%的情况故障现象可能原因排查命令/操作PC ping网关不通PC IP/网关配错或接口downipconfig检查PC配置display ip interface brief查接口ping通网关但ping不通对端PC中间路由器缺路由或下一跳错误display ip routing-table逐台检查路由条目ping对端PC一直请求超时缺少回程路由检查中间路由器是否有反向网段路由路由表有静态条目但状态Inactive下一跳不可达或接口物理downdisplay ip interface brief、display arp看下一跳是否学习到ping通但对端PC没有收到对端PC网关配置错误查PC2的网关是否设置为192.168.30.1还有一个很典型的场景PC1能ping通192.168.30.1R3的网关接口地址但ping不通192.168.30.10PC2。这说明R3上的去程路由没问题问题要么出在PC2的网关配置要么出在数据包到达R3后无法找到PC2的MAC地址。在R3上执行display arp看看能不能学到PC2的ARP表项学不到就先解决问题链路上的ARP问题而不是去改动已经配置好的静态路由。4.3 用display命令定位问题的三个实例我在帮学员排查的时候遇到过不少重复率很高的案例挑三个有代表性的写出来。第一个实例R1配了到192.168.30.0/24的路由R2配了两条R3没配回程路由。现象是PC1 ping PC2请求超时但PC1 ping 192.168.30.1是通的。这里关键点在于PC1发ICMP请求到R3的网关地址192.168.30.1时R3收到后直接回包目标地址是192.168.10.10。R3没有去往192.168.10.0/24的路由回应包被丢弃——但是PC1并不知道这件事它只看到“请求超时”。在R3上执行display ip routing-table就能看到没有192.168.10.0/24这条条目去往对端的路由缺失一目了然。第二个实例静态路由配置全都正确但PC1 ping PC2时丢包率100%。排查发现R2的G0/0/1接口没有执行undo shutdown接口物理状态是down。这个问题在eNSP里特别常见因为模拟器的接口默认就是关闭的只配IP地址不激活接口的话路由器半点反应都没有。遇到类似情况不要直接怀疑配置错了先看一眼接口状态再谈其他。第三个实例R2上写错了下一跳把去往192.168.30.0/24的下一跳写成了10.0.12.1指回了R1R2查路由表后把数据包又转回R1R1看到目标不是自己再按自己的路由表转发给R2这就形成了路由环路TTL耗尽后数据包被丢弃。这种问题光看某一个路由器的路由表不好发现要用tracert看路径走向或者在全网设备上同时查看路由表比对人家的下一跳方向是否合理。提示在真实项目里排查这类问题我习惯先在核心设备上用display ip routing-table看完整的转发路径再逐跳确认下一跳方向。很多时候问题不是出现在你“以为有问题”的那台设备上而是在某个不起眼的中间节点上。5. 实验扩展从基础到实用的进阶玩法5.1 静态路由的删除与修改搜热词里出现了“route删除静态路由”可能是因为大家在eNSP里敲了错误的命令想撤销条目。华为设备删除静态路由的命令格式是undo ip route-static后面跟要删除的路由参数。这里有个细节undo的写法必须跟配置时保持一致否则界面可能提示命令不完整。比如要删除R1上的这条路由undo ip route-static 192.168.30.0 24 10.0.12.2如果之前配置时掩码是用255.255.255.0的形式写的删除时也要用完整的掩码写法。修改静态路由则不需要先删后加直接再敲一条同样的目的网段、新的下一跳地址新配置会直接覆盖旧配置。这个机制在调整路由时非常方便但也要小心如果你只是想临时测试不同的下一跳方案一定要确认老的条目已经被覆盖否则路由表里可能出现多条相同目的网段的条目。5.2 浮动静态路由与等价负载分担基础实验通过后可以顺手玩两个工程里很常用的技巧浮动静态路由和负载分担。浮动静态路由的思路是给同一条目的路由配置两个不同的下一跳用优先级区分主备。华为设备上静态路由的默认优先级是60数字越小优先级越高。主用路由保持默认60备用路由指定preference为70这样主链路正常时只使用主路由主链路down了之后备用路由自动顶上# 主链路下一跳 ip route-static 192.168.30.0 24 10.0.12.2 # 备份链路下一跳 ip route-static 192.168.30.0 24 10.0.25.2 preference 70配置完成后用display ip routing-table能看到两条目的网段相同的静态路由优先级的差别决定了谁生效。把主链路的接口shutdown掉再查路由表备用条目就会自动激活。这个机制在公司出口链路备份场景里经常用实验里练熟了非常加分。等价负载分担则是不写优先级配置两条相同目的网段、不同下一跳的静态路由。华为设备支持静态路由的等价负载分担默认会在两条链路上轮流转发效果可以用display ip routing-table看到两条条目并存Proto都显示Static且优先级相同。5.3 缺省路由与末梢网络设计如果实验场景再加一台只连接一个运营商出口的路由器可以用缺省路由简化配置。缺省路由的写法是ip route-static 0.0.0.0 0 下一跳地址它表示“除了直连和精确匹配的路由之外其他所有目的地都走这个下一跳”。在末梢网络中这种写法能避免为每个远端网段都写一条静态路由配置量大幅减少。比如在R3上追加一条缺省路由指向R2ip route-static 0.0.0.0 0 10.0.23.1这样R3上匹配不到其他路由的流量全部会发给R2处理。配合前面配置的明细静态路由整个网络的配置文件会精简不少。不过注意缺省路由和精确路由同时存在时路由器仍然按最长匹配原则转发不会因为缺省路由的存在而把精确路由的流量也引导到默认网关。6. 写在最后的几个建议静态路由实验做到这一步基础玩法已经熟练了但有几个习惯我还是想单独拎出来强调一下。第一实验完成后养成随手保存配置的习惯。在eNSP里配置完设备右键设备图标可以导出配置或者直接在设备上执行save命令保存到flash。别小看这一步模拟器偶尔崩溃或电脑重启后配置丢失重新敲一遍很浪费时间。第二在做故障排查时少用“不是这个原因吧”的心态去猜多用命令去验证。ping通不代表全链路没有问题display ip routing-table和display arp这些查询命令才是定位问题最直接的抓手。一个经验丰富的网工不会在一台设备上反复折腾而是习惯性地逐台查看、逐步缩小范围。第三如果条件允许建议把这个实验再从模拟器搬到真机上做一遍。模拟器和真实设备在命令层面几乎一致但真机上会有光模块、链路协商、接口速率这些物理因素踩过一轮之后你才会理解为什么很多经验丰富的工程师在排查问题时优先看物理层。这个实验后续还可以往很多方向扩展加交换机做VLAN间路由部署OSPF做动态路由对比或者引入防火墙做安全策略。把静态路由的每一步吃透了后面的动态路由协议学起来会顺很多。