ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

接入交换机VLAN与PVID配置:三网合一端口划分及避坑指南

接入交换机VLAN与PVID配置:三网合一端口划分及避坑指南

简介:《迈普交换机配置.doc》是一份面向网络运维初学者与交换机配置入门者的命令速查文档,围绕迈普设备的基础配置与常见业务场景展开,可用于日常配置参考、实验练习和故障排查前的能力梳理。压缩包内共1个doc文件,约34KB,篇幅集中、便于随查随用。内容覆盖Enable与全局配置模式切换、设备命名、enable密码设置、VLAN创建与描述、VLAN端口划分及PVID绑定,并延伸到IGMP Snooping启用、端口广播风暴抑制关闭、三网合一配置、端口环路检测keepalive设置以及通过删除startup文件清空配置等操作。已有11037人学习,适合需要快速掌握迈普交换机命令体系、对照完成基础网络搭建与配置复核的读者作为案头参考。

1. 从一台接入交换机开始:先啃 VLAN 和 PVID,再谈三网合一

很多人拿到一份交换机配置 .doc,第一反应是从头到尾照着敲一遍;真正在现场翻车的,往往不是命令记不住,而是 VLAN 视图、端口视图和 PVID 的层级搞混了。这份笔记适合刚接手接入层交换机配置的网络运维、弱电集成人员和需要快速复现三网合一端口的工程师,内容覆盖基础命令、VLAN 划分、tagged/untagged、PVID、IGMP Snooping、端口环路检测以及清空配置。它不解决选型问题,但能把一台企业级盒式交换机的常用配置路径讲清楚。先别急着关 STP、关风暴抑制,把 VLAN 和端口默认 VLAN 的关系跑通,后面电话、上网、IPTV 三个业务 VLAN 才不至于互相串味。

2. 基础命令与 VLAN 端口模型:从 hostname 到 pvid 的落地顺序

2.1 先备份再进配置模式:enable、configure terminal 与 hostname

拿到设备后不要直接改。先用特权模式看一遍现有配置,把show run的输出保存到本地文本,后面改错才有后悔药。进入特权模式用enable,进入全局配置模式用configure terminal,改设备名用hostname。设备名建议带位置或用途,但不要写真实单位、楼层和项目名,实验环境用Switch_1就够了。enable password [0 | 7] string里的0和7不是密码强度,而是告诉设备后面的字符串按明文还是已加密串处理;保存后show run里显示成什么样,以设备实际回显为准,别凭记忆判断。

Switch>enable Switch#show run Switch#configure terminal Switch(config)#hostname Switch_1 Switch(config)#enable password 0 ChangeMe_2024 Switch(config)#exit Switch#wr

这段代码的顺序是“看配置 → 进全局 → 改名字 → 设 enable 密码 → 保存”。show run在特权模式下执行,用来抓改前快照;hostname Switch_1只改提示符和标识,不影响转发;enable password 0 ChangeMe_2024里的0表示按明文参数输入,ChangeMe_2024是示例,不要照抄到生产;wr是保存当前配置。不同型号的提示符可能显示为Switch(config)#或带具体型号的前缀,命令层级以设备回显为准。密码这一项最容易踩的坑是把7后面直接接明文,结果设备把它当加密串解析,登录时怎么输都不对。

2.2 VLAN 创建、描述与 tagged/untagged 的视图边界

VLAN 创建用vlan [vlan-num],vlan-num范围是 1~4094,其中 1 通常是默认 VLAN,能不用就不用。进入 VLAN 配置模式后,description string只是给人看的备注,不改变转发;真正决定端口怎么走的是port port-list untag|tag。untag对应接终端、电话、机顶盒的 access 口,tag对应上联到路由器或核心的 trunk 口。这里的关键是视图:port 0/0 tagged要写在 VLAN 视图里,而pvid 20要写在端口视图里。原文把pvid写在 VLAN 段落下,实际敲的时候要退出来再进端口,否则命令会被拒绝或落到错误上下文。

