华为 S5700 交换机划分 VLAN:单口与批量配置 - 夜莺博客

华为 S5700 交换机划分 VLAN:单口与批量配置

VLAN 划分是华为交换机配置中最基础也最高频的操作,S5700 作为园区网主力机型,几乎每天都要和它打交道。本文用最直白的方式演示 S5700 上划分 VLAN 的完整流程:创建 VLAN、给 VLAN 配 IP、单个端口接入、以及用端口组批量把多个端口一次性划入 VLAN,并给出验证和保存命令。

基础准备:进入系统视图

<Huawei> system-view
Enter system view, return user view with Ctrl+Z.
[Huawei] sysname center_switch

先给交换机起个有意义的名字,便于多台设备管理时区分。

创建 VLAN 并配置 VLANIF 接口 IP

[center_switch] vlan 40
[center_switch-vlan40] quit
[center_switch] interface Vlanif 40
[center_switch-Vlanif40] ip address 10.10.40.1 255.255.255.0
[center_switch-Vlanif40] quit

Vlanif 接口是三层的,配了 IP 后该 VLAN 就具备网关能力,终端可以跨 VLAN 三层互通。

将单个端口加入 VLAN

[center_switch] interface GigabitEthernet 0/0/24
[center_switch-GigabitEthernet0/0/24] port link-type access
[center_switch-GigabitEthernet0/0/24] port default vlan 40

接入终端的口用 access 类型,port default vlan 40 把端口划入 VLAN 40。注意华为语法是 port default vlan,不要和 Cisco 的 switchport access vlan 混淆。

批量将一组端口加入 VLAN(端口组)

[center_switch] vlan 42
[center_switch-vlan42] quit
[center_switch] interface Vlanif 42
[center_switch-Vlanif42] ip address 10.10.42.1 255.255.255.0
[center_switch-Vlanif42] quit
[center_switch] port-group port1to8forvlan42
[center_switch-port-group-port1to8forvlan42] group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/8
[center_switch-port-group-port1to8forvlan42] port link-type access
[center_switch-port-group-port1to8forvlan42] port default vlan 42

端口组(port-group)是 S5700 批量配置的利器:先用 group-member ... to ... 指定 1-8 号端口,后续所有命令自动应用到整组端口,比逐个端口配置高效得多。

验证与保存

[center_switch] display vlan
[center_switch] save

display vlan 确认 VLAN 及端口成员关系,save 保存配置防止重启丢失。其它常用验证命令:display current-configuration 查看运行配置、display interfaces brief 查看接口状态。更多华为配置命令见 华为交换机配置宝典 和 VRP 常用配置与排障命令大全,误操作回滚见 华为 CE 交换机配置回滚。

动手之前:先把三件事想清楚

很多现场故障不是因为命令写错,而是因为规划没做。开始敲命令之前,先确认下面三点,能省掉后面大量的返工。

第一,VLAN ID 与用途的对应关系。建议按业务编号而不是按楼层编号,例如 40 为办公、42 为监控、100 为管理、200 为服务器。VLAN 编号一旦下发到几百个接入端口,再想改名成本极高。同时要避开厂商保留段:华为默认 VLAN 1 是管理 VLAN,许多现场还习惯把 VLAN 1 留给带外管理,业务不要挤在 VLAN 1 里。

第二,这个 VLAN 是否需要网关。只需要二层隔离的场景(例如纯二层接入、上层由防火墙做网关)不必配 Vlanif;需要在本机做三层转发或作为终端网关时,才创建 Vlanif 并配 IP。不用的 Vlanif 不要创建,创建了不配 IP 也不要留着,避免排障时被干扰。

第三,端口的角色分布。哪些口接终端(access)、哪些口上联(trunk)、哪些口要跑多个 VLAN 且对端要求不打标签(hybrid)。这一步最好落到表格里,和跳线表、配线架编号对齐,否则现场拔错网线的情况几乎一定会发生。

Access、Trunk、Hybrid 三种端口类型怎么选

端口类型 适用场景 报文处理
Access 接终端、打印机、摄像头、AP 的管理口 只属于一个 VLAN,进出都不带标签
Trunk 交换机之间上联、接服务器网卡汇聚 允许多个 VLAN 带标签通过,PVID 对应 VLAN 不打标签
Hybrid 一条线同时承载多个 VLAN,且要求某些 VLAN 对端不打标签 可逐个 VLAN 指定 tagged 或 untagged

华为的 Hybrid 端口是 Cisco 没有的特性,也是华为现场用得多、新手最容易含糊的地方。典型用法是:一台设备既要把管理流量以 untagged 方式交给对端设备(对端设备不认识标签),又要让业务 VLAN 带标签通过同一条线。这时候 Trunk 做不到,Hybrid 一行配置就解决了。

[center_switch] interface GigabitEthernet 0/0/10
[center_switch-GigabitEthernet0/0/10] port link-type hybrid
[center_switch-GigabitEthernet0/0/10] port hybrid pvid vlan 100
[center_switch-GigabitEthernet0/0/10] port hybrid untagged vlan 100
[center_switch-GigabitEthernet0/0/10] port hybrid tagged vlan 40 42

