做了几年网络相关项目我最大的感觉是很多听起来不复杂的问题最后都卡在“VLAN划分与配置”上。办公楼上不了网、会议室网络忽快忽慢、跨楼层访问服务器超时十有八九都跟广播域没拆干净、标签没配对、trunk没放通有关系。VLAN这个词看着只是“虚拟局域网”的缩写但真正把它规划好、配明白靠的并不是背命令而是对广播域、802.1Q标签、端口类型和网关位置的理解。这篇文章我按自己实际做项目的思路整理一遍从“为什么要划分VLAN”开始到VLAN ID怎么规划、Access和Trunk怎么选、跨交换机怎么放通再到真机配置和排障经验。适合刚接触企业网络配置的工程师也适合被“配通了但总不稳定”折磨过的朋友。看完之后你可以直接拿这套方法去套自己手上的项目。1. 先搞清楚VLAN到底解决了什么问题1.1 广播域一个没有人维持秩序的大厅很多人第一次接触VLAN只记住“用来隔离网络”但隔离的到底是什么答案是广播域。以太网天然是广播介质。一台设备发出的广播帧比如ARP请求、DHCP发现报文默认会传遍同一个二层网络里的所有设备。你可以想象一个大房间里站满了人只要有人喊一嗓子所有人都必须停下来听。设备少还好设备一多广播帧就会占用大量CPU和带宽甚至引发广播风暴。在没有VLAN的年代想要让不同部门互不干扰只能从物理上把网络拆开每个部门用独立交换机再通过路由器互连。这样做成本高、线缆杂乱、扩展性差。VLAN出现之后一台交换机就能把端口分成多个相互隔离的“逻辑房间”广播帧只在同一个VLAN内部传递跨VLAN的二层流量直接丢弃。这正是VLAN的第一个核心作用缩小广播域而不是消灭广播。1.2 VLAN做了什么逻辑隔离而不是物理搬家VLAN的全称是Virtual Local Area Network虚拟局域网。虚拟在哪里虚拟在它不受物理端口位置的限制。端口1到端口8划进VLAN 10端口9到端口16划进VLAN 20这两个VLAN在逻辑上就是两张互不相通的“网”。更重要的是同一VLAN的设备不一定要插在同一台交换机上。只要中间链路能同时承载多个VLAN的帧那么A交换机VLAN 10里的电脑跟B交换机VLAN 10里的电脑完全可以“隔空相认”就像它们插在同一台交换机上一样。为什么能做到跨设备互通因为帧在穿过交换机之间的链路时被打上了VLAN的“身份证”也就是802.1Q标签。接收方看到标签上的VID就知道这个帧属于哪个VLAN该发给谁。这就是VLAN划分能跨交换机生效的核心机制。1.3 802.1Q标签与VID802.1Q是一个标准协议它在标准以太网帧的源MAC地址和类型字段之间插入了4字节的Tag信息。其中包含12 bit的VLAN ID也就是我们常说的VID取值范围1到4094。4094个VLAN听起来很多但实际规划时并不建议无脑用满。原因后面会讲这里先记住一个原则VLAN ID是一个全局标识两端交换机的Tag必须一致否则帧会被当成未知VLAN丢弃。打个比方VLAN ID就像是快递包裹上的目的地编码。发件方在包裹上贴好编码运输途中每个节点都靠这个编码转运收件方看到编码就知道该不该签收。如果发件方贴了10收件方只认20那这个包裹就只能被拒收。1.4 划分VLAN后的实际收益结合工程实际划分VLAN带来的收益大致有四条按优先级排序缩小广播域降低无关流量对全网的冲击实现二层隔离不同业务部门默认互不相通安全性更高让网络管理更灵活不用改物理布线就能调整归属为后续做ACL、QoS、策略路由提供清晰的边界。这里要特别强调一点VLAN是二层隔离不是安全边界。如果两个VLAN之间需要通信就必须通过三层设备做路由。也就是说VLAN划分解决了广播和结构问题但网关、路由策略、访问控制这些事还是得老老实实做。2. 动手之前的VLAN规划和端口类型选择2.1 VLAN ID到底怎么编号才好用很多新手拿到交换机第一件事就是开着命令行开始创建VLAN。我建议反过来先在纸上把表画出来。我常用的规划方法是按业务角色分段编号而不是按部门编号。比如把1到50留给办公终端50到100留给服务器100以上留给网络管理和特殊用途。这样后续需要按网段调整策略时一眼就能看出某个ID对应的角色。一个可以参考的规划表VLAN ID用途建议网段说明1默认VLAN不用于业务尽量不承载业务流量10行政办公/24员工有线终端20研发测试/24高带宽、可放开互访30访客无线/24建议只放行到外网40视频会议/24预留带宽优先级100网络管理/24仅管理员可访问有人会问为什么不用VLAN 1VLAN 1是所有交换机默认的VLAN无法删除而且很多设备在出厂状态下所有端口都归VLAN 1。如果让业务跑在VLAN 1里一方面不安全另一方面一旦有人接入交换机默认端口就可能直接进入你的业务网络。工程上默认做法就是不要让VLAN 1承担任何实际业务。2.2 Access、Trunk、Hybrid三种端口怎么选端口类型是VLAN配置里最容易搞混的部分。我用一句话总结连接终端的端口要么只属于一个VLAN连接交换机或路由器的端口才会需要考虑承载多个VLAN。Access端口就是“只属于一个VLAN”的端口。它发给终端的帧是不带Tag的因为普通电脑网卡默认不认识802.1Q标签。如果Access端口收到带Tag的帧通常会直接丢弃。所以连接PC、打印机、IP电话这类设备时用Access端口最稳妥。Trunk端口则是“允许承载多个VLAN”的端口。它连接的通常是交换机之间、或交换机和路由器之间的链路。Trunk端口默认会打上Tag接收方靠Tag识别VLAN。Hybrid端口是更灵活的折中方案可以同时收带Tag和不带Tag的帧。说实话日常做项目时绝大部分场景用Access加Trunk就够Hybrid在复杂接入场景里才会用到。2.3 一个可抄的VLAN划分表我在这篇里直接给一个可以抄作业的简化案例场景某办公园区项目共三层楼每层一台接入交换机另有一台汇聚交换机。需求是一楼综合办公二楼研发三楼会议室和访客各楼层之间除运维需要外默认不允许二层互通所有终端通过DHCP获取地址服务器单独放一个VLAN。按照这个需求可以做成下面这张表交换机端口范围VLAN用途端口类型一楼接入1-1610综合办公Access一楼接入17-2430访客/临时Access二楼接入1-2020研发Access二楼接入21-2440视频会议Access三楼接入1-830访客Access三楼接入9-1640视频会议Access所有接入交换机上联口-10/20/30/40汇聚链路Trunk这样设计的好处是将来一楼某个工位要临时改成研发工位不需要跑现场改线只需要在交换机上把这个端口从VLAN 10改到VLAN 20即可。2.4 单交换机和多交换机场景怎么串起来只有一台交换机的时候VLAN划分只要在本地端口上做就好了不涉及跨设备的问题。但实际项目里很少只有一台交换机更多的情况是多台交换机通过上联链路汇聚到核心/汇聚设备。这时必须想清楚一件事上联链路要同时承载哪些VLAN的流量就把哪些VLAN放进Trunk的允许列表里。很多人配完VLAN同一台交换机上ping不通或者跨交换机ping不通问题往往出在“Access划对了但Trunk没放通”。比如一楼的VLAN 10要访问二楼的服务器VLAN 50如果一楼交换机上联口只允许VLAN 10没有放通VLAN 50那么即使二楼交换机一切正常流量也出不了上联口。多交换机场景还有一个容易忽略的点Trunk链路的收和发都是双向的必须两端都放通对应VLAN而且两端VLAN ID一致。只在一端放通另一端照样把帧丢掉。3. 实机配置创建VLAN、划分端口、放通trunk3.1 登录设备的准备工作和配置前的检查配置之前先做三件事备份当前配置、记录设备型号和版本、确认管理地址可达。备份配置几乎是所有网络变更的第一道保险。命令行设备通常可以执行类似display current-configuration的命令查看当前运行配置再通过TFTP/FTP或其他方式导出。有些经验不足的工程师接到项目上来就敲命令结果配到一半设备重启配置全丢现场直接翻车。登录方式一般是用SSH或Console口。Console口适合首次上线和排障SSH适合远程维护。不管哪种方式进入配置模式前先display version和display vlan看一眼设备状态确认接口编号和现有VLAN情况避免把生产环境的配置清掉。3.2 创建VLAN并命名以下命令格式以某款主流企业级交换机为例。不同品牌的关键字可能略有差异但逻辑是相通的。先创建VLAN并命名system-view vlan batch 10 20 30 40 100 quitvlan batch可以一次性创建多个VLAN比逐个vlan 10再vlan 20高效得多。创建之后再给每个VLAN起一个有意义的名字system-view vlan 10 name Office quit vlan 20 name RD quit vlan 30 name Guest quit vlan 40 name Video quit命名这个动作很容易被跳过但我强烈建议保留。半年之后你回来看配置光看一个VLAN ID根本想不起来它是干什么用的有了名字运维成本会低很多。3.3 把物理端口划进VLAN接下来把端口划进VLAN。以下将端口1到8划为Access归属VLAN 10system-view interface GigabitEthernet0/0/1 port link-type access port default vlan 10 quit如果端口很多一个一个配确实麻烦。很多交换机支持端口组批量下发例如system-view port-group group1 group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/8 port link-type access port default vlan 10 quit批量下发之后务必抽查一个端口确认配置生效。命令配置成功不代表业务通了这跟写代码编译通过但不代表逻辑对是一个道理。3.4 跨交换机配置trunk接入交换机连接汇聚交换机的上联口通常是一个或两个光口例如GigabitEthernet0/0/24。把它配成Trunk并放通需要跨交换机传输的VLANsystem-view interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30 40 quit如果链路两端的交换机是不同厂商还要特别注意native vlan原生机VLAN的配置。默认情况下Trunk链路上不带Tag的帧会被划分到native vlan通常是VLAN 1。如果两端native vlan不一致就可能把没有标签的帧错误地转发到不同VLAN里造成“好像通了又不通”的奇怪问题。实际操作中我建议在Trunk口上显式配置native vlan不要依赖默认值interface GigabitEthernet0/0/24 port link-type trunk port trunk native vlan 1 port trunk allow-pass vlan 10 20 30 40 quit这段话的意思是不带Tag的帧走VLAN 1其余VLAN全部打Tag传输。3.5 三层网关和VLAN间互通的配置VLAN只是二层隔离不同VLAN之间默认不能互访。如果业务需要跨VLAN通信必须配置三层网关。常见有两种做法第一种用路由器或三层交换机做VLAN间路由。在三层交换机上给每个VLAN配置一个VLANIF地址作为网关例如system-view interface Vlanif 10 ip address quit interface Vlanif 20 ip address quit这样VLAN 10的设备把网关指向VLAN 20的设备把网关指向交换机替它们做路由转发。注意三层交换机上启用VLANIF后默认可能允许各VLAN间互通。如果要做精细访问控制还需要配合ACL限制。第二种用路由器子接口做单臂路由。这种方式常用于没有三层交换机、只有普通接入交换机加路由器的情况。在路由器的物理接口上创建多个子接口分别绑定不同VLANinterface GigabitEthernet0/0/1.10 dot1q termination vid 10 ip address arp broadcast enable quit interface GigabitEthernet0/0/1.20 dot1q termination vid 20 ip address quit对应交换机上联路由器的端口必须配成Trunk并放通这些VLAN。单臂路由的缺点是所有跨VLAN流量都挤在一条物理链路上带宽有限适合小型网络中大型项目还是推荐三层交换机做网关。3.6 配置后的验证套路配置完不能拍拍屁股走人必须按顺序验证查看VLAN信息display vlan确认所有VLAN已创建端口归属正确查看Trunk状态display interface GigabitEthernet 0/0/24确认端口链路类型和允许VLAN列表显示端口MAC表display mac-address看看端口是否学到了终端MAC终端测试用电脑ping网关地址再ping跨网段地址。有一种很容易误判的情况终端ping网关通说明本端Access和交换机网关都没问题但ping远端不同VLAN的地址不通问题很可能出在路由或ACL而不是VLAN本身。排查时要一层层剥开别一上来就怀疑链路。4. 排查实录这里才是踩坑重灾区4.1 终端获取不到IP地址终端接上网线获取不到IP这个现象最多。先不要急着看DHCP服务器而是从链路逐层查起。第一步看终端网卡状态是否识别到网线第二步看交换机的对应端口状态是否Up第三步display interface看端口是否在正确的VLAN里。很多时候就是因为端口忘了改 Access或者错把端口划到别的VLAN导致DHCP请求发不到服务器那边。还要注意DHCP请求是广播帧只能在同一个VLAN内传播。如果DHCP服务器不在终端所在VLAN里就需要在网关设备上配置DHCP中继DHCP Relay。有些项目把DHCP服务器放在VLAN 100里终端在VLAN 10里又没配中继那就必然获取不到地址。4.2 同VLAN跨交换机却ping不通同VLAN跨交换机ping不通最常见的原因就是Trunk没放通或者两端VLAN ID不一致。排查方法是在A交换机上display interface trunk看允许列表里有VLAN 10再去B交换机上同样看一次。如果A侧允许了但B侧没有马上加回来如果两侧都允许了再看两端链路的物理状态包括光模块、光纤收发器。有个容易忽略的坑一端是Access口一端是Trunk口中间用网线直接对接这在技术上是错的但现实中总会有人这么干。Access口发出去的帧不带TagTrunk口默认可能要求带Tag两边对不上自然不通。4.3 trunk放通了仍然不通native vlan和PVIDTrunk已经放通VLAN但还是不通时我会优先检查native vlan。所有Trunk端口都有一个PVID也就是端口默认的VLAN ID。不带Tag的帧进入Trunk口时会被打上这个PVID的标签。如果两端交换机的PVID不一致就会发生“VLAN错认”。举个例子A交换机的Trunk口native vlan是1B交换机的Trunk口native vlan是10。A发过来一个不带Tag的管理帧B会把它当成VLAN 10的流量结果管理报文可能出现在业务VLAN里。处理方法是两端把native vlan统一并且让native vlan承载的业务尽量少。对于支持显式配置native vlan的设备“port trunk native vlan 1”就把默认行为固定下来了。4.4 配置没错但总是丢包有时候ping能通但偶发丢包重启端口就好了过一会儿又犯。这类问题大概率跟环路有关。VLAN划分只是逻辑隔离不会替代STP生成树协议。如果网络中存在物理环路广播帧会在VLAN内不断转发形成广播风暴。常见的触发场景是有人把一根还连着交换机的网线从墙上信息点拔出后插到了另一台交换机的普通端口上形成一个意外的环。遇到这种情况优先在交换机上查看STP状态看是否存在被阻塞的端口。生产网络里所有接入层交换机都建议开启STP/RSTP并且在接入端口配置边缘端口避免普通终端接入时触发生成树重新计算。4.5 常见问题速查表故障现象可能原因排查方向终端获取不到IP端口VLAN错误、DHCP中继未配、VLAN广播不通查端口归属、查网关VLANIF、查DHCP Relay同VLAN跨交换机不通Trunk放通不全、两端VLAN ID不一致display vlan、display trunkTrunk配好了仍然不通native vlan不一致、物理链路异常统一PVID、检查光模块和尾纤时通时不通、网络卡顿二层环路、广播风暴检查STP状态、查找环路端口端口显示Up但业务不通端口被封堵、MAC漂移、ACL拦截查端口状态、MAC表、安全策略5. 几个工程化的习惯帮我少加了很多班5.1 配置前的备份和版本管理我每次改配置之前一定会备份当前配置改动完成、业务验证通过之后再备份一次运行配置并保存为最终版本。这个习惯看上去多花了五分钟实际上能规避大量风险。尤其是在现场施工阶段配置改来改去如果中间有一版是有问题的没有备份就只能凭记忆回滚。有些交换机支持配置回滚功能但依赖备用配置文件覆盖当前配置。如果当前配置已经保存了脏数据回滚也不一定干净。所以最靠谱的还是事前备份。5.2 命名规范越细越好VLAN起名字的时候很多工程师觉得无所谓VLAN 10就是VLAN 10。但等网络规模变大二三十个VLAN堆在一起没人记得100到底是谁。我习惯给VLAN起全称缩写比如RD_LAN、Guest_WiFi、Mgmt_Plane并且在同一文档里维护一份“VLAN ID/名称/网段/网关/用途/负责人”的对应表。这套信息不只是在配置设备时有用后续排查故障、划分权限、扩容改造时都离不开。5.3 VLAN数量规划要留余量规划VLAN ID时不要只看到眼前两三个业务要为未来留余量。比如现在只有四个VLAN配置时随手用了10、20、30、40如果后面要加一个“IoT设备”或“安防监控”就可能找不到清晰的编号段。我的习惯是按段分配1-50终端51-100服务器101-199基础设施201-300临时/项目专用。这样即使新业务插进来也容易找到合适的空位并保持整个网络的编号逻辑统一。5.4 把VLAN信息记进网络拓扑文档配置完设备只是第一步网络能不能长期稳定运维还要看文档是否跟得上。我会把每台接入交换机的端口归属、上联口Trunk放通列表、三层网关接口号都记在一张表里并同步更新拓扑图。这里有个小技巧给交换机端口打物理标签。比如标签上写着“GE0/0/1VLAN10-办公”这样现场施工人员排查时不用登录设备工具就能判断端口归属。实际操作中这种做法省下来的时间远比贴标签花的时间多。5.5 别把VLAN1当成宝贝最后这一点我踩过几次坑专门拿出来再说一次VLAN 1是默认VLAN删除不掉而且很多设备的管理VLAN默认就在VLAN 1里。让业务流量跑在VLAN 1里等于把所有默认端口都暴露在一个广播域内安全性和可维护性都很差。规划时直接把VLAN 1空出来业务从VLAN 10开始网络管理单独用VLAN 100或更高。这看起来只是编号习惯但实际遇到广播风暴、环路、异常接入时这样做能减少非常多排查范围。根据我个人经验VLAN划分这件事能够真正做到“配置一次看起来简单”靠的不是技术炫技而是规划先行、命名清晰、验证到位这九个字。真遇到棘手问题时回头查一查VLAN表和端口表通常比当场敲命令试错管用得多。