“老板提了个需求VLAN 10 和 VLAN 20 要能互通但又不让全部互通只允许部分终端访问。”刚听到这句话我的第一反应是又要加核心交换机、配策略、调 ACL 了。但后来在实际落地方案时发现问题没那么复杂——把华为交换机端口类型里的 hybrid 用明白再配合三层策略完全可以做到“该通的通不该通的一律不通”。本文就用一个 eNSP 实验把整个场景、拓扑、配置、排错过程完整走一遍。适合刚接触华为数通的同学也适合正在做园区网隔离的运维同学。你会看到 hybrid 到底解决的是哪一层的问题以及为什么说“hybrid 只管放行VLAN 间路由还得有三层设备”。1. 场景与需求分析1.1 一个典型的“部分互通”需求公司现有两个业务 VLANVLAN用途网段VLAN 10办公网192.168.10.0/24VLAN 20服务器网192.168.20.0/24VLAN 30访客网预留隔离192.168.30.0/24原本办公网和服务器网是隔离的办公 PC 访问不了服务器。现在老板说允许办公网中个别员工访问服务器网不能把 VLAN 10 和 VLAN 20 做成全通访客网不参与任何互通。这个需求听起来很简单真做起来却有几个容易踩坑的地方如果只是把 VLAN 10 和 VLAN 20 的网关都配在核心设备上默认情况下两个 VLAN 就全通了如果只靠接入层端口隔离三层设备一旦放行仍然能通如果只靠 ACL 放通指定 IP但网络里物理链路根本没放行对应 VLAN报文也过不去。所以一个合格的方案必须“三层策略”和“二层放行”配合起来。这正好是 hybrid 端口发挥价值的地方。1.2 技术关键词VLAN、VLAN间通信、hybrid先建立几个基础概念VLAN虚拟局域网用来隔离广播域。默认情况下不同 VLAN 之间二层隔离需要三层设备做路由才能通信。VLAN间通信让不同 VLAN 的主机互相访问常见方案有单臂路由、VLANIF 三层交换。hybrid华为交换机接口类型之一比 access 和 trunk 更灵活可以同时配置多个 untagged VLAN 和多个 tagged VLAN。在本文实验中我们最终会用 hybrid 解决“物理链路上不同 VLAN 报文的灵活放行”用路由器或三层交换机解决“VLAN 间路由”再用 ACL 解决“不让全通”。三者缺一不可。2. 华为交换机三种端口类型回顾2.1 Access、Trunk、Hybrid 对比华为交换机端口类型主要有三种端口类型用途特点Access连接终端如 PC、打印机只能属于一个 VLAN发出帧不带标签Trunk交换机与交换机之间、交换机与路由器之间默认只放行 PVID 对应的 VLAN其他 VLAN 带标签通过Hybrid灵活放行多个 VLAN可对部分 VLAN 打标签部分 VLAN 不打标签从功能上看trunk 能做的是“多个 VLAN 都带标签通过”hybrid 能做的是“部分 VLAN 带标签、部分 VLAN 不带标签、多个 VLAN 同时 untagged 放行”。比如一个端口可以同时做到VLAN 10 发出去时剥离标签untaggedVLAN 20 发出去时保留标签taggedVLAN 30 不允许通过。这就是 trunk 做不到的也是本文场景选择 hybrid 的核心原因。2.2 Hybrid 端口关键规则配置 hybrid 端口时有三个关键点必须理解第一PVID。当端口收到一个没有 VLAN 标签的帧时会打上 PVID 对应的 VLAN ID。第二untagged 列表。端口向外转发帧时如果帧的 VLAN 在 untagged 列表中会剥离 VLAN 标签终端收到的是普通无标签帧。第三tagged 列表。端口向外转发帧时如果帧的 VLAN 在 tagged 列表中会保留 VLAN 标签。如果某个 VLAN 既不在 untagged 列表也不在 tagged 列表那么该 VLAN 的报文就不能从这个端口通过。入方向无标签帧 - 打上 PVID有标签帧 - 按原 VLAN 处理 出方向untagged 列表里的 VLAN - 剥离标签tagged 列表里的 VLAN - 保留标签其他 VLAN - 丢弃2.3 常见误区hybrid 不是用来做路由的很多刚接触 hybrid 的同学会误以为“配置了 hybrid 两个 VLAN 就能互通了”。这里要明确Hybrid 只是二层端口封装模式解决的是“VLAN 报文能否从这个端口通过、以什么形式通过”的问题VLAN 间通信必须有三层设备参与比如路由器子接口、三层交换机的 VLANIF。所以题目里说的“让两个 VLAN 互通又不让全通”完整答案是hybrid 负责二层灵活放行三层设备负责路由ACL/流策略负责只放行部分流量。3. 实验环境与拓扑规划3.1 环境说明本实验使用华为 eNSP 模拟器。设备选型如下路由器AR1负责 VLAN 间路由和 ACL 过滤二层交换机SW1主要使用 hybrid 端口特性终端PC1特权办公、PC3普通办公、Server服务器。不同 eNSP 版本的设备型号可能略有差异但只要支持 hybrid 命令实验思路完全一致。真实设备上请根据设备型号确认命令格式。3.2 实验拓扑------------------------------ | AR1 | | G0/0/0 192.168.10.1 | | G0/0/0.20 192.168.20.1 | ----------------------------- | G0/0/24 hybrid | ------------ | SW1 | ----------- G0/0/1 | | | | G0/0/2 (access) | | | | (access) PC1 | | | | Server 192.168.10.2 | | | | 192.168.20.10 | ----- | | G0/0/3 | | (access) | | PC3 | | 192.168.10.3| -------------3.3 地址规划与需求列表设备所属 VLANIP 地址网关PC1特权办公VLAN 10192.168.10.2/24192.168.10.1PC3普通办公VLAN 10192.168.10.3/24192.168.10.1ServerVLAN 20192.168.20.10/24192.168.20.1AR1 G0/0/0无标签对应 VLAN 10192.168.10.1/24-AR1 G0/0/0.20带 VLAN 20 标签192.168.20.1/24-需求说明PC1 能访问 ServerPC3 不能访问 ServerPC1 与 PC3 之间属于同一 VLAN可以互通访客网 VLAN 30 完全隔离不参与本次互通。4. 基础配置VLAN、Hybrid 与三层网关4.1 交换机 SW1 基础配置进入 SW1创建 VLANHuaweisystem-view [Huawei]sysname SW1 [SW1]vlan batch 10 20 30配置 PC1 接入端口这里使用普通 access 端口即可[SW1]interface GigabitEthernet0/0/1 [SW1-GigabitEthernet0/0/1]port link-type access [SW1-GigabitEthernet0/0/1]port default vlan 10 [SW1-GigabitEthernet0/0/1]quit配置 PC3 接入端口同样属于 VLAN 10[SW1]interface GigabitEthernet0/0/3 [SW1-GigabitEthernet0/0/3]port link-type access [SW1-GigabitEthernet0/0/3]port default vlan 10 [SW1-GigabitEthernet0/0/3]quit配置 Server 接入端口属于 VLAN 20[SW1]interface GigabitEthernet0/0/2 [SW1-GigabitEthernet0/0/2]port link-type access [SW1-GigabitEthernet0/0/2]port default vlan 20 [SW1-GigabitEthernet0/0/2]quit4.2 交换机上行口hybrid 大显身手SW1 的上行口连接 AR1这是本文的关键配置。我们希望实现VLAN 10 的报文以无标签方式上送到 AR1 主接口VLAN 20 的报文以带标签方式上送到 AR1 子接口。配置如下[SW1]interface GigabitEthernet0/0/24 [SW1-GigabitEthernet0/0/24]port link-type hybrid [SW1-GigabitEthernet0/0/24]port hybrid pvid vlan 10 [SW1-GigabitEthernet0/0/24]port hybrid untagged vlan 10 [SW1-GigabitEthernet0/0/24]port hybrid tagged vlan 20 [SW1-GigabitEthernet0/0/24]quit逐行解释一下port link-type hybrid把端口切换为 hybrid 模式。port hybrid pvid vlan 10从 AR1 方向进入 SW1 的无标签帧默认打上 VLAN 10 标签。AR1 主接口发出的报文就是无标签帧恰好对应 VLAN 10。port hybrid untagged vlan 10SW1 向 AR1 转发 VLAN 10 报文时剥离标签保证 AR1 主接口能直接处理。port hybrid tagged vlan 20SW1 向 AR1 转发 VLAN 20 报文时保留 VLAN 20 标签保证 AR1 的 G0/0/0.20 子接口能正确识别。这就是 hybrid 的灵活性一个物理接口上不同 VLAN 可以采用不同的标签策略。如果用 trunk无法做到“VLAN 10 不打标签、VLAN 20 打标签”这种混合模式。4.3 路由器 AR1 配置进入 AR1配置主接口 IP并创建 VLAN 20 子接口Huaweisystem-view [Huawei]sysname AR1 [AR1]interface GigabitEthernet0/0/0 [AR1-GigabitEthernet0/0/0]ip address 192.168.10.1 255.255.255.0 [AR1-GigabitEthernet0/0/0]undo shutdown [AR1-GigabitEthernet0/0/0]quit [AR1]interface GigabitEthernet0/0/0.20 [AR1-GigabitEthernet0/0/0.20]dot1q termination vid 20 [AR1-GigabitEthernet0/0/0.20]ip address 192.168.20.1 255.255.255.0 [AR1-GigabitEthernet0/0/0.20]arp broadcast enable [AR1-GigabitEthernet0/0/0.20]undo shutdown [AR1-GigabitEthernet0/0/0.20]quit这里有两个容易漏掉的点dot1q termination vid 20子接口必须指定终结的 VLAN IDarp broadcast enable华为 AR 路由器子接口需要开启 ARP 广播否则终端无法通过子接口解析网关。此时 AR1 路由表里有两个直连网段VLAN 10 和 VLAN 20 已经有了三层互通基础。如果不加任何限制网络中 VLAN 10 的所有主机都可以访问 VLAN 20。5. 实现“不让全通”ACL 精确放通5.1 为什么不靠 hybrid 也能通把上面的配置全部完成后PC1 和 PC3 都应该能访问 Server因为 AR1 已经可以做 VLAN 间路由了。我们可以在 AR1 上检查一下路由[AR1]display ip routing-table此时会看到两个直连路由192.168.10.0/24 Direct 0 0 192.168.10.1 GigabitEthernet0/0/0 192.168.20.0/24 Direct 0 0 192.168.20.1 GigabitEthernet0/0/0.20所以必须再做一步“准入控制”只允许 PC1 访问 VLAN 20 网段拒绝 VLAN 10 内的其他主机访问 VLAN 20。5.2 配置高级 ACL在 AR1 上创建 ACL 3001[AR1]acl number 3001 [AR1-acl-adv-3001]rule 5 permit ip source 192.168.10.2 0.0.0.0 destination 192.168.20.0 0.0.0.255 [AR1-acl-adv-3001]rule 10 deny ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 [AR1-acl-adv-3001]quit规则含义rule 5放通源 IP 为 192.168.10.2PC1目的网段为 192.168.20.0/24 的流量rule 10拒绝源网段 192.168.10.0/24目的网段为 192.168.20.0/24 的流量。ACL 默认按规则编号从小到大匹配因此 PC1 会先命中 rule 5 被放行其他 VLAN 10 主机会命中 rule 10 被拒绝。这里只限制了 VLAN 10 主动访问 VLAN 20 的方向。Server 主动访问 VLAN 10 不受影响。如果你希望双向都做限制可以在 AR1 的出方向再加一条 ACL。5.3 在物理接口的入方向应用 ACL将 ACL 应用在 AR1 的 G0/0/0 主接口入方向因为 VLAN 10 主机的流量到达 AR1 时是作为普通无标签帧从主接口进入的[AR1]interface GigabitEthernet0/0/0 [AR1-GigabitEthernet0/0/0]traffic-filter inbound acl 3001 [AR1-GigabitEthernet0/0/0]quit注意如果应用在主接口入方向ACL 会匹配所有从该物理口进入的 IP 报文。但由于规则限定的是“源 192.168.10.0/24 访问目的 192.168.20.0/24”来自 VLAN 20 子接口的反向流量并不会命中不会误伤正常回包。5.4 如果只允许访问某台服务器如果老板说“只能访问这一台服务器的 80 端口”可以把 ACL 写得更细[AR1]acl number 3002 [AR1-acl-adv-3002]rule 5 permit tcp source 192.168.10.2 0.0.0.0 destination 192.168.20.10 0.0.0.0 destination-port eq 80 [AR1-acl-adv-3002]rule 10 deny ip source 192.168.10.0 0.0.0.255 destination 192.168.20.0 0.0.0.255 [AR1-acl-adv-3002]quit这种情况下PC1 只能通过 HTTP 访问服务器其他协议端口一律被拒绝适合对访问范围要求更高的场景。6. 验证结果与关键排查命令6.1 测试结果配置完成后在 PC1、PC3、Server 上分别做 ping 测试预期结果如下测试方向预期结果说明PC1 ping PC3通同属 VLAN 10二层互通PC1 ping Server通ACL 放通 PC1hybrid 上行链路正常PC3 ping Server不通ACL 拒绝VLAN 10 其他主机不能访问服务器Server ping PC3通ACL 只限制了 VLAN 10 主动访问 VLAN 20 的方向可以看到PC3 和 Server 之间“不能互通”但不是完全不通而是“PC3 不能主动访问 Server”。如果业务上要求 Server 也不能主动访问普通办公 PC还需要在 AR1 出方向增加反向 ACL。6.2 验证交换机上 VLAN 与端口状态在 SW1 上执行[SW1]display vlan [SW1]display port vlan重点查看 G0/0/24 的配置Port Link Type PVID VLAN List GigabitEthernet0/0/24 hybrid 10 untagged: 10 tagged: 20如果 VLAN 10 被错误地配置成了 tagged或者 VLAN 20 没有出现在 tagged 列表中都可能导致 AR1 或 SW1 无法正确识别 VLAN。6.3 验证路由器子接口状态在 AR1 上执行[AR1]display ip interface brief正常情况下应看到Interface IP Address/Mask Physical Protocol GigabitEthernet0/0/0 192.168.10.1/24 up up GigabitEthernet0/0/0.20 192.168.20.1/24 up up如果子接口 Protocol 状态为 down优先检查dot1q termination vid是否配置以及arp broadcast enable是否开启。6.4 验证 ACL 命中情况当 PC3 访问 Server 失败时可以在 AR1 上查看 ACL 计数[AR1]display acl 3001如果 rule 10 的匹配次数在增加说明 PC3 的报文确实被拒绝了。如果匹配次数始终为 0则需要检查流量路径是否经过 AR1或者 ACL 应用方向是否正确。7. 常见问题与排查思路7.1 PC1 访问不了 Server可能原因和排查顺序如下问题现象常见原因解决思路PC1 能 ping 通网关但访问 Server 超时AR1 上 ACL 未放通 PC1查看 ACL 计数确认 rule 5 是否匹配PC1 访问 Server 时 AR1 子接口不通子接口未开启 arp broadcast enable在子接口上开启 ARP 广播PC1 能 ping 通 Server 网关但 ping 不通 Server 接口SW1 上行口未放行 VLAN 20 tagged检查 G0/0/24 是否配置port hybrid tagged vlan 20交换机端口配置正确但仍不通终端网关配置错误检查 PC1 网关是否为 192.168.10.17.2 PC3 也能访问 Server如果 PC3 也能访问 Server重点检查ACL 3001 中 rule 5 是否写成了source 192.168.10.0 0.0.0.255导致放通整个网段ACL 是否应用到了错误的接口方向交换机上 PC3 的端口是否被误配为 hybrid并 untagged 放行 VLAN 20。7.3 VLAN 10 所有用户突然无法访问 Server但上网正常这种情况通常是 ACL 把 deny 规则放到了 permit 前面或者 ACL 缺失了对其他网段的放行规则。华为 ACL 按规则编号顺序匹配所以 permit 规则必须放在 deny 之前。7.4 交换机到路由器之间 VLAN 标签错乱如果 SW1 的上行口 PVID 配置不对从路由器返回的无标签帧会被划入错误的 VLAN。例如路由器主接口返回 PC1 的报文是普通帧SW1 必须用 PVID 10 把它打上 VLAN 10 标签才能转发给 PC1。如果 PVID 配置成了其他 VLAN会导致 PC1 收不到回包。7.5 华为交换机划分 VLAN 是否都一样不是。不同系列、不同版本的交换机命令细节存在差异。有些低端交换机不支持port hybrid tagged vlan有些设备要求先创建 VLAN 再配置端口。在实际项目中先通过display version确认版本再对照官方命令参考进行配置。8. 最佳实践与工程建议8.1 Hybrid 适合什么场景通过上面的实验可以总结出 hybrid 最适合的两类场景上行链路需要“部分 VLAN 不打标签、部分 VLAN 打标签”时hybrid 比 trunk 更灵活一台终端或多台终端需要同时接入多个 VLAN并且这些 VLAN 都以 untagged 方式交付给终端时hybrid 是首选。例如某台服务器只有一个物理网口但需要同时给 VLAN 10 和 VLAN 20 提供二层服务可以这样配置interface GigabitEthernet0/0/10 port link-type hybrid port hybrid pvid vlan 10 port hybrid untagged vlan 10 20这时接入端口对 VLAN 10 和 VLAN 20 都剥离标签服务器侧不需要配置 VLAN 子接口就能收到两个 VLAN 的报文。当然真正要在三层实现跨 VLAN 互访仍然需要网关设备配合。8.2 安全隔离要放在三层做Hybrid 解决的是链路放行问题但它不是安全策略。生产环境不建议只靠“某个端口不放行某个 VLAN”来做安全隔离原因有两点接入层端口配置容易被人为改错权限边界不稳定网络规模一大单靠二层端口放行很难审计和追溯。更稳妥的做法是在核心交换机或防火墙上划分安全区域用 VLANIF 路由策略控制 VLAN 间通信用 ACL、包过滤、防火墙策略限制具体的源 IP、目的 IP、端口。8.3 跨 VLAN 互访推荐结合 IPSG如果办公网里允许部分终端跨 VLAN 访问服务器建议在接入交换机上启用 DHCP Snooping 和 IPSGIP Source Guard避免用户私改 IP 绕过 ACL。例如在一个支持 DHCP Snooping 的接入端口上启用 IP 报文检查interface GigabitEthernet0/0/3 ip source check user-bind enable这样即使有人手动把 IP 改成 192.168.10.2也无法冒充特权终端访问服务器网段。8.4 网络变更前先备份配置线上交换机改配置前一定先备份配置文件SW1save SW1display current-configuration如果只是临时测试建议先在 eNSP 或测试环境里验证 ACL 规则顺序、接口封装方式确认无误后再上生产。8.5 命名与注释规范企业网络中 VLAN 数量一多最好用规范命名vlan 10 description Office_Network vlan 20 description Server_Network vlan 30 description Guest_NetworkACL 规则也可以加上注释方便后续维护acl number 3001 description Only-PC1-can-access-server9. 总结与延伸这篇文章从一个“既要 VLAN 互通又不让全通”的实际需求出发走了一遍完整方案用 hybrid 端口实现 SW1 上行链路的灵活标签放行VLAN 10 无标签上送VLAN 20 带标签上送用路由器主接口和子接口分别充当两个 VLAN 的网关打通三层链路用 ACL 精确限制 VLAN 10 到 VLAN 20 的访问来源实现“只通指定终端”。一句话总结hybrid 负责让报文“出得去、进得来”三层路由负责“能通”ACL 负责“只让该通的通”。如果想继续深入可以再学习以下方向MUX VLAN把 VLAN 划分成互相隔离的子组适合大型办公场景端口隔离同一 VLAN 内端口之间完全二层隔离基于 IP 子网的 VLAN 划分根据终端源 IP 自动分配 VLAN减少端口静态配置单臂路由的更多变体普通子接口、VLANIF、Hybrid 混合封装。遇到网络问题不要急着堆配置先画拓扑、理清流量路径再一步步验证问题往往就清晰了。如果你在实验中也遇到了“配置完 hybrid 之后终端还是不通”的情况欢迎对照本文的排查表逐项检查。