Switch#configure terminal Switch(config)#vlan 20 Switch(config-vlan)#description VLAN20_Internet Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#port 0/1 untagged Switch(config-vlan)#exit Switch(config)#port 0/1 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch#wr

这段配置表达的是:VLAN 20 是上网业务;0/0 作为上联口,以 tagged 方式允许 VLAN 20 通过;0/1 作为下行 access 口,以 untagged 方式接入终端;最后进入 0/1 端口视图,把 PVID 设为 20。port 0/1 untagged只解决“这个口属于 VLAN 20 且发出不带标签”,pvid 20解决“这个口收到的无标签帧归到 VLAN 20”。两个动作少一个,终端可能拿不到地址或只能和部分设备通。端口列表可以写成单口,也可以写成0/3-0/6这种范围,具体范围写法看设备回显,别硬套。

命令生效视图作用参数边界
vlan [vlan-num]全局配置创建并进入 VLAN1~4094,1 建议保留管理
description stringVLAN 配置业务备注不改变转发,只做标识
port port-list untagVLAN 配置端口以不带标签加入常用于接终端
port port-list tagVLAN 配置端口以带标签加入常用于上联 trunk
pvid pvid-num端口配置设置端口默认 VLAN只影响无标签入方向

提示:先把端口表和 VLAN 表写在纸上,再进设备敲命令;一边想一边敲,最容易把tag和untag敲反。

2.3 pvid 为什么必须在端口视图下敲:一个最小可复现实验

最小实验不需要复杂拓扑:一台交换机、两台终端、一个上联口。0/0 上联到上层设备并配 tagged,0/1 和 0/2 接终端并配 untagged,两个下行口都设同一个 PVID,终端应该在同一 VLAN 内互通。然后把 0/2 的 PVID 改成另一个 VLAN,但保持untagged不变,现象通常是 0/2 终端拿不到原网段地址,或者能拿到地址但和 0/1 不通。这个实验能直观看出:untagged决定发出帧不带标签,pvid决定收到的无标签帧归哪个 VLAN,两者不是一回事。

Switch#show run Switch#configure terminal Switch(config)#vlan 20 Switch(config-vlan)#port 0/1 untagged Switch(config-vlan)#port 0/2 untagged Switch(config-vlan)#exit Switch(config)#port 0/1 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch(config)#port 0/2 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch#wr

验证阶段用show run逐段看三个位置:VLAN 20 下面有没有 0/1、0/2 的untagged;端口 0/1 下面有没有pvid 20;端口 0/2 下面有没有pvid 20。如果 VLAN 段有端口、端口段没 PVID,终端发出的无标签帧可能落到默认 VLAN 1;如果端口段有 PVID、VLAN 段没端口,帧进了 VLAN 20 但没有成员口,表现一样像“不通”。这类问题不需要抓包,先把show run的层级对齐,能省掉一半排查时间。

3. 三网合一配置:VLAN 20/2103/2104 的 tagged 与 access 配套

3.1 拓扑假设与 VLAN 规划:先画端口表再敲命令

三网合一常见的做法是:上网、电话、IPTV 各用一个 VLAN,上联口以 tagged 方式承载多个 VLAN,下行口按业务拆成 access,并分别设置 PVID。按原文给出的编号,上网用 VLAN 20,电话用 VLAN 2103,IPTV 用 VLAN 2104;0/0 作为上联 tagged 口,0/1 接上网终端,0/2 接电话,0/3-0/6 接 IPTV。这个端口表要先落到纸面,再进设备配置。原文里vlan 1那段容易误解:port 0/0-0/7 untagged在 VLAN 1 下是把端口以不带标签加入默认 VLAN,不是“删除端口”。如果你的意图是清掉默认 VLAN 成员,先show run看实际成员,再决定是否逐口改 PVID,别把“加入”当成“删除”。

