ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

华为三层交换机VLANIF配置详解:原理、命令与排障

华为三层交换机VLANIF配置详解:原理、命令与排障 最近被问了七八次华为三层交换机 VLANIF 的配置趁着周末把思路、命令和踩过的坑一起写出来。做企业局域网项目把不同部门划到不同 VLAN 是最常见的需求但很多刚从二层交换切到三层交换的朋友会发现VLAN 划完后跨部门依然 ping 不通。这不是你配置错了而是二层隔离的必然结果——VLAN 是广播域隔离想让两个网段能互访就得有一个三层网关。华为三层交换机上承担这个角色最常用的方式就是 VLANIF。这篇文章不打算只丢给你几条命令我想从原理开始把“为什么要用 VLANIF”“配置前要做什么准备”“完整配置流程”以及“排障链路”都讲透。无论你是刚入行的网络新人还是被拉去救火维护老网络的运维这套思路应该都用得上。1. VLANIF 的本质虚拟网关是怎么让不同 VLAN 之间通信的1.1 为什么 VLAN 之间默认不通先还原一下现场。假设一台华为 S5720 上划了 VLAN 10 和 VLAN 20PC1 接在 G0/0/1VLAN 10PC2 接在 G0/0/2VLAN 20。PC1 的 IP 是 192.168.10.2/24PC2 的 IP 是 192.168.20.2/24。在什么都没配置的情况下PC1 去 ping 192.168.20.2大概率是超时。不是命令敲错而是以太网交换的工作机制决定了这个结果。VLAN 的核心作用是隔离广播域交换机收到报文后只会把它在同一个 VLAN 的端口范围内转发VLAN 和 VLAN 之间根本没有二层的转发通道。PC1 想访问 192.168.20.2发现目标 IP 和自己不在同一个网段会先通过 ARP 去找“网关”的 MAC 地址把数据帧交给网关去转发。如果 PC1 的网卡里根本没配网关或者配了网关但交换机上没有对应的三层接口ARP 请求发出去没人应答报文自然就卡死在这里。所以VLAN 之间要通信缺的不是二层联通的“桥”而是一个能替终端做三层转发决策的“路由器”。这个角色在企业局域网里通常就落在三层交换机的 VLANIF 接口上。1.2 VLANIF 就是那个虚拟网关VLANIF 是 “VLAN Interface” 的简称本质是一个逻辑三层接口把某个 VLAN 和一个 IP 地址绑定起来。当接口上配了 IP该 IP 就成了这个 VLAN 内所有终端的默认网关。拿刚才的例子说我在交换机上执行interface Vlanif10 ip address 192.168.10.254 255.255.255.0VLAN 10 里的 PC1 只要把网关填成 192.168.10.254发往 192.168.20.2 的数据包就会先交到这个地址。交换机拆开二层帧看到目的 IP 不是本地 VLANIF 地址于是查路由表发现 192.168.20.0/24 这个网段关联在 Vlanif20 接口上就把报文从 Vlanif20 三层接口转发出去再用 ARP 找到 PC2 的 MAC封装成新帧送到 PC2。这一进一出跨 VLAN 通信就通了。VLANIF 的特殊之处在于它是“虚拟”接口没有实体端口需要插线也不需要像物理接口那样关注协商速率和双工模式。它只关心一件事——对应 VLAN 内部有没有处于 Up 状态的物理端口。只要 VLAN 里至少有一个接口 UpVLANIF 就会随之 Up如果 VLAN 里所有端口都 DownVLANIF 也会 Down即使 IP 配得再完美也没有用。这一点在排障时非常关键。注意VLANIF 是 Up 还是 Down和物理端口状态强相关。排查时看到 VLANIF Down先别急着怀疑 IP回去查 VLAN 里有没有活的接口这是最有效的起点。1.3 三层交换机做网关优势到底在哪有人会问既然 VLAN 之间通信本质是路由那我在核心层串一台路由器行不行当然行很多老网络就是这么做的但实际维护起来你会觉得肉疼。第一路由器接口太少了。一台普通企业路由器可能只有 4-8 个千兆口要当多个 VLAN 的网关得靠子接口Router-on-a-Stick或者弃用 VLAN 直接多物理口互联配置量大且不灵活。第二路由器转发是 CPU 主路径跨 VLAN 流量一大这跳就变成性能瓶颈。三层交换机的核心价值在于把路由查找和报文转发做进了硬件 ASIC看路由表、查转发表、改 MAC 封装这些动作在芯片里完成转发性能可以做到线速价格和部署成本却比同等转发能力的路由器低得多。当然三层交换机的路由能力不是万能的它擅长的是“内部网段间的东西向流量”。真要出外网通常还是把默认路由指向防火墙或者核心路由器让三层交换机专注干二三层转发这件事。理解了这个分工你后续做网络规划时会顺手很多。2. 动手配置前先把 IP 规划和 VLAN 编号盘清楚2.1 按终端数量反推子网掩码别一刀切用 /24我以前见过很多同事拿到需求就往设备上敲A 部门 /24B 部门 /24C 部门 /24整到 Vlanif 的时候发现网段不够用了或者一堆 /24 里只用了十几个地址广播域被撑大。更好的思路是反过来先数终端数量再反推掩码。以很典型的场景为例公司 5 个部门A 部门 100 台主机B 部门 50 台C 部门 20 台。我们需要给 A 部门一个至少容纳 100 个可用地址的网段。计算规则是可用主机数 2^(32-掩码位数) - 2去掉网络地址和广播地址。所以A 部门 100 台用 /25可用地址 126 个够用有余量。B 部门 50 台用 /26可用地址 62 个。C 部门 20 台用 /27可用地址 30 个如果预计很快会扩到三四十台直接给 /26 更省心。D、E 部门如果只有十来台甚至可以用 /28每个网段 14 个可用地址。选择网段时还要避免地址重叠。一个比较稳的规划方式是把核心 VLAN 统一放在 192.168.0.0/16 这个内网段里按块切比如 A 用 192.168.10.0/25B 用 192.168.20.0/26C 用 192.168.30.0/26。VLAN 编号和 IP 第三段尽量对齐之后看配置和抓包都容易一眼对上号。2.2 VLAN 编号规划以及管理 VLAN 怎么留VLAN 编号虽然有 1-4094 可选但规划不好同样会埋雷。我的习惯是业务 VLAN 用整十数开头比如财务 VLAN 30销售 VLAN 40研发 VLAN 50设备管理单独用一个 VLAN 100并且把管理地址网段从业务网段里隔离出来不要把管理地址混在业务网段里。管理 VLAN 是很多人容易忽略的一环。三层交换机如果全走远程登录就必须有一个管理 IP。我一般会建一个 Vlanif100地址放在 10.0.0.0/24 这样的独立网段然后用 ACL 限制只有运维网段能 SSH 上来。这样做的好处是即使业务网络出了广播风暴管理面仍然相对干净你还能远程进去处理问题。除编号外VLAN 描述也要养成习惯。华为设备上可以先给 VLAN 加 description后面一长串 Vlanif 排在一起的时候display 出来不至于对着地址猜它是哪个业务。2.3 接口链路模式Access、Trunk、Hybrid 各自用在哪华为交换机接口默认是 Hybrid 模式和 Cisco 的默认行为不太一样很多从思科转过来的同事第一次上去就懵。三种模式用在哪里我一句话总结Access 口连接终端设备PC、打印机、摄像头的口端口只属于一个 VLAN。配置port link-type access后再接port default vlan 10即可。Trunk 口连接交换机与交换机的级联口允许同时传输多个 VLAN 的流量。配置要写port link-type trunk和port trunk allow-pass vlan 10 20 30漏掉一个 VLAN那个 VLAN 的流量就断。Hybrid 口华为特有既能像 Access 一样不带标签收帧又能像 Trunk 一样带标签转发适合一些特殊场景比如连接路由器子接口、视频监控混布。但如果只是常规组网我建议还是用 Access 和 Trunk 组合规则更清晰后续维护的人也不容易看错。不同的链路类型影响的是 VLAN 标签在端口上的进进出出这和 VLANIF 是一对分不开的搭档。VLANIF 管的是三层接口端口链路类型管的是二层进出口如果二层端口 VLAN 都没划对VLANIF 配得再漂亮主机也进不了正确的 VLAN等于白干。3. 华为三层交换机上走一遍完整 VLANIF 配置3.1 创建 VLAN 并批量划分配置接口终于到命令行环节。假设设备是一台华为 S5720-52X前 48 口接终端最后两个口做上联。规划如下部门VLAN网段网关A 部VLAN 10192.168.10.0/25192.168.10.254B 部VLAN 20192.168.20.0/26192.168.20.254C 部VLAN 30192.168.30.0/26192.168.30.254服务器VLAN 40192.168.40.0/24192.168.40.254管理VLAN 10010.0.0.0/2410.0.0.254接下来在交换机上创建 VLAN用 vlan batch 一次批量建好system-view sysname SW-Core vlan batch 10 20 30 40 100然后把接入终端的口划进对应 VLAN。一个个接口配置太累我通常用端口组批量操作port-group group-member GigabitEthernet0/0/1 to GigabitEthernet0/0/12 port link-type access port default vlan 10 quit port-group group-member GigabitEthernet0/0/13 to GigabitEthernet0/0/24 port link-type access port default vlan 20 quit注意华为盒式设备上接口编号可能是GigabitEthernet0/0/1运行display interface brief就能确认实际编号。端口组里的to是连续的接口范围不支持跳着选所以接口在物理上最好按部门物理区域提前归好否则只能一个口一个口敲或者分组多写几条。3.2 创建 VLANIF 并配置 IP 地址VLAN 创建完接下来就是重头戏——VLANIF。进入每个 VLAN 的虚拟接口配上刚才规划好的网关地址interface Vlanif10 ip address 192.168.10.254 255.255.255.128 quit interface Vlanif20 ip address 192.168.20.254 255.255.255.192 quit interface Vlanif30 ip address 192.168.30.254 255.255.255.192 quit注意用255.255.255.128对应 /25255.255.255.192对应 /26别和表格里的网段对不上。这个 IP 一定要和后面终端填的默认网关保持一致很多人把 VLANIF 地址配成 192.168.10.1终端网关却填 192.168.10.254两边都通不了就是因为细节没对齐。配完以后可以用display ip interface brief快速检查正常情况下每个 Vlanif 都应该显示 Physical 和 Protocol 都是 Up。如果 VLANIF 显示 Down先回头检查对应 VLAN 里到底有没有 Up 的物理端口。3.3 跨 VLAN 路由到底要不要手动开很多朋友会问三层交换机上是不是还要配一条像路由器那样的路由协议或者敲个ip routing之类的命令才能开启三层转发答案是不用。华为三层交换机在创建 Vlanif 并配上地址后对应的直连路由会自动出现在路由表里。你可以运行display ip routing-table看到类似下面的内容Destination/Mask Proto Pre Cost Flags NextHop Interface 192.168.10.0/25 Direct 0 0 D 192.168.10.254 Vlanif10 192.168.20.0/26 Direct 0 0 D 192.168.20.254 Vlanif20每个 Vlanif 的网段都是 Direct 直连路由交换机自己知道到达这些网段的路由所以 VLAN 10 和 VLAN 20 之间的报文拿到手查表就能转发不需要再配静态路由或者动态路由协议。真正需要手动配的是去外部网络的路径比如公司出口网关在防火墙上这时候在交换机上加一条默认路由ip route-static 0.0.0.0 0.0.0.0 10.254.254.1这样业务网段里的终端要访问公网数据包会先到 VLANIF 网关再顺着默认路由交给出口设备。要注意默认路由的下一跳地址必须是交换机上某个 VLANIF 可达的地址否则这条路由会一直处于无效状态。3.4 叠加 DHCP 自动分配 IP 地址终端数量多的时候逐台去填静态 IP 不现实所以 VLANIF 还经常和 DHCP 服务配合。华为交换机自带 DHCP 服务配置方式也不复杂。先全局开启 DHCP 功能然后在每个 Vlanif 上选择基于接口分配地址dhcp enable interface Vlanif10 dhcp select interface dhcp server dns-list 114.114.114.114 223.5.5.5 quitdhcp select interface的含义是让这个 Vlanif 接口直接从自己所在的网段里分配地址地址池不用额外单独定义掩码和网关默认就取 Vlanif 的配置。这个模式对中小型网络特别友好省得写一堆ip pool。如果你要排除特定地址不给分配或者要设置租约期、指定静态绑定再回到全局地址池场景去配置。需要留神的是如果交换机上联口也接了一台上级路由器而上联接口本身也在跑 DHCP一定要清楚过滤方向避免交换机把终端的 DHCP Discover 广播转发到上联口导致终端拿到错误网段的地址。这个坑我在现场踩过不止一次处理方式是在上联口上做 DHCP 报文丢弃的配置或者在业务 Vlanif 上通过相关限制隔离。4. 配置完别急着收工验证和排障才是重头戏4.1 三步验证VLANIF 状态、路由表、ARP 表配置敲完很多人直接拿 PC 去 ping结果不通就慌了其实可以先在交换机上做三层“自我体检”顺序很讲究第一步查 VLANIF 状态display ip interface brief看每个 Vlanif 的 Physical 和 Protocol 是不是 Up。Protocol Down 多半是没配 IP 或者接口被 shutdownPhysical Down 则要回到底层端口去找问题。第二步查路由表display ip routing-table确认对应网段有没有 Direct 路由。如果 Vlanif 已经配置但路由表里没有先进去检查这个 Vlanif 是不是被误删或者忘配 IP。第三步查 ARP 表display arp这个命令能告诉我哪些终端已经通过网关学到了 ARP。如果 Vlanif 和路由都正常但 ARP 表里始终没有某台 PC 的 MAC说明问题出在二层接入也就是这台 PC 对应的物理端口大概率划错 VLAN 了。三步下来问题大致能定位到“二层没通、三层没配、终端没上线”这三个方向之一。4.2 主机跨网段 ping 不通按这个顺序排查如果交换机侧看着一切正常主机还是 ping 不通问题往往在终端和服务端。我自己排障的固定顺序是先看 PC 的 IP 和掩码再确认网关。打开终端上的命令窗口运行ipconfig对照规划表检查每项特别是子网掩码。有些机器以前手动配过旧地址改成 DHCP 或新静态地址后还残留旧网关信息很容易产生假象。然后在 PC 上分别 ping 网关和目标 IPping 192.168.10.254 ping 192.168.20.2ping 网关不通说明二层链路有问题接着查物理口状态、网线、VLAN 划分。ping 网关通但 ping 跨网段目标不通说明三层已经能出网关问题在目标主机的回应路径上重点查目标主机的网关配置或者目标主机自己的防火墙是否拦截了 ICMP。我遇到过最隐蔽的一种情况是目标主机是 Windows开启了“文件和打印机共享”里对 ICMP 的过滤规则所有跨网段 ping 的请求能进来但回包被本地防火墙丢弃表现为“永远超时”。这时候放行 ICMP 规则就能解开跟交换机配置半毛钱关系都没有。4.3 跨交换机部署时最容易栽的 Trunk 坑单台三层交换机直接接终端链路关系简单但实际项目里通常还有多台接入交换机核心交换机做 VLANIF接入交换机负责连终端这时候 Trunk 就是重灾区。我见过太多现场核心侧配好了 Vlanif接入侧 Access 口也划好了 VLAN偏偏中间级联口是默认状态。华为盒式交换机默认端口是 Hybrid 且只放行 Vlan 1 的没有手动放行业务 VLAN终端上线以后只能和同交换机同 VLAN 内通信跨 VLAN 全断。所以上联口一定要像这样配置interface GigabitEthernet0/0/49 port link-type trunk port trunk allow-pass vlan 10 20 30 100注意allow-pass vlan后面是放行列表写完还建议把 Trunk 口的缺省 PVID 规划好否则这台接入交换机上没有被 Access 口明确标记的 VLAN 帧会带着 PVID 打标往外跑容易产生预期之外的 VLAN 归属。还有一个坑是接入交换机上根本没创建业务 VLAN只在 Trunk 放行列表里写了也没用。华为设备上如果 VLAN 不存在该 VLAN 的流量照样进不来。排查时可以用display vlan看看接入交换机上有没有对应 VLAN 条目没有就先vlan batch 10 20补上。5. 几个我处理过很多遍的配置细节和习惯5.1 Vlan 1 能拿来做 VLANIF 吗我一般不碰VLAN 1 是华为交换机的默认 VLAN所有端口默认都在 Vlan 1 里拿它跑业务很危险。第一如果某台设备上了电但是配置没保存偶然能通容易被误判成“没配也有网”等配置一刷新网络就炸。第二默认 VLAN 里会混入很多未初始化端口的零散流量广播域不可控。第三保留 Vlan 1 还有安全上的考量——协议报文和默认管理报文经常借道 Vlan 1把它暴露在业务网络里等于把内网装上了一扇半掩的门。所以我通常把 Vlan 1 当作一个“什么也不承载”的残留 VLAN真正的管理 VLAN 单独开一个比如 VLAN 100接口和用户侧完全隔离。管理 VLAN 对应的 Vlanif 地址还可以用 ACL 限制来源只允许运维主机所在网段 SSH 访问我把这几条规则补在下面acl number 2001 rule 5 permit source 192.168.100.0 0.0.0.255 rule 10 deny quit interface Vlanif100 ip address 10.0.0.254 255.255.255.0 quit stelnet server enable user-interface vty 0 4 acl 2001 inbound这样即使业务广播风暴再大管理面还能保住一条逃生通道。当然这个 ACL 规则只做最小示例生产环境要结合实际情况调整不建议照抄。5.2 配置前备份和配置后保存排障时能救命三层交换机的配置文件说多不多说少也不少几十个 VLANIF 加几百行接口配置手一滑可能就把整段接口配置覆盖了。所以我拿到任何一台设备第一件事是display current-configuration全量导出一份存档改完以后也立刻执行save并确认配置写入成功。特别是给现网设备做变更的时候我会先把当前配置导出到本地然后用 diff 工具对比变更前后的差异。曾经有一次我给一台 S5720 加新 VLAN误把某个已经在跑的 Access 口划进了新 VLAN导致老部门十几台机器掉线。幸亏之前存了配置对着 diff 一眼就看出问题两分钟内就回滚了。如果你没有备份习惯在核心交换机上改配置等于裸奔这不是危言耸听。平时还可以通过display saved-configuration对比设备启动时保存的配置和当前运行配置之间的差异确认自己到底改了什么。在小项目里这招看着多余但在几台核心设备几十个网段的环境里每一行改动都可能影响一大片业务备份和 diff 是真能救命的好习惯。5.3 我的一些小习惯描述、网关地址、统一规范最后分享几个我自己长期坚持的小习惯可能对你有参考价值。第一所有 VLANIF 加 description。华为的 Vlanif 支持描述信息比如description Sales-Gateway一台交换机上几十个 Vlanif 排在一起没有描述就只能靠 IP 猜有了描述能省很多脑力。第二网关地址统一用网段的.254还是.1整个公司必须只有一个标准。我习惯用.254因为很多安全设备和审计设备默认网关喜欢写.1两者用同一个地址容易踩冲突分开则各管各的。第三我每改一个配置都会顺手复查一遍再执行save固化。另外不同 VRP 版本的命令细节有差异。比如老版本里配置 DHCP 的接口模式和命令顺序与新版本并不是完全一致有些型号默认没开 DHCP有些型号直接内嵌了dhcp enable。拿到设备先display version看一眼版本和型号再决定用哪一套命令能省掉很多莫名其妙的Error: Unrecognized command。VLANIF 本身不是高深的技术但网络项目里的坑往往都藏在规划和习惯里。上面这些经验是我在一次次现网维护中攒出来的希望能帮你少走一点弯路。如果你的环境里还有防火墙上联、DHCP 中继、VRRP 网关冗余这些需求大逻辑也是一样的把 Vlanif 当作普通三层接口去理解很多高级特性就能举一反三。
返回列表