ARTICLE DETAIL

资讯详情

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

静态路由配置详解:华为eNSP实验、回程路由与排障技巧

静态路由配置详解:华为eNSP实验、回程路由与排障技巧 拿到“静态路由作业”这个标题我第一反应是这大概率是网络工程专业里最经典的一道实验题用的多半是华为eNSP或思科Packet Tracer。很多同学第一次接触路由器配置就是从静态路由开始的——三台路由器一串两台PC一接配完IP发现ping不通然后就开始怀疑人生。这篇东西我按“原理—命令—实验—排障”这条线来写全程以华为eNSP为环境因为目前国内教材和课程用华为模拟器最多。只要你把这里面的逻辑吃透了不管是应付作业、准备HCIA考试还是将来真去机房配设备都能直接套用。1. 静态路由到底在解决什么问题1.1 从路由表说起路由器怎么知道该往哪发路由器的本职工作就一句话收到数据包查路由表决定从哪个口扔出去。所以先搞明白路由表里有什么。一张路由表最核心的信息是三项目的网段、下一跳地址、出接口。我用快递分拣来打比方。路由表就是分拣中心墙上贴的“派送路线表”凡是去a片区的包裹交给隔壁站的王师傅凡是去b片区的包裹交给李师傅。路由器收到一个包先看目的IP属于哪个网段然后对应表项里写的“下一跳是谁、从哪个门出去”照做就行。这里有个很关键的点路由器天生只知道自己接口直连的网段。比如你在R1的G0/0/0接口配了IP 192.168.1.1/24那么R1的路由表里自动就会出现一条192.168.1.0/24的直连路由这是接口IP配置完成后自动生成的不需要手工写。但问题是R1怎么知道远处的192.168.3.0/24怎么走它不知道因为没人和它说。这时候就有两条路要么管理员手工告诉它这就是静态路由要么让路由器之间通过协议互相学习这就是动态路由比如OSPF、RIP。静态路由的本质就是管理员在路由器上手工敲一条“去某个网段该怎么走”的指令。它不会自动适应网络变化但胜在简单、可控、不占额外带宽非常适合结构稳定的小规模网络。1.2 为什么学了动态路由还要老老实实手写静态路由有人会问既然有OSPF这种能自动学习的协议为什么还要学静态路由我在带实验课的时候经常说静态路由是所有路由技术的地基。你连“下一跳”这个概念都没吃透去学OSPF只会更懵。而且静态路由在真实工程里从来不过时。小型分支机构的出口路由器通常就是配一条默认静态路由指向运营商的网关核心网络里的链路备份用的也经常是浮动静态路由而不是动态协议。静态路由的优势很明显一是配置简单几条命令就完事二是稳定可预期不会有路由振荡的问题三是排障直观路由表里有什么就是什么不会出现协议邻居状态不对导致路由学不到的情况。代价也摆在这网络拓扑一变静态路由不会自己跟着变必须人工调整。所以在大型复杂网络里它顶不住但在作业题和中小型网络里它反而是最合适的选择。2. 静态路由配置的核心逻辑下一跳、回程路由与默认路由2.1 ip route-static 命令逐参数拆解华为VRP系统里配置静态路由的命令是ip route-static完整格式长这样ip route-static 192.168.3.0 255.255.255.0 192.168.13.3这一条命令包含三个核心参数目的网段、子网掩码、下一跳地址。意思就是凡是去192.168.3.0/24这个网段的包我都交给192.168.13.3这个地址去转发。就这么简单但有几个细节必须抠清楚。先说掩码。很多新手会把掩码写错最容易犯的错是写成255.255.255.255。如果你写ip route-static 192.168.3.0 255.255.255.255 192.168.13.3那这条路由只匹配192.168.3.0这一个主机地址而不是整个192.168.3.0/24网段后面的主机全都路由不到。所以掩码一定要和目的网段配套。再说下一跳。下一跳必须是你“直连可达”的地址也就是说这个下一跳地址所在的网段必须已经存在于本路由器的路由表里。比如R1和R2之间是192.168.12.0/24网段R2的接口地址是192.168.12.2那么R1配置去远端网段时下一跳写成192.168.12.2是合理的因为R1直连着这个网段知道怎么把包送到192.168.12.2。还有一个实操细节华为静态路由可以指定下一跳也可以指定出接口比如ip route-static 192.168.3.0 255.255.255.0 GigabitEthernet0/0/1在P2P点对点链路上这么写没问题但在以太网环境里我强烈建议你写下一跳地址而不是出接口。原因是以太网是广播多路访问的如果只指定出接口路由器需要用ARP去解析目的IP对应的MAC地址一旦解析不到或者解析到错误设备包就丢了。写明确切下一跳路由器的转发行为最直接、最好查。2.2 回程路由通信从来不是单向的这是静态路由作业里最容易丢分的点没有之一。很多同学配完路由发现数据能发出去但收不回来就是因为只配了去程路由没配回程路由。回程路由什么意思PC1要给PC2发包数据包从PC1出发经过R1、R2、R3最后到PC2。PC2收到之后要回包回包的目的地址是PC1的IP那么它经过R3时R3必须知道192.168.1.0/24这个网段该怎么走。如果R3的路由表里没有这一条那回包到R3这里就被直接丢弃了。你看到的表象就是ping不通。我反复跟学生强调一个口诀配完静态路由从源端到目的端逐台路由器检查去程再从目的端反向逐台检查回程。两边都通才算真正配完。很多人在实验报告里的拓扑图画得漂漂亮亮结果一ping就露馅问题十有八九出在回程路由没配。再深挖一层回程路由和静态路由不是对立的范畴而是两个维度的概念。静态路由是指“手工配置的路由”这种类型回程路由是指“数据返回路径上需要的路由”。理论上回程路由也可以用动态路由协议学到但在静态路由作业里它就是我手动写的那几条反向路由。2.3 默认路由和汇总路由让路由表“瘦身”默认路由是静态路由里一个特别实用的变种写法是把目的网段和掩码都写成零ip route-static 0.0.0.0 0.0.0.0 192.168.13.3它的意思是除了路由表里明确写出来的网段其他所有未知网段一律丢给192.168.13.3处理。这就相当于快递分拣中心挂了一块牌上面没写路线的件全部交给总站。默认路由最典型的应用场景是出口设备和末梢网络比如一个小公司的路由器出口只有一条线连着运营商完全没必要把全世界的路由都学会配一条默认路由指过去就行省事又省资源。汇总路由是另一种思路。假设你有192.168.1.0/24、192.168.2.0/24、192.168.3.0/24三个网段都要指向同一个下一跳那可以合并写成一条大的网段路由。不过汇总有个前提就是这些网段必须连续而且能用一个更短的掩码覆盖住。比如上面三个网段可以汇总成192.168.0.0/22前提是你确实需要覆盖192.168.0.0到192.168.3.0。如果网段不连续强行汇总会闹出路由错误的大笑话。3. 华为eNSP静态路由实验从拓扑到全通3.1 实验拓扑与IP规划先把实验环境说清楚。我用的拓扑是经典的三台路由器串联R1连一台PC1R3连一台PC2R1和R2之间、R2和R3之间各有一条以太网链路。这种拓扑看起来简单但该考的细节全都有很适合当作业题练手。设备接口和IP规划如下表设备接口IP地址对端设备PC1网卡192.168.1.10/24R1 G0/0/0R1G0/0/0192.168.1.1/24PC1R1G0/0/1192.168.12.1/24R2 G0/0/0R2G0/0/0192.168.12.2/24R1 G0/0/1R2G0/0/1192.168.23.2/24R3 G0/0/0R3G0/0/0192.168.23.3/24R2 G0/0/1R3G0/0/1192.168.3.1/24PC2PC2网卡192.168.3.10/24R3 G0/0/1这个规划遵循一个基本原则每条链路单独划一个网段不能把R1和R2之间的地址跟R2和R3之间的地址放在同一个网段里。否则路由器无法区分从哪个接口转发。接下来是路由规划。让全网全通需要配置的静态路由是这些R1需要两条去192.168.23.0/24下一跳192.168.12.2去192.168.3.0/24下一跳192.168.12.2。R2需要两条去192.168.1.0/24下一跳192.168.12.1去192.168.3.0/24下一跳192.168.23.3。R3需要两条去192.168.12.0/24下一跳192.168.23.2去192.168.1.0/24下一跳192.168.23.2。注意R1不需要写去直连网段192.168.12.0/24和192.168.1.0/24的路由因为直连路由是自动生成的。同理R2和R3也不需要写自己直连网段的路由。作业里最常见的越级配置就是有人傻乎乎地把直连网段也配成静态路由虽然不至于报错但画蛇添足还可能因为掩码写得不对而覆盖掉原有直连路由。3.2 三台路由器的完整配置过程打开eNSP把拓扑搭好启动设备。等路由器开机之后先给每台设备改个名字方便区分然后按顺序配置。R1的完整配置system-view sysname R1 interface GigabitEthernet0/0/0 ip address 192.168.1.1 255.255.255.0 quit interface GigabitEthernet0/0/1 ip address 192.168.12.1 255.255.255.0 quit ip route-static 192.168.23.0 255.255.255.0 192.168.12.2 ip route-static 192.168.3.0 255.255.255.0 192.168.12.2R2的配置system-view sysname R2 interface GigabitEthernet0/0/0 ip address 192.168.12.2 255.255.255.0 quit interface GigabitEthernet0/0/1 ip address 192.168.23.2 255.255.255.0 quit ip route-static 192.168.1.0 255.255.255.0 192.168.12.1 ip route-static 192.168.3.0 255.255.255.0 192.168.23.3R3的配置system-view sysname R3 interface GigabitEthernet0/0/0 ip address 192.168.23.3 255.255.255.0 quit interface GigabitEthernet0/0/1 ip address 192.168.3.1 255.255.255.0 quit ip route-static 192.168.12.0 255.255.255.0 192.168.23.2 ip route-static 192.168.1.0 255.255.255.0 192.168.23.2配置完别急着ping先做两件事。第一件在每台路由器上用display ip routing-table查看路由表重点看静态路由有没有出现在表里下一跳是否正确。第二件用display ip routing-table 192.168.3.0这样的命令单独查某条路由能直接看出这条路由是否生效。PC1和PC2需要手动配置IP和网关PC1的网关是192.168.1.1PC2的网关是192.168.3.1网关就是各自主机的出口路由器的接口地址。全部配置完成后在PC1的命令行里ping PC2的地址ping 192.168.3.10如果返回了正常的TTL和往返时间说明全网通了。如果timeout别慌直接跳到第4部分去排查。3.3 综合实验扩展等价负载均衡与浮动静态路由很多静态路由综合实验不会满足于单链路往往会加一条备份链路或者双链路场景。比如R1和R3之间除了经过R2之外又加了一台路由器或一条直连链路让R1去192.168.3.0/24有两条路可以走。这时候最简单的配置是配两条相同优先级的静态路由比如ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 ip route-static 192.168.3.0 255.255.255.0 192.168.13.3当两条路由的优先级相同时路由器会把流量负载分担到两条链路上这就是等价路由。看路由表的时候你会看到同一个目的网段对应两条静态路由这是正常现象不是配置冲突。如果要求主备模式也就是一条链路平时跑流量另一条链路只在主链路故障时启用那要用浮动静态路由核心是修改优先级。华为设备里静态路由的默认优先级是60数值越小越优先。把备份路由的优先级调大比如设成80ip route-static 192.168.3.0 255.255.255.0 192.168.12.2 preference 60 ip route-static 192.168.3.0 255.255.255.0 192.168.13.3 preference 80正常情况下192.168.12.2那条优先级60的路由会出现在路由表里另一条优先级80的路由不会出现。一旦主链路断开优先级60的路由失效路由器会自动激活优先级80的备份路由实现链路切换。这个机制在真实网络里很常用而且实验报告里如果能写明白“为什么优先级小的先被选中”会是很加分的点。4. 常见故障排查与静态路由作业避坑实录4.1 最让人抓狂的“半通”现象ping网管通但ping远端不通静态路由作业里最经典的现象是PC1能ping通自己的网关192.168.1.1也能ping通R1和R2之间的接口192.168.12.2但就是ping不通PC2。这种情况十有八九不是接口的问题而是某台路由器缺少去往目的网段的路由。我给的排查套路是这样的。第一步沿数据路径逐跳ping下一跳地址比如PC1先ping 192.168.1.1通了说明一跳没问题再ping 192.168.12.2通了说明R1能把包送到R2再ping 192.168.23.3通了说明R2也能送到R3。哪一跳开始不通问题就出在哪两台设备之间。第二步在断点附近的路由器上看路由表。重点检查这台设备有没有去往目标网段的路由。举个例子PC1 ping 192.168.3.10包到了R3R3发现目的网段192.168.3.0是自己直连的于是交给PC2这部分没问题。但PC2回包给192.168.1.10R3一查路由表发现没有192.168.1.0/24的路由直接就把回包丢了。这个时候你在R3上用display ip routing-table看到的结果是一切正常因为去程路由都在缺的是那条回程路由。这个案例也是回程路由重要性的最好证明。还有一种半通现象是丢包率50%这通常是等价路由造成的。两条路径中有一条是坏的流量在两条路径间负载分担一条通一条不通表现就是丢一半。这种情况先检查两条路径的连通性再把坏的那条路由删掉或者调优先级。4.2 路由优先级、删除命令与路由表核对华为设备里不同类型路由的默认优先级各有不同常见几个值得记住直连路由0静态路由60OSPF是10RIP是100。优先级数值越小越优先。做实验的时候如果发现静态路由配置了但不生效要想到可能是其他协议的路由优先级更高把静态路由挤下去了看一下路由表就能确认。配置错了怎么删用undo命令格式跟配置时一样undo ip route-static 192.168.3.0 255.255.255.0 192.168.12.2写这条命令时必须把目的网段、掩码、下一跳三项都写完整精确匹配缺一项都可能删不掉。我见过不少学生敲了undo ip route-static 192.168.3.0 255.255.255.0结果系统提示错误——因为VRP要求完整参数才能精确定位要删除的路由。删完之后用display ip routing-table确认一下别删了才发现没删干净。核对路由表的时候还有两个细节容易忽视。一是掩码长度检查路由表里表项的掩码是不是你想要的那个如果出现了/32说明你把掩码写成了255.255.255.255。二是下一跳地址确认它是不是直连网段内的地址如果下一跳本身不可达这条静态路由即使在表里也无法使用。4.3 交作业前的自查清单我改作业的时候发现很多没配通的实验问题出在极其低级的细节上。给一张自查清单配置完对着过一遍能少挨不少批。检查项具体内容常见错误接口状态display ip interface brief看接口是否up模拟器没启动完就开始配置接口IP与规划表逐一比对掩码是否写对掩码/24写成/23或/32PC网关PC的网关是否指向路由器接口地址网关写错或没写去程路由每台路由器是否有到所有非直连网段的路由少配中间网段的路由回程路由反向从目的到源逐台检查只配去程不配回程冗余链路主备路由优先级是否区分两条路由优先级一样导致负载分担我个人还有个习惯配完静态路由之后做一次“路径推演”。拿一张纸从PC1出发写出每一个数据包经过的设备、入接口、出接口、下一跳一直写到PC2再反向从PC2写到PC1。能完整写出来基本就通了写不出来卡住的地方就是故障点。这个方法比反复ping要高效得多因为它是从逻辑上验证整体连通性而不是大海捞针式地试。最后说一点我自己做这个实验的体会。静态路由看似简单但它练的是你对“数据包怎么走”这件事的直觉。配通之后推荐你做个小动作在R1上配一条ip route-static 0.0.0.0 0.0.0.0 192.168.12.2然后把之前配的明细路由删掉再看PC1能不能ping通PC2。你会发现通因为默认路由接管了一切未知网段的转发。等你想明白为什么通静态路由这关你就算真正过了。
返回列表