单端口划分:逐行解释一遍

回到最常用的场景:把 24 号口划给 VLAN 40。完整的操作路径如下,每一行的作用都值得说清楚。

[center_switch] interface GigabitEthernet 0/0/24
[center_switch-GigabitEthernet0/0/24] port link-type access
[center_switch-GigabitEthernet0/0/24] port default vlan 40
[center_switch-GigabitEthernet0/0/24] display this

第一行进入接口视图,注意华为的接口名在输入时可以用简写 int g0/0/24,但配置文件里一定是全称。第二行把端口类型设为 access,端口默认就是 access,所以这一行在新设备上通常可以省略,但在别人改过的端口上必须显式写,否则行为可能和预期不符。第三行才是真正把端口放进 VLAN 40 的命令。第四行 display this 是排查时的好习惯,它显示当前视图下的全部有效配置,能立刻确认三条命令是否都生效。

一个容易被忽略的细节:port default vlan 40 里的 40 必须是一个已经存在的 VLAN,否则华为设备会直接报错。所以正确的顺序永远是先 vlan 40 创建,再往端口里划。反过来做虽然在某些版本上会自动创建 VLAN,但行为不一致,不要依赖。

端口组的更多用法

端口组不只是用来批量划 VLAN,它本质上是"给一组端口开一个共享的配置视图"。只要是端口级命令,都能在端口组里批量下发。下面几个用法在现场非常实用。

[center_switch] port-group batch-uplink
[center_switch-port-group-batch-uplink] group-member GigabitEthernet 0/0/23 to GigabitEthernet 0/0/24
[center_switch-port-group-batch-uplink] description to-core-switch
[center_switch-port-group-batch-uplink] undo negotiation auto
[center_switch-port-group-batch-uplink] shutdown

上面这段做了三件事:给上联口写统一描述、关闭自协商强制全双工、然后批量关闭端口。最后一条 shutdown 在割接前预留端口时特别常用,配置先做好再 undo shutdown 一次性放开,避免割接过程中出现半通不通的中间状态。

另外一个高频场景是批量改描述和批量清除配置。清除时用 clear configuration interface GigabitEthernet 0/0/1 会连端口类型一起恢复默认,相当于把这个口"洗干净"再重新划 VLAN,比逐条 undo 更干净利落。注意这条命令不需要先进入接口视图。

VLANIF 三层互通到底怎么验证

配完 Vlanif 之后不要只看"命令没报错",要分层验证。推荐的顺序是:先看接口是否 up,再看 ARP 是否学到,最后才 ping 终端。

[center_switch] display ip interface brief
[center_switch] display interface Vlanif 40
[center_switch] display arp | include 10.10.40.
[center_switch] ping -a 10.10.40.1 10.10.40.100

display ip interface brief 输出里的 PHY 列会显示 Vlanif 的物理状态。Vlanif 特殊之处在于:只要该 VLAN 下至少有一个物理口是 up 的,Vlanif 就 up;如果这个 VLAN 一个 up 的口都没有,Vlanif 会 down,此时你配的 IP 是不生效的。这是新手最常见的困惑——"IP 明明配了,为什么 ping 不通",答案往往是这个 VLAN 下没好端口。

ping -a 中的 -a 指定源地址,在三层交换机上排障时必须用,否则设备可能用管理口的地址作为源,导致你以为业务不通其实是走错了源接口。

VLAN 间路由:三层交换机还是单臂路由

划完多个 VLAN 之后必然面临互通需求,只有两条路可走。第一条是本文演示的三层交换机方案:每个 VLAN 建一个 Vlanif 并配 IP,终端把网关指向对应的 Vlanif 地址,交换机内部直接完成路由。这条路的转发性能由硬件承担,是园区网的主流做法。

第二条是单臂路由:交换机只做二层,在连接路由器的那个口上配置 Trunk,由路由器为每个 VLAN 建子接口做网关。这种做法在小规模、设备能力受限的场景下还能见到,但每个 VLAN 的流量都要上行到路由器再下来,性能瓶颈明显,如今基本只用于临时过渡或极小型网络。

还有一条常被提及但实际上不是路由方案的做法:不同 VLAN 之间不做三层互通,而是靠一台防火墙同时接多个 VLAN 做策略控制。这在安全要求高的场景很常见,此时交换机上只创建 VLAN 和端口,Vlanif 全部不配,网关地址落在防火墙上。

让终端自动拿到地址:DHCP 配合 VLAN

Vlanif 配上 IP 之后,顺手的做法是在同一接口视图下开 DHCP,让终端自动获取地址,省掉逐台手工配置。

[center_switch] dhcp enable
[center_switch] interface Vlanif 40
[center_switch-Vlanif40] dhcp select interface
[center_switch-Vlanif40] dhcp server dns-list 223.5.5.5 114.114.114.114
[center_switch-Vlanif40] dhcp server excluded-ip-address 10.10.40.1 10.10.40.10
[center_switch-Vlanif40] dhcp server lease day 3

