VLAN间通信实验:三层交换机SVI配置与排错详解
VLAN 划分完了两台 PC 就是不互通很多人在实验里走到这一步就卡住了VLAN 10 的电脑能 ping 通自己的网关VLAN 20 的电脑也能 ping 通自己的网关但 VLAN 10 去 ping VLAN 20 就是没有回包。你翻来覆去检查端口类型、VLAN 绑定发现都没有问题问题到底出在哪答案可能和很多人想的不一样VLAN 本身是二层隔离技术隔离完成之后跨 VLAN 的报文必须经过三层设备做“路由转发”。你划分完 VLAN只完成了第一步要让网络真正可用还必须在三层设备上为每个 VLAN 配置网关并保证转发路径上的链路和路由都正确。这篇实验教程就是专门解决这个“第二步”的。本文会基于华为 eNSP 模拟器完成一个带接入交换机的 VLAN 间通信实验使用三层交换机的 SVI交换虚拟接口方式打通 VLAN 10 和 VLAN 20。全文包含完整拓扑设计、可复制的配置命令、验证方法和排错清单建议先收藏再照着做。1. 从“VLAN 划分成功”到“VLAN 间不通”问题到底出在哪里很多人学 VLAN 的第一个实验是“划分 VLAN”把不同部门放进不同 VLAN用 Access 口接终端用 Trunk 口级联交换机。配置完以后你可能会发现一个有趣的现象不同 VLAN 的 PC 不能互通了。看起来实验目标达到了因为 VLAN 的隔离效果确实生效了。但真实业务中完全隔离的网络很少。财务要访问服务器办公网要连打印机监控系统要跨网段上报数据这些场景都要求 VLAN 之间能够受控地互访。于是“VLAN 间通信”就成了比“划分 VLAN”更贴近生产环境的进阶实验。如果你已经掌握了 VLAN 基础划分第二个实验最应该补上的能力就是在保留 VLAN 隔离的前提下用三层设备让不同网段按规则互访。这就是实验 2 的核心目标。判断实验是否成功的标准也很简单PC1 能 ping 通 PC2并且反过来 PC2 也能 ping 通 PC1。如果能做到说明你对 VLAN、Trunk、网关、路由表这条完整的链路已经有了整体认识。真正容易踩坑的地方在于很多人只会在交换机上划分 VLAN却对“网关放在哪”“谁来做三层转发”完全没有概念。配置 VLANIF 时也常常漏掉关键步骤导致网关接口是 down 的。这篇文章后面会逐步拆开讲。2. VLAN 间通信的核心原理二层隔离与三层转发先补齐两个基础概念否则后面的配置容易变成“照着敲命令”。第一个概念是二层转发。交换机工作在二层通过 MAC 地址表转发数据帧。同一个 VLAN 内的 PC 可以直接通过交换机通信因为它们在同一个广播域里。第二个概念是三层转发。三层转发需要识别 IP 地址并根据路由表决定报文从哪个接口出去。路由器天生干这个活儿三层交换机则是“二层交换 三层路由”二合一内部既维护 MAC 地址表也维护路由表。跨 VLAN 通信时过程是这样的PC1 发出 ping 请求目标 IP 是 192.168.20.10本地判断和自己不在同一网段于是把报文的目的 MAC 填成网关VLAN 10 的网关的 MAC。报文带着 VLAN 10 的标签进入三层交换机交换机发现目的 MAC 是自家 VLANIF10 接口的 MAC就把报文交给三层转发模块处理。三层模块查找路由表发现 192.168.20.0/24 这个网段直连在 VLANIF20 接口上于是通过 ARP 查询 PC2 的 MAC。交换机把报文重新封装成 VLAN 20 的帧目的 MAC 改成 PC2 的 MAC从对应端口转发出去。PC2 收到请求后按同样的逻辑把回包发回 PC1。所以“网关”不是一个虚拟概念它就是一个真实的接口 IP。在单臂路由方案里网关是路由器子接口的 IP在三层交换机方案里网关是 VLANIF 接口的 IP。没有这个接口跨网段报文就没有出口没有路由表三层转发就不知道往哪个方向送。很多同学卡住的根因就在这里VLAN 配了但 VLANIF 没配或者 VLANIF 配了却因为对应 VLAN 没有活跃端口而处于 down 状态。后面会详细展开这一步。3. 两种主流方案单臂路由与三层交换机 SVI解决 VLAN 间通信业界有两套成熟方案理解了它们的区别你就知道实验 2 为什么选三层交换机。3.1 单臂路由方案单臂路由是把路由器的一个物理口接到交换机交换机侧端口配置为 Trunk路由器上再划分多个子接口每个子接口绑定一个 VLAN 并配置一个 IP 作为该 VLAN 的网关。报文从交换机出来进入路由器子接口路由器打上 VLAN 标签识别出属于哪个子网再根据路由表转发到另一个子接口返回给交换机。实现起来很直观但性能瓶颈明显所有跨 VLAN 流量都要绕道路由器路由器 CPU 要处理大量报文规模稍大就扛不住。3.2 三层交换机 SVI 方案SVI 的全称是 Switch Virtual Interface在华为设备上直接叫 VLANIF。它的思路是在三层交换机上为每个 VLAN 创建一个逻辑三层接口这个接口的 IP 就是该 VLAN 内 PC 的网关。报文到达三层交换机后如果目的 MAC 是 VLANIF 的 MAC就直接在交换机内部完成三层转发不需要绕到外部设备。因为走的是硬件芯片转发性能远高于路由器。对比维度单臂路由三层交换机 SVI承载设备路由器 二层交换机三层交换机网关位置路由器子接口交换机 VLANIF转发性能较低依赖路由器 CPU高硬件转发配置复杂度中等需要子接口封装 VLAN简单每个 VLAN 一个接口适用场景小规模实验室或临时组网园区网、企业网主流方案典型成本低相对较高但性能优势明显结论很清晰实验 2 采用三层交换机 SVI 方案。这不仅是考试和实验的热点也是生产环境中最常见的集中式网关设计。理解了 SVI你等于掌握了园区网里 80% 以上的 VLAN 间路由场景。4. 实验 2 拓扑设计与 IP 规划为了让这个实验接近真实组网我没有把两台 PC 直接接到同一台三层交换机上而是引入了一台接入交换机用 Trunk 链路把核心交换机和接入交换机关联起来。这样做的目的是把 Trunk 放通、VLAN 透传这些真实故障点一并覆盖到。4.1 拓扑结构PC1 (192.168.10.10/24, 网关 192.168.10.1) | | G0/0/1 Access VLAN10 | [SW1] S5700 三层交换机 - VLANIF 10: 192.168.10.1/24 - VLANIF 20: 192.168.20.1/24 | | G0/0/2 Trunk 允许 VLAN 10 20 | [SW2] S3700 接入交换机 | | G0/0/2 Access VLAN20 | PC2 (192.168.20.10/24, 网关 192.168.20.1)SW1 是三层核心交换机SW2 是二层接入交换机。PC1 直接接入 SW1 的 G0/0/1PC2 接入 SW2 的 G0/0/2。SW1 与 SW2 之间通过 G0/0/2 和 G0/0/1 相连链路类型为 Trunk。4.2 地址规划设备接口位置所属 VLANIP 地址网关PC1接 SW1 G0/0/1VLAN 10192.168.10.10/24192.168.10.1PC2接 SW2 G0/0/2VLAN 20192.168.20.10/24192.168.20.1SW1VLANIF 10-192.168.10.1/24-SW1VLANIF 20-192.168.20.1/24-SW1-SW2G0/0/2 与 G0/0/1Trunk无 IP-这个设计的核心思路是网关全部集中在 SW1SW2 只做二层透传一台接入交换机不需要配置任何三层地址。这符合中小型园区网的典型架构也方便后面扩展 VLAN 和策略。5. 实验环境准备与设备基础配置实验设备使用华为 eNSP 模拟器SW1 选择 S5700 三层交换机SW2 选择 S3700 或任意支持 Trunk 的 S 系列交换机。如果你用的是真实设备或其它厂商设备大部分概念相通但命令会有差异本文以华为 VRP 命令为准。启动 eNSP 后按第 4 章拓扑拖入两台交换机、两台 PC然后给设备上电。这里有一个很容易忽略的重点接线位置必须和拓扑一致。PC1 接 SW1PC2 接 SW2不要因为偷懒把两台 PC 都接到同一台接入交换机上那样就失去了 Trunk 链路验证的意义。在开始配置前建议先清空两台交换机的默认配置或直接重启设备确保环境干净。eNSP 中右键设备选择“重启”再等待设备启动到命令行状态。也有同学会问华为交换机划 VLAN 的配置是不是都一样的这里统一回答核心命令在 S 系列、CE 系列等主流框式或盒式交换机上非常接近但高端框式设备的接口编号、VLANIF 支持情况、以及部分默认策略可能不同。做实验时以 eNSP 的 S5700/S3700 为准放到生产环境前务必查阅对应型号的配置手册。6. 核心配置步骤三层交换机 SVI 实现 VLAN 间通信这部分是整个实验的核心。总体思路分三步SW1 创建 VLAN 10、20配置接口类型和对应 VLANIF 网关SW2 创建同样的 VLAN配置 Trunk 并下挂 PC2PC 配置好 IP、掩码、网关。6.1 配置 SW1三层核心交换机在 SW1 上依次输入以下命令Huaweisystem-view [Huawei]sysname SW1 [SW1]vlan batch 10 20 [SW1]interface GigabitEthernet0/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 GigabitEthernet0/0/2 [SW1-GigabitEthernet0/0/2]port link-type trunk [SW1-GigabitEthernet0/0/2]port trunk allow-pass vlan 10 20 [SW1-GigabitEthernet0/0/2]quit [SW1]interface Vlanif 10 [SW1-Vlanif10]ip address 192.168.10.1 255.255.255.0 [SW1-Vlanif10]quit [SW1]interface Vlanif 20 [SW1-Vlanif20]ip address 192.168.20.1 255.255.255.0 [SW1-Vlanif20]quit [SW1]return逐条解释关键命令vlan batch 10 20一次创建两个 VLAN支持连续写法如vlan batch 10 to 20。port link-type access与port default vlan 10把 G0/0/1 配置为 Access 口并将该端口划入 VLAN 10。Access 口通常用于连接终端收到的未打标帧会进入默认 VLAN。port link-type trunk与port trunk allow-pass vlan 10 20Trunk 口用于交换机级联放行 VLAN 10 和 VLAN 20 的流量。这里必须显式放通华为 Trunk 口默认只允许 VLAN 1 通过漏掉这条命令是跨交换机 VLAN 不通的最常见原因。interface Vlanif 10与ip address 192.168.10.1 255.255.255.0创建 VLANIF10 并配置 IP此 IP 就是 VLAN 10 内 PC 的网关。6.2 配置 SW2二层接入交换机SW2 不需要配置任何三层接口只需要创建 VLAN、配置 Trunk 和 Access。Huaweisystem-view [Huawei]sysname SW2 [SW2]vlan batch 10 20 [SW2]interface GigabitEthernet0/0/1 [SW2-GigabitEthernet0/0/1]port link-type trunk [SW2-GigabitEthernet0/0/1]port trunk allow-pass vlan 10 20 [SW2-GigabitEthernet0/0/1]quit [SW2]interface GigabitEthernet0/0/2 [SW2-GigabitEthernet0/0/2]port link-type access [SW2-GigabitEthernet0/0/2]port default vlan 20 [SW2-GigabitEthernet0/0/2]quit [SW2]return注意SW2 上同样要创建 VLAN 10 和 VLAN 20。虽然 SW2 下只挂了 VLAN 20 的 PC2但 Trunk 链路需要同时透传 VLAN 10 和 VLAN 20 的数据帧如果只创建了 VLAN 20port trunk allow-pass vlan 10 20会因找不到 VLAN 10 而报错或无法生效。6.3 配置 PC1 与 PC2在 eNSP 中双击 PC1在“基础配置”页填写PC1 IP192.168.10.10掩码255.255.255.0网关192.168.10.1再双击 PC2PC2 IP192.168.20.10掩码255.255.255.0网关192.168.20.1这里的关键点是网关必须和 PC 所在 VLAN 的 VLANIF IP 一致。PC1 在 VLAN 10所以网关是 VLANIF10 的 192.168.10.1PC2 在 VLAN 20网关是 VLANIF20 的 192.168.20.1。如果两台 PC 的网关都填成同一个跨 VLAN 通信必然会失败因为报文到了错误的三层接口后找不到目标网段的路由。6.4 单臂路由配置对照扩展学习如果你想同时掌握单臂路由方案可以参考下面这一段。假设 R1 的 G0/0/0 连接交换机交换机侧端口是 Trunk。[R1]interface GigabitEthernet0/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 GigabitEthernet0/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单臂路由的核心在于子接口要dot1q termination vid指定 VLAN并开启arp broadcast enable否则路由器无法响应交换机侧广播的 ARP 请求网关会一直不可达。7. 验证与结果分析判定实验是否成功的标准配置完成后立刻验证这是工程师的基本素养。先做基本连通性测试再看交换机状态。7.1 PC1 ping PC2在 PC1 的命令行工具中执行ping 192.168.20.10正常输出应该是四条Reply from 192.168.20.10丢包率为 0。反向测试在 PC2 上执行ping 192.168.10.10如果 PC1 能 ping 通 PC2但 PC2 不能 ping 通 PC1问题通常出在回程路径检查 PC1 的网关、VLANIF 配置或 Trunk 放通状态。7.2 查看 SW1 上的 VLAN 与三层接口状态在 SW1 上执行[SW1]display vlan预期会看到 VLAN 10 和 VLAN 20 都是up状态。继续查看三层接口[SW1]display ip interface brief *down: administratively down !down: FIB overload down Interface IP Address/Mask Physical Protocol Vlanif10 192.168.10.1/24 up up Vlanif20 192.168.20.1/24 up up两个 Vlanif 都处于 up/up说明网关已就绪。如果某个 Vlanif 是 down优先检查对应 VLAN 是否有活跃端口以及 PC 是否开机、Access/Trunk 是否配置正确。7.3 查看路由表确认直连路由继续在 SW1 上执行[SW1]display ip routing-table预期能看到两个直连路由条目192.168.10.0/24 Direct 0 0 D 192.168.10.1 Vlanif10 192.168.20.0/24 Direct 0 0 D 192.168.20.1 Vlanif20看到 Direct 路由后说明三层交换机的转发基础已经具备。跨 VLAN 报文会在交换机内部查这两条路由完成封装和转发。7.4 进阶验证Trunk 抓包观察 VLAN 标签如果你用的是 eNSP 新版本且支持在链路抓包可以在 SW1 与 SW2 之间的 Trunk 链路上抓包。你会看到同一物理链路上同时存在带 VLAN 10 标签的 ICMP 请求以及带 VLAN 20 标签的 ICMP 应答。这个画面能非常直观地解释“Trunk 为什么要放通多个 VLAN”。8. 常见问题与排查思路实验命令不多但实际排错时层次很多。下面这张表基本覆盖了初学者最容易遇到的问题。问题现象可能原因排查命令与动作解决方案所有 PC 互 ping 不通PC 网关配置错误或未配置ping 网关IP检查 PC 的 IP/掩码/网关按规划重新填写 PC 配置ping 网关不通Vlanif 是 downVLAN 内没有活跃物理端口display vlan、display ip interface brief检查端口是否划入 VLAN、Trunk 是否放通、PC 是否开机从 PC1 能 ping 通网关但 ping 不通 PC2目的 VLAN 网关或 PC2 配置异常在 SW1 上ping 192.168.20.10检查 PC2 网关和 IP 是否属于 192.168.20.0/24跨交换机 VLAN 不通Trunk 未放通对应 VLANdisplay port vlan在两端执行port trunk allow-pass vlan 10 20接入交换机报错VLAN 不存在只在下发 Trunk 命令未先创建 VLANdisplay vlan在 SW2 创建需要透传的全部 VLAN配置正确但 PC 收不到响应ARP 表项学习异常或旧表项残留display arp执行reset arp all后重新 ping单臂路由模式下子接口收不到广播子接口未开启 ARP 广播display interface brief执行arp broadcast enable带标签帧在 Trunk 上表现异常两端 PVID 不一致或放通列表不一致display port vlan保持两端 trunk 配置一致PVID 默认同为 18.1 关于 trunk pvid 的特殊说明很多人在研究 Trunk 时会碰到pvid这个名词。华为交换机 Trunk 端口的缺省 PVID 是 1它的作用是决定“未打标帧”进入交换机时被划分到哪个 VLAN以及从 Trunk 发送未打标帧时属于哪个 VLAN。在本文拓扑中PC1 发出的帧从 Access 口进入交换机会被打上 VLAN 标签到达 Trunk 后已经带标签所以 PVID 不影响正常通信。但如果你的设备接入的是未打标帧而两端 PVID 不一致帧就可能被划分到错误的 VLAN造成非常隐蔽的通信故障。排查时用display port vlan查看端口 PVID 和放通列表保持两端一致即可。9. 最佳实践与工程建议实验通关后这些经验可以直接迁移到真实项目。9.1 网关放核心层接入层只做转发实验 2 的拓扑体现了企业网络的经典分层思路核心层负责高速转发和三层网关接入层只做终端接入和二层透传。SW2 不配置任何三层地址所有网关集中在 SW1。这种集中式网关设计配置简单、排错清晰适合中小型园区网。9.2 VLAN 与网段一一对应网关地址固定规则建议一个 VLAN 对应一个独立网段网关地址统一使用该网段的第一个地址或约定地址例如 192.168.X.1。不要在同一个 VLAN 里混入多个网段也不要让 PC 自己分配网关地址否则广播、ARP 和路由排查的成本会大幅上升。9.3 为端口和 VLANIF 添加描述生产环境配置一定要写描述不然三个月后回来看配置会非常痛苦。[SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]description to-PC1_VLAN10 [SW1-GigabitEthernet0/0/1]quit [SW1]interface Vlanif 10 [SW1-Vlanif10]description Office_Gateway这个习惯对团队协作和故障定位都有很大帮助。9.4 用 ACL 实现受控互访VLAN 间通信不等于所有网段全通。实际业务中办公网访问服务器通常需要放行指定服务端口访问监控网段可能要阻断。三层交换机上的 ACL 可以做到精细化控制但配置策略前务必在测试环境验证并做好回滚准备。9.5 保存配置与变更前快照eNSP 实验里配置完成后记得执行save否则设备重启后配置会全部丢失。生产环境变更前建议执行以下命令保存现场display current-configuration display vlan display ip interface brief display ip routing-table变更后再次对比可以让影响范围一目了然。10. 下一步还能学什么实验 2 打通了 VLAN 间通信的最基本链路。但真实网络比这个实验复杂得多建议按顺序完成下面三个延伸练习第一在现有拓扑中加入 VLAN 30 和第三台 PC扩展 VLAN、VLANIF、Trunk 放通配置并验证三个网段互访。第二把 SW1 与 SW2 之间的单条 Trunk 改成两条链路实践链路聚合 Eth-Trunk再验证 VLAN 间通信是否正常。第三在 SW1 上配置 ACL限制 VLAN 10 只能访问 VLAN 20 的指定服务端口理解“受控互访”与“全通”的区别。当你把这三个练习做完再回头看“VLAN 间通信”这个题目会发现它已经不是一个孤立的知识点而是理解园区网络三层架构的一把钥匙。