H3CSE 高性能园区网:VLAN原理与MVRP协议
- 一、VLAN的技术原理
-
- [1.1 核心概念与端口分类](#1.1 核心概念与端口分类)
-
- [1.1.1 Tag帧与Untag帧](#1.1.1 Tag帧与Untag帧)
- [1.1.2 PVID(端口默认VLAN)](#1.1.2 PVID(端口默认VLAN))
- [1.1.3 Passing列表(允许VLAN列表)](#1.1.3 Passing列表(允许VLAN列表))
- [1.1.4 三大端口类型及应用场景](#1.1.4 三大端口类型及应用场景)
- [1.2 Access端口(终端接入场景)](#1.2 Access端口(终端接入场景))
-
- [1.2.1 接收规则](#1.2.1 接收规则)
- [1.2.2 发送规则](#1.2.2 发送规则)
- [1.2.3 Passing规则(允许VLAN列表)](#1.2.3 Passing规则(允许VLAN列表))
- [1.3 Trunk端口(交换机互联场景)](#1.3 Trunk端口(交换机互联场景))
-
- [1.3.1 接收规则](#1.3.1 接收规则)
- [1.3.2 发送规则(核心考点)](#1.3.2 发送规则(核心考点))
- [1.3.3 Passing规则(允许VLAN列表)](#1.3.3 Passing规则(允许VLAN列表))
- [1.4 Hybrid端口(H3C通用端口)](#1.4 Hybrid端口(H3C通用端口))
-
- [1.4.1 接收规则](#1.4.1 接收规则)
- [1.4.2 发送规则(最灵活的部分)](#1.4.2 发送规则(最灵活的部分))
- [1.4.3 Passing规则(允许VLAN列表)](#1.4.3 Passing规则(允许VLAN列表))
- [1.5 三种端口的Passing(允许VLAN列表)规则对比](#1.5 三种端口的Passing(允许VLAN列表)规则对比)
- 二、VLAN的划分方式
-
- [2.1 基于MAC地址划分VLAN](#2.1 基于MAC地址划分VLAN)
- [2.2 基于协议划分VLAN](#2.2 基于协议划分VLAN)
- [2.3 基于IP子网划分VLAN](#2.3 基于IP子网划分VLAN)
- [2.4 基于端口划分VLAN 【最重要、主流常用】](#2.4 基于端口划分VLAN 【最重要、主流常用】)
- [2.5 不同方式划分VLAN出现冲突的优先顺序](#2.5 不同方式划分VLAN出现冲突的优先顺序)
- 三、VLAN信息的传播(MVRP协议)
-
- [3.1 定义与核心作用](#3.1 定义与核心作用)
- [3.2 关键注意点](#3.2 关键注意点)
-
- [3.2.1 传播路径与方向](#3.2.1 传播路径与方向)
- [3.2.2 传播信息的边界](#3.2.2 传播信息的边界)
- [3.2.3 VLAN的删除规则](#3.2.3 VLAN的删除规则)
- [3.2.4 与Trunk端口放行规则的配合](#3.2.4 与Trunk端口放行规则的配合)
- [3.3 MVRP报文类型](#3.3 MVRP报文类型)
-
- [3.3.1 Join报文(JoinEmpty / JoinIn)](#3.3.1 Join报文(JoinEmpty / JoinIn))
- [3.3.2 New报文](#3.3.2 New报文)
- [3.3.3 Leave报文](#3.3.3 Leave报文)
- [3.3.4 LeaveAll报文](#3.3.4 LeaveAll报文)
- [3.4 MVRP定时器](#3.4 MVRP定时器)
-
- [3.4.1 Periodic定时器](#3.4.1 Periodic定时器)
- [3.4.2 Join定时器](#3.4.2 Join定时器)
- [3.4.3 Leave定时器](#3.4.3 Leave定时器)
- [3.4.4 LeaveAll定时器](#3.4.4 LeaveAll定时器)
- 定时器联动关系(重点)
- [3.5 MVRP端口模式](#3.5 MVRP端口模式)
-
- [3.5.1 Normal模式(默认模式)](#3.5.1 Normal模式(默认模式))
- [3.5.2 Fixed模式](#3.5.2 Fixed模式)
- [3.5.3 Forbidden模式](#3.5.3 Forbidden模式)
- [3.6 MVRP运行机制补充说明](#3.6 MVRP运行机制补充说明)
- 四、相关配置命令
-
- [4.1 全局启用MVRP](#4.1 全局启用MVRP)
- [4.2 端口启用MVRP](#4.2 端口启用MVRP)
- [4.3 配置MVRP端口注册模式](#4.3 配置MVRP端口注册模式)
一、VLAN的技术原理
VLAN(虚拟局域网)通过802.1Q标签技术,在物理局域网内实现逻辑广播域隔离,是二层网络的核心技术。交换机端口对VLAN标签的处理逻辑,决定了不同端口类型的应用场景与转发行为。
802.1Q标签:二层通用VLAN标识标准,作用是给数据帧打上VLAN编号,用来区分不同网段流量。
- 无标签数据帧称为Untag帧,多用于终端设备之间通信
- 携带标签数据帧称为Tag帧,多用于交换机之间转发数据
1.1 核心概念与端口分类
在深入端口规则前,先明确相关基础概念。
1.1.1 Tag帧与Untag帧
(1)Untag帧(无标签帧)帧格式
bash
前导码(8B) | 目的MAC(6B) | 源MAC(6B) | 类型字段(2B) | 数据 | FCS(4B)
纯标准以太网帧,无任何VLAN标签,终端设备通用。
(2)Tag帧(带802.1Q标签帧)帧格式
bash
前导码(8B) | 目的MAC(6B) | 源MAC(6B) | **802.1Q标签(4B)** | 类型字段(2B) | 数据 | FCS(4B)
标签插入位置:源MAC之后,类型字段之前
4字节标签内部细分:
- TPID(2字节):固定标识
- TCI(2字节):内含12位VLAN ID,依靠TCI里的VLAN ID区分不同虚拟网络。
1.1.2 PVID(端口默认VLAN)
端口收到Untag无标签帧时,会自动为数据帧打上PVID对应的VLAN标签,确定无标签流量的默认所属VLAN。
打标后帧形态
原本无标签的Untag帧,插入4字节802.1Q标签,把PVID数值填入标签内的VLAN ID字段,直接变成标准Tag帧:
bash
前导码(8B) | 目的MAC(6B) | 源MAC(6B) | 802.1Q标签(内含PVID编号) | 类型字段(2B) | 数据 | FCS(4B)
1.1.3 Passing列表(允许VLAN列表)
端口VLAN放行白名单,只有列表内的VLAN流量允许转发,不在列表内的流量直接丢弃。
1.1.4 三大端口类型及应用场景
- Access端口 :专门对接电脑、手机等终端设备,只允许单一VLAN通行。
- Trunk端口 :用于交换机与交换机互联,可同时转发多个VLAN数据。
- Hybrid端口:H3C独有通用端口,兼容前两种端口所有功能,可自由配置VLAN带标签或剥离标签转发,适配复杂网络环境。

1.2 Access端口(终端接入场景)
Access端口直接连接PC、服务器等终端设备,仅属于单个VLAN,规则固定且简单。
1.2.1 接收规则
- 收到Untag帧:打上端口PVID的VLAN标签,再检查该VLAN是否在端口的Passing列表中(仅包含PVID),在则接收,否则丢弃。
- 收到Tag帧:检查帧中的VLAN ID是否与端口PVID一致,且在Passing列表中,一致则接收,不一致则直接丢弃(终端设备通常不发送带Tag的帧,此规则主要用于过滤非法流量)。
1.2.2 发送规则
所有从Access端口发出的帧,必须剥离VLAN标签,以Untag形式转发给终端设备(终端无法识别带802.1Q标签的帧)。
1.2.3 Passing规则(允许VLAN列表)
Passing列表为**端口所属VLAN(即PVID)**与交换机上实际存在的VLAN的交集,结果仅包含单个VLAN(即PVID本身)。
一句话总结:Access端口"只认PVID,只剥标签",是终端接入的专用端口。
1.3 Trunk端口(交换机互联场景)
Trunk端口用于交换机之间的互联链路,可同时承载多个VLAN的流量,是二层网络中跨设备VLAN互通的关键。
1.3.1 接收规则
- 收到Untag帧:打上端口PVID的VLAN标签,再检查该VLAN是否在端口的Passing列表中,在则接收,否则丢弃。
- 收到Tag帧:直接检查帧中的VLAN ID是否在端口的Passing列表中,在则接收,否则丢弃。
1.3.2 发送规则(核心考点)
发送帧时,根据帧的VLAN ID与端口PVID的关系,决定是否剥离标签:
- 若帧的VLAN ID与端口PVID一致:剥离VLAN标签,以Untag形式发送。
- 若帧的VLAN ID与端口PVID不一致:保留VLAN标签,以带Tag形式发送。
1.3.3 Passing规则(允许VLAN列表)
Passing列表为端口配置的Permit VLAN与交换机上实际存在的VLAN的交集,包含所有允许通过的VLAN。
举例说明
bash
配置:Trunk端口PVID=10,配置允许通过VLAN 10、20、40
交换机已创建VLAN:10、20、30
取交集后,最终Passing列表:VLAN 10、20
VLAN 40交换机未创建,无法通行,直接过滤。
一句话总结:Trunk端口"允许多VLAN通过,仅PVID帧剥标签",是交换机互联的干道端口。
1.4 Hybrid端口(H3C通用端口)
Hybrid是H3C交换机的通用端口类型,兼具Access与Trunk的所有能力,支持自定义每个VLAN的标签处理方式,可适配复杂组网场景。
1.4.1 接收规则
Hybrid端口的接收规则与Trunk端口完全一致:
- 收到Untag帧:打上端口PVID的VLAN标签,检查是否在Passing列表中,在则接收。
- 收到Tag帧:检查帧中的VLAN ID是否在Passing列表中,在则接收。
1.4.2 发送规则(最灵活的部分)
Hybrid端口通过Tagged和Untagged两个列表,定义不同VLAN的发送行为:
- 若帧的VLAN ID与端口PVID一致:统一剥离标签,以Untag形式发送(与Access/Trunk端口行为一致)。
- 若帧的VLAN ID与端口PVID不一致 :
- 该VLAN在
Tagged列表中:保留VLAN标签发送。 - 该VLAN在
Untagged列表中:剥离VLAN标签发送。
- 该VLAN在
Untagged 列表
发送这个列表里的 VLAN 数据时,撕掉 VLAN 标签,以无标签帧发出,终端电脑能识别。
Tagged 列表
发送这个列表里的 VLAN 数据时,保留 VLAN 标签,带着标签转发,用于交换机之间传递。
1.4.3 Passing规则(允许VLAN列表)
Hybrid端口的Passing列表由以下步骤生成:
- 取端口
Tagged列表与Untagged列表的并集。 - 再与交换机上实际存在的VLAN取交集,最终结果即为端口允许通过的VLAN集合。
举例说明
bash
端口配置:
PVID=10
Tagged列表:20、30
Untagged列表:10、40
交换机已创建VLAN:10、20、30
1. 生成放行集合
- Tagged+Untagged并集:10、20、30、40
- 与交换机现有VLAN取交集,最终Passing列表:10、20、30
- VLAN40未创建,直接丢弃无法通行。
2. 接收行为
- 收到无标签帧:打上VLAN10标签,在放行列表内正常接收
- 收到VLAN20、30带标签帧:在列表内正常接收
- 收到VLAN40带标签帧:直接丢弃
3. 发送行为
- VLAN10(同PVID):剥离标签发送
- VLAN20、30(在Tagged列表):保留标签发送
一句话总结:Hybrid端口"自定义VLAN标签行为,想剥就剥,想留就留",是复杂场景的万能端口。
1.5 三种端口的Passing(允许VLAN列表)规则对比
Passing列表决定了端口最终允许哪些VLAN流量通过,三种端口的生成逻辑差异如下:
| 端口类型 | Passing列表生成规则 | 特点 |
|---|---|---|
| Access | 端口所属VLAN(PVID)与交换机实际存在VLAN的交集 | 仅允许单个VLAN通过 |
| Trunk | 端口permit vlan配置的VLAN与交换机实际存在VLAN的交集 |
允许多个VLAN通过,配置灵活 |
| Hybrid | 端口Tagged列表+Untagged列表的并集,再与交换机实际存在VLAN取交集 |
完全自定义,支持混合标签行为 |
二、VLAN的划分方式
2.1 基于MAC地址划分VLAN
把主机的MAC地址绑定到某个VLAN,该主机无论连接在哪个端口,VLAN归属不变。
2.2 基于协议划分VLAN
把三层协议绑定至某个VLAN,VLAN的归属取决于该报文三层的协议类型,而不看报文来自于哪个端口。
2.3 基于IP子网划分VLAN
把某个IP网段绑定至某个VLAN,该IP网段的主机无论连接在哪个端口,VLAN归属不变。
2.4 基于端口划分VLAN 【最重要、主流常用】
固定的把某个接口划分到某个VLAN,接入终端直接归属对应VLAN,配置简单稳定。
2.5 不同方式划分VLAN出现冲突的优先顺序
优先级由高到低:基于MAC的VLAN > 基于IP子网的VLAN > 基于协议的VLAN > 基于端口的VLAN
同一端口配置多条规则时,高优先级规则优先生效,端口划分优先级最低,作为默认兜底规则。
三、VLAN信息的传播(MVRP协议)
3.1 定义与核心作用
MVRP(Multiple VLAN Registration Protocol,多VLAN注册协议)是二层网络中用于交换机之间自动同步VLAN配置信息的动态协议。
核心作用:
- 实现VLAN的动态注册与注销,无需在每台交换机上手动重复创建VLAN
- 自动在Trunk链路上同步VLAN信息,简化跨设备VLAN互通配置
- 提升大型二层组网的运维效率,减少配置错误与重复工作量
在传统静态VLAN配置中,存在以下痛点:
- 重复配置繁琐:多交换机级联组网时,需在每台交换机上手动重复创建相同VLAN,配置量大且易出错。
- 跨设备Trunk配置复杂:跨交换机的VLAN互通,需手动在所有互联Trunk端口逐一放行对应VLAN,维护成本高。
- VLAN变更同步困难:新增/删除VLAN时,需全网所有交换机同步修改,易出现配置不一致导致的业务故障。
MVRP通过动态学习与注册机制,自动同步全网VLAN信息,解决上述问题,实现VLAN的批量部署与统一管理。
3.2 关键注意点
3.2.1 传播路径与方向
- MVRP报文的转发严格遵循MSTP生成树拓扑,仅沿无环的活动链路单向传播,不会在被阻塞的链路上转发,避免形成二层环路。
- 传播方向由VLAN的创建源点向全网扩散,拓扑变化时,传播路径会随MSTP重新收敛自动调整。
3.2.2 传播信息的边界
- 仅能同步交换机全局VLAN信息(即"该设备上已创建哪些VLAN"),无法同步端口的VLAN配置(如Access端口所属VLAN、Hybrid端口的Tagged/Untagged列表)。
- 端口与VLAN的绑定关系仍需手动配置,MVRP不替代端口层面的静态VLAN配置。
3.2.3 VLAN的删除规则
- 动态学习到的VLAN仅存在于本地转发表中,无实际创建记录,无法直接删除。
- 仅能在最初手动创建该VLAN的源交换机上执行删除操作,删除后MVRP会自动向全网发送注销报文,同步移除其他设备上的动态学习条目。
3.2.4 与Trunk端口放行规则的配合
- MVRP仅动态学习VLAN信息,不会自动修改Trunk端口的
permit vlan放行列表。 - 若未在Trunk端口手动放行对应VLAN,即使MVRP已学习该VLAN,业务流量也无法通过链路转发,必须手动完成放行配置。
如果你不想逐个配置 Trunk 端口的允许列表,可以直接在 Trunk 端口配置 port trunk permit vlan all,一次性放行所有 VLAN(包括 MVRP 动态学习到的 VLAN)
bash
# 进入Trunk接口视图
interface GigabitEthernet 1/0/1
port link-type trunk
# 一次性放行所有VLAN,无需逐个添加
port trunk permit vlan all
3.3 MVRP报文类型
3.3.1 Join报文(JoinEmpty / JoinIn)
- JoinEmpty :向对方注册一个还未注册的VLAN,通常用于设备首次启动或链路恢复时,主动请求接收对端的VLAN注册信息。 重点:主动发起注册请求,用于链路初始化/恢复
- JoinIn :向对方注册一个已经注册的VLAN,用于周期性刷新VLAN注册状态,维持该VLAN在链路上的转发权限,防止超时老化。 重点:周期性刷新,防止VLAN注册状态超时失效
3.3.2 New报文
当MSTP中拓扑发生变化时发送,用于声明拓扑变更,触发VLAN注册信息的快速更新,确保新拓扑下VLAN信息能及时同步到无环链路上。
重点:拓扑变更时快速同步VLAN信息,适配新的无环路径
3.3.3 Leave报文
向对方注销一个VLAN,当设备删除本地VLAN或不再需要转发该VLAN流量时发送,通知邻居设备注销该VLAN的动态注册条目。
重点:单条VLAN注销,精准同步删除操作
3.3.4 LeaveAll报文
- MVRP运行时,设备会启动LeaveAll计时器,计时器超时后,向对端发送LeaveAll消息,触发全网VLAN注册状态的重新同步。
- 收到LeaveAll消息后,设备会启动Leave计时器,若在超时前收到对方某VLAN的Join消息,则保留该VLAN的注册状态;否则自动注销该VLAN,清理失效的动态注册条目。
重点:全网状态同步,清理失效VLAN,防止僵尸条目残留
3.4 MVRP定时器
MVRP的定时器是控制报文发送、状态刷新和失效清理的核心机制,它们之间环环相扣,保证VLAN信息在全网可靠同步。
3.4.1 Periodic定时器
作用:报文批量发送的"攒包计时器",避免频繁发送小报文造成带宽浪费。
- 工作逻辑:有消息要发时,不会立即发送,而是先攒在队列里,等计时器超时后,一次性把周期内所有消息打包发出。
- 关键参数:
- 取值:0或100厘秒(1厘秒=0.01秒)
- 默认值:100厘秒(1秒)
假设设备1秒内收到了10个不同VLAN的注册请求,如果没有Periodic定时器,设备会发10条独立的Join报文;开启定时器后,设备会等1秒,把10个VLAN信息打包进一条或几条报文里发送,大幅减少协议开销。
3.4.2 Join定时器
作用:Join报文的重传计时器,确保注册请求能被对端收到。
- 工作逻辑:发送Join消息后,启动该计时器;如果超时后还没收到对端关于同一VLAN的Join回应,就重发一次Join消息。
- 关键参数:
- 取值范围:大于20厘秒,且小于1/2 Leave定时器
- 默认值:20厘秒(0.2秒)
交换机A向交换机B发送VLAN 10的Join消息,启动Join定时器(0.2秒)。如果0.2秒内B没回应,A会重发一次Join消息,避免因报文丢失导致VLAN注册失败。
3.4.3 Leave定时器
作用:VLAN注销的"缓冲计时器",防止误删有效VLAN。
- 工作逻辑:收到Leave消息或LeaveAll消息后,启动该计时器;如果超时前收到了对端该VLAN的Join消息,说明VLAN还在使用,不注销;如果超时没收到,就注销该VLAN。
- 关键参数:
- 取值范围:大于2倍Join定时器,且小于LeaveAll定时器
- 默认值:60厘秒(0.6秒)
交换机A收到VLAN 10的Leave消息,启动Leave定时器(0.6秒)。在这0.6秒内,A又收到了B发来的VLAN 10的Join消息,说明B还需要这个VLAN,A就不会注销它;如果0.6秒内没收到,A就会注销VLAN 10的注册状态。
3.4.4 LeaveAll定时器
作用:全网VLAN状态的"大扫除计时器",定期清理失效的VLAN注册信息。
- 工作逻辑:设备启动时就会启动LeaveAll计时器,超时后向全网发送LeaveAll消息,强制所有邻居重新宣告自己的VLAN信息,清理掉那些已经失效但没被注销的"僵尸VLAN"。
- 关键参数:
- 取值范围:大于Leave定时器,最大32760厘秒(327.6秒)
- 默认值:1000厘秒(10秒)
交换机A的LeaveAll定时器(10秒)超时,向所有邻居发送LeaveAll消息。收到消息后,邻居们会启动自己的Leave定时器,只有那些真正还在使用的VLAN,会在超时前发送Join消息保住注册状态;长期不用的VLAN会被自动注销,防止无效条目堆积。
定时器联动关系(重点)
- 发送控制:Periodic定时器决定了报文的批量发送周期,减少协议开销。
- 注册保障:Join定时器解决了Join报文丢失的问题,确保VLAN注册能成功。
- 注销缓冲:Leave定时器避免了短暂的报文丢失导致的误注销。
- 全网清理:LeaveAll定时器定期强制同步,解决了长期运行中VLAN信息不一致的问题。
这四个定时器配合起来,形成了一套"注册-维持-清理"的闭环机制,让MVRP既能高效同步VLAN信息,又能保证网络稳定。
3.5 MVRP端口模式
3.5.1 Normal模式(默认模式)
- 特性:可传递和动态学习所有VLAN,是端口MVRP的默认模式。
端口处于"完全开放"状态,既能接收并学习对端宣告的所有VLAN,也能将本地创建的VLAN向外宣告传递,是MVRP动态同步的标准工作模式。
3.5.2 Fixed模式
- 特性:只传递VLAN1和静态VLAN,不动态学习VLAN。
端口不参与MVRP动态学习,仅允许手动配置的静态VLAN(含默认VLAN1)通过,相当于把该端口的VLAN权限固定,不受MVRP动态注册影响,适合核心骨干链路的安全控制。
3.5.3 Forbidden模式
- 特性:只传递VLAN1。
端口处于"严格限制"状态,除了默认的VLAN1,不允许任何其他VLAN通过,也不学习任何动态VLAN,通常用于需要隔离的边缘链路,防止非预期VLAN流量通过。
3.6 MVRP运行机制补充说明
-
运行实体是接口而非设备
MVRP的动态注册与学习是以接口为单位的,而非整台交换机。只有收到某VLAN的Join消息的接口,才会动态放行该VLAN;如果接口只是主动发出某VLAN的Join消息,并不会自动放行该VLAN,避免了无差别开放。
-
动态VLAN转静态的机制
当在交换机上把某个端口加入到动态学习到的VLAN后,该VLAN会在交换机上自动转变为静态VLAN,并向其他接口发送该VLAN的Join消息,触发全网同步。这意味着动态学习的VLAN一旦被实际业务使用,就会升级为静态配置,确保业务稳定运行。
四、相关配置命令
4.1 全局启用MVRP
全局 MVRP 是设备总开关,必须优先开启。只有全局功能启用后,交换机才具备处理 MVRP 报文、动态学习 VLAN 的能力。
bash
# 进入系统视图
<H3C> system-view
# 全局开启MVRP功能
[H3C] mvrp global enable
4.2 端口启用MVRP
MVRP 只能在 Trunk、Hybrid 端口生效,通常用于交换机互联接口。端口开启 MVRP 后,可自动收发 MVRP 报文,动态学习邻居交换机的 VLAN 信息。
bash
# 进入互联接口
[H3C] interface GigabitEthernet 1/0/1
# 设置端口为Trunk模式
[H3C-GigabitEthernet1/0/1] port link-type trunk
# 放行全部VLAN,保证动态注册正常通行
[H3C-GigabitEthernet1/0/1] port trunk permit vlan all
# 接口开启MVRP
[H3C-GigabitEthernet1/0/1] mvrp enable
4.3 配置MVRP端口注册模式
MVRP 包含三种注册模式,用于控制端口是否允许动态学习、删除 VLAN,用于区分安全等级、控制 VLAN 扩散。
bash
# 1、normal 正常模式(默认)
[H3C-GigabitEthernet1/0/1] mvrp registration normal
# 2、fixed 固定模式
[H3C-GigabitEthernet1/0/1] mvrp registration fixed
# 3、forbidden 禁止模式
[H3C-GigabitEthernet1/0/1] mvrp registration forbidden