简介:面向计算机网络课程实验的Ys-routesim模拟器基本实验答案文档,适合初学者与中等程度学生配合教材上机练习,也便于教师批改实验报告时对照参考。内容组织上采用实验报告体例,从实验目的、材料工具到操作步骤逐项说明。内容围绕模拟器中12个基本实验展开,涵盖交换机口令与主机名设置、清除特权口令、计算机与交换机IP地址配置及ping测试,重点讲解VLAN划分、跨交换机trunk主干配置和多交换机冗余组网场景,每一步均附有具体操作命令与连通性验证结果,能帮助读者理解“同网段可通、不同网段不同VLAN不通”等判断依据。资源包仅有1个doc文档,约2.74MB,便于直接打印或在电脑上局部检索。目前已有1687人浏览学习,实用性强。借助这份资料,读者可系统梳理答题思路,熟悉常用命令与排错流程,减少实验课上摸索时间,提高实验报告撰写效率与分数,对实验课考查及后续网络实践也有参考价值。
1. 用 Ys-routesim 模拟器做路由实验,答案不在命令里,而在验证逻辑里
用 Ys-routesim 模拟器做路由基础实验,很多人卡住的时间不是花在敲命令上,而是花在不知道“实验结果到底该怎么算对”。静态路由配上去了,ping 不通;RIP 也宣告了,路由表里却迟迟不出现;OSPF 邻居状态停在某个阶段不再往前走。这类情况不一定需要改配置,需要改的是对验证方法的理解。这篇笔记从静态路由、RIP 到 OSPF 给你一条能照着走的路径,每一步都有命令、验证点和我踩过的坑。适合刚开始上网络课、要交实验报告、或者想用模拟器把路由协议链路理清楚的人。先说明一点:模拟器的命令行风格接近主流网络设备,端口编号和视图切换可能稍有差异,但思路是通用的。
2. 先把拓扑定下来:静态路由实验的最小可复现配置
2.1 三台路由器的最小拓扑与地址规划
在 Ys-routesim 里做实验,第一件事不是急着进入配置界面,而是把拓扑想清楚。我一般用三台路由器 R1、R2、R3 串成一条链:R1 的 G0/0/0 连 R2 的 G0/0/0,R2 的 G0/0/1 连 R3 的 G0/0/0。每台路由器再建一个 Loopback 接口,当作“背后的一台主机”。这样后面验证路由协议时,不用真的去接 PC,也能判断路由表工作正不正常。
地址规划我长期用两个原则:互联链路用 30 位掩码,Loopback 用 32 位掩码。为什么不用 24 位?30 位掩码的网段里只有两个可用 IP,正好放链路两端,路由表里少了很多无效的广播地址条目,实验报告里对照路由表更清晰。Loopback 配 32 位则是因为它没有对端,不参与 ARP,也不需要考虑广播域,32 位掩码写出来就是一个主机路由,后面做 OSPF 时这个习惯还能帮 Router-ID 的规划省不少事。
下面是我常用的地址表,直接照抄就可以:
| 设备 | 接口 | IP 地址 | 掩码 | 对端 |
|---|---|---|---|---|
| R1 | G0/0/0 | 10.0.12.1 | 255.255.255.252 | R2 G0/0/0 |
| R2 | G0/0/0 | 10.0.12.2 | 255.255.255.252 | R1 G0/0/0 |
| R2 | G0/0/1 | 10.0.23.2 | 255.255.255.252 | R3 G0/0/0 |
| R3 | G0/0/0 | 10.0.23.3 | 255.255.255.252 | R2 G0/0/1 |
| R1 | Loopback 0 | 1.1.1.1 | 255.255.255.255 | 无 |
| R2 | Loopback 0 | 2.2.2.2 | 255.255.255.255 | 无 |
| R3 | Loopback 0 | 3.3.3.3 | 255.255.255.255 | 无 |
R2 是中间设备,它需要同时知道 10.0.12.0/30、10.0.23.0/30 和两侧 Loopback 的路由;R1 需要知道 10.0.23.0/30 和 3.3.3.3/32;R3 需要知道 10.0.12.0/30 和 1.1.1.1/32。三台设备两两之间都只有一跳,用静态路由来写是最直白的选择,也最适合拿来给后面的 RIP、OSPF 实验做对照。地址表建议贴在模拟器旁边,随时查,免得配置过程中把接口号记混。
开始实验之前,我还会做一次环境清理。模拟器里的设备如果之前被其他实验改过配置,残留的静态路由或者默认路由会干扰这次实验的结果。我习惯先执行一次配置清空,再开始本次实验:
# 清理设备配置并重启,回到出厂状态 erase startup-config reload这个动作花不了几秒钟,但能省掉后面排查“为什么我的静态路由不生效”的大量时间。很多实验答案对不上,不是算法问题,是开局环境不干净。
2.2 静态路由配置的命令与验证方法
先把 R1 的接口地址配好,并打开接口。模拟器的命令行风格接近主流设备,我习惯从 enable 开始进入配置模式:
# R1 接口配置 enable configure terminal hostname R1 interface GigabitEthernet 0/0/0 ip address 10.0.12.1 255.255.255.252 no shutdown exit interface Loopback 0 ip address 1.1.1.1 255.255.255.255 exit接口配置的要害有两层。ip address 只是把地址写进去,no shutdown 才是把接口从管理态切到工作态。Ys-routesim 这类模拟器为了模仿真实设备的冷启动状态,默认接口是 down 的。漏掉 no shutdown 以后,用 show interface 看,物理层显示 up,线路协议却是 down,二层协商起不来,后面所有协议都会失败。
地址配完后,R1 的路由表里应该只有两条直连路由。接下来写去往 R2、R3 两侧网络的静态路由:
# R1 上写两条静态路由 ip route 10.0.23.0 255.255.255.252 10.0.12.2 ip route 3.3.3.3 255.255.255.255 10.0.12.2第一条的语义是去往 10.0.23.0/30 这个网段,下一跳是 10.0.12.2。下一跳写的是 R2 上和 R1 直连的那个接口地址。这里我建议写下一跳,而不是写“出接口 GigabitEthernet 0/0/0”。原因是模拟器里一旦出接口被 shutdown 或者链路倒换,出接口写法会立刻失效,而下一跳写法只要地址仍可达就能继续工作。写成下一跳也能让你更早建立“转发靠路由表、路由表靠下一跳”的思维方式,这种思维对后面 RIP、OSPF 实验帮助很大。
R2 和 R3 的配置思路完全一样,只是接口和网段不同。R2 上加两条静态路由,分别去往 1.1.1.1/32 和 3.3.3.3/32;R3 上加去往 10.0.12.0/30 和 1.1.1.1/32 的静态路由。全部配完后,验证是一个递进过程:
# R1 上验证静态路由是否出现在路由表 show ip route static # 从 R1 的 Loopback 发起 ping,目标是 R3 的 Loopback ping 3.3.3.3 source 1.1.1.1先执行 show ip route static,看有没有出现 10.0.23.0/30 和 3.3.3.3/32 两条带 S 标记的路由。然后再 ping。ping 命令里的 source 参数很关键:默认 ping 会拿路由器的出口地址当源地址,R1 出去是 10.0.12.1,到了 R3,R3 回包的目的地址就是 10.0.12.1。如果 R3 上没写去往 10.0.12.0/30 的回程路由,回包会被丢弃,你会误以为问题出在 R1。加上 source 1.1.1.1,实际上同时验证了 R1→R3 的转发和 R3→1.1.1.1 的回程,实验报告里写上这一条是能看出思考过程的。
ping 不通的时候,不要立刻怀疑配置写错,按这条链路逐跳来:先在 R1 上 ping 10.0.12.2,通了;再在 R2 上 ping 10.0.23.3,通了;最后再回到 R1 做整条链路测试。哪一跳断了,故障就在哪一段。绝大多数静态路由不通,不是少写了某一条路由,就是某一边的接口忘了 no shutdown。这个排查顺序我后面还会反复提到,几乎适合所有模拟器网络实验。
3. RIP 实验:从启动到收敛,把每一步都验证到
3.1 RIP 启动的四个关键参数:版本、宣告、汇总和被动接口
静态路由配好以后,建议把它全部删掉,或者干脆换一组新的路由器做 RIP 实验。我推荐后者,因为旧静态路由会和 RIP 学来的路由产生干扰,管理距离不同,报告里不好解释。RIP 的实验答案不只是配完就能通,真正容易被扣分的是四个参数:版本、宣告网段、自动汇总和被动接口。
版本默认是 RIP version 1,实验里必须改成 version 2。version 1 在主类边界上做自动汇总,10.0.12.0/30 这种子网会被汇总成 10.0.0.0/8 通告出去。拓扑里所有地址都落在 10.0.0.0/8 这个主类里,version 1 会把三个不同网段全部汇总成同一条,路由表里看不到精确前缀,ping 经常看起来通,但路径不对。version 2 支持 VLSM,才能把 10.0.12.0/30、10.0.23.0/30 以及三个 Loopback 按真实掩码传出去。
宣告网段是 RIP 里最容易被误解的命令。RIP 的 network 命令后面只能跟主类地址,不能精确到子网。比如 R1 的接口地址是 10.0.12.1,Loopback 是 1.1.1.1,要写的是 network 10.0.0.0 和 network 1.0.0.0,而不是 network 10.0.12.0。这条命令的意思是告诉路由进程“哪些接口参与 RIP”,然后 RIP 从这个接口发出并接收更新,同时把这个接口对应的网段通告给邻居。写错成子网号,模拟器往往不报错,但邻居就是学不到路由。
在 R1 上配置如下:
# R1 的 RIP 配置 configure terminal router rip version 2 network 10.0.0.0 network 1.0.0.0 no auto-summary passive-interface Loopback 0 exitnetwork 10.0.0.0 覆盖了 G0/0/0 所在的 10.0.12.1,network 1.0.0.0 覆盖了 Loopback 的 1.1.1.1。no auto-summary 禁用自动汇总,保证 10.0.12.0/30 这种子网不会被打包成 10.0.0.0/8 发出去。passive-interface Loopback 0 让 Loopback 不再发送 RIP 更新,因为对端没有路由器,周期广播没有任何意义,还会让控制台日志变得很吵。模拟器里保留 Loopback 上的更新,实验本身也能通,但 debug 的时候印象很差。
R2、R3 是同样的配置思路,只需要按自己的接口地址替换 network 覆盖范围。R2 上有三个接口参与 RIP:10.0.12.2、10.0.23.2 和 2.2.2.2,要宣告 network 10.0.0.0 和 network 2.0.0.0。R3 上是 10.0.23.3 和 3.3.3.3,宣告 network 10.0.0.0 和 network 3.0.0.0。宣告范围宁可大一点也不能漏,漏掉一个接口,这个网段就永远不会被通告出去。
3.2 验证 RIP 收敛:等待周期和路由表对照
RIP 配置完成以后,不会立刻出现在路由表里。RIP 是周期更新协议,默认 30 秒广播一次完整路由表,180 秒没有收到更新就把路由标记为不可达,240 秒删除。很多同学配完马上 show ip route,看到没有 RIP 条目就以为失败了,其实是没等够更新周期。我一般会等 40 到 60 秒再验证。
验证命令是一套组合拳:
# 查看 RIP 学到的路由,确认没有被自动汇总 show ip route rip # 查看 RIP 数据库,确认每条路由的来源和下一跳 show ip rip databaseshow ip route rip 看到的是已经装进全局路由表的条目,是最终生效结果。show ip rip database 看的是 RIP 进程自己维护的拓扑信息,包含从邻居收到的、甚至还没参与选路的路由。如果 database 里有、route 里没有,多数是因为管理距离或度量值比不过现有路由,这时要去查有没有残留的静态路由。
进一步确认收敛过程,可以用调试命令观察一眼,然后立刻关掉:
# R1 上观察 RIP 更新,验证完马上关闭 debug ip rip terminal monitordebug ip rip 会在控制台打印 RIP 的收发报文,你能看到哪个接口收到更新、更新里带哪些前缀、度量值是多少。这是回答“实验为什么能通”最直接的证据。但 debug 输出非常占资源,模拟器里开久了会卡,验证完记着执行 undebug all 关掉。模拟器的调试输出有时候会积压,日志堆在屏幕上不动,不是设备死了,是控制台处理不过来,等几秒就会恢复。
RIP 实验最容易犯的错是只验证 R1,不验证回程方向。RIP 是双向学习的,R1 能学到 3.3.3.3,不代表 R3 就能学到 1.1.1.1。最后一次收敛验证,应该在三台设备上都执行 show ip route rip,确认三张路由表都完整。这一步做到位,实验报告里写“全网互通,RIP 收敛正常”才有依据。
4. OSPF 实验:区域划分与邻接关系检查
4.1 区域规划与 Router-ID 的选择
OSPF 实验比 RIP 多一个概念:区域。小型拓扑用单区域 area 0 就够,但实验报告里经常要解释“为什么用单区域”。我的回答是:area 0 是骨干区域,其他所有区域都必须物理或逻辑地连接到骨干;三台路由器串行连接的场景下,单区域能减少 LSA 泛洪、加快收敛,也便于排查问题。如果以后扩展到多区域,边界路由器上再做路由聚合,这属于后续进阶。
Router-ID 是 OSPF 里最容易踩坑的参数。OSPF 建立邻居时会比较 Router-ID,全网不能重复,否则邻居关系会震荡。模拟器如果不手动指定,设备会自己选:优先取 Loopback 里最大的 IP,没有 Loopback 就取物理接口里最大的 IP。问题在于,当你新增一个 Loopback 地址或者设备启动顺序不同,Router-ID 就变了,邻居关系可能从 Full 跌回 Down,很难排查。
我习惯在每台设备上手动指定 Router-ID,并且直接用 Loopback 地址对应:R1 用 1.1.1.1,R2 用 2.2.2.2,R3 用 3.3.3.3。这样调试时看到邻居列表里的 Router-ID,立刻知道是哪台设备,不用反查地址表。这个习惯在真实设备上也实用,尤其在维护多区域网络时,Router-ID 就是设备的身份证。
OSPF 的 network 命令和 RIP 不一样,它用的是反向掩码,也就是 wildcard mask。10.0.12.0 网段、30 位掩码对应 0.0.0.3;Loopback 32 位掩码对应 0.0.0.0。很多人在这里翻车,把 255.255.255.252 当作反向掩码填进去,结果接口匹配不上,邻居建立不起来。反向掩码的算法是 255.255.255.255 减去正常掩码:255.255.255.255 − 255.255.255.252 = 0.0.0.3。记不住公式也没关系,直接记两个常用值:掩码 30 位用 0.0.0.3,掩码 32 位用 0.0.0.0。
4.2 OSPF 配置与邻接状态检查
以 R2 为例,它是三台设备里的中间节点,同时连接 R1 和 R3。在 R2 上配置:
# R2 的 OSPF 配置 configure terminal router ospf 1 router-id 2.2.2.2 network 10.0.12.0 0.0.0.3 area 0 network 10.0.23.0 0.0.0.3 area 0 network 2.2.2.2 0.0.0.0 area 0 exitrouter ospf 1 的 1 是进程号,只在本地有意义,两端进程号不同并不影响建立邻居,实验里统一用 1 是习惯。router-id 手动指定,避免自动选举的不确定性。三条 network 语句把 R2 的三个接口都宣告进 area 0,每一条精确匹配一个接口。R1 和 R3 只需要按各自接口地址做同样配置:R1 配置 network 10.0.12.0 0.0.0.3 area 0 和 network 1.1.1.1 0.0.0.0 area 0;R3 配置 network 10.0.23.0 0.0.0.3 area 0 和 network 3.3.3.3 0.0.0.0 area 0。
配置完成后,看邻居关系是最重要的验证手段:
# 在 R2 上查看 OSPF 邻居 show ip ospf neighbor正常情况下,R2 的邻居表里应该有 R1 和 R3 两条记录,状态是 Full/DR、Full/BDR 或者 Full/——。状态机从 Down 开始,经过 Init、Two-Way、ExStart、Exchange、Loading,最后到 Full。点对点链路上这个过程非常快,模拟器里通常几十秒内就能完成。
如果邻居卡在某个中间状态,就是排查的关键信号:
- 卡在 Two-Way:通常发生在广播型网络里 DR/BDR 选举阶段。链路明明只有两台设备却卡在 Two-Way,要检查是不是有第三台设备接入,或者接口被误配了 broadcast 网络类型。
- 卡在 ExStart 或 Exchange:最常见原因是两端接口 MTU 不一致。OSPF 在交换数据库描述报文时会协商 MTU,两端不一致就会停在 ExStart。检查两端接口 MTU,改成一致再重置进程。
- 状态一直是 Down:先查两端接口有没有都 up,再查 network 的 wildcard 有没有写对,最后确认 Router-ID 有没有冲突。
邻居达到 Full 之后,还要确认路由表:
# 查看 OSPF 路由和全局路由表 show ip route ospf show ip routeshow ip route ospf 只显示 OSPF 学到的路由,输出应该包含两端 Loopback 和互联网段。show ip route 看全局路由表,确认这些路由的管理距离是 110。如果某条路由被静态路由占了,OSPF 路由就算学到也不会装表,因为静态路由管理距离默认 1,永远优先于 OSPF 的 110。这也是我反复强调不要把旧静态路由留在设备上的原因。
5. 实验避坑:五个常见问题与排查顺序
5.1 接口状态一直 down,配置检查三遍还是没解决
现象:show interface 看到物理层 up、线路协议 down,或者干脆双 down;ping 对端地址超时;把接口地址重配一遍还是老样子。
原因:我遇到最多的原因是接口没执行 no shutdown。模拟器默认接口处于管理 down 状态,命令行里只看 IP 配置看不出问题。第二种原因是两端接口名对不上,连线拖到了 R2 的另外一个接口上,配置却没写在那个接口。
解决:先用 show interface 确认两端接口状态,找到 down 的那个接口;进入接口视图执行 no shutdown,观察十秒。如果依然 down,沿着拓扑连线检查是不是接错接口。排查顺序永远是先物理层、再数据链路层、最后网络层,这个习惯在模拟器和真实设备上都通用。
5.2 静态路由写上了,ping 就是不通
现象:路由表里有静态路由条目,命令不报错,但 ping 目标地址丢包,甚至完全不通。
原因:绝大多数是回程路由缺失。R1 写了去 3.3.3.3 的路由,但 R3 没写回 1.1.1.1 的路由,R3 收到数据包后查路由表没有匹配条目,直接丢弃。另一个常见原因是下一跳地址不可达,比如下一跳写成了 R3 的接口地址,而 R1 和 R3 之间隔着 R2,R1 根本无法直接到达那个地址。
解决:从源头逐跳 ping。先在 R1 上 ping 下一跳 10.0.12.2;再登录 R2 ping 10.0.23.3;确认每一段链路都通。然后用 show ip route 核对目标网段在每一台中间设备上都有匹配条目。把一条 ping 不通的问题拆成入口、转发、出口三段,就能避免从头到尾抓瞎。
5.3 RIP 路由学了又消失,路由表在来回“抖动”
现象:RIP 配置完成后,show ip route 一会儿出现学到的路由,过几十秒又消失,再过一会儿又出现。
原因:RIP 的更新周期是 30 秒,失效时间是 180 秒。如果网络里有环路或者链路质量差,更新会不定期丢失,超过 180 秒没收到更新,路由就被标记为不可达,下一轮更新到了又恢复。模拟器里还有一种来源:把同一条链路接了两根线形成物理环路,RIP 的跳数会不断增长直到 16 跳,表现为路由表反复变化。
解决:检查拓扑里有没有环路;打开 debug ip rip,观察更新来自哪台邻居、携带的度量值是多少;如果两条链路同时 up,shutdown 掉其中一条。RIP 实验里不需要做冗余链路,简单拓扑就是最稳的拓扑。
5.4 OSPF 邻居卡在 ExStart,重置进程也没用
现象:show ip ospf neighbor 显示邻居状态停在 ExStart/Exchange,等很久都到不了 Full;重新配置 router-id 或重置 OSPF 进程,还是一样。
原因:两端接口 MTU 不一致,这是 OSPF 邻居建立里最经典的问题。OSPF 在 Exchange 阶段发送数据库描述报文,报文头里带着 MTU,对端发现两边不一致,就会拒绝继续交换,状态反复停在 ExStart。模拟器里如果一组接口默认 MTU 1500,另一组被改动过,立刻就会复现。
解决:把两端接口的 MTU 改成一致,多数网络设备默认是 1500。改完以后重置 OSPF 进程或重启邻居会话,观察状态是否快速走到 Full。这类参数看着小,造成的故障时间却很长,排查时把它放在拓扑检查之后的第二位。
5.5 模拟器整体变卡,控制台回显迟钝
现象:敲命令后回显明显延迟,debug 输出刷屏,或者模拟器窗口像卡死一样,过几十秒突然蹦出一大段日志。
原因:我把调试日志直接开到了控制台,没有做输出管理。模拟器里 debug ip rip 或 debug ip ospf 一旦打开,每条更新都会触发输出,控制台处理不过来就会积压,看起来像卡死。另一个原因是终端软件开启了自动滚屏,日志一多页面不断刷新,命令输入反而排不上队。
解决:验证完立刻执行 undebug all 关掉所有调试。如果确实还想看日志,把输出导向缓冲区而不是控制台,用 terminal monitor 做有选择的输出,或者把日志缓冲区调大,事后用 show log 翻查。这个习惯对真实网络设备同样重要,生产环境里开 debug 本来就应该慎之又慎。
6. 三种验证方法,让实验答案经得起追问
实验做完了,还需要告诉自己“我真的把路由协议跑通了”。我习惯做三件事。
第一件事是整条链路 traceroute,而不是只 ping。ping 通只能说明数据包能往返,不能说明路径对不对。在 R1 上执行 traceroute 3.3.3.3,预期会看到两个跳:第一跳 10.0.12.2,第二跳 10.0.23.3。如果只有一跳,说明 R1 里有一条直接指到 10.0.23.3 的路由,R2 被跳过了;如果有三跳以上,说明中间混入了别的设备,要么拓扑画错,要么多加了转发路径。这种问题 ping 是看不出来的。
第二件事是把路由表的每一行读一遍,回答“这条路由的下一跳是谁、为什么是它”。R1 上看到 10.0.23.0/30 的下一跳是 10.0.12.2,来源是静态路由还是 RIP 或 OSPF,管理距离是多少,我在报告里都会标出来。等你能不看配置命令就解释清楚每一条条目的来源时,这个实验才是真正属于你的答案。能让人信服的验证不是把结果截图发出去,而是能在被追问后说出“因为下一跳是 X,回程路由 Y,所以通”。
第三件事是刻意制造一次故障再恢复它。把 R2 和 R3 之间的链路 shutdown,观察路由表什么时候丢失对应条目;恢复链路,观察什么时候重新收敛。RIP 会在几十秒内更新路由表,OSPF 在一两秒内重新建立邻接关系。这一步能让你对收敛时间有直观感知,也是答辩和面试里很常见的追问点。
我自己的收尾习惯是:每次实验结束,把配置导出和地址表放一起,下次重建环境时直接对照。另一个教训是别在状态验证成立的那一刻就停手。等 30 秒再看一次路由表,OSPF 邻居再确认一次状态,你会发现很多隐患是在等待中暴露出来的。希望帮到你。
本文还有配套的精品资源,点击获取