dhcp select interface 表示以 Vlanif 的地址和掩码作为地址池,配置量最小,适合接入 VLAN。需要排除的地址段(网关、服务器、打印机)用 excluded-ip-address 排除。如果多个 VLAN 共用一个大地址池,则改用 dhcp select global 配合 ip pool 全局池,这在跨网段地址紧缺时更常见。

要注意的是,开了 DHCP 不等于安全。接入侧还应该配合 DHCP Snooping 防止私接路由器带来的二次分配问题,具体做法见 华为交换机 DHCP Snooping 与 IPSG 配置。这两项配合起来才是完整的接入安全方案。

常见配置错误与对应的排障动作

下面几条是现场最常出现的问题,按出现频率排序。

  • 端口划不进 VLAN。先确认 VLAN 是否已创建,再确认端口类型是否真的是 access。如果端口在端口组里,注意端口组内的配置优先级低于端口自身视图下的配置,两者冲突时以端口视图为准。
  • 同 VLAN 内两台终端不通。先看 display mac-address 有没有学到两端的 MAC。学到了说明二层通,问题在终端;学不到说明二层没通,检查端口下有没有配置端口隔离。
  • 跨 VLAN 不通。检查两个 Vlanif 是否都 up,再检查终端网关是否指向自己的 Vlanif 地址。网关配错是跨 VLAN 不通的头号原因。
  • 上联口下挂所有 VLAN 都不通。检查 Trunk 口有没有把需要的 VLAN permit 进去。华为 Trunk 默认只允许 VLAN 1 通过,新加的 VLAN 必须显式 port trunk allow-pass。
  • 端口被意外配置过。用 display current-configuration interface GigabitEthernet 0/0/24 单独看这个口,比翻整份配置快得多。

保存、备份与配置管理

配置做完一定要保存,华为的 save 会把运行配置写入启动配置文件,重启后才会保留。

[center_switch] save
The current configuration will be written to the device.
Are you sure to continue? (y/n)[n]: y
[center_switch] display startup
[center_switch] display saved-configuration | include vlan

display startup 可以确认下次启动读取的是哪个配置文件,避免出现"保存了但启动加载的是旧文件"这类尴尬情况。运维上更稳妥的做法是把配置同步到文件服务器:用 tftp 或者 ftp 客户端命令把 vrpcfg.zip 备份出去,每次变更后自动执行一遍。华为交换机的配置文件与启动管理细节可以参考 华为交换机启动文件与配置管理。如果是 CE 系列需要事务式提交和回滚,机制完全不同,见 华为 CE 交换机配置回滚。

另外,S5700 这样的盒式设备没有 CE 的 commit 机制,所有 system-view 下的配置都是立即生效的。这意味着误操作会立刻影响业务,没有"先改后提交"的保护。因此批量变更前先备份 display current-configuration 的输出到本地,是最低成本的保险。

与 H3C、Cisco 语法的对照

功能 华为 VRP H3C Comware Cisco IOS
创建 VLAN vlan 40 vlan 40 vlan 40
设为接入口 port link-type access port link-type access switchport mode access
划入 VLAN port default vlan 40 port access vlan 40 switchport access vlan 40
Trunk 放行 port trunk allow-pass vlan 40 port trunk permit vlan 40 switchport trunk allowed vlan 40
三层接口 interface Vlanif 40 interface Vlan-interface 40 interface Vlan40
保存 save save force write memory

华为与 H3C 的差异集中在两处:接入口的 port default vlan 对 port access vlan,以及 Trunk 放行的 allow-pass 对 permit。这两条记住,多品牌切换时基本不会再敲错。更完整的对照可以看 华为交换机 VLAN 配置详解:Access、Trunk 与 Hybrid 端口。

生产环境的最佳实践

  • 端口描述全部写清楚:description To-A101-Desk 比 description vlan40 有用得多,出故障时能直接定位到物理位置。
  • 管理 VLAN 与业务 VLAN 分离,管理口地址单独规划网段,并限制可访问管理网段的源。
  • 未使用的端口批量 shutdown 并划入一个隔离 VLAN,减少私接和环路风险。
  • VLAN 规划表纳入 CMDB,变更走审批,不要让 VLAN 编号随手下发。
  • 批量变更前先备份配置,变更后立即 display vlan 与 display interface brief 复核。
  • 端口组的名字要能自解释,例如 pg-1to8-vlan42,半年后回头看还能读懂。

小结

S5700 上划分 VLAN 的核心动作只有四步:创建 VLAN、配置 Vlanif 网关、把端口设为 access 并划入 VLAN、验证并保存。单端口用接口视图,批量用端口组,两条路都走一遍基本就掌握了。真正的难点不在命令,而在前面的规划和后面的验证:VLAN 编号怎么分、端口角色怎么落表、Vlanif 为什么 down、Trunk 为什么漏配 VLAN,这些才是现场花时间最多的地方。把验证命令形成固定流程,问题定位速度会明显提升。

原文链接:https://www.jb51.net/network/227460.html