
VLAN这个技术在网络运维里属于“天天见”的基础内容。我做过不少网络项目的交付和排障也帮人整理过遗留网络文档深有体会的是VLAN相关的知识和命令背起来并不难但要在实战中运用得当需要把规划、配置、排错串成一个整体。这篇算是我对VLAN知识点的一次系统归纳重点放在实战部分——一个VLAN从无到有、从单台设备到跨设备、从二层隔离到三层互通整条链路怎么走每一步会遇到什么坑都尽量说清楚。它适合几类人看刚入行的网络工程师正在备考网络认证的学员以及公司里兼职管网络、经常被VLAN问题折腾的运维同学。如果你已经能熟练敲access、trunk、VLANIF这几条命令这篇能帮你把知识补成体系如果还在刚接触的阶段跟着章节顺序读下来也能建立一张完整的地图。1. 先想清楚再动手VLAN规划是实战的第一步1.1 VLAN到底解决了什么问题很多人一上来就问VLAN怎么配但我更喜欢先问一个问题为什么要用VLAN二层网络里设备之间是靠广播来发现彼此的。一台主机发送ARP广播会传到同一个二层域里的所有设备。如果整个公司几百台终端都在一个广播域里广播帧满天飞网络设备CPU忙不过来终端上网也会越来越慢。更麻烦的是任何一个设备中毒发广播包全公司一起卡顿。VLAN的核心作用就是在一个物理交换机上把广播域切开。它通过给数据帧打标签让交换机能够识别这个帧属于哪个“虚拟局域网”从而做到不同VLAN之间二层隔离同一VLAN内部二层互通。这个思路可以用一句话理解把一个大办公室用隔断隔成若干小房间物理上还在一栋楼里但声音互不干扰。VLAN就是网络世界的“隔断”。那为什么不给每个部门都堆一台独立交换机非要用VLAN成本是一方面管理也是一方面。独立交换机意味着每个部门一套设备、一套线缆、一套配置扩展性也非常差。VLAN的好处是逻辑隔离、物理共享要调整关系的时候只需要改配置不用重新布线。这也是802.1Q标签技术能够长期占据企业网主流地位的根本原因。1.2 实战中的VLAN划分逻辑规划VLAN没有统一标准但有一条原则非常通用按“业务边界”划分而不是按“角落位置”划分。最常见的做法是按部门划分。比如行政、研发、财务、访客、管理各占一个或多个VLAN。这样做的好处是权限边界和网络边界天然对齐后续做ACL、防火墙策略、QoS的时候规则会很清晰。如果公司有多个楼层还要考虑物理拓扑。一个楼层如果有两台汇聚交换机同一个VLAN很可能会跨两台设备。这时候VLAN ID必须在全网统一编号不能出现楼上VLAN10代表财务、楼下VLAN10代表研发的情况否则跨交换机后业务就串了。实战中我建议在规划阶段就列一张“VLAN分配与网段规划表”。至少要包含这几个字段VLAN ID、VLAN名称、用途描述、IP网段、掩码、网关地址、DHCP归属。举个例子VLAN ID名称用途网段掩码网关说明10Admin行政办公192.168.10.0255.255.255.0192.168.10.254办公PC20RD研发测试192.168.20.0255.255.255.0192.168.20.254研发/测试30Guest访客无线192.168.30.0255.255.255.0192.168.30.254仅上网99Manage设备管理192.168.99.0255.255.255.0192.168.99.254网络设备别小看这张表。很多网络故障查到最后根因就是IP网段和VLAN对应关系乱套了终端地址落在网段外面或者VLANID和文档对不上。规划清楚后面配置和排错都会轻松很多。1.3 关于VLAN ID和网段的两个实用建议VLAN ID范围是1到4094最常用的只有2到4094因为VLAN 1属于默认VLAN通常不建议直接用于业务。我要特别提醒两点。第一网段掩码必须留余量。按部门划分VLAN时容易犯的毛病是现在部门只有30人就分一个/24网段够用了。但人员扩张、打印机、无线终端、IoT设备加起来/24很可能不够用。等网段满了再改所有终端地址、DHCP池、路由条目全都得动一遍代价非常大。建议按未来3到5年的规模估算起步就分/24人多的部门直接给/22甚至/20。第二网关地址的选择要统一。有的习惯用.1当网关有的习惯用.254。本身没有硬性规定但必须全网统一。我见过一个项目里一半VLAN用.1做网关另一半用.254排错时经常看错非常难受。统一用.254还有个好处网段低地址段比较干净可以集中分配给服务器、打印机等静态设备方便做IP资产台账。2. 二层端口实战Access、Trunk 与 Hybrid 怎么选端口链路类型是VLAN配置里最容易出错的环节。很多人背得住概念但到具体场景里该用access用了trunk该用trunk用了access结果二层互通时好时坏。下面把三种模式讲透。2.1 Access端口连接终端的标配Access端口最适合连接PC、打印机、IP电话这些“一个端口只需要属于一个VLAN”的终端设备。它收到不带标签的数据帧时会打上这个端口的PVID也就是默认VLAN转发出去时会把标签剥掉保证终端收到的是一份普通的不带标签帧。配置非常简单以主流企业级交换机命令行风格为例vlan batch 10 20 interface GigabitEthernet0/0/1 port link-type access port default vlan 10port default vlan 10实际上就是在设置这个端口的PVID。这个概念经常引起混淆我多说一句对Access端口来说这位PVID不仅是入方向打标签的编号也意味着这个端口只能属于这一个VLAN。它不能“顺便放行”其他VLAN。实操中要注意如果端口下方连着一台“傻瓜交换机”或者一个AP情况就变了。傻瓜交换机下面可能挂了不同部门的多台PCAP可能会透传多个SSID对应的VLAN。如果这里用了access模式不同VLAN的终端就只能在二层隔离或者根本无法互通。这种场景应该用Trunk或者Hybrid后面会讲。排查Access端口问题时重点就三条VLAN是否已经创建、端口是否加入对应的VLAN、对端终端的IP地址是否属于该VLAN的网段。常有人只配了端口忘了vlan batch结果display vlan里根本找不到这个VLAN配置等于白做。2.2 Trunk端口交换机间的大动脉交换机之间的互联端口或者交换机连接路由器子接口、防火墙的VLAN子接口时必须用Trunk。Trunk端口允许同时承载多个VLAN的流量并且在转发帧时保留802.1Q标签。配置示例如下interface GigabitEthernet0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30 99这条命令只做了一件事告诉交换机这个端口允许放行VLAN 10、20、30、99的帧。需要注意只创建VLAN、只配access端口都不足以让流量跨交换机传输。每个经过的Trunk端口都必须显式允许对应VLAN通过。我排障时经常看到接入交换机配置没问题但上级交换机Trunk少放行了一个VLAN结果那个VLAN的所有终端跨设备就都不通。Trunk端口还有一个关键参数叫PVID。默认情况下端口收到的无标签帧会被打上PVID默认往往是VLAN 1然后按VLAN 1去转发。跨交换机场景里如果对端也发来无标签帧两边PVID不一致帧的归属VLAN就会错乱。所以团队内部最好约定所有互联Trunk的PVID都保持默认值并且只在特殊情况下修改修改后必须在两端保持完全一致。2.3 Hybrid端口什么时候才用得着Hybrid模式是Access和Trunk的混合体它能同时处理带标签和无标签的帧也可以在出方向灵活决定哪些VLAN的帧需要剥掉标签。部分设备默认端口模式就是Hybrid这也导致很多项目里“默认配置跑起来没出问题”但一旦有人显式改过就埋下了雷。我自己的经验是大部分场景用Access加Trunk完全够用了Hybrid并不是必选项。真正用得上Hybrid的场景主要有两个。一是AP上联口。AP要透传多个SSID对应的VLAN所以不能是access同时AP管理VLAN一般走无标签而业务VLAN走有标签用Hybrid可以一个口同时满足两种需求。二是某些服务器双网卡绑定场景比如服务器需要同时收发业务流量和管理流量一个物理口既要有标签帧又要有无标签帧这时候Hybrid更方便。我的建议很直接不熟悉Hybrid的工程师核心链路就老老实实用Trunk接入链路用Access。等项目跑稳了再去研究Hybrid的细节也不迟。无脑上Hybrid后面排错时单是理解帧格式就要多花不少时间。2.4 Access、Trunk、Hybrid 怎么选一张表说清端口模式主要用途入方向如何处理无标签帧出方向如何处理标签帧是否支持多个VLANAccess连接PC/打印机等终端打上PVID进入默认VLAN剥掉标签终端收到无标签帧否仅一个VLANTrunk交换机互联、路由器子接口打上PVID默认VLAN1可修改保留标签按allow-pass列表转发是HybridAP上联、特殊终端场景打上PVID可根据配置选择保留或剥除标签是选型记不住的时候就问自己两个问题这个端口下面连的是终端设备吗如果是终端能不能识别802.1Q标签普通PC是识别不了的所以用Access。这个端口是不是连接网内其他三层设备或交换机如果是需要承载多个VLAN就用Trunk。至于Hybrid只有确认两端对无标签帧的行为都需要精细控制时才考虑。3. VLAN之间要通信VLANIF和三层路由配置3.1 为什么二层隔离后还要做三层互通VLAN分割了广播域但业务不可能完全隔离。研发要访问财务打印、员工要上互联网、终端要连服务器都需要跨VLAN通信。二层不通就得靠三层路由来“接桥”。跨VLAN通信有两条常见路径单臂路由和三层交换。单臂路由是在路由器上创建子接口把Trunk链路分成多个逻辑接口每个子接口对应一个VLAN的网关转发性能完全依赖路由器CPU和链路带宽。三层交换则是在交换机上创建VLANIF逻辑接口直接给每个VLAN配一个三层网关由交换芯片硬件转发。实际选型我基本无脑推荐三层交换机。原因很简单单臂路由的瓶颈很明显流量一大路由器CPU顶不住而且链路和接口数量都有浪费。三层交换机价格现在已经非常亲民在中小规模网络中完全可以同时承担网关和转发任务。除非是极小型网络只有一台低端路由器否则没必要走子接口方案。3.2 VLANIF接口配置与状态判断配置VLANIF之前必须先保证VLAN已经创建并且至少有一个物理端口在该VLAN中处于up状态。否则VLANIF接口虽然创建成功逻辑状态也会是down的这个细节坑过很多人。常见配置如下vlan batch 10 20 interface Vlanif10 ip address 192.168.10.254 255.255.255.0 interface Vlanif20 ip address 192.168.20.254 255.255.255.0把网关配置成192.168.10.254和前面规划表保持一致。终端默认网关指向这里VLAN里的设备就知道“出VLAN找谁”了。配置完成后一定要用命令检查一下VLANIF和物理口的状态是否正常display ip interface brief display vlan如果VLANIF的状态是down通常原因不外乎三个VLAN没有创建成功、对应VLAN下没有任何物理端口up、物理端口被shutdown或线缆没接好。逐个排查即可。还有一种情况是VLANIF的IP地址和另一个网段冲突这种情况配置时会直接报错但两台设备之间静态配置的IP冲突则不会立刻暴露需要在全网审计时留意。3.3 DHCP分配联动让终端自动拿地址VLAN配置完成后通常还要让终端自动获取IP地址否则几百台终端挨个配静态IP工作量不可接受。常见做法是在VLANIF上启用DHCP。如果交换机作为DHCP服务器可以用全局地址池的方式dhcp enable ip pool vlan10_pool network 192.168.10.0 mask 255.255.255.0 gateway-list 192.168.10.254 dns-list 223.5.5.5 interface Vlanif10 dhcp select global这里有几个细节容易踩坑地址池网段必须和VLANIF网段一致网关必须指向VLANIF地址DNS建议同时配运营商和公共DNS至少两个避免单点DNS故障。如果不排除设备管理地址等静态占用地址还可以在地址池里配置excluded-ip-address段防止DHCP把地址分给网络设备使用导致IP冲突。如果公司有独立的DHCP服务器交换机则不用开DHCP服务。更常见的做法是在VLANIF接口下配置中继也就是dhcp select relay加ip relay address命令。这样客户端请求会被转发到中央DHCP服务器统一管理地址池比较适合多VLAN大型网络。4. VLAN故障排查从接入侧到三层逐层排查4.1 先查接入侧Access端口和PVID遇到“某台电脑上不了网”这类问题很多新手直奔三层配置然后发现查了半天毫无头绪。我自己的排查习惯是从下往上先把接入侧确认为止。第一步看物理连接。网口灯有没有亮协商速率是不是异常线缆是不是松动。第二步看端口状态。用display interface查看端口是否up是否被错误shutdown。第三步看VLAN归属。使用display port vlan或display vlan查看该端口是否属于目标VLANPVID是否正确。这里有个非常经典的问题端口明明配了port default vlan 10但display vlan里看不到VLAN 10。原因很可能是全局只创建了VLAN 20VLAN 10压根不存在。在某些设备上即使端口配置了不存在的VLAN命令也不报错但是端口实际交换行为完全异常。所以配置完成后display vlan这条命令必须养成习惯。再排查终端本身。如果VLAN配置都对但仍不通需要确认终端IP地址、掩码、网关是否匹配。很多人会用自动获取地址如果DHCP分配了错误网段的地址大概率是VLANIF和DHCP池的网段对不上而不是终端问题。4.2 再查跨设备链路Trunk放行和PVID终端接入侧没问题但跨网段不通或者上楼之后不通就要怀疑Trunk链路。第一件事是查看端口模式确认端口是Trunk而不是Access或Hybrid。第二件事是确认放行列表包含所有应该通过的VLAN。命令一般是display interface GigabitEthernet0/0/24重点看tagged/untagged或allow-pass字段。排查时要记住一条原则放行配置必须成对出现。两台交换机互联时A端Trunk放行了VLAN 10B端也必须放行VLAN 10两端少一个都不行。多台交换机串联时沿途每台设备的Trunk都要放行这才叫“整条链路打通”。还有一个容易忽略的坑PVID错误。如果A端的Trunk PVID人为改成了99但B端还是默认VLAN 1那么从A端发过来的无标签帧会被B当成VLAN 1处理导致该VLAN的终端在三层网关处无法正常通信。遇到莫名其妙跨设备Tor不通的现象建议顺手核对两端Trunk的PVID是否一致。4.3 三层部分VLANIF、ARP与路由先后排查二层通了三层也要通很多人卡在这一层很久。我的排查顺序是这样的。先用display ip interface brief看VLANIF的IP地址和状态。VLANIF如果是down看对应的VLAN下有没有物理up的access/trunk口。VLANIF up之后从终端ping网关不通说明网关没生效或网段不匹配通了再ping对端VLAN的网关最后ping对端终端。这一步能定位出是网关配置问题还是两端路由器由问题。很多VLAN间不通的故障最后都指向同一个现象终端能ping通自己的网关但ping不通另一个VLAN的地址。这种情况先查路由表用display ip routing-table确认有没有到对端网段的路由。直连网段的路由通常会自动生成如果对端VLANIF没配置或者VLAN没有可用的物理端口直连路由就不会出现。再往下查ARP在VLANIF上ping对端网关后有ARP表项吗如果ARP表里没有对端MAC说明二层链路仍存在问题或者中间还有设备在做二层隔离。4.4 VLAN常见问题速查表常见现象可能原因排查命令解决方向单台终端不通端口模式错/PVID错/物理线缆故障display port vlan / display interface核对access归属与PVID单个VLAN跨设备不通Trunk未放行或只配了一端display interface trunk两端核对allow-pass vlan列表获取IP失败或得到错误网段地址池与VLANIF不匹配/中继地址错display ip pool / dhcp status统一网段、检查relay地址VLANIF状态down对应VLAN无up物理口/VLAN未创建display vlan / display ip interface brief确保VLAN下物理口正常网关能通但跨VLAN不通缺路由/VLANIF未配置display ip routing-table补配置VLANIF或路由条目ARP表里没对端二层隔离/Trunk放行遗漏display arp / display vlan从接入侧到冲突逐段查Trunk这张表是我自己排障时反复参照的骨架。遇到问题不要先怀疑设备坏了先按表格把配置层一条条过一遍最常犯的错误永远是“少配了”和“配错了”而不是硬件故障。5. 实战中的经验总结与避坑建议5.1 管理VLAN不要用VLAN 1很多设备的默认VLAN就是VLAN 1所有端口在未配置时都默认属于它。如果不加区分地使用VLAN 1做管理那么所有设备的默认端口都会落入管理网段相当于把“设备管理口”暴露在整个二层网络里风险非常大。正确做法是单独划一个管理VLAN例如前面的VLAN 99并且只在设备互联和管理链路放行。交换机管理地址通常配在VLANIF 99上同时限制远程登录的源地址或ACL只允许运维网段的设备访问。这样的管理面干净排查问题时也不会和业务流量混在一起。我记得有一次帮朋友单位整理旧网络发现所有设备都在VLAN 1里又开着远程服务业务PC和管理面完全没隔离。整改的第一步就是把VLAN 99拉出来再把所有互联端口和接入端口重新规划。这个动作做完整个网络的管理边界立刻清爽了。5.2 VLAN数量不是越多越好别把自己绕进去VLAN可以精细划分但这不意味着每个小房间都要单独一个VLAN。VLAN越多三层路由条目越多DHCP池越碎交换机运维成本越大。一个只有80人不到的楼层拆出七八个VLAN完全就是在给自己制造排障负担。合适的原则是一个业务部门或一个功能域一个VLAN。比如人事、研发、办公、访客、管理、服务器足够了。如果需要更细粒度隔离优先在防火墙上做策略而不是继续拆VLAN。VLAN解决的是广播域和二层边界问题安全访问控制是ACL和防火墙的事情两者各有分工。另外还要注意很多低端设备虽然标称支持4094个VLAN但实际支持的VLAN数量远低于这个数字。大规模规划前建议先看设备规格表或者咨询厂商型号的VLAN规格别等配置下发了才发现超限。5.3 语音、访客、服务器等特殊VLAN要单独处理企业网络里常有一些特殊VLAN规划时要单独考虑。语音VLAN通常和PC接入共用一根线需要通过LLDP或DHCP Option通知IP电话使用哪个VLAN。这时不能简单配Access还要考虑QoS优先级确保语音流量不被突发数据挤掉。访客VLAN一般只开放上互联网的权限需要在网关设备上做ACL把这些网段访问内部服务器网段的数据包全部丢弃。很多公司访客无线能“连上”但内部数据照样能访问就是因为没有配套ACL策略VLAN隔离等于白做。服务器VLAN建议和生产办公VLAN再隔离一层。服务器区域访问量集中广播帧多而且安全要求高单列VLAN后配合防火墙或安全网关把服务器区单独划为DMZ区域管理更清晰。5.4 文档、命名与变更管理同样重要VLAN配置很容易出现“一次性配置三年没人碰一碰就炸”的局面。原因通常是文档缺失。到了改网络的那天谁也说不清VLAN 40到底代表哪个业务只能一台台设备翻配置。所以我的建议很实用从第一天开始就建立VLAN规划台账。每新建一个VLAN同步更新台账的VLAN ID、名称、网段、网关、DHCP池、归属部门和变更日期。命令上给VLAN命名一个有意义的名字比如name vlan10_admin别留着默认名。还要定期备份交换机配置。不同厂家的备份命令不同但做法一致把display current-configuration的内容保存到本地或配置服务器。这样即使设备故障、配置被误改也能快速恢复。这个内容后续还能扩展的方向也不少比如VLAN与多生成树协议的配合、VLAN在无线网络里的VLAN Pool方案、VLAN结合访问控制做精细化权限管控。如果这篇反馈好我后续会再写一篇专门讲VLAN安全联动和大型园区VLAN架构的进阶文章继续把这个主题做深。