第一次用思科模拟器搭小型局域网的时候,我干过一件特别蠢的事:设备全部拖进工作区,线连好,四个网段的IP也照着教程填完,最后点下 ping,一个都不通。当时整个人是懵的——命令明明没抄错,接口状态也看着正常,问题到底出在哪?后来才想明白,不是哪条命令敲错了,而是我压根没搞懂“4个子网之间靠什么互相认识”。这句大白话,其实就是路由协议存在的意义。
今天这篇就围绕“思科模拟器小型局域网组建(4子网,RIPV2组建)”这个实操项目从头到尾拆开讲。它适合正在学网络基础、准备动手实验的人,也适合已经抄过一堆配置但没理清原理的人。读完你会知道:地址怎么分配才算合理、接口怎么配、RIPV2为什么在这个阶段是比静态路由和OSPF都更合适的协议,还有那些让你怀疑人生的坑到底怎么绕过去。
1. 先把4个子网的网络“地图”画明白
1.1 这个实验到底在模拟什么场景
先别急着开模拟器,想清楚一个问题:为什么要组4个子网?
一个很常见的现实场景是,公司或学校有四个相互独立的区域,比如办公楼一层、二层、三层、四层,或者行政部、研发部、生产部、仓库,每个区域都有自己的PC,彼此之间物理上离得远,逻辑上又不能直接共用一台交换机。如果不加任何设备,这些PC只能和同区域的机器通信,跨区域访问全靠人拿U盘拷贝——这在现实里就是每个部门一台独立交换机,互相之间是隔离的。
把多个局域网连接起来,需要路由器。路由器的作用可以理解成“不同网络之间的邮局”:每个子网是一个村子,路由器是村口负责分拣信件的人,它必须知道“去某个村子该走哪条路”,这个认知就是路由表。
所以这个项目就是:在模拟器里用4台路由器、4台交换机、8台PC,搭出一个由4个独立子网组成的小型局域网,再通过RIPV2让所有设备知道全网的路由。这样任意一台PC都能ping通另外3个子网里的任何PC。
1.2 为什么选RIPV2而不是静态路由或OSPF
很多新手会问:既然只是4个子网,直接在每个路由器上写静态路由不就行了?确实能通,但你要维护的东西很恐怖。比如R1到R4的网段,你要在R1上手动写一条“去172.16.4.0/24经过R2”,然后R2、R3上各写一条,链路一变,所有配置全得改。规模小的时候看不出来,一旦拓扑复杂一点,这种配置方式几乎不可维护。
那为什么不用OSPF?OSPF是生产环境里的主流,但它的学习曲线对刚接触路由的人来说并不友好。它涉及区域设计、DR/BDR选举、COST计算、邻居关系建立这些概念,光排一个“邻居起不来”的错,就可能把你绕晕。做教学实验只需要验证“路由协议能让子网互通”这个核心,OSPF属于杀鸡用牛刀。
再看RIPV1和RIPV2的对比,这是很多资料里一笔带过但特别关键的东西:
| 对比项 | RIPV1 | RIPV2 |
|---|---|---|
| 是否支持无类路由 | 不支持,只能按主类网络通告 | 支持,可携带子网掩码 |
| 是否支持VLSM | 不支持 | 支持 |
| 更新方式 | 广播 255.255.255.255 | 组播 224.0.0.9 |
| 自动汇总 | 强制,无法关闭 | 默认开启,可关闭 |
| 认证 | 不支持 | 支持明文和MD5认证 |
RIPV2的本质还是距离矢量协议,以跳数作为度量值,最大有效跳数是15跳,到16跳就被视为不可达。这个限制对“小型局域网”来说完全够用,却让原理表达得非常直观。你配置完之后看路由表,每一条非直连路由后面都有[120/1]、[120/2]这种数字,直接能看到“我到这个网段隔了几跳”,这种可视化对建立网络直觉特别有帮助。
1.3 整体拓扑长什么样
这个实验的拓扑是典型的“串糖葫芦”结构:四台路由器R1、R2、R3、R4依次相连,每一台路由器下面接一台交换机,每台交换机下接两台PC。
连线关系是这样的:R1的G0/0/0接SW1,G0/0/1接R2;R2的G0/0/0接SW2,G0/0/1接R1,G0/0/2接R3;R3的G0/0/0接SW3,G0/0/1接R2,G0/0/2接R4;R4的G0/0/0接SW4,G0/0/1接R3。
中间链路全部用路由器的以太网口直连。有的教程喜欢用串行口,好处是可以练习clock rate和DCE/DTE的概念,但串口模块需要手动添加,对新手来说多一个变量就多一个排错点。我这里选择以太网口直连,能少踩一个坑。
2. 地址规划与IP表:别让路由协议背锅
2.1 主类网络与子网掩码,这两个概念不能糊
地址规划是整个实验的地基,也是最容易被新手轻视的部分。很多人打开模拟器就开始敲ip address,结果地址互相重叠、掩码写错,后面所有问题全来了。
先回忆一个基础知识点:IPv4地址按首位比特被分成A、B、C等类别。你不需要死记硬背类别范围,但要理解“主类网络”这个词。在RIP协议里,network命令要求的是主类网络号,比如172.16.1.0/24属于B类主网172.16.0.0,192.168.12.0/30属于C类主网192.168.0.0。
子网掩码决定了“网络位”和“主机位”的划分。/24意味着前24位是网络位,后面8位是主机位,所以一个网段里有256个地址,其中可用的是254个。而路由器之间的物理链路只需要两个IP,用一个/30的掩码最合适。为什么不用/24?因为一条只有两台设备互联的链路如果分到254个可用地址,纯粹是浪费,而且广播域越大并不代表越好,反而会带来无谓的协议流量和排错难度。
2.2 这次实验的完整地址规划表
我采用的方案是:四个PC网段用172.16.1.0/24到172.16.4.0/24,路由器间互联链路用192.168.12.0/30、192.168.23.0/30、192.168.34.0/30这样一组网段。
这样拆分的好处是:第一,PC网段一眼能看出对应哪台路由器,172.16.1.0/24就是R1下面的,172.16.2.0/24就是R2下面的,管理清晰;第二,互联链路独立使用192.168.x.x网段,和用户网段区分开,看路由表的时候直连路由是哪个、RIP学来的是哪个,一目了然。
完整的地址分配表:
| 设备 | 接口 | IP地址 | 掩码 | 说明 |
|---|---|---|---|---|
| R1 | G0/0/0 | 172.16.1.1 | 255.255.255.0 | SW1网段网关 |
| R1 | G0/0/1 | 192.168.12.1 | 255.255.255.252 | 连接R2 |
| R2 | G0/0/0 | 172.16.2.1 | 255.255.255.0 | SW2网段网关 |
| R2 | G0/0/1 | 192.168.12.2 | 255.255.255.252 | 连接R1 |
| R2 | G0/0/2 | 192.168.23.1 | 255.255.255.252 | 连接R3 |
| R3 | G0/0/0 | 172.16.3.1 | 255.255.255.0 | SW3网段网关 |
| R3 | G0/0/1 | 192.168.23.2 | 255.255.255.252 | 连接R2 |
| R3 | G0/0/2 | 192.168.34.1 | 255.255.255.252 | 连接R4 |
| R4 | G0/0/0 | 172.16.4.1 | 255.255.255.0 | SW4网段网关 |
| R4 | G0/0/1 | 192.168.34.2 | 255.255.255.252 | 连接R3 |
PC的IP分配很简单:PC1是172.16.1.10/24,PC2是172.16.1.20/24,PC3是172.16.2.10/24,PC4是172.16.2.20/24,以此类推,每个交换机下的PC网关就是对应路由器的172.16.x.1。所有PC的子网掩码都是255.255.255.0。
这里有个很小的细节,但很重要:PC配置IP的同时必须填默认网关。网关的作用是“当目标IP和我不在同一个网段时,把数据包交给谁”。很多新手第一次做完实验ping不通,原因根本不是路由协议,而是PC的网关栏空着。你想想,PC访问一个跨网段地址时,它先把包丢给网关,再由路由表决定下一步,如果网关没填,这包就跟没有邮戳的信一样,根本没发出去。
2.3 为什么RIPV2和这套规划是绝配
地址规划里可以看到,用户网段是172.16.x.0/24这种VLSM设计(可变长子网掩码),互联链路是192.168.x.0/30。如果用RIPV1,它不支持无类路由,通告路由时不带掩码,172.16.1.0/24会被当成172.16.0.0/16来处理,整个网络根本没法精确路由,这就是RIPV1必然被替换的原因。
RIPV2支持VLSM,但有一个默认行为必须关掉,就是自动汇总。默认情况下,把子网路由通告到不同主类网络边界时,它会把多条子网路由聚合成一条主类路由。在咱们这个实验里,R2要把172.16.1.0/24和172.16.2.0/24通告给R3,而R3的接口是192.168.23.0/30,这属于跨主类网络边界,所以R2如果开着auto-summary,它就会告诉R3:“我有172.16.0.0/16”,而不是“我有172.16.1.0/24和172.16.2.0/24”。R3只知道有这么个大网段,分不清具体该往哪个下一跳走特定子网,结果就是路由黑洞。这个坑后面排错部分还会详细说,现在先记住关键词:no auto-summary。
3. 模拟器里从零配通4台路由器的接口
3.1 设备选型与接口认知
打开思科模拟器Packet Tracer,设备选型用ISR 4331路由器、2960交换机、PC-PT。4331这个型号自带三个千兆以太网口,正好满足我们中间路由器需要两个互联口加一个LAN口的结构。如果你使用的模拟器版本里找不到4331,选其他三个以太网口的路由器型号也行,只要接口数量够,配置逻辑完全一样。
这里必须提醒一个新手常犯的错误:看到设备就拖进工作区,完全不思考接口数量和类型。有些路由器默认只有两个以太网口,中间路由器需要三个口,你连完发现少一个口,还得停下来加模块。先看一眼设备自带的接口再连线,这个习惯能帮你省很多时间。
接口编号是理解配置的基础。4331的接口名是类似GigabitEthernet0/0/0这样的三段式,第一段0代表模块槽位,第二段是子卡槽位,第三段是端口号。你在命令行输入interface GigabitEthernet0/0/0的时候,一定要看拓扑里对应的是哪个口,别凭感觉乱配。
3.2 交换机和PC的配置,真没你想的复杂
交换机在这个实验里基本不用配。我们把交换机当成一个纯粹的扩展设备,让两台PC能共享一个路由器LAN口。你可以给交换机改个名字,方便区分,但这不是必须的。连接方式是:路由器的G0/0/0口用直连线连交换机的一个普通口,两台PC也分别连交换机的两个普通口。注意思科模拟器里交换机连PC用直通线,路由器连交换机也用直通线,设备端口会自动协商。
PC的配置是图形化的,点一下PC图标,进Desktop选项卡,再点IP Configuration,把IP地址、子网掩码、默认网关填进去就行。PC1到PC8按上面的地址表依次填完。填完先别急着ping,因为此时路由还没通。
3.3 路由器接口配置,一个都不许漏
路由器的配置在命令行里完成。先双击R1,进CLI选项卡。第一次进入会问你是否要进入配置对话,选no,然后按回车,就来到用户模式。输入enable进入特权模式,再输入configure terminal进入全局配置模式。
配置主机名不是必须的,但强烈建议配,尤其是多台设备协同工作时,配错路由器的概率会直线下降。接下来要给R1的两个接口配地址,并确保接口被打开。Cisco设备的接口默认是关闭的,如果你没有输入no shutdown,接口状态会是administratively down,配置再对也没用。
Router> enable Router# configure terminal Router(config)# hostname R1 R1(config)# interface GigabitEthernet0/0/0 R1(config-if)# ip address 172.16.1.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# interface GigabitEthernet0/0/1 R1(config-if)# ip address 192.168.12.1 255.255.255.252 R1(config-if)# no shutdown R1(config-if)# exit很多人会问,为什么配IP还要写掩码?地址和掩码是绑定的,掩码决定了这个接口属于哪个子网,下一个数据包来的时候,路由器拿目标地址和这个掩码做与运算,就能判断它是不是本地直连网段。这里不要偷懒,掩码一定写全。
R2、R3、R4的配置思路完全一样,就是地址不同。R2要配三个接口:
Router> enable Router# configure terminal Router(config)# hostname R2 R2(config)# interface GigabitEthernet0/0/0 R2(config-if)# ip address 172.16.2.1 255.255.255.0 R2(config-if)# no shutdown R2(config-if)# exit R2(config)# interface GigabitEthernet0/0/1 R2(config-if)# ip address 192.168.12.2 255.255.255.252 R2(config-if)# no shutdown R2(config-if)# exit R2(config)# interface GigabitEthernet0/0/2 R2(config-if)# ip address 192.168.23.1 255.255.255.252 R2(config-if)# no shutdown R2(config-if)# exitR3的G0/0/0配172.16.3.1/24,G0/0/1配192.168.23.2/30,G0/0/2配192.168.34.1/30。R4的G0/0/0配172.16.4.1/24,G0/0/1配192.168.34.2/30。全部配完后,可以用show ip interface brief查看所有接口状态,正常情况每个接口的Status都应该是up,Protocol也应该是up。只要看到Status是up、Protocol是down,基本可以确定是封装或线缆问题;如果Status是administratively down,那就是忘了no shutdown。
4. RIPV2配置实操:让4个子网互相“认识”
4.1 network命令到底在做什么
这是整个实验里最需要理解清楚的命令。很多人以为network 172.16.0.0的意思是“把这个网段广播给别人”,其实不完全对。RIP的network命令作用是:告诉路由进程,哪些接口参与RIP路由。路由器会查看自己所有接口的IP,凡是落在network后面这个主类网络范围内的接口,都会开始发送和接收RIP更新,同时把该接口所在的直连网段通告给邻居。
另一个关键点是,RIP的network命令后面只能写主类网络号。如果你写network 172.16.1.0,IOS会把它自动归一成172.16.0.0。如果你写network 192.168.12.0,它也会被自动转换成192.168.0.0。这不叫错误,但你要明白系统实际做了什么,不然看show running-config时发现自己写的命令变了,会莫名其妙。
在本实验的拓扑里,每台路由器都有两类接口:一类属于172.16.0.0这个主类网络,另一类属于192.168.0.0这个主类网络。因此在每台路由器上,只要声明这两个主类网络,就能让所有接口参与RIP。第4.2节的所有配置命令都遵循这个逻辑。
4.2 四台路由器的RIP配置完整对照
RIP配置进入路由进程后,第一件事是version 2,这一步经常有人忘。如果不写,默认跑的是RIPV1,VLSM路由通告就没有了,整个实验会莫名其妙地变得不通。然后写network、关自动汇总。R1的完整配置:
R1(config)# router rip R1(config-router)# version 2 R1(config-router)# network 172.16.0.0 R1(config-router)# network 192.168.0.0 R1(config-router)# no auto-summary R1(config-router)# endR2:
R2(config)# router rip R2(config-router)# version 2 R2(config-router)# network 172.16.0.0 R2(config-router)# network 192.168.0.0 R2(config-router)# no auto-summary R2(config-router)# endR3和R4命令完全相同,也是这两条network加一个no auto-summary。为什么四台都一样?因为每台路由器都有接口落在172.16.0.0和192.168.0.0这两个主类网络里。只要接口参与了RIP,路由就会在邻居间互相传递,直到全网收敛。
配置完成后,可以顺带做一件小事:把连接PC的LAN口设为被动接口。因为那个口下面只有交换机,没有其他路由器,不需要主动发送RIP更新,在路由进程下敲passive-interface GigabitEthernet0/0/0,可以减少无谓的组播报文。这个操作不影响路由学习,属于生产环境里会用到的优化手段。
4.3 验证命令逐个看,确认全网已经收敛
配置完不等于做完,一定要验证。我用得最多的三条命令是show ip route、show ip protocols、show running-config。
show ip route是检查路由表。在R1上正常应该看到类似下面的内容:
R1# show ip route Codes: C - connected, S - static, R - RIP, D - OSPF N - NHRP, B - BGP Gateway of last resort is not set 172.16.0.0/24 is subnetted, 4 subnets C 172.16.1.0/24 is directly connected, GigabitEthernet0/0/0 R 172.16.2.0/24 [120/1] via 192.168.12.2, 00:00:16, GigabitEthernet0/0/1 R 172.16.3.0/24 [120/2] via 192.168.12.2, 00:00:16, GigabitEthernet0/0/1 R 172.16.4.0/24 [120/3] via 192.168.12.2, 00:00:16, GigabitEthernet0/0/1 192.168.12.0/30 is subnetted, 1 subnets C 192.168.12.0/30 is directly connected, GigabitEthernet0/0/1 192.168.23.0/30 is subnetted, 1 subnets R 192.168.23.0/30 [120/2] via 192.168.12.2, 00:00:16, GigabitEthernet0/0/1看到这个路由表,我心里就比较踏实了。每一条R开头的路由,方括号里第一个数字120是管理距离,表示这是RIP路由;第二个数字是跳数。172.16.2.0/24经过1跳,172.16.3.0/24经过2跳,172.16.4.0/24经过3跳,说明全网路由已经传递过来了。
show ip protocols值得专门看一眼,它有一栏会显示“Auto-summarization”是enabled还是disabled。如果这里显示enabled,说明你之前写的no auto-summary没有生效,或者被后面的配置覆盖了,这就是路由学不全的头号嫌疑犯。
配置全部完成后,从PC1上ping PC8(172.16.4.20)。如果通,这个实验的核心就完成了;如果不通,看下一节的排错思路。
5. 典型排错实录:路由学不会、汇总、黑洞
5.1 从“全不通”到“全通”的心路历程
排错最忌讳东敲一下西看两眼。我自己踩过的坑多了之后,总结出一套固定的排查顺序:物理层、接口层、网关、路由表、RIP配置。
拿一个真实遇到的案例来说。有次我搭完这个实验,从PC1 ping PC8怎么都不通。第一步先看PC1能不能ping通自己的网关172.16.1.1。这里有个重要技巧:ping网关和ping跨网段地址的意义不同。网关通,说明PC到路由器的二层链路和IP配置没问题;网关不通,就得查PC的IP填写和交换机连线。
第一步通了,接着在R1上ping自己的互联接口对面那个地址192.168.12.2。这个通了,说明R1和R2之间的三层链路正常。之后在R1上show ip route,发现路由表只有直连路由,没有任何R路由。问题锁定在RIP协议层面。
再看show running-config,发现version 2那行没有,路由器还在跑默认的RIPV1。RIPV1不会通告带掩码的子网路由,172.16.1.0/24这种VLSM网段在RIPV1的世界里根本没法表达,所以路由学不到。补上version 2和no auto-summary后,整个网络立刻通了。这个案例的教训很简单:配置RIP不要只敲router rip加network,version 2真的会影响路由通告的“语言格式”。
5.2 自动汇总引发的“失踪路由”
再说一个隐蔽的坑。如果你在所有路由器上都只配了router rip、version 2、network,但忘写no auto-summary,你会发现一个特别诡异的现场:从R1看,172.16.2.0/24能学到,172.16.3.0/24和172.16.4.0/24学不到;或者从R3看,只看到一条172.16.0.0/16指向R2,根本分不清172.16.1.0和172.16.2.0分别在哪。
原因就是前面提过的自动汇总。R2要把172.16.1.0/24和172.16.2.0/24通告给R3,但R3那边的接口落在192.168.0.0主类网络里,跨了主类边界,于是R2把两条子网路由揉成一条172.16.0.0/16发出去。R3收到后,觉得自己已经知道整个172.16.0.0大网段该怎么走了,后续的子网明细再也不听了。
这种情况下,你在R3上show ip route看到的是类似这样:
R 172.16.0.0/16 [120/1] via 192.168.23.1, 00:00:20, GigabitEthernet0/0/1一条汇总路由把两条精确子网路由吞掉了。解决办法就是全网统一配置no auto-summary,让RIPV2通告每条子网的精确掩码。这个配置放在router rip进程下,配完之后,重新看一下路由表里是否出现172.16.1.0/24、172.16.2.0/24这样带掩码的明细条目。记住一个原则:在支持无类路由的现代网络里,自动汇总几乎永远应该被关闭。
5.3 常见错误速查表
我把这个实验里最常见的毛病整理成了一张表,你可以直接当排错手册用:
| 症状 | 常见原因 | 检查命令 | 解决办法 |
|---|---|---|---|
| PC ping不通网关 | IP/掩码填错,网线没连好 | PC的IP Configuration | 核对地址表,检查线缆类型 |
| 网关通,但跨网段ping不通 | 路由表中缺少目标网段路由 | show ip route | 检查RIP配置和版本 |
| 路由表只有直连路由 | 没有配RIP,或version 2缺失 | show running-config | 补齐router rip配置 |
| 路由条目被汇总成一条主类路由 | 未关闭自动汇总 | show ip protocols | 配no auto-summary |
| 接口Status为administratively down | 忘记no shutdown | show ip interface brief | 接口下敲no shutdown |
| 配置命令看起来是对的,但一直ping丢包 | 中间某一台设备接口down | show ip interface brief 逐台检查 | 逐一确认所有参与接口 |
| 链路邻居路由学得慢 | 30秒更新周期未到 | show ip route 等待或debug ip rip | 用debug ip rip观察更新过程 |
debug ip rip是个好用的工具,在特权模式下敲一下,就能实时看到RIP更新报文的收发过程,包括每条network宣告的网段、下一跳和路由变化。注意实验做完要记得undebug all关掉,否则控制台会一直刷消息。
6. 实验完成后的几个进阶玩法与保存习惯
6.1 保存配置这种小事别偷懒
实验做到这里,网络已经通了,但有个动作很多人会忘:保存配置。模拟器里直接关掉当前实验文件,你刚才敲的所有命令可能全部丢失。在特权模式下执行:
R1# copy running-config startup-config每台路由器都要保存一遍,或者直接用Packet Tracer的文件保存功能。养成这个习惯之后,你再打开这个实验文件,所有配置依然在,可以直接接着做后面的实验。我把这当成一个无声的提醒:生产环境里,配置不保存等于没做。
6.2 加一点安全配置,把RIPV2玩出新花样
如果觉得这个实验已经熟练了,可以往里面加两个进阶点。第一个是RIP认证,目的是防止不认识的路由器往你的网络里注入虚假路由。配置一个密钥链,然后在参与RIP的接口上启用MD5认证。第二个是前面提过的被动接口,LAN口不需要发送RIP更新,设置成passive可以降低无意义的组播报文。这两个点对理解真实网络运维很有帮助,也让实验不再是单纯敲命令。
6.3 从RIP走向OSPF,下一步该换哪些配置
等RIPV2的机制吃透了,我非常建议你把实验推倒重来一遍,把RIP换成OSPF。你会发现接口地址、网段规划完全没有变化,要变的只是路由协议部分:把router rip换成router ospf 1,把network命令换成network 172.16.1.0 0.0.0.255 area 0这种通配符写法。同样是4个子网互通,但OSPF的收敛速度、路由表结构、排错思路和RIP完全不一样。有对比才有理解,这对你后续学习非常有价值。
这个实验做通很简单,做透很难。我个人的体会是,别满足于“照着配置敲完能ping通”这个结果,尝试关掉no auto-summary看看路由表怎么变化,尝试故意写错一个接口地址再排一遍错,这些“故意搞破坏”的过程,才是真正长本事的时候。你踩过的坑越多,对路由协议的理解就越接近那个“一次就配通”的人。