做网络方向实验VLAN配置大概是很多人进入交换技术遇到的第一道坎。我最近把这个实验从头到尾重新做了一遍从拓扑搭建、VLAN创建、接口划分、Trunk链路到最后的连通性验证一路踩了不少坑也把很多平时容易忽略的细节重新梳理了一次。这篇就按完整实验流程走一遍聊聊 VLAN 配置到底解决什么问题、每个命令为什么这么写、出现问题之后怎么定位。这个实验适合三类人刚学交换机的学生、准备网络认证的考生、以及做园区网维护但一直没把二层隔离原理理清的同行。它不算高阶内容但 VLAN 是二层交换网络的基本单位很多后续技术都以它为基础。把这一块练扎实后面接触 STP、VLAN 间路由、链路聚合都会顺畅很多排查网络问题的思路也会清楚不少。1. 实验设计与拓扑规划1.1 这个实验真正要解决什么问题如果把 VLAN 只理解成“把一个网络分成多个小网络”配置时很容易犯迷糊。我更愿意从广播域的角度来解释它默认状态下交换机所有接口属于同一个广播域任何一台设备发出的广播帧、组播帧同广播域内的其他设备都要跟着处理。设备数量少问题不明显一旦终端数量多起来广播报文会不断消耗设备 CPU而且所有设备都暴露在同一个二层网络里安全边界非常模糊。VLAN 的作用就是给不同接口打上不同的逻辑分组标记让广播帧只在同一 VLAN 内传播。这样带来的好处是直接且明显的一是广播隔离某个 VLAN 里的广播不会无限泛洪到其他 VLAN二是安全隔离不同业务部门即使接在同一台交换机上也无法直接在二层互访三是管理方便一个 VLAN 对应一个 IP 网段地址规划、策略下发都清晰很多。实验标题虽然写的只是“VLAN 配置”实际核心是把这三点在设备上正确落地。1.2 为什么实验环境要选两台交换机很多初次实验的人只在一台交换机上划分两个 VLAN这种方式能练到创建 VLAN 和划分接口但学不到跨设备转发。真正项目里 VLAN 几乎不会只存在于一台交换机上园区网动辄几十台交换机同一个 VLAN 的终端往往分散在多台设备中这时候交换机之间的链路必须支持多个 VLAN 流量同时穿过也就是 Trunk。所以我把实验环境设计成两台交换机中间用一条链路互连终端 PC 分别接在两台设备上。这样既覆盖了单台设备上的 VLAN 划分又把跨交换机通信的关键点带出来了。如果在模拟器里做这个实验操作成本很低随时可以重来很适合反复练习和验证。1.3 拓扑结构与地址规划实验拓扑不复杂核心是两个业务 VLANVLAN 10 和 VLAN 20。VLAN 10 用于办公区主机VLAN 20 用于测试区主机。为了验证 Trunk 转发我把同 VLAN 的终端拆开放在不同交换机上让 PC1 和 PC2 属于 VLAN 10PC3 和 PC4 属于 VLAN 20。具体的连接和地址规划如下表设备连接端口所属VLANIP地址PC1SW1 Fa0/1VLAN 10192.168.10.1/24PC2SW2 Fa0/2VLAN 10192.168.10.2/24PC3SW1 Fa0/3VLAN 20192.168.20.3/24PC4SW2 Fa0/4VLAN 20192.168.20.4/24SW1与SW2互联SW1 g0/1 与 SW2 g0/1Trunk 放行 VLAN 10、20不配置IP地址规划时我特意让 VLAN 编号和 IP 网段第三位对应起来VLAN 10 对 192.168.10.xVLAN 20 对 192.168.20.x。这不是强制要求但这样做能极大降低后期排错成本。很多真实项目的网管员会坚持“一个 VLAN 一个网段编号尽量一眼看出用途”的原则就是这个原因。2. 创建VLAN并划分Access接口的核心步骤2.1 实验前的初始环境和配置清零如果是第一次在设备上做实验直接用就行。但如果是反复使用的模拟器环境我建议先把设备恢复到初始状态避免旧配置干扰判断。通用的清理流程是清掉启动配置并在部分平台上删除 VLAN 数据库文件然后重启设备。不同虚拟环境的命令有差异但思路一致让设备以一个“干净”的状态开始。命令大致是erase startup-config delete vlan.dat reload这里有一个容易踩的坑部分平台把 VLAN 信息单独存在一个数据库文件里只删除启动配置并不能清掉 VLAN重启后 VLAN 还在。所以实验开始前或结束收尾时都应该确认设备上有没有残留 VLAN。模拟器环境下多试几次对这个机制的感触会更深。清理完成、设备重启后进入全局配置模式先把设备名改掉方便区分两端enable configure terminal hostname SW1如果另一端是 SW2也做同样操作改名为 SW2。设备名看起来是小事但真正排查问题时非常有帮助尤其是要登录多台设备的时候。2.2 创建VLAN的推荐方式创建 VLAN 最推荐的方式是在全局配置模式下直接创建。以 SW1 为例先建两个 VLAN 并给它们起一个有意义的名字vlan 10 name OFFICE exit vlan 20 name TEST exitname不是必填项不写也能创建成功但我强烈建议写上。设备上 VLAN 一多如果只靠编号区分很容易把业务区域和 VLAN 对应错。名称本身就是一种注释能让后续维护的人省很多时间。创建完成后用show vlan brief查看当前 VLAN 列表确认两个 VLAN 都已经存在show vlan brief输出中应该能看到 VLAN 10 和 VLAN 20没有绑定端口是正常的因为接口还没有划分进去。这里有一个细节值得强调创建 VLAN 和执行接口划分看起来是两件事但顺序会直接影响体验。建议先创建 VLAN再进入接口划分。很多设备支持接口上直接输入switchport access vlan 10即使 VLAN 不存在也会自动创建但这会造成配置分散万一删除或重建 VLAN接口状态可能变得难以理解。按顺序操作逻辑更清晰。2.3 Access接口的配置方式Access 端口在概念上有点像小区里的单户门禁只认一个 VLAN。它从终端设备收到不带标签的数据帧后会把这个帧当成所属 VLAN 的帧处理向终端发送数据帧前会把 VLAN 标签去掉让终端收到的还是普通帧。配置 Access 接口要把接口模式先切到 access再指定所属 VLANinterface fastEthernet 0/1 switchport mode access switchport access vlan 10 exitswitchport mode access这一步不能漏。很多交换机接口默认处于动态协商状态你不手动指定模式端口角色就可能是动态的、不可控的。哪怕最终协商出来的是 access也不如直接写明确更稳妥。网络设备的配置最怕“既对又不对”明确的配置永远比依赖默认值可靠。如果接口多可以批量操作。比如把 SW1 的 Fa0/1 划入 VLAN 10Fa0/3 划入 VLAN 20interface range fastEthernet 0/1 switchport mode access switchport access vlan 10 exit interface range fastEthernet 0/3 switchport mode access switchport access vlan 20 exit不同产品对接口名称的写法不一样有的接口名是 GigabitEthernet0/0/1有的模拟器是 Fa0/1。命令报出 “Invalid input” 时先不要怀疑 VLAN 配置没做对大概率是接口名没写对。这算是我见过最频繁的新手问题之一。2.4 验证划分结果SW1 上划分完成后再看show vlan brief这时输出里应该能看到具体端口了。大致输出如下VLAN Name Status Ports ---- -------------------------------- --------- ------------------------------- 1 default active Fa0/2, Fa0/4 10 OFFICE active Fa0/1 20 TEST active Fa0/3SW2 上要做的配置和 SW1 基本一致只是接口角色反过来Fa0/2 划入 VLAN 10Fa0/4 划入 VLAN 20。注意PC 设备本身不需要配置 VLAN连接 PC 的交换机端口划入哪个 VLANPC 就属于哪个 VLAN。这个点对刚接触的人来说经常绕但想通之后就简单了。3. 跨交换机Trunk链路配置与转发机制3.1 为什么交换机之间不能只用Access口连接到这一步两台交换机上的 VLAN 都已经建好PC 也已经划入了对应 VLAN。但是如果只做到这里PC1 和 PC2 之间其实是不通的因为它们分别接在 SW1 和 SW2 上而两台交换机之间如果只用一个普通接口连接这个接口只会被划入某一个 VLAN另一端的交换机也会把这个口当成那个 VLAN 的 Access 口其他 VLAN 的帧根本过不去。要让一条链路承载多个 VLAN 的流量必须使用 Trunk。Trunk 端口像一个多车道管道每个数据帧在通过这条链路时会附带一个 VLAN 标签接收端交换机看到标签就知道这个帧属于哪个 VLAN再精确放行到对应 VLAN 的端口上。这个机制在标准里叫 802.1Q是目前各种企业交换机之间互联的通用方式。3.2 Trunk配置的关键命令在两台交换机的互联端口上都要把接口模式改成 trunk并明确放行需要通信的 VLAN。以 SW1 为例interface gigabitEthernet 0/1 switchport mode trunk switchport trunk allowed vlan 10,20 exitSW2 的互联口做同样配置。需要注意两点一是两端模式必须一致。如果一边是 trunk另一边是 access链路状态可能起来但 VLAN 10 和 VLAN 20 的流量不可能完整通过。二是放行列表尽量写明确。有些设备默认 trunk 会放行所有 VLAN这样实验里虽然也能通但不符合真实项目的收敛习惯。只放行需要的 VLAN能缩小广播域也能避免以后设备上新增 VLAN 后实验网络意外出现“不该通的流量通了”这类问题。3.3 转发机制分析完成 Trunk 配置后整个二层网络的转发逻辑就很清晰了。以 PC1 ping PC2 为例PC1 的 ARP 请求到达 SW1 后交换机发现这是一个来自 VLAN 10 的帧。因为 PC2 不在 SW1 的 VLAN 10 接口上SW1 就把这个带标签的帧从 Trunk 口发出去VLAN 标签是 10。SW2 收到后查看标签发现允许 VLAN 10就在本地 VLAN 10 范围内继续广播转发最终找到 PC2。PC2 回复时反方向走同样的路径。SHOW 的细节只有在出问题时才会被注意。比如 SW2 只允许了 VLAN 20 过 trunk那么 PC1 的 ARP 请求到了 SW2 就会被直接丢掉PC2 当然不通。这种问题在配置阶段很难一眼看出来但用show interfaces trunk很快就能定位。这段分析也解释了一个常见疑问为什么同一个 VLAN 跨交换机通而不同 VLAN 不通。这是正常的因为二层设备没有路由能力不同 VLAN 本身就属于不同广播域。想实现跨 VLAN 通信需要依赖路由器或三层交换机的 VLAN 间路由功能这是下一个实验要解决的问题。4. 连通性验证与常见故障定位4.1 验证命令怎么用配置完成后不要急着直接拔线重插。先把验证做到位后面排查能省一大半时间。最基础的检查命令是show vlan brief它确认的是边界设备的 VLAN 和端口对应关系。其次是show interfaces trunk它确认的是互联链路状态以及允许通过的 VLAN 列表show interfaces trunk正常状态下输出里应该能看到 Port 列为 GigabitEthernet0/1Mode 为 trunkEncapsulation 为 802.1QStatus 为 trunkingVLAN 列表包含 10、20。如果 Status 显示 not-trunking说明端口模式协商失败或另一端没有配 trunk。另外还有一个容易被忽视的命令show mac address-tableMAC 地址表能直接看到交换机从哪个接口学到了 PC 的 MAC。如果 PC1 能通SW1 的 MAC 表里应该有 PC1 和 PC2 对应的端口条目。这个命令在排查“为什么某个 PC 能通另一个不通”时非常有用。4.2 连通性测试矩阵在设备上验证连通性一般用 PC 间互相 ping。按当前拓扑设计预期结果是测试项预期结果原因分析PC1 ping PC2通同属 VLAN 10经由 Trunk 跨交换机转发PC3 ping PC4通同属 VLAN 20经由 Trunk 跨交换机转发PC1 ping PC3不通分属不同 VLAN二层隔离且无三层路由PC2 ping PC4不通分属不同 VLAN二层隔离且无三层路由先跑一遍测试如果前两条通了整个 VLAN 配置实验基本就成功了。前两条如果失败就要开始排查了。4.3 常见问题排查思路我整理了实验中最常见的几类问题和处理方向现象可能原因排查命令与建议PC1 与 PC2 不通同 VLAN 内失败端口划错 VLAN或 Trunk 未放行 VLAN 10看show vlan brief再查 trunk 放行列表两台交换机互联口状态异常一端配了 trunk另一端是 access两端的互联口都必须配 trunk模式要一致能 ping 通但跨 VLAN 也通了实验环境中可能误开三层路由功能检查交换机上是否配置了 VLAN 接口地址和路由相关配置VLAN 存在但接口不在 VLAN 列表里接口模式还是动态未设 access进接口重敲switchport mode access和switchport access vlan XX命令输入报错接口名或命令语法不匹配用show running-config确认设备接口名称再按对应语法调整还有一个很隐蔽的问题来自 MAC 地址表。如果之前做过其他实验PC 和交换机之间的 MAC 表项可能还残留着旧信息。比如原来 PC2 的 MAC 从 SW1 的某个接口学到过后来物理接法变了表项却没有立即老化就会导致通信短暂异常。遇到这种玄学问题时可以清一下 MAC 地址表再验证命令是clear mac address-table。实验环境下这么操作没问题但在真实生产设备上就要谨慎了。从经验来说排错顺序应该是“先看物理链路和接口状态再看 VLAN 划分最后看 Trunk 放行列表”。不要一开始就怀疑设备坏了绝大多数情况下二层不通的问题都出在 Port VLAN 划分或 Trunk allowed VLAN 列表上这两项占了我实验踩坑记录里的大部分。5. 可复用的配置习惯与实验扩展方向5.1 几条值得长期坚持的配置习惯这次实验做下来最大的收获之一是养成规范的配置习惯。很多问题不是原理不懂而是配置过程太随意。我总结了几条对新手尤其有用的习惯分享出来。第一条先规划再动手。把 VLAN 号、网段、端口对应关系画成一张表再去设备上操作。这样既不会配到一半忘了哪个接口属于哪个 VLAN也能在验证阶段快速对照。一个 VLAN 一个网段编号尽量和用途挂钩这个习惯越早建立越好。第二条配置前后都要验证。配完一个功能立刻用show命令确认一遍而不是把所有配置都敲完再统一检查。尤其在实验环境里返回配置回显是免费的不用白不用。真实的项目环境通常更注重变更控制但“配一步、查一步”的思路是一样的。第三条限制 Trunk 放行范围。只在互联链路上放行实际需要通信的 VLAN不仅更安全也能避免后续新增 VLAN 影响实验预期。遇到“为什么这个 VLAN 能通我没配过啊”这种问题时往往就是因为 trunk 默认放行所有 VLAN。5.2 实验的下一步扩展VLAN 配置做完后最常见也是最自然的扩展是 VLAN 间路由。现在 PC1 ping 不通 PC3 是正确结果因为二层隔离了。但如果业务上需要两个部门之间通信就不能靠二层解决了需要给 VLAN 配置三层网关。最简单的做法是在三层交换机上给每个 VLAN 创建一个虚拟接口也就是 Switch Virtual Interface并配好 IP 地址。比如 VLAN 10 的网关是 192.168.10.254VLAN 20 的网关是 192.168.20.254然后把 PC 的默认网关指到对应地址。这样不同 VLAN 的主机发往其他网段的流量会先到网关由三层设备完成路由转发。如果再往后走还可以加一个 DHCP 实验让交换机为每个 VLAN 分别分发 IP 地址或者再接一台路由器用单臂路由的方式实现 VLAN 间通信。每多走一步对二三层转发模型的理解都会更扎实。希望这篇实验记录能让你少走点弯路。我自己做完这一整套配置后最大的体会是网络实验不要怕“配置完了之后什么都不通”只要验证和排错步骤是完整的每一个“不通”都在帮你把原理和现象真正对应起来。