端口角色VLAN标签方式PVID
0/0上联20/2103/2104tagged不设业务 PVID
0/1上网终端20untagged20
0/2电话2103untagged2103
0/3-0/6IPTV2104untagged2104
0/7预留/管理按现场按现场按现场

这张表是后面所有命令的底稿。上联口 0/0 不需要把 PVID 改成某个业务 VLAN,它只负责带标签转发;下行口才需要untagged + pvid配套。电话和 IPTV 的 VLAN 编号偏大,敲命令时容易多一位少一位,建议在 VLAN 描述里写清用途,但不要写真实部门名和位置名。配置前先保存一份show run,配置后再保存一份,后面比对差异比凭记忆靠谱。

3.2 上行口 0/0 tagged、下行口 untagged 与 pvid 的配套写法

下面这段按原文业务整理成可读顺序:先处理默认 VLAN 1 的描述和端口,再创建 VLAN 20、2103、2104,分别在上行口打 tag、在下行口去标签,最后进端口视图补 PVID。原文把pvid紧跟在 VLAN 段后面,实际执行时要先exit回全局,再port 0/1进端口视图。这个顺序不能省,否则pvid可能被当成 VLAN 下的非法参数。代码里的VLAN20_Internet、VLAN2103_Phone、VLAN2104_IPTV只是描述,长度和字符集以设备支持为准。

Switch#configure terminal Switch(config)#vlan 1 Switch(config-vlan)#description default Switch(config-vlan)#port 0/0-0/7 untagged Switch(config-vlan)#exit Switch(config)#vlan 20 Switch(config-vlan)#description VLAN20_Internet Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#port 0/1 untagged Switch(config-vlan)#exit Switch(config)#port 0/1 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch(config)#vlan 2103 Switch(config-vlan)#description VLAN2103_Phone Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#port 0/2 untagged Switch(config-vlan)#exit Switch(config)#port 0/2 Switch(config-port)#pvid 2103 Switch(config-port)#exit Switch(config)#vlan 2104 Switch(config-vlan)#description VLAN2104_IPTV Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#port 0/3-0/6 untagged Switch(config-vlan)#exit Switch(config)#port 0/3-0/6 Switch(config-port)#pvid 2104 Switch(config-port)#exit Switch#wr

这段代码里,port 0/0 tagged在三个业务 VLAN 下各出现一次,意思是上联口同时允许三个 VLAN 带标签通过;下行口分别以untagged加入对应 VLAN,再在端口视图设pvid。pvid 2104对0/3-0/6是批量设置,前提是设备支持端口范围进端口视图;如果设备不支持,就逐口进。wr之前先show run,重点看 VLAN 20 下有没有 0/1、VLAN 2103 下有没有 0/2、VLAN 2104 下有没有 0/3-0/6,以及每个下行口的 PVID 是否和 VLAN 编号一致。上联口 0/0 如果只在一个 VLAN 下打了 tag,另外两个业务就会单通或完全不通。

3.3 IGMP Snooping、STP 与风暴抑制:三网合一里哪些开关要动

IPTV 走组播时,全局igmpsnoop enable通常要开,作用是让组播流量按成员口转发,而不是在 VLAN 内泛洪。原文在三网合一配置后写了igmpsnoop enable,这个命令在全局配置模式下执行。另一个高风险动作是spanning-tree disable和端口下的storm-control disable:前者关闭生成树,后者关闭广播风暴抑制。原文只在 0/0 上关风暴抑制,并关闭全局 STP,这种配法适合已经确认没有物理环路、且上联侧有其它防环手段的场景;如果现场还有备用线、临时跳线或用户私接,关掉 STP 和风暴抑制等于把广播风暴的闸门打开。

Switch#configure terminal Switch(config)#igmpsnoop enable Switch(config)#spanning-tree disable Switch(config)#port 0/0 Switch(config-port)#storm-control disable Switch(config-port)#exit Switch(config)#exit Switch#wr

