1. 为什么两台电脑之间,隔着一个"路由器"就ping不通了
很多人在学网络的时候,第一次被卡住的地方往往不是子网掩码,也不是IP地址分类,而是这个问题:明明两台电脑IP也配了,网线也插好了,物理上就是通的,可为什么从PC1去ping PC2,就是死活不通?
如果你用的是一台二层交换机把两台电脑接在一起,只要它们在同一网段,确实通。但一旦把它们拆到两个网段——比如PC1在192.168.10.0/24,PC2在192.168.30.0/24——中间就算用交换机连着,也完全不通。原因不复杂:交换机只会转发二层帧,它根本不认识IP地址,更不知道"192.168.30.0这个网段该往哪走"。
这时候就需要一个能看懂IP、会做路径决策的设备,也就是路由器。路由这个过程,说穿了就是"数据包从源到目的地,沿途每个路由器都帮忙指一下路"。
这篇文章我会用比较直白的方式,把路由基础和静态路由一次性讲透。没有复杂的背景铺垫,直接从"路由是干什么的"讲起,然后带着你在eNSP模拟器里配一个三段式的静态路由实验,最后再给你一套排错思路和几条真实环境里用得上的技巧。适合刚学完IP地址和交换机基础、准备跨入路由阶段的人,也适合那些配过命令但没想明白原理的人。学完之后你至少能回答三个问题:路由表里到底放的是什么?为什么静态路由要两边都配?ping不通的时候到底该查哪里。
网上关于"ensp配静态路由"的教程很多,但很多都是"照着敲命令"型,命令敲完了,一问三不知。所以这篇我不打算只给配置过程,重点是把每一个操作背后的逻辑讲明白。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 路由表、下一跳与数据封装:三个绕不开的核心概念
2.1 路由表不是一本电话簿,而是一张"目的地指向牌"
在学习路由的时候,第一个要纠正的直觉是:路由表里的条目,不是按"具体哪台主机"来记录的,而是按"网段"来记录的。
打开路由器执行display ip routing-table,你会看到类似这样的输出:
code复制Destination/Mask Proto Pre Cost Flags NextHop Interface
192.168.10.0/24 Direct 0 0 D 192.168.10.1 GE0/0/0
192.168.20.0/24 Direct 0 0 D 192.168.20.1 GE0/0/1
192.168.30.0/24 Static 60 0 D 192.168.20.2 GE0/0/1
注意第一列,全是网段加掩码的写法,没有单独一条记录是给某个具体IP的。这背后的原因很现实:如果路由表按主机IP来记,那互联网上几十亿台设备,任何一台路由器都存不下。但按网段聚合之后,一条记录就能代表成千上万台主机。
这就像快递分拣中心墙上贴的线路表,写的是"发往武汉的件走3号传送带,发往长沙的走5号传送带",它不会写"发往张三家的走3号传送带"。因为所有送到武汉的包裹,只需要先送到武汉分拨中心,剩下的路由由下一级来决定。路由表也是这样,它只负责指向"该往哪个方向送",不负责送到最终门口。
所以在配置静态路由时,目的地址永远写的是网段和掩码,比如192.168.30.0 24,而不是某台主机的完整IP。这是一个容易反复踩的细节。
2.2 下一跳到底是谁?别把"网关"和"下一跳"搞混
路由表里的关键字段是NextHop(下一跳)和Interface(出接口)。很多人理解"下一跳"时会有一个误解:认为下一跳就是数据包最终要到达的那台设备。不是的,下一跳指的是"我这一步要把包交给谁"。
打个比方。你在北京的办公楼里要寄一份文件到上海某园区,你不会直接把文件交给上海那个人,而是先交给楼下的快递员。这个快递员就是你的下一跳。快递员又把它交给首都机场的货运站,货运站是快递员的下一跳。每一站都只关心"下一个接手的人是谁",不关心全程到底还有多远。
具体到路由器上,当路由器收到一个目的IP为192.168.30.10的数据包,查表发现匹配了192.168.30.0/24这条路由,下一跳是192.168.20.2,于是它就把这个包从GE0/0/1接口扔给192.168.20.2。至此,这台路由器的工作就完成了。它不关心192.168.20.2收到之后怎么处理,那是下一台路由器的事。
"网关"和"下一跳"之间的关系也要理清。主机的网关,就是主机把跨网段流量交出去的那个"默认出口",所以PC1的网关一定是路由器上与PC1同网段那个接口的IP。而路由器的下一跳,则是旁边另一台路由器与自己直连的那个接口IP。说到底两者都是"下一跳"的概念,只是叫法不同、配置位置不同。
2.3 数据包每一跳都会换MAC,但不换IP
还有一个非常关键的细节,很多人学路由学了很久也没彻底搞明白:数据包在传输过程中,源IP和目标IP从头到尾不变,但源MAC和目标MAC每一跳都在变。
为什么?因为MAC地址是二层寻址用的,只在同一个广播域(也就是同一条链路)内有效。数据包从PC1发出来时,它的目标MAC必须是网关的MAC,也就是路由器接口的MAC。路由器收到之后,要把这个包从另一个接口转发出去,出接口的对面是另一台路由器,那此时目标MAC就必须改成对面那
