华为三层交换机VLAN、Trunk、Eth-Trunk与静态路由实战配置

发布时间:2026/9/16 19:11:57
华为三层交换机VLAN、Trunk、Eth-Trunk与静态路由实战配置 1. 从一台设备说起为什么单靠二层交换机撑不住现在的网络很多人第一次接触华为三层交换机场景都差不多公司原来一堆傻瓜交换机几十号人用着还行人一多、部门一多就开始出现各种说不清的问题——财务的打印机被别人扫到、两个部门互相能看到共享文件夹、广播一多网络就卡顿。这时候你把一台华为三层交换机搬上机架问题就从要不要划 VLAN变成了VLAN 怎么划、trunk 怎么配、不同网段怎么通、两条上联线怎么绑成一条。这篇内容我按自己实际做项目的顺序来写华为三层交换机上面先划分VLAN交换机之间用trunk传多个 VLAN 的流量跨设备的上联链路用eth-trunk做聚合提高带宽和可靠性最后在三层交换机上配VLANIF 接口 IP 和静态路由表让不同网段能互相通信。整套东西适合刚拿到设备不知道怎么下手的运维新人也适合手里有华为设备但一直没正经规划过网络的老手做一次复盘。需要提前说清楚一个前提三层交换机不是更贵的二层交换机它的价值在于把原本要交给路由器干的活——VLAN 间路由——拉到本地用硬件转发完成。数据包进来查一次路由表之后同一数据流的后续报文直接走 ASIC 交换这就是业内常说的一次路由、多次交换。不理解这句话后面配 VLANIF 的时候很容易把三层口和二层口混着配然后对着不通的 ping 结果发呆。我下面所有命令都基于华为 VRP 系统S5700、S5720、S5730 这类盒式设备都通用拓扑我直接给一个真实能用的三层交换机 A核心作为网关负责所有 VLAN 的网关地址和 VLAN 间路由二层接入交换机 B、C 接终端通过 trunk 上联到 AA 和 B 之间用两条物理线做 eth-trunk避免单线故障和带宽瓶颈A 上配一条缺省路由指向出口路由器出口路由器回程路由指回来。地址规划先定好不然配到一半你会发现 VLAN 号和网段对不上VLAN ID用途网段网关VLANIF10办公192.168.10.0/24192.168.10.120财务192.168.20.0/24192.168.20.130服务器/打印192.168.30.0/24192.168.30.1100管理192.168.100.0/24192.168.100.1200设备互联10.0.0.0/3010.0.0.1这张表建议你在纸上或者 Excel 里先画出来再上设备。我见过太多人上来就敲命令配到第三个 VLAN 忘了第二个网段最后靠display ip interface brief一个个反查浪费半小时。1.1 二层交换和三层交换差的不只是一个三层标签二层交换机转发看的是 MAC 地址表收到一个帧查表找到出接口就发出去整个过程不碰 IP。问题在于广播帧——ARP 请求、DHCP 发现、各种协议报文——同一个广播域里所有设备都会收到。终端数量一多广播占比上去CPU 和链路带宽都被吃掉。VLAN 的本质就是缩小广播域。你把 40 台机器切成 4 个 VLAN每个 VLAN 只有 10 台广播的影响范围立刻降下来。但切完 VLAN 新的问题来了VLAN 10 的 PC 想访问 VLAN 30 的服务器二层根本转发不了因为它们是两个独立广播域中间必须有设备做三层转发。传统做法是拿一台路由器每个 VLAN 接一个物理口或者做单臂路由子接口。我早年就干过单臂路由一台路由器一个物理口划几个子接口跑起来能用但终端一多流量全压在那一条链路上路由器 CPU 转发性能直接见底。三层交换机解决的正是这个它内部有硬件转发引擎VLANIF 接口的互访流量走芯片不走 CPU几百兆甚至几个 G 的互访都不是问题而且每个 VLAN 一个逻辑接口不用占物理口。所以你可以把三层交换机理解成交换机 一堆高速路由口的结合体。VLANIF 就是这个路由口一个 VLAN 对应一个配上 IP 就成了这个网段的网关。1.2 VLAN、trunk、eth-trunk 各管一段不要混着理解这三个词经常被一起提但它们解决的是三个完全不同层次的问题我习惯用快递站来类比VLAN是分拣区。同一个分拣区里的包裹帧随便传跨区就得走特殊通道。它解决的是隔离和广播域问题。trunk是货车车厢上的标签规则。两个站点之间的货车上装着多个分拣区的货怎么让对方知道哪件货属于哪个区靠标签。trunk 就是让一条物理链路承载多个 VLAN 的帧并且用 tag 区分。它解决的是链路复用问题。eth-trunk是把两条窄马路合并成一条宽马路并且其中一条塌了另一条还能走。它解决的是带宽和可靠性问题跟 VLAN 是两个维度的事。弄混这三个概念的典型症状是以为配了 trunk 就能跨交换机通信结果 VLAN 没允许通过不通或者以为配了 eth-trunk 就能跨网段结果根本没配 VLANIF还是不通。这三个东西是叠加关系不是替代关系。1.3 我的配置顺序和背后的理由实际下设备的时候顺序很重要我一般按住这个流程走先批量建 VLAN不然后面每个口都要回头补。配接入交换机 B、C 的 Access 口和上联 Trunk 口。先做 eth-trunk再做 eth-trunk 上的 trunk 放行 VLAN。核心 A 上建 VLANIF 配 IP。配静态路由或指向出口的缺省路由。最后逐段验证从同 VLAN 通到跨 VLAN 通再到出公网。为什么先做聚合再做 trunk因为 Eth-Trunk 接口创建后成员口的原来二层配置包括 link-type 和 allow-pass都会被清掉你如果在成员口上配了 trunk 再绑进去配置等于白做还得重来。这是新手最容易踩的第一个坑我自己也踩过绑完发现display port vlan里成员口全部是默认配置一脸懵。2. VLAN 划分和接口类型把该隔离的隔开2.1 Access、Trunk、Hybrid 怎么选别一股脑全用 trunk华为交换机的端口链路类型有三种Access、Trunk、Hybrid。很多教程一上来就说级联口配 Trunk接电脑配 Access这话没错但没说清 Hybrid 存在的意义。Access 口只属于一个 VLAN收到不带 tag 的帧就打上该 VLAN 的 tag发出去的时候把 tag 剥掉。接 PC、打印机、AP 这些不懂 VLAN 的设备一律用 Access。Trunk 口可以放行多个 VLAN默认对 PVID 所在的 VLAN 发 untagged其余 VLAN 发 tagged。用于交换机之间级联最合适。Hybrid 是华为特有的既能像 Access 一样接终端又能像 Trunk 一样放行多个 VLAN区别在于它可以针对每个 VLAN 单独控制发出去的时候带不带 tag。它的经典用途有两个一是某些厂商的 AP 或 IP 电话要求管理流量不带标签、业务流量带标签二是对接第三方设备时对方要求特殊的 tag 行为。选型建议很直接场景选型原因接 PC、打印机、摄像头Access终端不懂 VLAN不需要 tag交换机之间级联Trunk一条线承载多个 VLAN接 IP 电话 PC 串联Hybrid 或 Voice VLAN语音带 tag数据不带 tag接第三方设备要求 untagged 多 VLANHybrid逐 VLAN 控制 tag接服务器做多网卡绑定Access 或 Trunk看网卡是否支持 VLAN一句话能 Access 就 Access级联用 Trunk剩下的特殊情况才上 Hybrid。不要为了显得配置复杂就把接 PC 的口配成 Trunk那只会给自己挖坑——PVID 不对的话当场不通。2.2 批量建 VLAN 和端口划分的实操在核心 A 上先建 VLANHuawei system-view [Huawei] sysname CORE-A [CORE-A] vlan batch 10 20 30 100 200vlan batch支持离散和连续两种写法vlan batch 10 20 30和vlan batch 10 to 12 20 to 22都可以。超过十几个 VLAN 的时候用批量命令能省很多事而且不容易漏。接入交换机 B 上同样建 VLAN然后配接入口Huawei system-view [Huawei] sysname ACC-B [ACC-B] vlan batch 10 20 30 100 [ACC-B] interface GigabitEthernet 0/0/1 [ACC-B-GigabitEthernet0/0/1] port link-type access [ACC-B-GigabitEthernet0/0/1] port default vlan 10 [ACC-B-GigabitEthernet0/0/1] quit [ACC-B] interface GigabitEthernet 0/0/2 [ACC-B-GigabitEthernet0/0/2] port link-type access [ACC-B-GigabitEthernet0/0/2] port default vlan 20 [ACC-B-GigabitEthernet0/0/2] quit如果是一整段连续的端口要划到同一个 VLAN可以用端口组省事[ACC-B] port-group group-member GigabitEthernet 0/0/3 to GigabitEthernet 0/0/10 [ACC-B-port-group] port link-type access [ACC-B-port-group] port default vlan 30 [ACC-B-port-group] quit提示端口组只是批量下发命令的快捷方式命令本身仍然逐口生效。如果某几个口的原有配置有冲突比如已经划了别的 VLAN端口组下发时可能报错建议先用display current-configuration interface看一眼原状。2.3 Trunk 链路配置和 PVID 这个经典坑接入交换机上联口配 Trunk[ACC-B] interface GigabitEthernet 0/0/24 [ACC-B-GigabitEthernet0/0/24] port link-type trunk [ACC-B-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 100 [ACC-B-GigabitEthernet0/0/24] quit核心 A 对应的下行口配对称的 Trunk[CORE-A] interface GigabitEthernet 0/0/24 [CORE-A-GigabitEthernet0/0/24] port link-type trunk [CORE-A-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20 30 100 [CORE-A-GigabitEthernet0/0/24] quit这里有个必须讲透的点华为 Trunk 口的默认 PVID 是 1。PVID 的作用是当这个口收到一个不带 tag 的帧时给它打上 PVID 对应的 VLAN tag。发了出去的规则是PVID 所在 VLAN 的帧发 untagged其余 VLAN 发 tagged。为什么这是个坑假设你把 Trunk 口的 PVID 改成了 10port trunk pvid vlan 10那么 VLAN 10 的帧从这个口发出去时不带 tag。对端如果 PVID 也是 10能收对端如果 PVID 是 1这个 untagged 帧就被当成 VLAN 1 的帧直接丢给 VLAN 1VLAN 10 就断了。所以两端 Trunk 的 PVID 要么都保持默认 1要么都设成同一个 VLAN 并且那个 VLAN 要 allow-pass绝不能一边 1 一边 10。我个人的做法是交换机级联口一律不动 PVID保持默认 1所有业务 VLAN 都 allow-pass。这样最不容易出问题VLAN 1 也不用或者干脆在接口上undo port trunk allow-pass vlan 1把 VLAN 1 关掉减少无标签流量带来的不确定性。还有一个细节port trunk allow-pass vlan all看起来省事但它会把 VLAN 1 和所有已建 VLAN 都放行。如果你后来建了新 VLAN别人可能借着这个口就摸进去了。安全性要求高的环境一定写明确列表。2.4 语音 VLAN 和数据 VLAN 挤在一个口上的做法办公区经常是一个工位一根网线IP 电话串一台 PC。华为交换机对这种场景有专门的 Voice VLAN 功能配起来比手工 Hybrid 省心[CORE-A] voice-vlan 100 enable [CORE-A] voice-vlan security enable [CORE-A] interface GigabitEthernet 0/0/5 [CORE-A-GigabitEthernet0/0/5] port link-type hybrid [CORE-A-GigabitEthernet0/0/5] port hybrid untagged vlan 10 [CORE-A-GigabitEthernet0/0/5] port hybrid pvid vlan 10 [CORE-A-GigabitEthernet0/0/5] voice-vlan enable [CORE-A-GigabitEthernet0/0/5] quit原理是PC 发的是 untagged 帧被划到数据 VLAN 10IP 电话发的是带语音 VLAN tag 的帧交换机识别 OUI 后划到语音 VLAN 100 并打上 tag。这样一根线跑两种业务语音流量还能享受单独的 VLAN 和优先级。注意Voice VLAN 的模式分自动和手动自动模式靠 OUI 识别设备不在 OUI 库里可能识别不出来生产环境建议先查一下话机型号是否在支持列表或者改用手动模式指定。3. 三层接口 IP 和路由表让不同网段真正通起来3.1 VLANIF 配置和三层口不能用二层命令的规矩VLAN 建好了只是二层通要跨网段必须配 VLANIF。在核心 A 上[CORE-A] interface Vlanif 10 [CORE-A-Vlanif10] ip address 192.168.10.1 24 [CORE-A-Vlanif10] quit [CORE-A] interface Vlanif 20 [CORE-A-Vlanif20] ip address 192.168.20.1 24 [CORE-A-Vlanif20] quit [CORE-A] interface Vlanif 30 [CORE-A-Vlanif30] ip address 192.168.30.1 24 [CORE-A-Vlanif30] quit [CORE-A] interface Vlanif 100 [CORE-A-Vlanif100] ip address 192.168.100.1 24 [CORE-A-Vlanif100] quitVLANIF 配好 IP 之后设备会自动生成直连路由用display ip routing-table能看到类似192.168.10.0/24 Direct Vlanif10的条目。这一步不需要你手动写路由很多人以为要写结果写了条错的静态路由把自己绕进去。VLANIF 有个必须知道的特性VLANIF 的状态跟着 VLAN 里有没有 up 的物理口走。如果 VLAN 10 在所有交换机上一个端口都没 up那 VLANIF 10 就是 down 的IP 虽然配上了也不生效。所以如果你先把 VLANIF 配好但终端还没插线display ip interface brief里会显示 down这是正常的插上线自动 up。另一个常识VLANIF 是逻辑接口不需要也不能在它上面配port link-type、port default vlan这类二层命令敲了会报错。同理物理口上如果配了ip address三层模式就不能再配 VLAN 相关命令。华为盒式交换机用undo portswitch把物理口切成三层口[CORE-A] interface GigabitEthernet 0/0/23 [CORE-A-GigabitEthernet0/0/23] undo portswitch [CORE-A-GigabitEthernet0/0/23] ip address 10.0.0.1 30 [CORE-A-GigabitEthernet0/0/23] quit这种口一般用来对接路由器或者防火墙做纯三层互联不参与 VLAN。3.2 静态路由表怎么配、什么时候必须配同设备上的 VLANIF 之间互访靠直连路由就够了但要能上外网、要能跨到别的网段就得有静态路由。回看拓扑核心 A 的 GE0/0/23 接了出口路由器那 A 上要写一条缺省路由[CORE-A] ip route-static 0.0.0.0 0.0.0.0 10.0.0.2意思是所有我不知道往哪发的包都丢给 10.0.0.2。出口路由器那边必须知道内网网段怎么回去否则包出去了回不来表现为 ping 公网通、ping 内网不通或者反过来。出口路由器上要写[ROUTER] ip route-static 192.168.10.0 255.255.255.0 10.0.0.1 [ROUTER] ip route-static 192.168.20.0 255.255.255.0 10.0.0.1 [ROUTER] ip route-static 192.168.30.0 255.255.255.0 10.0.0.1 [ROUTER] ip route-static 192.168.100.0 255.255.255.0 10.0.0.1四个网段挨着写太啰嗦的话可以做路由汇总。192.168.10.0/24 到 192.168.30.0/24 这三个用 192.168.0.0/16 汇总最省事但会把 192.168 段其他地址也带进去得确认不冲突。更精确一点可以算 192.168.0.0/19覆盖 192.168.0.0 到 192.168.31.255正好把 10、20、30 都包进去第三位掩码的算法是要覆盖 0-31 共 32 个 C即 5 位2^53224-519 位掩码也就是 255.255.224.0。[ROUTER] ip route-static 192.168.0.0 255.255.224.0 10.0.0.1这一条就顶三条写路由表的时候能减负。当然前提是 192.168.1~31 这段地址在别处没有被用否则会出现路由黑洞。还有一点静态路由的下一跳必须是本设备有直连路由的地址。你写ip route-static 0.0.0.0 0.0.0.0 172.16.1.1但设备上根本没有 172.16 的直连这条路由会被标记为无效display ip routing-table里看不到它出现。这算一个隐性校验能帮你排除不少错误。3.3 路由验证别只看 ping看路由表和接口状态配完路由按这个顺序验证出问题能快速定位到哪一层display ip interface brief看所有 VLANIF 是不是 up、IP 有没有配错。display ip routing-table看直连路由和静态路由有没有进表。display arp all看 VLAN 内的终端 ARP 有没有学到。从网关 ping 各 VLAN 的终端验证二层通。从 A 的 VLAN 10 终端 ping VLAN 20 终端验证 VLAN 间路由。从终端 ping 出口路由器、ping 外网验证缺省路由。display ip routing-table的关键字段是 ProtoDirect/Static/OSPF和 Pre优先级。华为默认直连路由优先级 0静态路由优先级 60OSPF 内部 10。如果同一目的网段有两条不同优先级的路由优先级数值小的进表。如果你配了 OSPF 又配了静态要清楚谁会赢不然排查的时候会怀疑人生。4. Eth-Trunk 链路聚合把两条线当成一条用4.1 手工模式还是 LACP看对端是什么设备Eth-Trunk 有两种工作模式手工负载分担模式manual load-balance两端都配成手工模式不跑协议纯粹按算法把流量散到成员口。配置简单但对端设备也必须支持并配置成同样的模式任何一端配错整体就不通。静态 LACP 模式lacp-static两端跑 LACP 协议协商会互相检查对方的存在并形成一致的成员口列表。一端断了或者配错协议能发现异常。怎么选跟同一厂商的华为设备对接我一般直接上 LACP因为它能通过display eth-trunk看到哪些成员是 Active、哪些是 Unselect排查方便。对接第三方设备或者对端不支持 LACP 的时候老老实实手工模式。本地侧我先配 LACP[CORE-A] interface Eth-Trunk 1 [CORE-A-Eth-Trunk1] mode lacp-static [CORE-A-Eth-Trunk1] port link-type trunk [CORE-A-Eth-Trunk1] port trunk allow-pass vlan 10 20 30 100 [CORE-A-Eth-Trunk1] truncate准确地说最后一步是把成员口绑进来不是在 Eth-Trunk 视图敲truncate而是[CORE-A] interface GigabitEthernet 0/0/1 [CORE-A-GigabitEthernet0/0/1] eth-trunk 1 [CORE-A-GigabitEthernet0/0/1] quit [CORE-A] interface GigabitEthernet 0/0/2 [CORE-A-GigabitEthernet0/0/2] eth-trunk 1 [CORE-A-GigabitEthernet0/0/2] quit也可以直接在 Eth-Trunk 视图里用trunkport[CORE-A] interface Eth-Trunk 1 [CORE-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/1 [CORE-A-Eth-Trunk1] trunkport GigabitEthernet 0/0/2两种写法效果一样。绑进去之后这两个成员口的原有配置会被清除并继承 Eth-Trunk 接口的配置所以前面说过先做聚合再配 trunk。对端接入交换机 B 上做同样的配置模式也必须是 LACP[ACC-B] interface Eth-Trunk 1 [ACC-B-Eth-Trunk1] mode lacp-static [ACC-B-Eth-Trunk1] port link-type trunk [ACC-B-Eth-Trunk1] port trunk allow-pass vlan 10 20 30 100 [ACC-B-Eth-Trunk1] trunkport GigabitEthernet 0/0/23 [ACC-B-Eth-Trunk1] trunkport GigabitEthernet 0/0/244.2 成员口的硬性约束违反了绑不上去Eth-Trunk 对成员口有明确要求这些条件不满足端口会显示 Unselect 或者干脆加不进去条件说明速率和双工所有成员口必须一致不能一个千兆一个百兆二层/三层属性不能混着用类型要统一加入的 VLAN / Trunk 配置以 Eth-Trunk 接口为准成员口继承是否被 STP 阻塞阻塞口不会被选为 Active端口类型不能是镜像目的口、不能是某些特殊功能口我遇到过一次成员口速率被手工写死成 100M另一个是自协商千兆结果 LACP 协商时一个 Active 一个 Unselectdisplay eth-trunk 1一看就明白。排查聚合问题第一步永远是display eth-trunk 1和display interface eth-trunk 1看成员口的状态列表。4.3 负载分担算法和活动链路数Eth-Trunk 不是把一个包拆成两半走两条线单个数据流的报文始终走同一条成员链路只有不同数据流才会被散到不同成员口。分担依据由全局算法决定[CORE-A] load-balance src-dst-mac或者[CORE-A] load-balance src-dst-ipsrc-dst-mac按源目 MAC 算哈希src-dst-ip按源目 IP 算。跨三层通信时 MAC 会变每跳重写用src-dst-ip通常分布更均匀纯二层转发用 MAC 也行。实际环境里哪个效果好用哪个配完看display interface eth-trunk 1里各成员口的进出流量如果明显一条忙一条闲就换算法或者换更细的哈希模式比如enhanced模式结合源目 IP 和端口号。LACP 模式下还能限制最大活动链路数做带宽控制或者和运营商侧对接时有要求[CORE-A] interface Eth-Trunk 1 [CORE-A-Eth-Trunk1] max active-linknumber 2 [CORE-A-Eth-Trunk1] least active-linknumber 1max active-linknumber 2表示最多两条成员口处于转发状态多余的作为备份least active-linknumber 1表示至少一条活动链路低于这个数量接口才 down。MSTP 环境下配合max参数能实现一部分链路转发、一部分备份的效果。4.4 三层聚合口什么时候需要怎么配如果聚合口不是用来级联交换机而是要当一个三层接口用比如接防火墙做双线聚合可以把它切成三层[CORE-A] interface Eth-Trunk 1 [CORE-A-Eth-Trunk1] undo portswitch [CORE-A-Eth-Trunk1] ip address 10.0.0.1 30undo portswitch把接口从二层切成三层之后成员口也自动跟着变三层这时就不能再配port trunk allow-pass了。这种配置适合核心到出口设备之间做高带宽互联比配两个三层口再走路由简单。注意不是所有华为交换机型号都支持undo portswitch低端型号可能不支持三层聚合口。上设备前先查该型号的规格或者用?补全看看命令是否存在。5. 常见问题排查这些坑我基本都踩过5.1 速查表症状、原因、处理现象可能原因排查/处理同 VLAN 不通Access 口没划 VLAN 或划错display port vlan看接口跨交换机同 VLAN 不通Trunk 没 allow-pass 该 VLAN两端都查display port vlan跨交换机同 VLAN 不通两端 PVID 不一致统一 PVID 或改成默认 1VLAN 间不通终端网关没指向 VLANIF终端ipconfig看网关VLAN 间不通VLANIF downVLAN 内无 up 端口插线后自动 up能内网不能外网缺省路由没配或下一跳不可达display ip routing-table单向能通则不通回程路由缺失出口设备补回程静态路由Eth-Trunk 不通两端模式不一致一端 manual 一端 lacp 必然不通Eth-Trunk 部分口 Unselect成员口速率/双工不一致display eth-trunk看状态聚合后流量不均哈希算法不适配换 load-balance 算法这张表我建议打印出来贴在机柜内侧出问题先对症状能省很多时间。5.2 三个真实案例的排查过程第一个案例是新加 VLAN 后老 VLAN 突然不通了。现场情况是管理员为了加一个新部门建了 VLAN 40然后在汇聚交换机的上联口用了port trunk allow-pass vlan 10 to 40。听起来没问题但那条链路的对端口用的是明确的allow-pass vlan 10 20 30没放行 40新 VLAN 不通同时因为修改了 allow 列表某些设备的 STP 拓扑重算短暂震荡。根因是两端 allow 列表不对称。处理办法就是两端逐字对齐或者用一致的管理模板下发。第二个案例是两条线的聚合只能跑一条的带宽。用户做了 Eth-Trunk两个成员口都 Active但实测吞吐只有 1G。用display interface eth-trunk 1看流量发现一个口满一个口几乎空。原因是默认哈希算法按源 MAC而内网大量流量来自同一台核心服务器源 MAC 固定哈希结果固定到一条链路。改成load-balance src-dst-ip并开启增强模式后分布正常了。这个问题的关键认知是聚合能不能提速取决于数据流的数量和哈希分散度单流永远上不去。第三个案例是网段能 ping 通但下载大文件卡。用户配了 VLANIF 做网关一切正常但一传大文件就断断续续。查display cpu-usageCPU 不高说明走的是硬件转发再查接口display interface GigabitEthernet 0/0/24发现 errors 和 CRC 计数在涨。最后定位是网线质量问题和两端速率双工协商不一致。换线、把两端手工固定成千兆全双工之后恢复正常。这件事提醒我三层通了不代表底层链路没问题看接口计数是最直接的抓手。5.3 我总结的几条实操心得第一配置前先规划别边配边想。VLAN 号、网段、网关、上行口、聚合口全部写在纸上。现场改配置的成本是规划成本的十倍。第二每次改完立即验证不要攒着一起测。配一个 VLAN 就用display port vlan确认配完 Trunk 就两端对看配完路由就看display ip routing-table。攒到最后一起测出问题时你根本不知道是哪个环节错了。第三Trunk 口不要图省事用 all。一是安全二是后期排查时你无法一眼看出这个口到底放行了哪些 VLAN。写明确列表改动时两边同时改形成习惯。第四聚合口配完一定看display eth-trunk和成员口流量。状态是 Up 不等于分担正常流量分布才是最终答案。第五改设备前先备份配置。display current-configuration导出留档或者用save前先display saved-configuration对比。设备重启后如果没保存所有配置清零这个教训只有经历过一次才会记一辈子。提示华为交换机配置修改后是存在内存里的save才会写入 flash。很多配好之后重启就没了的事故根源就是忘了保存。可以用display saved-configuration和display current-configuration做对比确认差异后再 save。6. 把整套配置串起来一份可对照的完整清单整套东西拆开看是四件事二层隔离、链路复用、链路聚合、三层路由。为了让你能直接对照我把核心 A 上的关键配置按顺序整理成一份清单。实际项目里我不会一次性全贴上去而是分段下发、分段验证这里为了阅读完整才集中展示。# 1. 基础 system-view sysname CORE-A vlan batch 10 20 30 100 200 # 2. 下行 Trunk 口接接入交换机 interface GigabitEthernet 0/0/24 port link-type trunk port trunk allow-pass vlan 10 20 30 100 quit # 3. 上行三层口接出口路由器 interface GigabitEthernet 0/0/23 undo portswitch ip address 10.0.0.1 30 quit # 4. 聚合口接另一台核心或高带宽设备 interface Eth-Trunk 1 mode lacp-static port link-type trunk port trunk allow-pass vlan 10 20 30 100 trunkport GigabitEthernet 0/0/1 trunkport GigabitEthernet 0/0/2 quit # 5. VLAN 网关 interface Vlanif 10 ip address 192.168.10.1 24 quit interface Vlanif 20 ip address 192.168.20.1 24 quit interface Vlanif 30 ip address 192.168.30.1 24 quit interface Vlanif 100 ip address 192.168.100.1 24 quit # 6. 缺省路由 ip route-static 0.0.0.0 0.0.0.0 10.0.0.2 # 7. 保存 save配完之后一条条验证顺序不能乱先display vlan确认 VLAN 都建了再display port vlan确认每个口的类型和允许列表再display eth-trunk 1确认成员口 Active再display ip interface brief确认 VLANIF 是 up 的再display ip routing-table确认直连和静态都在最后才是 ping 测试从同 VLAN 到跨 VLAN 到出网一层层往上测。如果中途发现不通就按这个顺序倒着往回查哪一层的检查结果和预期不符问题就在那一层不要在没确认底层的情况下瞎改三层配置。6.1 DHCP 顺手配上不然几十台终端手工配 IP 会崩溃前面只说了网关实际项目里终端 IP 总不能手配。三层交换机可以直接做 DHCP 服务器[CORE-A] dhcp enable [CORE-A] ip pool vlan10 [CORE-A-ip-pool-vlan10] network 192.168.10.0 mask 255.255.255.0 [CORE-A-ip-pool-vlan10] gateway-list 192.168.10.1 [CORE-A-ip-pool-vlan10] dns-list 223.5.5.5 114.114.114.114 [CORE-A-ip-pool-vlan10] excluded-ip-address 192.168.10.1 192.168.10.50 [CORE-A-ip-pool-vlan10] quit [CORE-A] interface Vlanif 10 [CORE-A-Vlanif10] dhcp select global [CORE-A-Vlanif10] quitexcluded-ip-address把网关和一截地址段留给服务器、打印机、AP 这些需要固定 IP 的设备。同样给 VLAN 20、30、100 各建一个地址池然后在对应 VLANIF 上dhcp select global。如果企业里有独立的 DHCP 服务器统一管理那就用中继[CORE-A] dhcp enable [CORE-A] interface Vlanif 10 [CORE-A-Vlanif10] dhcp select relay [CORE-A-Vlanif10] dhcp relay server-ip 192.168.30.10 [CORE-A-Vlanif10] quit中继模式下交换机只负责把广播的 DHCP Discover 转成单播发给服务器地址分配逻辑还在服务器上方便统一管理。选哪种看规模几十台终端本地 DHCP 够用几百上千台还是集中管理更省心。6.2 STP 别忽略聚合和冗余链路都靠它兜底只要网络里存在物理环路比如双上联、双核心就必须开 STP。华为默认开 MSTP但默认所有 VLAN 走同一棵树有时候希望不同 VLAN 走不同路径做负载分担就要配 MSTP 实例[CORE-A] stp mode mstp [CORE-A] stp region-configuration [CORE-A-mst-region] region-name CORP [CORE-A-mst-region] revision-level 1 [CORE-A-mst-region] instance 1 vlan 10 20 [CORE-A-mst-region] instance 2 vlan 30 100 [CORE-A-mst-region] active region-configuration [CORE-A-mst-region] quit [CORE-A] stp instance 1 root primary [CORE-A] stp instance 2 root secondary这样 VLAN 10、20 的流量走核心 A 为主根VLAN 30、100 走另一台核心设备做主根两条上行链路都能用起来而不是一条转发一条纯备份。所有交换机的 region-name、revision-level、实例和 VLAN 映射必须完全一致不然会被分成不同域STP 就不协同了。配完之后用display stp brief看每个口的状态根口和指定口是否符合预期。如果发现某条本该转发的链路被 Block 了先检查 MSTP 域参数是否一致。6.3 关于这套配置的扩展方向这套基础跑起来之后往下扩的路子基本就是几条接入环节加 802.1X 认证把端口安全和 VLAN 绑起来核心跑 OSPF 或 BGP 替代静态路由做动态选路和冗余加堆叠iStack 或 CSS把两台核心变成一台逻辑设备简化 STP 和聚合上 VXLAN 做园区大二层或者跨机房二层延伸。不过我还是那句老话先把 VLAN、Trunk、Eth-Trunk、VLANIF、静态路由这五样吃透再加新东西。我见过太多人一上来就研究 VXLAN 和 EVPN结果连一个 Trunk 口放行几个 VLAN 都要现场翻文档遇到故障完全没有排查思路因为基础链条是断的。最后分享一个我自己养成的小习惯每次改配置之前先敲一遍display current-configuration把现状复制到本地文件里存好改完出问题能对照差异改完确认无误再save。这个习惯帮我从改坏了不知道原来是什么样的慌里救回来不止一次。