igmpsnoop enable放在全局,影响组播成员管理;spanning-tree disable也是全局,关闭后交换机不再参与生成树计算;storm-control disable在端口 0/0 下执行,关闭该口的广播风暴抑制。三个命令不是一套“必选项”,要根据现场防环设计取舍。我的习惯是:先保留 STP 和风暴抑制把业务跑通,确认没有环路、上联侧有防环措施后,再按原文档要求逐项关闭;关闭前把show run存档,关闭后立刻用keepalive给关键下行口加环路检测。别为了照抄文档,把防环能力一次性全撤掉。

4. 环路检测与清空配置:keepalive 100 和 delete startup 的边界

4.1 端口环路检测:keepalive 的时间单位与检测粒度

端口环路检测在端口视图下用keepalive,原文示例是port 0/1下执行keepalive 100,其中 100 的单位是秒,表示每 100 秒检测一次。这个时间不是越小越好:太小会增加检测报文频率,太大则环路发生后要等更久才动作。接入层接入口建议按现场规模设,先在一个关键下行口开,观察日志和端口状态,再推广到其它口。keepalive不能替代 STP,它更像端口级的补充手段;如果全局 STP 已经关闭,keepalive和端口风暴抑制至少要留一个,不能两个都空着。

Switch#configure terminal Switch(config)#port 0/1 Switch(config-port)#keepalive 100 Switch(config-port)#exit Switch(config)#exit Switch#wr

这段命令只做一件事:在 0/1 端口开启环路检测,检测周期 100 秒。port 0/1先进入端口视图,keepalive 100的参数是秒,不是毫秒;wr保存后最好用show run确认该命令落在 0/1 端口段下,而不是全局段。常见误用是把keepalive敲在全局,设备可能直接报错,也可能提示符没变但命令没生效。另一个边界是:只给一个口开检测,不能覆盖整台交换机的环路风险;要么按关键下行口逐个开,要么先恢复 STP 作为兜底。

4.2 清空配置:filesystem、dir、delete startup 的执行顺序

清空配置不是erase一把梭。原文给出的路径是:特权模式下输入filesystem,回车后执行dir,找到名为startup的启动配置文件,再用delete startup删除,最后断电重启。这个顺序里,filesystem是进入文件系统视图,dir是列目录,delete startup是删启动配置。删完后如果不断电重启,当前运行配置可能还在内存里,设备看起来“没清干净”;断电重启后才会按空配置启动。生产设备上执行前,先把show run保存到本地,确认没有遗漏的远程管理配置,否则删完可能连不回去。

Switch#show run Switch#filesystem Switch#dir Switch#delete startup

show run是删前快照;filesystem进入文件系统操作上下文;dir用来确认startup文件存在,不同型号文件名可能是startup或带后缀,以dir回显为准;delete startup删除启动配置文件。删除后不要立刻走人,先dir再看一眼文件是否消失,然后断电重启。注意:原文说“关电重新启动交换机”,不是软重启;如果设备支持软重启,也要确认启动配置文件确实不在了。清空配置属于不可逆操作,实验机上先走一遍,生产机上至少两人复核。

4.3 配置保存与回滚:wr 之前先想清楚的三件事

wr不是万能保存键。第一,确认当前视图是特权模式,配置模式下敲wr可能不识别;第二,确认改的是启动配置还是运行配置,删了startup之后又wr,可能把当前运行配置重新写回去;第三,确认上联口和下行口的标签方式没有互相污染。我的做法是每改完一个业务 VLAN 就show run看一段,三个 VLAN 都跑通后再wr,保存后立刻再show run一次,和改前快照做文本比对。这样即使后面要回滚,也知道是哪一段被改过。

操作风险点前置动作
wr保存把错误配置固化先show run核对
delete startup清空后无法恢复本地保存改前快照
spanning-tree disable环路失去兜底确认无物理环路
storm-control disable广播风暴扩散配合 keepalive 或上联防环
pvid改错终端落到错误 VLAN逐口核对 VLAN 成员

