配置完vlan1 untag与tag后 也不通
配置完vlan1 untag与tag后 也不通
您好,根据您的描述,58交换机在VLAN 1,68交换机在VLAN 10,虽然IP地址处于同一网段(172.16.10.x/24),但在交换机内部,不同VLAN是隔离的二层广播域,无法直接通信。
您观察到的现象(58有ARP表项,68没有,且58回复了ARP)恰恰印证了问题根因:
68有58的ARP表项:因为68(VLAN 10)发送ARP请求,58(VLAN 1)收到了该请求,并将68的MAC/IP学习到了自己的ARP缓存中。
68没有58的ARP表项:因为58回复的ARP报文(携带VLAN 1标签)到达68后,没有进入VLAN 10的三层接口,导致68的CPU未能处理该回复,从而无法学习ARP。
您在68上配置的“基于IP划分VLAN”特性,在H3C Comware系统中仅对端口收到的Untagged(不带VLAN标签)报文生效。如果报文本身已经携带了VLAN Tag,交换机会直接根据Tag转发,不会触发IP子网VLAN的重映射。
数据流回放:
68(VLAN 10)ping 58 → 68发出ARP请求(从VLAN接口10发出,在链路上可能带Tag 10,也可能转为Untagged,取决于端口配置)。
58(VLAN 1)收到该请求,发现请求的是自己的IP,于是发送ARP回复。
关键点:58处于VLAN 1,其发出的ARP回复帧携带VLAN 1的Tag。
该回复帧到达68的互联端口。由于该帧携带明确的VLAN 1 Tag,且端口允许VLAN 1通过,交换芯片将其直接桥接在VLAN 1内部。
68的VLAN接口10无法收到该帧,因此CPU无法处理该ARP回复,ARP表项为空,Ping不通。
既然IP在同一网段且直连,应将两台交换机划入同一个VLAN。
将58的接口/VLAN改为VLAN 10,或
将68的VLAN接口IP迁移到VLAN 1,并取消VLAN 10的IP-Subnet VLAN配置。
如果您必须保留68在VLAN 10且依赖IP划分VLAN,需确保58发出的报文到达68时是Untagged状态,以便触发IP子网VLAN的重映射。
将68连接58的互联端口配置为Hybrid模式,PVID设为VLAN 1(或一个临时VLAN),并配置IP子网VLAN规则。这样,58发出的携带VLAN 1 Tag的报文,到达68端口时会被剥离Tag变为Untagged,随后匹配IP子网规则,被重定向到VLAN 10,最终送达VLAN接口10。
参考配置(在68的互联端口上):
注:需确保全局或VLAN下已配置 ip-subnet-vlan 10 ip 172.16.10.0 255.255.255.0,将源IP为172.16.10.x的Untagged报文映射到VLAN 10。
如果因业务原因必须保留VLAN隔离,需在68或上层设备上配置VLAN间路由(如启用交换机虚拟接口并开启路由功能)。但同一网段做VLAN间路由会破坏子网设计,通常不建议。
修改配置后,请执行以下操作确认:
清除两台交换机的ARP缓存:reset arp all。
重新发起Ping,并在68上使用 display arp 检查是否学习到58的MAC。
在68的互联端口抓包,确认58回复的ARP报文是否变为Untagged并匹配了IP子网VLAN规则。
# 故障分析:基于 IP 子网 VLAN (ip‑subnet‑vlan) 不通
>
> 现象总结:
- S58(下连交换机):VLAN1 地址`172.16.10.11`;能学到 S68 的`172.16.10.10`ARP 表项,可以收到 ARP 回复。
- S68(配置 ip‑subnet‑vlan 的交换机):Vlan‑if10 地址`172.16.10.10`;**收得到 ARP 应答报文,但是不生成 ARP 表项**,ping 不通。
- 互联链路:S68‑GE1/0/3 ↔ S58‑GE0/1,S68 侧接口配置`hybrid + ip‑subnet‑vlan vlan10`。
## 🔴根本原因
**`ip‑subnet‑vlan 只对入方向 untagged(不带标签)报文生效;带 tag 的报文不会匹配 ip‑subnet‑vlan 规则**H3C。
S58 交换机发出的 ARP 应答报文是**带 VLAN1 标签**进入 S68 的 GE1/0/3 接口。报文带 VID=1 标签,不会触发 ip‑subnet‑vlan 匹配;
S68 的 GE1/0/3 接口 PVID 默认 VLAN1,收到带 VLAN1 标签报文,报文进入 VLAN1 广播域。
而`172.16.10.10`网关是**Vlan‑interface10**(三层接口属于 VLAN10),ARP 应答报文跑到 VLAN1,不在 VLAN10 广播域,**交换机收到 ARP 应答,但该 ARP 应答不属于 Vlan‑if10 对应的 VLAN10,所以拒绝学习 ARP 表项**,display arp 看不到 172.16.10.11。
>
> 通俗理解:ARP 报文从 VLAN1 进来,三层网关在 VLAN10,广播域隔离,不生成 ARP 表项。S58 侧请求报文是 untagged,匹配 ip‑subnet‑vlan 进入 VLAN10,S58 能学习 ARP。
## 拓扑数据流拆解
1. S68 ping 172.16.10.11,源 Vlan‑if10 发出 ARP 请求,从 GE1/0/3 口,按照 hybrid untagged vlan10,**不带标签发出 ARP 请求**。
2. S58 收到 untagged 帧,接收进 VLAN1,回复 ARP 应答,**携带 VLAN1 标签**回传给 S68 GE1/0/3。
3. S68 GE1/0/3 收到带 VLAN1 标签帧,**ip‑subnet‑vlan 对带 tag 报文完全不处理**,报文直接送入 VLAN1。
4. Vlan‑interface10 的三层接口在 VLAN10,VLAN1 收到 ARP 应答,**不是本 VLAN 三层接口的网段,丢弃 ARP 学习,无 ARP 表项**。
5. S58 侧收到 S68 发出来 untagged 的 ARP 请求,匹配 ip‑subnet‑vlan,进入 VLAN10,S58 可以正常学习到 172.16.10.10 的 ARP 表项。
## ✅两种修复方案
### 方案 1:互联口改为 Trunk,透传 VLAN10(推荐,标准做法)
S68 侧互联接口 GE1/0/3:
```
interface GigabitEthernet1/0/3
undo port link‑mode bridge
port link‑type trunk
port trunk permit vlan 10
# 删除原来hybrid和ip‑subnet‑vlan相关配置
undo port hybrid vlan 10 20 30 untagged
undo port hybrid ip‑subnet‑vlan vlan 10
```
S58 侧互联接口配置为 trunk 允许 vlan10 通过,S58 把 172.16.10.11 放到 VLAN10。
>
> 注意:**ip‑subnet‑vlan 是用于终端接入端口,不是用于交换机之间互联!** 交换机之间互联不要用 ip‑subnet‑vlan。ip‑subnet‑vlan 设计场景:PC 终端接 hybrid 口,PC 发 untagged 报文,根据 IP 匹配划分到对应 VLAN。
### 方案 2:继续用 hybrid 互联(不推荐,仅测试验证)
S58 互联接口发送报文剥除 VLAN 标签,S58 互联口配置为 access vlan10,发出 untagged 报文给到 S68,此时 S68 收到 untagged 报文,ip‑subnet‑vlan 可以正常匹配,双向 ARP 学习正常。
>
> 缺点:S58 侧 VLAN1 地址 172.16.10.11 不能再使用,只能 VLAN10 地址。**同网段 IP 不能分布在两端设备不同 VLAN,这是这个组网的核心矛盾**。
## 关键知识点(H3C 官方文档)
>
> **基于 IP 子网的 VLAN 只对 Hybrid 端口接收的 Untagged 报文生效,对带 VLAN 标签的报文不生效**H3C。
> ip‑subnet‑vlan 用于终端接入,**不能用于交换机‑交换机互联场景**。交换机之间互联用 trunk 透传标签。
## 排错验证命令
```
#查看接口入方向匹配的子网VLAN
display port hybrid ip‑subnet‑vlan GigabitEthernet 1/0/3
#看接口收到带tag/untagged报文统计
display interface GigabitEthernet 1/0/3
#查看vlanif10的状态
display ip interface brief Vlan‑interface 10
```
## 为什么抓包能看到 ARP 回复但是没有 ARP 表?
抓包是芯片硬件镜像,**镜像可以抓到跨 VLAN 的报文;但是 ARP 表项学习受 VLAN 广播域约束:ARP 应答报文的入 VLAN 必须等于三层 Vlan‑interface 所属 VLAN,交换机才会学习 ARP**。镜像抓到报文≠三层模块接收处理该 ARP 报文。
### 补充原配置问题点
S68 GE1/0/3 互联口配置`port hybrid ip‑subnet‑vlan vlan10`,这个功能只处理**untagged 入报文**;S58 回包带 VLAN1 标签,不会匹配子网 VLAN,直接进入 PVID VLAN1,和 Vlan‑if10 三层接口不在同一个广播域,ARP 应答报文被二层收到,三层不处理 ARP 学习。
>
> 你的场景两台三层交换机,相同网段 IP 分别在 S58‑VLAN1,S68‑VLAN10,中间互联端口使用 ip‑subnet‑vlan,属于典型错用 ip‑subnet‑vlan 场景。ip‑subnet‑vlan 是终端接入功能,不是交换机间互联技术。
---
### 最简总结
1. ip‑subnet‑vlan**只管不带标签的入报文**,带 tag 报文不匹配该规则H3C。
2. S58 回 ARP 带 VLAN1 标签,报文进入 S68 的 VLAN1,网关 Vlan‑if10 属于 VLAN10,广播域隔离,不学 ARP。
3. **交换机之间互联不要用 ip‑subnet‑vlan,改用 Trunk 透传 VLAN10**。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明