1. 从单机到互联:为什么多路由器组网是网络学习的第一个分水岭
很多人学网络配置,最开始都是在模拟器里拖一台路由器、一台交换机、几台PC,配个IP地址,ping通了就觉得自己会了。这种单路由器加单交换机的拓扑,说白了就是一个孤岛,所有设备都在同一个广播域或者同一个路由域里,数据包怎么走根本不需要动脑子。但真实世界的网络从来不是这样的。一个稍微像样点的办公环境,至少会有办公区、服务器区、访客区,每个区域可能由不同的路由器隔开,中间还要跑动态路由协议。这就是多路由器与局域网互联的场景,也是网络学习从玩具阶段进入实战阶段的第一道门槛。
这篇文章要聊的,就是怎么在Packet Tracer里搭建一个由多个路由器与多个局域网组成的网络,并且让它真正跑起来。关键词很明确:多路由器互联、局域网划分、静态路由与动态路由的选择、Packet Tracer仿真操作。适合谁看?如果你已经会配单台路由器的接口IP,知道什么是子网掩码,但一遇到两台以上路由器就不知道数据包该往哪走,那这篇内容就是给你准备的。如果你已经能熟练配OSPF,也可以看看我在仿真过程中踩过的那些坑,说不定能帮你省下几个小时的排错时间。
我个人的习惯是,学任何网络技术,先在Packet Tracer里把拓扑搭出来,把线连对,把IP规划好,然后再谈协议配置。因为仿真环境最大的好处就是你可以随便折腾,配错了大不了删掉重来,不会影响任何生产业务。但仿真也有一个陷阱:很多人连线的逻辑本身就是错的,比如该用交叉线的地方用了直通线,该划分VLAN的地方把所有PC塞进同一个网段,结果配置怎么调都不通。所以这篇文章不会只讲命令,我会把拓扑设计、地址规划、路由选型、排错思路整个串起来讲,让你看完能自己复现一个类似的多路由器网络。
2. 拓扑设计与地址规划:动手之前先把图纸画清楚
2.1 为什么不能上来就拖设备连线
我见过太多人打开Packet Tracer就开始拖路由器、拖交换机、拖PC,然后随手拿根线就连,连完发现接口不够用,或者网段冲突了,又回头删设备重新来。这种操作方式效率极低,而且容易把逻辑搞乱。正确的做法是先在纸上或者脑子里把拓扑结构想清楚:有几台路由器、每台路由器负责哪几个网段、路由器之间怎么连、终端设备怎么接入。
一个典型的多路由器局域网拓扑可以这样设计:三台路由器R1、R2、R3组成一个三角形或者链式结构。R1下面挂一个局域网,比如192.168.1.0/24,里面有一台交换机和几台PC。R2下面挂另一个局域网,比如192.168.2.0/24。R3作为中间节点,负责转发R1和R2之间的流量。路由器之间的互联链路使用单独的网段,比如10.0.0.0/30这种只有两个可用地址的小网段。这样设计的好处是广播域清晰,每个局域网内部的流量不会跑到路由器之间的链路上,路由表也干净。
为什么路由器之间要用/30的网段?因为一条点对点链路只需要两个IP地址,一头一个。/30的子网掩码是255.255.255.252,可用地址正好两个。用/24虽然也能通,但浪费了254个地址,而且在路由表里看起来不够专业。当然,在Packet Tracer里你用什么网段都行,但养成好习惯没坏处。
2.2 地址规划表怎么列
地址规划是多路由器组网的核心工作之一。我习惯在配置之前先列一张表,把每个设备的每个接口、IP地址、子网掩码、所属网段都写清楚。这张表看起来简单,但能帮你避免90%的配置错误。下面是一个示例规划:
| 设备 | 接口 | IP地址 | 子网掩码 | 所属网段 | 说明 |
|---|---|---|---|---|---|
| R1 | G0/0 | 192.168.1.1 | 255.255.255.0 | 192.168.1.0/24 | 局域网A网关 |
| R1 | S0/0/0 | 10.0.0.1 | 255.255.255.252 | 10.0.0.0/30 | 连R3 |
| R2 | G0/0 | 192.168.2.1 | 255.255.255.0 | 192.168.2.0/24 | 局域网B网关 |
| R2 | S0/0/0 | 10.0.0.5 | 255.255.255.252 | 10.0.0.4/30 | 连R3 |
| R3 | S0/0/0 | 10.0.0.2 | 255.255.255.252 | 10.0.0.0/30 | 连R1 |
| R3 | S0/0/1 | 10.0.0.6 | 255.255.255.252 | 10.0.0.4/30 | 连R2 |
| PC1 | 网卡 | 192.168.1.10 | 255.255.255.0 | 192.168.1.0/24 | 网关192.168.1.1 |
| PC2 | 网卡 | 192.168.2.10 | 255.255.255.0 | 192.168.2.0/24 | 网关192.168.2.1 |
这张表列出来之后,配置的时候照着填就行,不用一边配一边想。注意PC的网关一定要指向直连路由器的接口地址,否则PC根本不知道把包发给谁。很多人ping不通就是因为PC网关配错了,或者压根没配。
2.3 设备选型和接口选择
Packet Tracer里路由器型号很多,我一般用2911或者4321这种带千兆接口的。如果要做串口连接,需要加WIC-2T模块。串口线在Packet Tracer里叫Serial DCE和Serial DTE,DCE端需要配时钟频率,DTE端不用。如果你用GNS3或者EVE-NG,接口命名可能不一样,但逻辑是一样的。
交换机用2960就行,够用。PC直接用Generic或者PC-PT都可以。连线的时候注意:路由器到路由器用交叉线或者串口线,路由器到交换机用直通线,交换机到PC用直通线。Packet Tracer会自动识别线序,但如果你手动选错了,链路可能起不来。我一般直接用自动连线工具,省事。
提示:串口链路两端必须有一端配置clock rate,否则链路协议状态会是down。DCE端通常是先插的那一端,或者看图标上有没有时钟标记。
3. 基础配置实操:从接口IP到路由表
3.1 路由器接口配置的完整流程
配置路由器接口,我习惯按这个顺序来:先进入全局配置模式,改主机名,配接口IP,开接口,最后保存。以R1为例:
Router> enable Router# configure terminal Router(config)# hostname R1 R1(config)# interface GigabitEthernet0/0 R1(config-if)# ip address 192.168.1.1 255.255.255.0 R1(config-if)# no shutdown R1(config-if)# exit R1(config)# interface Serial0/0/0 R1(config-if)# ip address 10.0.0.1 255.255.255.252 R1(config-if)# clock rate 64000 R1(config-if)# no shutdown R1(config-if)# exit这里有几个细节值得说。第一,no shutdown必须敲,路由器接口默认是关闭的,不敲这个命令接口永远是down。第二,串口如果是DCE端,clock rate必须配,64000是最低档,Packet Tracer里配多少都行,实际设备上要根据链路带宽来。第三,配完接口后可以用show ip interface brief查看接口状态,IP地址和协议状态一目了然。
R2和R3的配置类似,照着地址规划表填就行。R3有两个串口,分别连R1和R2,注意接口编号别搞混。
3.2 静态路由:简单直接但不够灵活
所有接口配好之后,R1能ping通R3的10.0.0.2,R2能ping通R3的10.0.0.6,但R1 ping不通R2的192.168.2.1。为什么?因为R1的路由表里没有192.168.2.0/24这个网段,它不知道往哪转发。这时候就需要路由。
最简单的办法是配静态路由。在R1上告诉它:要去192.168.2.0/24,下一跳是10.0.0.2。命令是:
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2在R2上告诉它:要去192.168.1.0/24,下一跳是10.0.0.6:
R2(config)# ip route 192.168.1.0 255.255.255.0 10.0.0.6R3作为中间路由器,它直连了10.0.0.0/30和10.0.0.4/30两个网段,但它也需要知道192.168.1.0/24和192.168.2.0/24怎么走。所以在R3上要配两条静态路由:
R3(config)# ip route 192.168.1.0 255.255.255.0 10.0.0.1 R3(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.5配完之后,R1应该能ping通192.168.2.10了。静态路由的优点是配置简单、不占CPU、可控性强。缺点是网络拓扑一变,所有路由器上的静态路由都要手动改。如果只是做实验,静态路由完全够用。但如果是真实环境,路由器数量超过三五台,静态路由的维护成本就上来了。
3.3 动态路由协议的选择:RIP还是OSPF
Packet Tracer支持多种动态路由协议,最常用的是RIP和OSPF。RIP配置简单,但跳数限制15,收敛慢,适合小网络。OSPF配置稍微复杂一点,但收敛快、支持区域划分、适合中大型网络。在这个三路由器的拓扑里,用哪个都行,但我建议用OSPF,因为它是现在企业网的主流。
OSPF的基本配置思路是:每台路由器启用OSPF进程,宣告自己直连的网段。注意,OSPF宣告的时候要用反掩码,比如192.168.1.0/24的反掩码是0.0.0.255。R1的OSPF配置:
R1(config)# router ospf 1 R1(config-router)# network 192.168.1.0 0.0.0.255 area 0 R1(config-router)# network 10.0.0.0 0.0.0.3 area 0R2和R3类似,把所有直连网段都宣告进area 0。配完之后,用show ip route看路由表,应该能看到O标记的路由条目。这时候R1 ping R2的局域网地址应该就通了。
注意:OSPF的进程号1只是本地有效,不同路由器可以用不同的进程号,不影响邻居建立。但area号必须匹配,否则邻居关系起不来。
4. 仿真验证与排错:怎么确认网络真的通了
4.1 用ping和traceroute验证连通性
配置完成后,第一步是在PC1上ping PC2。在Packet Tracer里,打开PC1的Command Prompt,输入ping 192.168.2.10。如果通了,说明整个路径的路由都正确。如果不通,先看第一跳能不能通,也就是ping网关192.168.1.1。如果网关都ping不通,说明PC的IP配置或者交换机链路有问题。如果网关通了但目标不通,那就是路由问题。
traceroute命令在Packet Tracer里叫tracert,可以显示数据包经过的每一跳。在PC1上tracert 192.168.2.10,应该看到第一跳192.168.1.1,第二跳10.0.0.2,第三跳10.0.0.5,最后到192.168.2.10。如果某一跳显示超时,说明那台路由器没有回程路由或者接口down了。
4.2 常见问题速查表
| 现象 | 可能原因 | 排查方法 |
|---|---|---|
| PC ping不通网关 | PC IP配错、交换机链路down、路由器接口down | 检查PC的IP和掩码,show ip interface brief看接口状态 |
| 网关通但目标不通 | 路由器缺少路由条目 | show ip route看目标网段是否存在 |
| 串口链路协议down | 缺少clock rate、线序错误 | 检查DCE端是否配时钟,换线重试 |
| OSPF邻居起不来 | area号不匹配、网络类型不匹配、接口未宣告 | show ip ospf neighbor看邻居状态 |
| ping通但tracert超时 | 中间路由器不回ICMP超时报文 | 正常现象,不影响数据转发 |
这张表里的问题我都遇到过。最坑的一次是串口链路协议down,查了半天以为是线的问题,最后发现是clock rate没配。还有一次是OSPF邻居卡在EXSTART状态,原因是两端接口的MTU不一致,虽然Packet Tracer里很少出现,但真实设备上很常见。
4.3 用模拟模式看数据包的旅程
Packet Tracer有一个很好用的功能叫Simulation模式,可以一步一步看数据包从PC1到PC2的完整过程。打开Simulation面板,点击Show All,然后在PC1上发一个ping包。你会看到数据包在每一层被封装和解封装,经过交换机时看MAC地址表,经过路由器时看路由表。这个功能对于理解多路由器转发逻辑非常有帮助。
我建议你在配完静态路由之后,用Simulation模式走一遍,看看数据包在R1上是怎么查路由表的,在R3上又是怎么转发的。你会发现,数据包每经过一台路由器,源MAC和目的MAC都会变,但源IP和目的IP始终不变。这就是路由和交换的本质区别。
5. 进阶话题:从能通到好用还有多远
5.1 默认路由和浮动路由的使用场景
如果你的网络里有一台路由器是出口路由器,所有未知流量都往它那里扔,那就可以配默认路由。比如R1和R2都可以配一条ip route 0.0.0.0 0.0.0.0 10.0.0.2,把所有不知道往哪走的包都发给R3。但这样配有个问题:如果R3挂了,流量就黑洞了。所以真实环境里通常会配浮动路由,也就是一条主路由加一条备份路由,主路由的AD值小,备份路由的AD值大,主路由失效时备份路由自动生效。
在Packet Tracer里,你可以给静态路由指定AD值,比如:
R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.2 1 R1(config)# ip route 192.168.2.0 255.255.255.0 10.0.0.6 10第一条的AD是1,第二条的AD是10。正常情况下第一条生效,如果10.0.0.2不可达了,第二条才会出现在路由表里。这个技巧在实际项目中非常实用,考试里也经常考。
5.2 局域网内部的VLAN划分与单臂路由
前面说的局域网都是一个网段,所有PC在同一个广播域里。如果局域网内部要划分VLAN,比如办公区和访客区隔离,那就需要在交换机上配VLAN,然后在路由器上配单臂路由或者用三层交换机。单臂路由的配置思路是在路由器的一个物理接口上划分子接口,每个子接口对应一个VLAN,封装dot1Q协议。
R1(config)# interface GigabitEthernet0/0.10 R1(config-subif)# encapsulation dot1Q 10 R1(config-subif)# ip address 192.168.10.1 255.255.255.0 R1(config-subif)# exit R1(config)# interface GigabitEthernet0/0.20 R1(config-subif)# encapsulation dot1Q 20 R1(config-subif)# ip address 192.168.20.1 255.255.255.0这样配置之后,VLAN 10和VLAN 20之间的流量就会经过路由器转发,实现互通或隔离。单臂路由的缺点是所有VLAN间流量都走同一条物理链路,带宽可能成为瓶颈。所以现在更多用三层交换机做VLAN间路由,性能更好。
5.3 网络地址转换与访问控制列表的初步接触
多路由器组网之后,你可能还想让内网PC能访问外网,或者限制某些PC不能访问特定网段。这就涉及到NAT和ACL。NAT的配置思路是在出口路由器上定义inside和outside接口,然后用ACL匹配需要转换的流量,最后在接口上应用NAT规则。ACL则可以精确控制哪些源IP能访问哪些目的IP。
这两个话题展开讲都能单独写一篇,这里只提一下它们在多路由器拓扑里的位置。NAT通常配在边界路由器上,ACL可以配在任何路由器的接口上。在Packet Tracer里做实验的时候,建议先把路由配通,再加ACL,否则ACL一配错,路由协议报文可能被过滤掉,邻居都起不来。
6. 我在仿真实验里踩过的那些坑
第一个坑是接口状态。Packet Tracer里路由器接口默认是shutdown的,我刚开始学的时候经常忘了敲no shutdown,然后对着接口状态查半天。后来养成习惯,配完IP立刻敲no shutdown,再用show ip interface brief确认一下。
第二个坑是串口时钟。DCE端不配clock rate,链路协议就是down。Packet Tracer里有时候会自动给一端配时钟,有时候不会,所以最好手动确认一下。如果你不确定哪端是DCE,看接口图标上有没有一个小钟表标记。
第三个坑是OSPF的network命令。反掩码写错是家常便饭,比如把0.0.0.255写成0.0.0.0,结果只宣告了一个地址,邻居起不来。我的经验是,宣告网段的时候直接用network 192.168.1.0 0.0.0.255 area 0这种格式,反掩码就是子网掩码取反,/24的反掩码是0.0.0.255,/30的反掩码是0.0.0.3。
第四个坑是PC的网关。PC的网关必须指向直连路由器的接口地址,不能指向其他路由器的地址。因为PC没有路由功能,它只能把包发给网关,如果网关地址不在同一个网段,PC根本发不出去。
第五个坑是保存配置。Packet Tracer里配完不保存,关掉再打开就全没了。所以配完一定要write或者copy running-config startup-config。虽然仿真环境里重配一遍也不费事,但养成保存的习惯对真实设备操作很重要。
提示:Packet Tracer的Simulation模式里,你可以把数据包过滤只显示ICMP,这样看ping的过程更清晰。另外,用
show ip route看路由表的时候,注意看路由条目的来源标记,C是直连,S是静态,O是OSPF,O IA是OSPF区域间路由。
7. 从仿真到真实设备的迁移建议
Packet Tracer里的配置命令和真实设备有90%以上是相同的,但也有一些差异。比如Packet Tracer不支持某些高级特性,接口命名规则也可能不同。如果你在仿真里配通了,想迁移到真实设备上,需要注意几点:真实设备的接口编号可能从0/0开始,也可能是1/0/1这种三段式;真实设备的clock rate需要根据运营商提供的时钟来配;真实设备的OSPF默认参考带宽是100Mbps,如果接口是千兆,需要改参考带宽才能正确计算cost。
另外,真实环境里通常会有冗余链路和生成树协议,Packet Tracer里虽然也支持STP,但默认行为可能和真实设备有差异。所以仿真实验主要是帮你理解原理和熟悉命令,真正上手真实设备之前,最好再找一台旧设备练练手,或者用GNS3这种更接近真实环境的模拟器。
我个人觉得,Packet Tracer最大的价值是让你在零成本的情况下把网络逻辑跑通。你把三台路由器、两个局域网、静态路由和OSPF都玩一遍,再去学BGP、MPLS这些高级话题,心里就有底了。因为不管协议多复杂,核心逻辑都是一样的:路由器查表、转发、封装、解封装。你把基础拓扑玩透了,后面学什么都快。
最后分享一个小技巧:在Packet Tracer里做实验的时候,可以给每台设备加一个描述,比如description Link-to-R3,这样看接口的时候一眼就知道这条线连到哪。命令是interface Serial0/0/0然后description Link-to-R3。这个习惯在真实设备上更重要,因为真实设备的接口面板你可能根本看不到,全靠描述来识别。