做网络实验的时候,最怕的不是设备不会用,而是“感觉自己配得都对,但数据就是不通”。路由器交换与配置综合实验(一)内网配置,就是一个非常典型、也非常容易在这种困惑里翻车的实验。它的目标其实很直白:在一台路由器和两台交换机组网的小型内网里,完成VLAN划分、交换机级联、路由器子接口配置,最终让不同VLAN的PC在同一个内网中能正常互通。
这篇文章是我在模拟网络环境里完整跑完这个实验后的复盘记录。我会把从拓扑设计、IP规划,到交换机配置、路由器子接口配置,再到连通性验证和排错的全过程写出来。如果你正在做网络课程实验、准备实操考核,或者刚开始接触企业内网搭建,这篇内容可以省掉你大量查资料的时间。下面开始,每一步都可以直接照着操作,也可以替换成你自己的IP段和设备编号。
1. 实验场景与网络拓扑设计
1.1 先搞清楚内网配置要解决什么问题
很多人在做这个实验时,一上来就开始敲命令,结果敲了一半发现网段、VLAN、端口全对不上,又回头重新看拓扑。这个实验最核心的逻辑,不是“把设备配置到能亮灯”,而是搞清楚内网里广播域和三层转发的关系。
先看需求。假设某个小型公司要搭建内部网络,里面有研发部和财务部两个部门。这两个部门不能直接处在同一个广播域里,否则部门之间的广播流量互相干扰,也没有任何访问控制边界。所以常规做法是划分VLAN:研发部放在VLAN 10,财务部放在VLAN 20。但VLAN一划分,问题也跟着来了:二层交换机天然不能跨VLAN转发数据,同一个VLAN内的PC能互访,不同VLAN的PC之间却互相看不到。要让它们能通信,就必须引入三层设备,也就是路由器。
换句话说,这个实验的本质是:先用VLAN把内网切成多个隔离的二层广播域,再用路由器把这些广播域在逻辑上重新连通。整个过程必须按“先二层、后三层”的思路推进,先让交换机侧把VLAN和Trunk理清楚,再让路由器侧终结VLAN、提供网关,最终整张内网才能转起来。
1.2 拓扑接线与设备选型思路
实验环境中不必追求花哨的机型,关键是把角色分清楚。我用了一台路由器、两台交换机、四台PC,下面按“三层核心、二层接入、终端接入”三个层级来规划。
连接关系如下:
┌──────────┐ │ R1 │ └────┬─────────┘ │ GE0/0/0(Trunk) │ ┌───────┴────────┐ │ SW1 │ └──┬───┬───┬────┘ │ │ │ PC1 PC2 │ GE0/0/4(Trunk 级联) │ ┌───────┴──────┐ │ SW2 │ └──┬───┬───────┘ │ │ PC3 PC4具体接线方式为:R1的GE0/0/0连接SW1的GE0/0/24,SW1的GE0/0/1连接PC1,GE0/0/2连接PC2,GE0/0/4连接SW2的GE0/0/24,SW2的GE0/0/1连接PC3,GE0/0/2连接PC4。
为什么要用两台交换机而不是一台?这个设计不是多此一举。如果只有一台交换机,VLAN和Trunk的验证范围只局限在单设备内,很多人在真实项目里遇到的“交换机级联后数据不通”的问题根本暴露不出来。加一台交换机之后,PC1到PC3要跨交换机通信,PC2到PC4也要跨交换机通信,Trunk链路是实验里很重要的一环,必须练到。
1.3 IP 与 VLAN 规划表
把规划写清楚再动手,是整个实验里最值的习惯。我按部门、网段、VLAN、网关、设备接口五个维度做了下面这张表:
| 部门 | 网段 | VLAN | 网关 | 接入交换机端口 | 对应PC |
|---|---|---|---|---|---|
| 研发部 | 192.168.10.0/24 | VLAN 10 | 192.168.10.1 | SW1 GE0/0/1、SW2 GE0/0/1 | PC1、PC3 |
| 财务部 | 192.168.20.0/24 | VLAN 20 | 192.168.20.1 | SW1 GE0/0/2、SW2 GE0/0/2 | PC2、PC4 |
PC的IP地址分配如下:
| 终端 | IP地址 | 子网掩码 | 网关 |
|---|---|---|---|
| PC1 | 192.168.10.10 | 255.255.255.0 | 192.168.10.1 |
| PC2 | 192.168.10.20 | 255.255.255.0 | 192.168.10.1 |
| PC3 | 192.168.20.10 | 255.255.255.0 | 192.168.20.1 |
| PC4 | 192.168.20.20 | 255.255.255.0 | 192.168.20.1 |
这里解释一下规划的思路:内网地址选用192.168.0.0/16这个私有地址段,不会与公网冲突,适合实验;每个部门单独用一段/24子网,能容纳254台主机,规模上完全够用;网关统一取每个子网的第一个地址,也就是.1,这是业界约定俗成的习惯,便于记忆和排查。VLAN号取10和20,也只是为了让网段和VLAN之间有一个直观的对应关系,实际项目中自然可以根据部门结构灵活调整。
2. 交换机侧配置:VLAN 划分与 Trunk 级联
2.1 交换机基础初始化
拿到一台交换机,第一件事不是急着配VLAN,而是把设备基础环境理干净。我建议按“改设备名、关日志提示、批量建VLAN”这个顺序来。
下面以SW1为例,整体配置流程如下:
<Device> system-view [Device] sysname SW1 [SW1] undo info-center enable [SW1] vlan batch 10 20 [SW1] quit这里每一句都有它存在的意义。sysname SW1是把设备重命名,否则多台交换机同时开起来,几个命令行窗口全是默认设备名,你根本分不清自己在操作哪台设备。undo info-center enable用来关闭系统日志和告警信息弹出,这个操作在实际调试时非常实用,否则设备一旦有接口up、down或者协议状态变化,信息就会不停打印在命令行界面上,直接干扰输入。vlan batch 10 20则是一次性创建VLAN 10和VLAN 20,不用进入VLAN视图一个个创建,效率更高。
SW2的初始化与SW1完全相同,只需要把sysname换成SW2。所有设备建议都做同样的基础初始化,这也是职业习惯,一个连设备名都不改的网络工程师,在真实项目里很难让人放心。
2.2 把 PC 接入端口划分到对应 VLAN
交换机上连接PC、打印机、服务器这类终端设备的端口,通常配置为Access模式。Access端口的特点是只属于一个VLAN,发出的帧不带802.1Q标签,这正好符合终端设备“不感知VLAN标签”的特性。
SW1的端口划分如下:
[SW1] interface GigabitEthernet 0/0/1 [SW1-GigabitEthernet0/0/1] port link-type access [SW1-GigabitEthernet0/0/1] port default vlan 10 [SW1-GigabitEthernet0/0/1] quit [SW1] interface GigabitEthernet 0/0/2 [SW1-GigabitEthernet0/0/2] port link-type access [SW1-GigabitEthernet0/0/2] port default vlan 20 [SW1-GigabitEthernet0/0/2] quitSW2也一样处理,把GE0/0/1划入VLAN 10,GE0/0/2划入VLAN 20。
操作中有个细节必须注意:在多数厂商交换机上,第一步一定要先把端口链路类型改成access,然后再设置default vlan。如果顺序反了,部分设备会报错,或者说端口当前是Hybrid类型,不允许直接设置PVID。这一点是很多人第一次做实验被卡住的地方,而且报错信息往往一闪而过,很容易漏看。
划分完成后,用display vlan命令检查一下,确认VLAN 10下已经有GE0/0/1,VLAN 20下已经有GE0/0/2。这一步虽然简单,但能避免后面连通性测试时返工。
2.3 级联口与上联口的 Trunk 配置
Trunk端口承担的是“交换机之间互联”和“交换机与路由器上联”的职责。Trunk链路与Access链路最大的区别在于:Trunk链路上传输的帧会打上VLAN标签,这样交换机收到一个帧时,能立刻识别它属于哪个VLAN。
SW1上有两个口需要配置Trunk。一个是连接路由器的GE0/0/24,另一个是级联SW2的GE0/0/4。配置如下:
[SW1] interface GigabitEthernet 0/0/24 [SW1-GigabitEthernet0/0/24] port link-type trunk [SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/24] quit [SW1] interface GigabitEthernet 0/0/4 [SW1-GigabitEthernet0/0/4] port link-type trunk [SW1-GigabitEthernet0/0/4] port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/4] quitSW2上连接SW1的GE0/0/24也做同样配置:
[SW2] interface GigabitEthernet 0/0/24 [SW2-GigabitEthernet0/0/24] port link-type trunk [SW2-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 [SW2-GigabitEthernet0/0/24] quitTrunk配置里有几个隐藏的坑。第一个是allow-pass vlan后面到底写哪些VLAN。很多教材会写成permit vlan all,但这实际上是个容易埋雷的习惯。实验中明确只放行VLAN 10和20就够了,都放行反而掩盖了真实项目里“VLAN放行不精确”的问题。第二个坑是两端Trunk的放行列表必须一致。SW1上GE0/0/4放行了VLAN 10和20,SW2的GE0/0/24也必须放行同样的VLAN,一旦某一端漏配,跨交换机的VLAN通信就会中断。第三个坑是配置好Trunk之后,最好用display port vlan命令确认一下端口类型、PVID和允许通过的VLAN列表,而不是想当然认为命令输对了就万事大吉。
3. 路由器侧配置:子接口终结 VLAN 实现三层互通
3.1 为什么需要路由器,为什么选“单臂路由”
交换机配置到目前为止,只解决了“同一VLAN内的PC能互访”,因为二层交换机的转发机制只认MAC地址和VLAN标签,它没法在一个帧的目的地是另一个VLAN时,把这个帧正确地转发出去。要让VLAN 10里的PC1去访问VLAN 20里的PC3,就必须有一个三层设备来根据目标IP地址做路由决策,这个设备通常就是路由器。
但要路由器接进这个内网,有一个设计问题要处理。交换机把PC分成了VLAN 10和VLAN 20,路由器得有办法同时接触到这两个VLAN。最简单的思路是用两个物理接口,分别接交换机的两个Access口,一个进VLAN 10,一个进VLAN 20,相当于用两个“网口”各自带一个部门网关。这个方案在小型实验里可行,但代价是占用了路由器的两个物理端口和交换机的两个上联口,如果以后部门扩到五个甚至十个,物理接口根本不够用。
更合理的方案是“单臂路由”,也就是子接口方式。让交换机的上联口配置成Trunk,把VLAN 10和VLAN 20的帧都通过802.1Q标签标记后送到路由器的同一个物理接口上,路由器在这个物理接口下创建多个逻辑子接口,每个子接口负责终结一个VLAN、配置一个网关地址。物理接口只有一个,逻辑接口却可以挂很多个,这种设计更贴近真实企业网络中用三层设备做网关的做法。
3.2 子接口配置全过程
路由器侧的操作核心是子接口。这里需要逐条看,因为有三条命令缺一不可。
配置步骤如下:
<Device> system-view [Device] sysname R1 [R1] interface GigabitEthernet 0/0/0 [R1-GigabitEthernet0/0/0] undo shutdown [R1-GigabitEthernet0/0/0] quit [R1] interface GigabitEthernet 0/0/0.10 [R1-GigabitEthernet0/0/0.10] dot1q termination vid 10 [R1-GigabitEthernet0/0/0.10] ip address 192.168.10.1 255.255.255.0 [R1-GigabitEthernet0/0/0.10] arp broadcast enable [R1-GigabitEthernet0/0/0.10] quit [R1] interface GigabitEthernet 0/0/0.20 [R1-GigabitEthernet0/0/0.20] dot1q termination vid 20 [R1-GigabitEthernet0/0/0.20] ip address 192.168.20.1 255.255.255.0 [R1-GigabitEthernet0/0/0.20] arp broadcast enable [R1-GigabitEthernet0/0/0.20] quitGE0/0/0.10的命名意思是“物理口GE0/0/0上的第10号逻辑子接口”,编号可以随便写,但建议和VLAN ID对应起来,便于识别。dot1q termination vid 10的含义是告诉子接口:只处理带有VLAN 10标签的帧,这是子接口能够区分不同VLAN的关键。ip address命令则是给这个子接口配置IP地址,同时也就定义了对应VLAN的网关地址。arp broadcast enable这条命令,在实验环境中尤其重要。子接口默认不处理广播帧,如果不开这个功能,PC发出“谁是这个网段的网关”的ARP请求时,路由器不会响应,PC就会一直认为网关不可达,表现出来就是“网关配了却ping不通”。很多新手配置单臂路由失败,90%的问题就出在这里。
三条命令的配置顺序不能乱。先要进入子接口视图,再配置VLAN终结,再配IP,最后打开ARP广播处理。如果先配了IP再配置dot1q,部分设备的配置不会报错,但逻辑上显得很混乱,排错时也不容易理清思路。
3.3 检查路由表和接口状态
子接口配置完之后,不要急着去PC上ping,先做静态检查。在R1上执行display ip routing-table,这个时候路由表里应该出现两条直连路由:
192.168.10.0/24 Direct GE0/0/0.10 192.168.20.0/24 Direct GE0/0/0.20看到这两条条目,说明路由器的两个子接口都已经配好IP,并且处于up状态,路由器已经知道自己连接了哪个网段。通过display current-configuration interface GigabitEthernet 0/0/0.20可以进一步确认dot1q termination vid和IP地址没有写错。
这里还要检查一个容易被忽略的点:物理接口GE0/0/0本身不能被配置IP地址。一旦物理口上配置了一个普通IP,它的子接口可能不会正常工作,逻辑上会造成干扰。所以在我的配置里,只对物理接口执行undo shutdown将它激活,然后直接把所有IP都放在子接口上。
4. 终端配置与连通性测试
4.1 PC 端 IP 和网关配置
模拟器的图形界面里配置PC非常简单,双击PC图标,在网卡配置页填上IP地址、子网掩码和网关就行。关键是网关地址必须填对,PC1和PC2属于VLAN 10,网关填192.168.10.1;PC3和PC4属于VLAN 20,网关填192.168.20.1。判断一个主机是否需要走网关,就看目标IP和本机IP是否在同一个网段。PC1要访问PC3,目标IP是192.168.20.10,和本机192.168.10.10不在一个网段,所以PC1先把数据包发给网关192.168.10.1,由路由器决定下一步往哪走。这个流程是整个实验的“题眼”,不理解它,后面测连通性的时候就会瞎猜。
4.2 分层次做连通性测试
配置完成后,测试顺序很重要。我的习惯是由近到远逐层验证,不要一上来就想着跨VLAN两通。
第一步,测试网关。PC1上ping 192.168.10.1,如果能通,说明PC到网关的二层链路和路由器的VLAN终结都是正常的。
第二步,测试同VLAN互通。PC1上ping 192.168.10.20,也就是PC2。这两个PC都在VLAN 10,数据包由SW1直接二层转发,不经过路由器。通了说明交换机的Access端口划分正确。
第三步,测试跨VLAN互通。PC1上ping 192.168.20.10,也就是PC3。注意PC3挂在SW2下面,数据包要经过SW1到SW2的Trunk级联链路,再从SW2的Access口出去,最终到达PC3。这个测试通了,说明交换机级联Trunk和路由器子接口三层转发都正确。
第四步,测试跨交换机跨VLAN,用PC2去ping PC4,也就是192.168.20.20。这一步把链路中的每一个环节都再压了一遍,基本可以把内网的连通性完整覆盖。
下面是完整的测试用例表:
| 测试对象 | 执行命令 | 预期结果 |
|---|---|---|
| PC1 → 网关 | ping 192.168.10.1 | 通 |
| PC1 → PC2(同VLAN同交换机) | ping 192.168.10.20 | 通 |
| PC1 → PC3(跨VLAN跨交换机) | ping 192.168.20.10 | 通 |
| PC2 → PC4(跨VLAN跨交换机) | ping 192.168.20.20 | 通 |
| PC3 → PC1(反向跨VLAN) | ping 192.168.10.10 | 通 |
测试时注意一个现象:首次ping一个目标,第一个包经常出现超时然后才通。这是正常现象,因为第一次ping之前,PC要先发送ARP请求解析目标或网关的MAC地址,解析完成后ICMP包才能发出。如果看到“第一包超时、后续包全通”,不要误以为配置有问题。
4.3 观察 802.1Q 标签与 ARP 交互
如果只满足于“能通就行”,会错过这个实验最有价值的部分。我强烈建议在SW1与R1相连的链路上抓包观察一下,模拟器一般自带抓包功能。在PC1上ping PC3,然后在抓包里观察:从PC1发出的帧到达R1之前,在Trunk链路上会带有一个802.1Q标签,标签里的VLAN ID应该是10;R1响应的帧同样也带802.1Q标签。而在连PC1的Access口上抓包,能看到帧是干净的,没有802.1Q标签。这就是Access端口剥离标签、Trunk端口保留标签的直观证据。
再看ARP交互,跨VLAN通信的第一个包往往是ARP请求,这个请求不是发给目标PC,而是发给网关。观察ARP请求的目标MAC,会发现它是PC1所在网段网关192.168.10.1的MAC,请求帧的源MAC是PC1的MAC。真正到PC3的ICMP包,是路由器通过子接口GE0/0/0.20重新封装后发出的,源MAC已经换成了路由器的MAC。这个细节能帮你彻底理解“网关”在三层通信里的角色。
5. 常见问题与排错实录
5.1 子接口配了还是 ping 不通网关
我见过太多人卡在这个问题上。拓扑、IP、VLAN看起来都对,但PC ping网关就是不同。按经验,优先查下面几个点。
第一,子接口状态。在路由器上用display ip interface brief查看GE0/0/0.10和GE0/0/0.20,有没有处于up状态。如果子接口down,可能是物理口没激活,或者dot1q配置有问题。
第二,ARP是否响应。在R1上执行display arp,看看有没有学习到PC1的IP和MAC映射。如果路由器的ARP表里能看到PC1,说明PC发出的ARP请求已经到达路由器;如果看不到,问题大概率出在链路或交换机Trunk配置。
第三,检查常被遗忘的arp broadcast enable。如果子接口配置里漏了这条命令,PC发ARP请求,路由器收到后不会回应,PC会一直显示“请求超时”。添加命令后立刻能通。
第四,检查交换机上连路由器的那个口,是不是真的Trunk。如果这个口配成了Access,那么只有一个VLAN的帧能到达路由器,另一个VLAN的PC自然ping不通网关。
5.2 同 VLAN 能通,跨 VLAN 不通
这个现象说明二层链路问题不大,因为同一VLAN的包走的是交换机转发,能通就表示Access口配置正确、级联链路正常。问题集中在三层。按以下顺序排查。
先看R1路由表,确认192.168.10.0/24和192.168.20.0/24两条直连路由都在。再看PC的网关配置,PC1网关是不是192.168.10.1,可别配成了192.168.20.1。还有一个很容易踩的坑:子接口的dot1q termination vid和交换机上对应VLAN不匹配。比如交换机上PC1在VLAN 10,路由器子接口却配了dot1q termination vid 20,VLAN标签对不上,路由器不认账,数据包自然就丢了。
5.3 两台交换机级联后“一边通一边不通”
PC1和PC2都接在SW1上,双方通信正常;PC3接在SW2上,PC1去ping PC3就是不通。这种“一侧通一侧不通”的现象,十有八九是SW2的上联Trunk口放行VLAN没配全。很多人只配了SW1的GE0/0/4为Trunk,忘了同步配置SW2的GE0/0/24,或者SW2只放行了VLAN 10,没放行VLAN 20。
使用display port vlan命令查看SW2的GE0/0/24,如果Trunk口显示的allowed VLAN列表里没有VLAN 20,马上就能定位问题。记住一个原则:两端Trunk的放行列表必须一致,这不是可选项,是必选项。
5.4 常用排错命令速查表
排错的时候,与其一句一句猜,不如把命令形成条件反射。下表是我做这类实验时最常用的一组合法检查命令:
| 场景 | 检查命令 | 关键看什么 |
|---|---|---|
| 交换机VLAN划分 | display vlan | 端口是否在对应VLAN下 |
| Trunk放行检查 | display port vlan | 端口类型、允许通过的VLAN列表 |
| 路由器接口状态 | display ip interface brief | 子接口是否up |
| 路由器路由表 | display ip routing-table | 两个VLAN网段是否有直连路由 |
| 路由器ARP表 | display arp | 是否学习到各PC的MAC地址 |
| 单接口配置回查 | display current-configuration interface GigabitEthernet 0/0/0.20 | dot1q termination、IP、arp broadcast是否齐全 |
熟练用好这张表,基本的二层三层链路问题,十分钟内都能定位。
6. 实验完成后的几点体会与后续延伸
6.1 做这个实验最容易漏掉的三件事
第一,规划永远先行。我在完成实验后最大的体会是:所有看起来“莫名其妙”的问题,几乎都源于IP规划表和实际配置不一致。先画拓扑,再列表格,最后才进命令行,这个顺序一旦养成习惯,效率会高很多。
第二,子接口必须开arp broadcast enable。这是模拟器环境中单臂路由配置的最高频坑点。命令本身很简单,但因为它不属于“地址配置”这个直观步骤,很多初学者根本意识不到要配。这里也提醒一下,不同版本的模拟器行为可能有差异,但无论如何,配上这行命令都不会错。
第三,配置完一定要保存。实验环境里很多人敲完命令就关了软件,下次打开发现所有配置都没了。交换机、路由器都要执行save命令保存配置,PC端的IP配置在模拟器里也要确认已经写入各PC的配置文件中。这个习惯带到真实设备上更是必须的。
6.2 从这个实验到真实内网还差什么
别看这个实验规模不大,它已经把企业内网的核心链路摸了一遍。真实环境里,可能还会在这个基础上增加DHCP服务,让PC自动获取地址;增加ACL,限制研发部和财务部之间的互相访问;增加VLAN间策略路由,控制不同业务流量的走向;或者把路由器替换成三层交换机,用VLANIF方式来承担网关。这些扩展最终都建立在今天这个实验基础上——VLAN划分、Trunk透传、三层终结。只要这几个底层概念扎实,后面学习其他网络技术就会顺很多。
这个实验做完,你再去理解“外网配置”或者“路由协议配置”时,就不会再被内网底子拖后腿了。希望这份记录能让你少走一点我走过的弯路。