这张表不是让你背,而是每次改配置前扫一眼。尤其是delete startup和spanning-tree disable,一个是不可逆,一个是把防环能力撤掉;两者都不适合在业务高峰做。keepalive 100可以作为端口级补充,但它不是 STP 的替代品,别把“开了 keepalive”当成“可以随便关 STP”。

5. 避坑与排查:VLAN 不通、组播卡顿、配置回滚的五个现场现象

5.1 现象一:同 VLAN 终端不通,端口看着配了但 PVID 还是 1

现象是两台终端接在 0/1、0/2,VLAN 20 下都能看到untagged,但互 ping 不通,或者一台拿到地址另一台拿不到。原因通常是只做了port untagged,没进端口视图改pvid,端口收到的无标签帧仍然归默认 VLAN 1;也可能pvid 20敲在了 VLAN 视图下,设备没接受。解决方法是show run逐段看:VLAN 20 段有没有 0/1、0/2;端口 0/1、0/2 段有没有pvid 20。两个位置都对,再看终端网卡 VLAN 设置和上联口 tagged 是否放行。排查时不要一上来抓包,先把配置层级对齐。

Switch#show run Switch#configure terminal Switch(config)#port 0/1 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch(config)#port 0/2 Switch(config-port)#pvid 20 Switch(config-port)#exit Switch#wr

这段是补 PVID 的最小动作。port 0/1和port 0/2分别进端口视图,pvid 20只影响该口无标签入方向,wr保存后重新插拔终端或等终端重新获取地址。注意:如果端口已经以untagged加入 VLAN 20,再改 PVID 不会破坏 VLAN 成员关系;但如果 VLAN 段没加入该口,只改 PVID 也不通。

5.2 现象二:上联口 tagged 配了,三个业务只有一个能通

现象是上网 VLAN 20 能通,电话和 IPTV 不通,或者 IPTV 时通时断。原因常见于上联口 0/0 只在 VLAN 20 下打了 tag,VLAN 2103、2104 下漏了port 0/0 tagged;也可能是上联设备侧只允许了 VLAN 20。解决方法是把三个 VLAN 段都翻一遍,确认 0/0 在 20、2103、2104 下都有 tagged;再对照上联设备的允许 VLAN 列表。三网合一不是配完下行口就结束,上联口是三个业务的共同出口,少一个 tag 就少一条路。

Switch#show run Switch#configure terminal Switch(config)#vlan 2103 Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#exit Switch(config)#vlan 2104 Switch(config-vlan)#port 0/0 tagged Switch(config-vlan)#exit Switch#wr

这段只补上联口在电话和 IPTV VLAN 下的 tagged 成员关系。vlan 2103、vlan 2104分别进入对应 VLAN,port 0/0 tagged让上联口带标签放行。改完用show run确认三个 VLAN 段都有 0/0,不要只看当前段。上联侧如果也是企业级交换机,按同样逻辑核对 trunk 允许列表;如果上联是路由器单臂,子接口封装 VLAN 编号要和这里一致。

5.3 现象三:IPTV 卡顿或组播泛洪,igmpsnoop 没开或开错位置

现象是 IPTV 直播卡顿、换台慢,或者整个 VLAN 内出现大量组播泛洪。原因通常是全局igmpsnoop enable没开,或者开在了错误视图;也可能是上联口没有把 IPTV VLAN 带标签送上去,组播源根本没进来。解决方法是先在全局配置模式确认igmpsnoop enable,再用show run看它是否落在全局段而不是某个端口段。然后核对 VLAN 2104 的成员口和 0/0 tagged。组播问题和单播不通的排查路径不同,先确认组播源路径,再看成员管理。

Switch#configure terminal Switch(config)#igmpsnoop enable Switch(config)#exit Switch#show run Switch#wr

