很多新手在配置 VLAN 时都会遇到一个现象:交换机上明明划分了 VLAN,同一 VLAN 内的 PC 可以互相 ping 通,但不同 VLAN 的 PC 怎么都 ping 不通。这不是设备坏了,也不是配置写错了,而是 VLAN 的设计目标本身就是隔离广播域。如果业务上希望不同 VLAN 之间也能通信,就必须引入三层设备完成路由转发,而最常见的做法就是用一台路由器,通过物理端口连接二层交换机,把每个 VLAN 的网关设置在路由器接口上。本文就围绕这个组网方式,讲解 VLAN 间通信的核心原理、eNSP 完整实验配置、ARP 数据转发流程分析,以及常见故障排查方法。
这篇文章既适合刚学交换路由的初学者,也适合准备 HCIA、HCIP 考试或者正在做园区网实验的开发者。读完以后,你能独立规划 VLAN 与子网地址,能在一台路由器、一台二层交换机的环境下实现跨 VLAN 通信,也能看清 PC 发出的 Ping 包到底经过了几次封装与 MAC 改写。
1. 为什么二层交换机不能直接实现 VLAN 间通信
1.1 从广播域与 VLAN 的概念说起
在没有 VLAN 的普通二层网络中,交换机收到一个广播帧,会向除了接收端口以外的所有端口转发,这个广播帧能到达的范围就是一个广播域。广播域过大的时候,网络中会充满 ARP 请求、DHCP Discover 等广播报文,占用带宽,也影响设备 CPU 性能。
VLAN 的全称是 Virtual Local Area Network,也就是虚拟局域网。它把一个物理交换机从逻辑上拆分成多个互相隔离的局域网,每个 VLAN 内部是一个独立的广播域。交换机在转发数据时,会根据帧上携带的 VLAN Tag 来区分属于哪个 VLAN,Access 端口收到不带 Tag 的帧时会打上默认 VLAN,Trunk 端口则在帧上保留或添加 802.1Q Tag,让不同 VLAN 的流量在同一条链路上传输。
这里要注意,VLAN 隔离的是二层广播域,不是三层网络。两个 VLAN 即使配的都是 192.168.1.x 网段,在二层上也互不可见,因为广播帧不会跨越 VLAN 边界。
1.2 二层交换机的工作边界
二层交换机工作在 OSI 模型的数据链路层,核心任务是学习 MAC 地址、维护 MAC 地址表,并根据目的 MAC 地址转发以太网帧。它不识别 IP 地址,也不维护路由表,因此无法对跨网段的数据包做三层转发。
当 PC1(VLAN 10)想访问 PC2(VLAN 20)时,PC1 会先判断目标 IP 和自身是否在同一网段。如果不在同一网段,PC1 会把数据包交给默认网关。如果 PC1 没有配置网关,或者网关配置在一个 PC1 根本访问不到的位置,数据包就会在本地“迷路”。而即使 PC1 把包发到了交换机上,交换机看到目的 MAC 是 PC2 的 MAC,也不会把帧从 VLAN 10 转发到 VLAN 20,因为 VLAN 20 对 VLAN 10 来说是不可见的。
所以,VLAN 间通信必须依赖三层设备,比如路由器、三层交换机或防火墙。
1.3 路由器在 VLAN 间通信中的角色
路由器天然支持 IP 路由。它根据目的 IP 地址查找路由表,把数据包从正确的出接口转发出去。只要让路由器同时拥有多个网段的接口 IP,并为每个 VLAN 提供一个网关地址,不同 VLAN 的 PC 就能通过“先到网关,再由网关转发”的方式完成通信。
路由器物理端口连接二层交换机实现 VLAN 间通信,是早期园区网最常用的方案之一。它的思路非常直接:一个 VLAN 对应路由器的一个物理接口,路由器的每个接口 IP 就是该 VLAN 内 PC 的默认网关。交换机的 Access 端口划分到对应 VLAN,路由器接口与交换机 Access 端口相连,PC 的流量先到网关,再由路由器路由到另一个接口对应的网段。
这种方式的优点是配置简单,原理清晰,适合 VLAN 数量较少、路由器端口足够的环境。缺点是路由器物理端口数量有限,如果 VLAN 很多,端口很快就不够用了。
2. 路由器物理端口接二层交换机的组网方式
2.1 方式一:物理接口 + Access 接入,一个 VLAN 一个网关
在这种方式下,每台二层交换机只承载一个 VLAN,或者同一台交换机的不同端口被划分到不同 VLAN,但路由器用不同的物理接口分别去接不同 VLAN 的交换机端口。
交换机与路由器之间的链路是 Access 链路,交换机端口划入哪个 VLAN,路由器就通过这个端口收到带哪个 VLAN Tag 的二层帧。由于 Access 端口在从交换机侧发出帧时会把标签剥离,所以路由器物理接口收到的其实是不带 Tag 的普通以太网帧,路由器不需要理解 VLAN,只需要把接口配置成对应网段的 IP 即可。
这种方案的优点是交换机配置最简单,路由器配置更简单,排错时也很直观。缺点是每增加一个 VLAN,路由器就要消耗一个物理端口,扩展性较差。
2.2 方式二:单臂路由(子接口 + Trunk)
当路由器只有一个物理端口可以连接交换机时,可以使用单臂路由,也叫 Router-on-a-Stick。路由器在一个物理接口下创建多个子接口,每个子接口通过 802.1Q 封装关联一个 VLAN ID,交换机侧使用 Trunk 端口同时放行多个 VLAN,所有 VLAN 的流量都走同一条物理链路进入路由器。
路由器的子接口收到带 VLAN Tag 的帧时,会根据 Tag 识别出它属于哪个 VLAN,然后交给对应的子接口处理。反过来,子接口发出的帧会重新打上指定 VLAN 的 Tag,再通过物理口发给交换机。
单臂路由节省了物理端口,但所有 VLAN 的流量共享一条链路和同一个物理接口,在高流量场景下可能成为瓶颈。
2.3 两种方式对比选型
| 对比项 | 物理接口 + Access | 单臂路由(子接口 + Trunk) |
|---|---|---|
| 路由器端口占用 | 每个 VLAN 一个物理口 | 一个物理口,多个子接口 |
| 交换机侧链路类型 | Access | Trunk |
| 配置复杂度 | 简单 | 中等,需要配置 dot1q 终结 |
| 扩展性 | 差,受物理端口限制 | 好,VLAN 数量只受子接口数量限制 |
| 带宽瓶颈 | 分散到多个接口 | 所有 VLAN 共享一个物理口 |
| 适用场景 | VLAN 少、业务简单 | VLAN 较多、路由器端口不足 |
在实际项目中,如果路由器端口充足且 VLAN 数量很少,优先选物理接口方式。如果只有一台路由器、一条上行链路,但又需要隔离很多业务 VLAN,单臂路由更合适。本文实战部分会先重点演示物理接口方式,再在进阶部分补充单臂路由配置。
3. 环境准备:模拟器与版本说明
3.1 使用 GNS3 还是 eNSP
GNS3 和华为 eNSP 都可以完成这个实验。GNS3 更侧重思科设备镜像,也能加载部分华为镜像,但配置流程会随镜像类型有些差异。eNSP 是华为官方模拟器,内置 AR 路由器、S5700 交换机、PC 等设备,命令风格与华为真实设备一致,非常适合学习和备考 HCIA/HCIP。
本文使用华为 eNSP 完成配置演示。eNSP 的版本不需要特别纠结,常见的 1.2.00 或 1.3.00 均可。如果安装后遇到路由器启动失败(例如报错 40),通常与 VirtualBox 版本兼容性或 Windows 防火墙有关,建议更换 VirtualBox 版本,或以管理员身份运行 eNSP。
3.2 本文实验拓扑与设备清单
为了演示“路由器物理端口连接二层交换机实现 VLAN 间通信”,我设计一个最简单的组网拓扑:
PC1 ---- SW1 ---- 路由器 ---- SW2 ---- PC2- SW1 划分 VLAN 10,PC1 属于 VLAN 10。
- SW2 划分 VLAN 20,PC2 属于 VLAN 20。
- 路由器接口 GE0/0/0 连接 SW1 的上行口,作为 VLAN 10 的网关。
- 路由器接口 GE0/0/1 连接 SW2 的上行口,作为 VLAN 20 的网关。
设备清单如下:
- 路由器:AR2220 一台。
- 二层交换机:S5700 两台。
- PC:两台。
- 连接线:PC 到交换机用 Ethernet 接口,交换机到路由器用 GigabitEthernet 接口。
3.3 组网规划与 IP 地址表
| 设备 | VLAN | 网段 | 接口 IP | 网关 |
|---|---|---|---|---|
| PC1 | VLAN 10 | 192.168.10.0/24 | 192.168.10.10 | 192.168.10.1 |
| SW1 | VLAN 10 | - | - | - |
| 路由器 GE0/0/0 | VLAN 10 | 192.168.10.0/24 | 192.168.10.1 | - |
| PC2 | VLAN 20 | 192.168.20.0/24 | 192.168.20.10 | 192.168.20.1 |
| SW2 | VLAN 20 | - | - | - |
| 路由器 GE0/0/1 | VLAN 20 | 192.168.20.0/24 | 192.168.20.1 | - |
每个 VLAN 规划为一个独立的 IP 子网,VLAN ID 与子网第三段保持一致,例如 VLAN 10 对应 192.168.10.0/24。这样在路由表和 VLAN 配置之间建立清晰的对应关系,排错时一眼就能定位问题。
4. 华为 eNSP 完整实战配置
4.1 建立拓扑并连线
在 eNSP 中新建拓扑,拖入一台 AR2220 路由器、两台 S5700 交换机和两台 PC,按下面的方式连线:
- PC1 的 Ethernet0/0/1 连接到 SW1 的 Ethernet0/0/1。
- SW1 的 GigabitEthernet0/0/1 连接到路由器的 GigabitEthernet0/0/0。
- PC2 的 Ethernet0/0/1 连接到 SW2 的 Ethernet0/0/1。
- SW2 的 GigabitEthernet0/0/1 连接到路由器的 GigabitEthernet0/0/1。
启动所有设备。如果设备无法启动,检查 eNSP 所依赖的 VirtualBox 服务是否正常运行。
4.2 二层交换机基础配置
进入 SW1,创建 VLAN 10,并将 PC 侧端口和上行到路由器的端口都划入 VLAN 10。
system-view sysname SW1 vlan batch 10 interface Ethernet0/0/1 port link-type access port default vlan 10 interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit save这里有几个关键点:
vlan batch 10一条命令可以创建多个 VLAN,例如vlan batch 10 20 30,比逐个创建更高效。- Access 端口只能属于一个 VLAN,收到不带 Tag 的帧时,会打上
port default vlan指定的 VLAN ID。 - SW1 到路由器的链路使用 Access 模式,因为这条链路只承载 VLAN 10 的流量,不需要 Trunk。
SW2 做同样配置,只是 VLAN 改为 20。
system-view sysname SW2 vlan batch 20 interface Ethernet0/0/1 port link-type access port default vlan 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 20 quit save保存配置后,可以在交换机上使用display vlan查看 VLAN 信息和端口归属,确认端口没有误分配。
4.3 路由器物理接口 IP 配置
进入路由器,给两个物理接口配置 IP 地址,这两个地址就是两个 VLAN 内 PC 的默认网关。
system-view sysname R1 interface GigabitEthernet0/0/0 ip address 192.168.10.1 255.255.255.0 undo shutdown interface GigabitEthernet0/0/1 ip address 192.168.20.1 255.255.255.0 undo shutdown quit saveundo shutdown用来确保物理接口处于开启状态。eNSP 中部分模拟器接口默认是开启的,但真实设备可能默认关闭,尤其是一些较旧的路由器,所以显式执行一次更稳妥。
配置完成后,使用display ip interface brief检查接口状态。
display ip interface brief预期输出中,GE0/0/0 和 GE0/0/1 的物理状态和协议状态都应该是 up,并且 IP 地址正确。
4.4 配置 PC 并验证 VLAN 间通信
在 PC1 上配置:
- IP 地址:192.168.10.10
- 子网掩码:255.255.255.0
- 网关:192.168.10.1
在 PC2 上配置:
- IP 地址:192.168.20.10
- 子网掩码:255.255.255.0
- 网关:192.168.20.1
配置完成后,先在 PC1 上 ping 自己的网关:
ping 192.168.10.1网关能通,说明 PC1 到路由器 GE0/0/0 的二层链路没有问题。接着 ping PC2:
ping 192.168.20.10如果配置正确,PC1 可以 ping 通 PC2。下面是从 PC1 发出的 Ping 包必经的处理过程:
- PC1 判断目的地址 192.168.20.10 不在本网段,于是将数据包发送给网关 192.168.10.1。
- 交换机 SW1 在 VLAN 10 内把帧转发到路由器 GE0/0/0。
- 路由器查找路由表,发现 192.168.20.0/24 是直连网段,出接口是 GE0/0/1。
- 路由器重新封装数据帧,从 GE0/0/1 发给 SW2,SW2 在 VLAN 20 内转发给 PC2。
- PC2 回复时走反向流程,最终 PC1 收到 Ping Reply。
5. 数据转发过程与 ARP 报文分析
这一节是理解 VLAN 间通信的重点。很多学习者能配通实验,但说不清数据包到底经过了哪些变化,面试或者写文档时很容易卡壳。
5.1 PC1 访问 PC2 的完整流程
先明确几个概念:以太网帧的二层封装中包含源 MAC 和目的 MAC,IP 报文中包含源 IP 和目的 IP。在跨网段通信时,IP 地址始终不变,但 MAC 地址每经过一次三层路由都会被改写。
第一步,PC1 发送 ARP 请求。PC1 发现目的 IP 192.168.20.10 和自己不在同一网段,于是它认为目标 MAC 应该是网关的 MAC。PC1 先查看本地 ARP 缓存,如果没有 192.168.10.1 对应的 MAC,就发送一个广播 ARP 请求:谁是 192.168.10.1?
这个 ARP 请求在 VLAN 10 内广播,SW1 收到后向 VLAN 10 内所有端口泛洪。路由器 GE0/0/0 收到请求后,发现请求的 IP 就是自己,于是回复 ARP Reply,把自己的 MAC 地址告诉 PC1。
第二步,PC1 构造 IP 数据包并封装帧。此时帧的源 MAC 是 PC1 的 MAC,目的 MAC 是路由器 GE0/0/0 的 MAC,IP 层的源 IP 是 192.168.10.10,目的 IP 是 192.168.20.10。
第三步,SW1 查到目的 MAC 对应的端口是连接路由器的端口,把帧转发给路由器。路由器收到后,剥掉二层帧头,看到目的 IP 是 192.168.20.10,查找路由表,匹配直连网段 192.168.20.0/24,出接口为 GE0/0/1。
第四步,路由器查询自己的 ARP 表,看是否已经有 192.168.20.10 的 MAC。如果没有,路由器在 VLAN 20 内发送 ARP 请求:谁是 192.168.20.10?PC2 回复自己的 MAC。
第五步,路由器重新封装帧,源 MAC 变成 GE0/0/1 的 MAC,目的 MAC 变成 PC2 的 MAC,IP 不变,然后从 GE0/0/1 发出。SW2 在 VLAN 20 内根据目的 MAC 转发给 PC2。
第六步,PC2 回复时,同样先查网关 192.168.20.1 的 MAC,然后封装帧发给路由器,路由器再改写源和目的 MAC 后从 GE0/0/0 转发给 PC1。
整个过程可以用一句话概括:跨 VLAN 通信就是“IP 不变,MAC 随路由器而变”。
5.2 抓包验证二层帧与 VLAN Tag
在 eNSP 中,可以通过抓包验证以上过程。右键点击 PC1 与 SW1 之间的链路,开启抓包,然后从 PC1 ping PC2。
先看到的是 ARP 请求和 ARP 回复,请求是广播帧,目的 MAC 为FF-FF-FF-FF-FF-FF,回复是单播帧。随后是 ICMP Echo Request 和 ICMP Echo Reply。
再右键点击 SW2 与路由器之间的链路,同样抓包。这里会看到一个关键现象:PC1 发出的 ICMP 请求目的 MAC 是路由器的 MAC,而从路由器发往 SW2 的 ICMP 请求目的 MAC 变成了 PC2 的 MAC,同时源 MAC 变成了路由器 GE0/0/1 的 MAC。这就是三层设备改写 MAC 的直接证据。
在这个实验拓扑中,交换机到路由器是 Access 链路,所以抓包看不到 VLAN Tag。如果你换成单臂路由拓扑,在 Trunk 链路上抓包,就能看到 ICMP 报文外层附带了 802.1Q Tag,VLAN ID 为 10 或 20。
5.3 路由器路由表与 ARP 表解读
在路由器上执行以下命令,查看路由表:
display ip routing-table可以看到两条直连路由:
Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.10.0/24 Direct 0 0 D 192.168.10.1 GigabitEthernet0/0/0 192.168.20.0/24 Direct 0 0 D 192.168.20.1 GigabitEthernet0/0/1正因为这两条直连路由的存在,路由器收到发往 192.168.20.10 的数据包时,才知道从 GE0/0/1 转发。
再查看 ARP 表:
display arp表中会出现 192.168.10.10 对应 PC1 的 MAC,以及 192.168.20.10 对应 PC2 的 MAC。这些表项是路由器在 ARP 交互过程中动态学习到的,默认会老化,再次通信时会重新学习。
6. 进阶:单臂路由实现多个 VLAN 间通信
如果你的交换机上划分了多个 VLAN,但路由器只剩一个物理接口可用,可以使用单臂路由。下面演示在单台交换机上划分 VLAN 10 和 VLAN 20,通过路由器一个物理端口实现两个 VLAN 互通。
6.1 为什么单臂路由比物理接口更省端口
物理接口方式要求每个 VLAN 占用路由器一个物理端口,VLAN 一多,路由器端口很快不够用。单臂路由在路由器物理接口下创建多个逻辑子接口,每个子接口绑定一个 VLAN ID,所有 VLAN 共享一条物理链路和同一个物理端口。
代价是流量集中到一条链路上,如果业务流量很大,物理接口带宽会成为瓶颈。这也是后来三层交换机取代单臂路由的重要原因。但在学习阶段,单臂路由是理解 802.1Q Tag 和 VLAN 终结的最好实验。
6.2 交换机侧 Trunk 配置
在单台 S5700 交换机上创建两个 VLAN,PC1 接入 VLAN 10,PC2 接入 VLAN 20,连接路由器的 GE0/0/1 配置为 Trunk 并放行两个 VLAN。
system-view sysname SW vlan batch 10 20 interface Ethernet0/0/1 port link-type access port default vlan 10 interface Ethernet0/0/2 port link-type access port default vlan 20 interface GigabitEthernet0/0/1 port link-type trunk port trunk allow-pass vlan 10 20 quit saveport trunk allow-pass vlan 10 20表示这条 Trunk 链路允许带 VLAN 10 和 VLAN 20 Tag 的帧通过。如果漏配某个 VLAN,对应 VLAN 的流量就无法到达路由器,表现就是部分 VLAN 能通,部分不通。
6.3 路由器子接口 dot1q 终结配置
路由器物理接口 GE0/0/0 连接交换机 GE0/0/1,在物理接口下创建两个子接口。
system-view sysname R1 interface GigabitEthernet0/0/0 undo shutdown interface GigabitEthernet0/0/0.10 dot1q termination vid 10 ip address 192.168.10.1 255.255.255.0 arp broadcast enable interface GigabitEthernet0/0/0.20 dot1q termination vid 20 ip address 192.168.20.1 255.255.255.0 arp broadcast enable quit save子接口的命名习惯建议与 VLAN ID 保持一致,例如.10对应 VLAN 10,方便维护。
三个命令是关键,缺一不可:
dot1q termination vid 10:让子接口能够识别并处理带 VLAN 10 Tag 的帧,这个过程也叫 VLAN 终结。ip address:给子接口配置 IP,作为该 VLAN 内 PC 的网关。arp broadcast enable:启用子接口的 ARP 广播处理。在华为设备上,如果没有这条命令,子接口可能无法响应来自该 VLAN 的 ARP 请求,导致 PC 一直解析不到网关 MAC。
配置完成后,PC1 和 PC2 的网关分别指向 192.168.10.1 和 192.168.20.1,ping 测试即可通过。
6.4 验证不同 VLAN 互通
在 PC1 上执行:
ping 192.168.20.10能通说明单臂路由生效。此时在交换机上查看端口状态:
display port vlan可以看到 GE0/0/1 是 Trunk 端口,PVID 默认是 1,allowed VLAN 包含 10 和 20。PVID 是指端口收到不带 Tag 的帧时打上的默认 VLAN ID。Trunk 端口的 PVID 如果和某个业务 VLAN 相同,那么不带 Tag 的帧会被归入那个 VLAN。正常情况下 Trunk 口应保持 PVID 为 1,除非有特殊需求。
7. 常见问题与排查思路
7.1 Ping 不通的排查清单
不同 VLAN 间 Ping 不通,可以按下面的顺序逐层排查。
| 排查步骤 | 命令/操作 | 预期结果 |
|---|---|---|
| 检查 PC 配置 | 查看 IP、掩码、网关 | 网关必须是对应 VLAN 的路由器接口 IP |
| 测试 VLAN 内互通 | ping 同 VLAN 内其他 PC | 能通则说明二层链路正常,不能通则先查 Access 口 VLAN |
| 测试到网关连通性 | ping 网关 | 能通则说明 PC 到路由器接口的二层链路正常 |
| 检查路由器接口 | display ip interface brief | 接口状态 up,IP 地址正确 |
| 检查路由表 | display ip routing-table | 两个网段必须有直连路由 |
| 检查 ARP 表 | display arp | 路由器能学习到两台 PC 的 ARP 表项 |
如果 VLAN 内互通正常、网关也能 ping 通,但跨网段不通,问题一般集中在三层,比如路由器接口配置错误或路由表缺失。
7.2 VLAN 报文不能通过 Trunk
现象:单臂路由中,VLAN 10 能通 VLAN 20 不通,或者所有 VLAN 都不通。
常见原因是 Trunk 端口没有放行对应 VLAN。华为交换机默认 Trunk 端口只允许 VLAN 1 通过,其他 VLAN 需要显式配置:
interface GigabitEthernet0/0/1 port trunk allow-pass vlan 10 20配置后使用display port vlan或display vlan确认 VLAN 是否已经在 allowed 列表中。还有一种隐蔽问题:交换机连接路由器的物理端口如果被配置成了 Access 模式,那么带 Tag 的帧到达后可能被交换机丢弃或不正常处理,导致子接口无法通信。
7.3 子接口无法 UP 或不起作用
华为路由器的子接口默认是 down 的,需要先在物理接口上执行undo shutdown,再配置子接口。如果物理接口 down,子接口一定起不来。
另外,子接口配置完成后,如果 PC 始终 ping 不通网关,优先检查是否缺少arp broadcast enable。华为部分版本中,子接口默认不转发广播报文,ARP 请求无法到达路由器,IP 通信自然失败。加上这条命令后,通常问题立即解决。
7.4 ARP 请求无响应的处理方法
用 Wireshark 或 eNSP 抓包,观察 PC 发出的 ARP 请求是否到达交换机、交换机是否泛洪、路由器是否回复。
如果 PC 请求一直发,路由器不回,可能原因包括:路由器接口 shutdown、接口没有 IP、子接口没有配置arp broadcast enable、交换机端口在错误的 VLAN 中。可以逐个检查。
如果路由表正常但数据包仍不通,也可以在路由器上开启调试命令:
debugging ip icmp观察路由器是否收到 ICMP 报文、是从哪个接口收到、又从哪个接口发出。用完后记得执行undo debugging all关闭调试,避免日志刷屏。
8. 最佳实践与工程建议
8.1 VLAN 与 IP 网段规划
在真实项目中,VLAN ID 建议按业务、部门或楼层规划,并且与 IP 网段形成固定映射关系。例如:
| VLAN ID | 业务 | 网段 | 网关 |
|---|---|---|---|
| VLAN 10 | 办公区 | 192.168.10.0/24 | 192.168.10.1 |
| VLAN 20 | 研发区 | 192.168.20.0/24 | 192.168.20.1 |
| VLAN 30 | 服务器区 | 192.168.30.0/24 | 192.168.30.1 |
网关地址优先使用每个网段的第一个可用地址,比如.1。子网掩码尽量统一,避免同一广播域中出现不同掩码的子网,否则容易造成路由混乱和 ARP 表异常。
8.2 Trunk 端口最小化放行
Trunk 端口用于交换机之间或交换机与路由器之间传递多个 VLAN 流量。生产环境中,Trunk 端口只放行业务需要的 VLAN,不要直接配置port trunk allow-pass vlan all。这样即使某个 VLAN 发生广播风暴,也不会通过 Trunk 扩散到上层或其他区域。
同时,接 PC 的端口一律使用 Access 模式,关闭不需要的端口,对可管理交换机开启端口安全或 MAC 限制,减少未知设备接入风险。
8.3 本征 VLAN 与 PVID 一致性
Access 端口的 PVID 就是port default vlan指定的值。Trunk 端口的 PVID 默认是 VLAN 1。如果 Trunk 两端设备对 PVID 的配置不一致,可能导致不带 Tag 的帧被错误地划分到不同 VLAN,出现二层环路或者通信异常。
修改 PVID 要谨慎:
interface GigabitEthernet0/0/1 port trunk pvid vlan 100只有当链路上需要传输不带 Tag 的本征 VLAN 流量时才建议修改,一般情况下保持默认即可。
8.4 网络安全与 ACL 控制
VLAN 间通信打通后,安全边界也随之打开。如果只希望部分 VLAN 之间互通,可以在路由器上配置 ACL 进行过滤。
例如,只允许 VLAN 10 访问 VLAN 20 的 Web 服务,禁止其他访问,简要思路如下:
acl number 3000 rule 5 permit tcp source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 destination-port eq 80 rule 10 deny ip interface GigabitEthernet0/0/1 traffic-filter inbound acl 3000配置 ACL 前需要明确业务需求,避免误拦截正常流量。生产环境变更 ACL 时,建议先在测试环境验证,并选择合适的生效时间段。
8.5 性能与可维护性建议
路由器物理接口方案适合小型网络。如果网络规模增长,比如超过 50 个 VLAN 或核心流量较大,建议使用三层交换机作为网关,通过 VLANIF 接口实现 VLAN 间路由,转发性能比路由器更高,配置也更简洁。
日常维护中,注意以下几点:
- 设备配置完成后执行
save,防止断电丢失。 - 命名规范统一,例如交换机用 SW1、SW2 区分,路由器接口上用 description 标注对端设备。
- 使用
display this查看某个接口的当前配置,快速定位异常配置。 - 变更前备份配置,重要操作尽量避开业务高峰。
9. 总结与下一步学习路线
通过本文的实验和原理分析,可以梳理出几个关键结论:
- VLAN 是二层隔离技术,二层交换机不能直接完成 VLAN 间通信。
- 路由器物理接口连接二层交换机,是最简单的 VLAN 间通信方式,适用于 VLAN 数量少、路由器端口充足的场景。
- 路由器的核心作用是承担三层转发,改写源和目的 MAC 地址,保持 IP 地址不变。
- 单臂路由通过子接口终结 802.1Q Tag,用一个物理接口实现多个 VLAN 互通,是物理接口方式的补充和进阶。
- 排错时按照 PC 配置、VLAN 划分、接口状态、路由表、ARP 表的顺序逐层定位,效率最高。
接下来可以继续学习交换机 VLANIF 配置、静态路由和 OSPF 动态路由,以及 DHCP 服务器如何与 VLAN 网关配合。如果做安全方向,还可以继续研究 ACL、防火墙策略和 DHCP Snooping。建议把本文的实验各自在 eNSP 中搭建一次,观察抓包结果,才能真正理解 VLAN 间流量转发的完整过程。