igmpsnoop enable是全局命令,放在configure terminal之后、exit之前;show run用来确认它没有被写到端口段。如果设备回显提示该功能已开启,不要重复敲;如果提示不支持,说明该型号的组播能力边界不同,不要硬套。IPTV 卡顿还可能是上联带宽或组播源问题,igmpsnoop只解决二层泛洪和成员转发,不解决源侧丢包。

5.4 现象四:一插线全网变慢,STP 和风暴抑制都被关了

现象是某个下行口接上临时跳线后,全网广播风暴、管理界面卡死、业务大面积中断。原因往往是全局spanning-tree disable加端口storm-control disable同时存在,交换机既不参与生成树计算,也不抑制广播风暴;如果现场还有私接小交换机或双上行,环路立刻扩散。解决方法是先拔掉疑似环路端口,恢复 STP 或至少恢复端口风暴抑制,再给关键下行口加keepalive。不要为了“照着文档配”把防环能力全部撤掉,文档给的是命令样例,不是现场风险评估。

Switch#configure terminal Switch(config)#port 0/1 Switch(config-port)#keepalive 100 Switch(config-port)#exit Switch(config)#exit Switch#wr

这段是在 0/1 端口补环路检测,检测周期 100 秒。keepalive只能作为补充,不能替代 STP;如果现场环路风险高,优先恢复 STP 和端口风暴抑制,再评估是否关闭。关闭storm-control前要确认上联侧有广播抑制策略,否则一个环路就能把整台接入交换机打满。

5.5 现象五:清空配置后重启,旧配置又回来了

现象是按filesystem、dir、delete startup操作后,设备重启仍然带着旧 VLAN 和密码。原因通常是删完没有断电重启,当前运行配置还在内存;或者删的不是实际启动配置文件,dir里还有另一个启动文件;也可能删除后又执行了wr,把运行配置重新写回启动文件。解决方法是dir确认文件名,delete startup后再次dir看文件是否消失,然后断电重启;重启后先show run看是否为空配置,再决定是否重新下发。

Switch#filesystem Switch#dir Switch#delete startup Switch#dir

这段的关键是删除后再dir一次,确认startup文件不存在。filesystem进入文件系统上下文,dir列目录,delete startup删除启动配置,第二个dir是复核。不同型号的启动文件名可能不同,以dir回显为准;不要凭“应该叫 startup”直接删。清空配置前把show run存到本地,删完后断电重启,不要用wr把当前配置又写回去。

6. 进阶验证:用 show run 做配置审计与最小回滚

配置审计不需要复杂工具,一份改前show run、一份改后show run就够。我习惯把两份输出保存成before.txt和after.txt,在本地用 diff 看差异,重点盯 VLAN 段、端口段和全局开关三处:VLAN 段看成员口和 tag/untag,端口段看 PVID,全局段看igmpsnoop、spanning-tree和密码配置。这样比在设备上反复翻屏稳,也能在回滚时快速定位改过哪几行。

# 本地保存两份 show run 输出后执行 diff -u before.txt after.txt

diff -u会按行显示增删,-开头是改前有、改后没有,+开头是改后新增。看到pvid变化先别急着回滚,对照端口表确认是不是本次要改的端口;看到port 0/0 tagged在某个 VLAN 段消失,优先怀疑上联放行被误删。最小回滚不是整份配置倒回去,而是只回退差异里与本次业务相关的行,回退后再show run复核一次。

审计位置重点看什么常见异常
VLAN 段成员口、tag/untag上联口漏 tag
端口段PVID 与 VLAN 编号PVID 仍是 1
全局段IGMP、STP、密码防环开关被误关
保存动作wr前后快照错误配置被固化

从那以后我每次改接入交换机,都强制走一遍“改前 show run、改后 show run、diff 复核、再 wr”的流程,尤其是三网合一这种多 VLAN 共上联的场景,少看一眼就可能把电话和 IPTV 的 PVID 串掉。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进