1. VLAN 划分
VLAN原理:https://support.huawei.com/enterprise/zh/doc/EDOC1100278264/4cda399c
VLAN划分:https://support.huawei.com/enterprise/zh/doc/EDOC1100213108/2580a0e4
1.1. 基于接口划分VLAN
基于接口划分VLAN是目前最简单也最常用的VLAN划分方式,通过将指定的物理接口加入到指定的VLAN,使接口能转发该VLAN的报文,从而实现VLAN内能互相二层通信,VLAN间不能直接通信。

核心命令:
1 |
|
配置验证:
display vlan: https://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&id=display_vlan_1- VLAN内可以互相通信,VLAN间无法通信
- 新接入的设备默认属于vlan1,无法与vlan2和vlan3通信
1.2. 基于MAC地址划分VLAN
官方介绍文档: https://support.huawei.com/enterprise/zh/doc/EDOC1100213108/2580a0e4#ZH-CN_TASK_0177102427
官方配置文档:https://support.huawei.com/hedex/api/pages/EDOC1000042062/DZD0417A/14/resources/dc/dc_cfg_vlan_0047.html
基于MAC地址划分VLAN的好处是,终端设备不用连接特定物理接口就能划分到特定的VLAN中。而没有绑定mac的终端默认会划分到VLAN1。

关键配置:
1 |
|
配置验证:
display mac-vlan mac-address all: https://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&id=display_mac-vlan- VLAN内可以互相通信,VLAN间无法通信
- 新接入的设备,由于没有绑定mac-vlan,因此默认属于vlan1,无法与vlan10和vlan20的pc通信
1.3. 基于IP子网划分VLAN
官方文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100213108/2580a0e4#ZH-CN_TASK_0177102427
基于IP子网划分VLAN可以实现根据客户端的源IP地址进行VLAN划分。

关键配置:
1 | vlan 10 |
配置验证:
display ip-subnet-vlan vlan all: http://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&lang=zh&tocURL=resources/dc/display_ip-subnet-vlan_vlan.html- 相同vlan的设备可以相互ping同,不同vlan的设备无法通信
- 把任意pc的IP地址改成vlan子网外的地址,会导致pc无法通信
- 新接入的设备默认属于vlan1,无法与vlan10和vlan20的pc通信
1.4. 基于协议划分VLAN
官方文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100213108/2580a0e4#ZH-CN_TASK_0177102427
基于协议划分VLAN可以实现交换机根据帧的协议模板进行VLAN确定,支持的协议有ipv4、ipv6、at、ipx等,通过protocol-vlan命令进行协议指定:https://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&id=protocol-vlan

关键配置:
1 |
|
配置验证:
display protocol-vlan interface all: http://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&lang=zh&tocURL=resources/dc/display_protocol-vlan_interface.html- 不同的接口根据不同的协议,划分了不同的vlan,因此不同的协议的设备无法通信
2. 跨 VLAN 通信
不同VLAN间的互通原理:https://support.huawei.com/enterprise/zh/doc/EDOC1100278264/ac0fd082
不同VLAN间的用户要实现互通,如果是不同网段用户,常用的技术为:
VLANIF接口:是一种三层的逻辑接口,为VLAN配置VLANIF接口的IP地址后,该接口便可以作为本VLAN内用户的默认网关,为用户发送的需要跨网段的报文进行三层路由转发。
三层子接口:是一种三层的逻辑接口,能实现不同VLAN间,不同网段的用户进行三层互通。虽然VLANIF接口可以实现不同VLAN间的互通,但是会占用多个物理接口,为解决这个问题,可以使用三层子接口。这种跨VLAN通信又称为单臂路由或者Dot1Q终结。
2.1. VLANIF 接口
VLANIF接口是一种三层的逻辑接口,为VLAN配置VLANIF接口的IP地址后,该接口便可以作为本VLAN内用户的默认网关,为用户发送的需要跨网段的报文进行三层路由转发。

核心配置:
1 |
|
配置验证:
display ip interface brief- 使用vlanif接口作为pc的默认网关,可以实现不同vlan的pc通信
2.2. Dot1Q终结(单臂路由)
官方介绍文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100112425/79dc6b8f
官方配置文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100130778/516eb78d
跨VLAN通信需要先剥离VLAN标签,再进行三层转发,VLAN终结技术正是为剥离VLAN而生,VLAN终结通常在三层逻辑子接口上进行。
VLAN终结又分为Dot1Q终结和QinQ(Dot1Q in Dot1Q)终结,前者用于剥离单层标签,而后者用于剥离双层标签。
Dot1Q终结又称为单臂路由。逻辑子接口默认会禁用自身发起的ARP请求报文,为了能够学习到下挂主机的MAC地址,需要开启ARP广播功能(arp broadcast enable)。

核心配置:
1 |
|
1 |
|
配置验证:
- 查看所有配置dot1q封装方式的子接口配置信息:
display dot1q information termination: http://support.huawei.com/hedex/hdx.do?docid=EDOC1000177836&lang=zh&tocURL=resources/dc/display_dot1q_information.html - 使用路由器的逻辑子接口作为两个vlan的网关,可以实现不同vlan的pc通信
- 通过单个物理接口上划分多个逻辑子接口,实现了节省路由器的接口资源
3. MUX VLAN(二层隔离)
官方简介文档: https://support.huawei.com/enterprise/zh/doc/EDOC1100410518/bd237d28#ZH-CN_CONCEPT_0177102609
官方配置文档: https://support.huawei.com/enterprise/zh/doc/EDOC1000141427/65c92b94
简单来说,MUX VLAN 分为主 VLAN 和从 VLAN,从 VLAN 又分为 隔离型从 VLAN 和互通型从 VLAN。主VLAN可以和MUX VLAN内的所有接口进行通信,互通型从 VLAN 可以和主vlan还有同一个Group的用户通信,隔离型从 VLAN 只能和主VLAN通信。
典型应用场景为,服务器所在VLAN为设主VLAN,确保所有人可以访问,员工所在VLAN设为互通型从VLAN,确保能访问服务器,并且员工直接也能互相通信,外来客户所在VLAN设为隔离型从VLAN,只能访问主VLAN中的服务器。
MUX VLAN 要求物理接口只能加入一个VLAN,因此通常是将接口设为Access模式(只允许PVID的报文通过),VLAN被设置为MUX VLAN后,该VLAN的虚拟接口是无法配置IP地址的,因此如果主从VLAN都为不同网段,则会导致VLAN间无法通信。
主VLAN作为所有从VLAN的默认网关,可以实现类似Super VLAN的节省IP资源的作用。

交换机核心配置:
1 |
|
配置验证:
- display mux-vlan:查看mux vlan包含的接口
- 互通型从VLAN和隔离型从VLAN之间的设备不能互相通信;
- 互通型从VLAN的设备之间能互相通信,并且与主VLAN也能通信;
- 互通型从VLAN和隔离型从VLAN的设备可以通过路由器上访问外网;
- 隔离型从VLAN的设备之间不能互相通信,但与主VLAN能通信。
4. Super VLAN(VLAN聚合)
官方介绍文档:https://info.support.huawei.com/info-finder/encyclopedia/zh/Super+VLAN.html
官方配置文档:https://support.huawei.com/hedex/api/pages/EDOC1000042062/DZD0417A/14/resources/dc/dc_cfg_vlan_0055.html
Super VLAN 又称 VLAN 聚合,通过聚合多个 Sub VLAN, 这些 Sub VLAN 共用相同的网络地址、广播地址、网关地址,以此达到节省IP地址的作用。
每个 Sub VLAN 都是一个独立的广播域,由于他们共用一个网段以及网关地址,网关在收到客户端的跨 Sub VLAN 通信数据时,只会做二层转发,不会上送三层进行路由转发,因此要实现跨Sub VLAN 通信,必须在网关设备上开启 Proxy ARP,由网关做三层转发。

核心配置:
1 |
|
配置验证:
- Sub VLAN内的设备可以互相通信,因为处在同一个广播域;
- 开启了ARP Proxy后,Sub VLAN间可以互相通信。
5. QinQ(VLAN堆叠)
QinQ官方介绍文档:https://info.support.huawei.com/info-finder/encyclopedia/zh/QinQ.html
QinQ(802.1Q-in-802.1Q)解决了vlan id只有4096个的问题,通过叠加4字节的外层vlan标签,使vlan id数量提高到了4096x4096。
qinq按实现方式分为基本qinq(又叫qinq隧道,vlan隧道)和灵活qinq(又叫vlan堆叠),基本qinq基于接口实现,为不同的内层vlan标签都打上统一的外层vlan标签;灵活qinq基于vlan实现,可以为不同的内层vlan打上不同的外层vlan标签。
qinq按设备类型分为CE设备(客户端边缘)和PE设备(供应商边缘),CE设备直连客户端,用于封装内层vlan标签,PE设备作为CE设备的上游,用于封装外层vlan标签。
qinq一般是在PE设备上的直连了CE设备的Trunk接口上进行配置。基本qinq和灵活qinq的配置区别在于,基本qinq只能在同一个物理接口上封装同一个外层vlan标签,而灵活qinq则没有这个限制。
5.1. 基本QinQ(QinQ Tunnel)
配置指南: https://support.huawei.com/hedex/hdx.do?docid=EDOC1000042062&id=dc_cfg_qinq_0006_2

PE设备核心配置:
1 |
|
CE设备核心配置:
1 | vlan 10 |
配置验证:
- 相同vlan设备可以互相通信,不同vlan设备不能互相通信;
- 在PE1和PE2的g0/0/3接口上抓包,可以看到带两层VLAN标签的qinq帧;

5.2. 灵活QinQ(VLAN Stacking)

核心配置:
1 |
|
配置验证:
- 只能同一个vlan内通信;
- 在PE设备的g0/0/2接口上抓包,可以看到带两层VLAN标签的qinq帧

6. LNP(链路类型协商)
官方介绍文档:https://support.huawei.com/enterprise/zh/doc/EDOC1100506019/3b276bc
华为私有的链路类型协商协议 LNP(Link-type Negotiation Protocol),用于自动配置以太网端口类型为Access或者Trunk,并自动加入VLAN(Access加入VLAN1,Trunk加入VLAN1~4094),以此来简化配置步骤。
LNP在原有的接口链路类型Access、Hybrid、Trunk和QinQ基础上,添加了2个类型:
- Negotiation-desirable:主动发送LNP报文
- Negotiation-auto:不会主动发送LNP报文
不同接口类型的协商结果如下表:

由于ensp不支持LNP协议的仿真,因此同样建议阅读官方配置文档进行参考:https://support.huawei.com/enterprise/zh/doc/EDOC1100213108/2580a0e4#ZH-CN_TASK_0177102427
7. VCMP(VLAN 同步)
官方介绍文档:https://info.support.huawei.com/info-finder/encyclopedia/zh/VCMP.html
VLAN集中管理协议VCMP(VLAN Central Management Protocol),非常类似于思科的VTP协议(VLAN中继协议),用于在二层网络中集中管理vlan信息,并下发给VCMP管理域中的其他交换设备。
VCMP使用VCMP管理域来管理交换机,同一个VCMP管理域需使用同一个域名,并且通过设备id来定义角色,使用VCMP报文来同步VLAN信息。
VCMP共定义了Server、Client、Transparent和Silent四种角色:
- Server:
负责将VLAN信息通过VCMP报文同步给同域的其它设备 - Client:
同步Server的VLAN信息 - Transparent:
不参与VLAN同步,只透传VCMP报文 - Silent:
直接丢弃VCMP报文
VCMP定义了Summary-Advert、Subset-Advert和Advert-Request三种组播方式的报文:
- Summary-Advert报文:
Server每五分钟主动发送一次,或者在VLAN配置变更和收到Client的Advert-Request报文时被动发送,主要包含vlan的创建和修改删除等信息,不包含vlan名称和描述信息。 - Subset-Advert报文:
只在VLAN配置变更和收到Client的Advert-Request报文时被动发送,主要包含了VLAN名称和VLAN描述等信息。 - Advert-Request报文:
新添加一台设备,或者设备重启和接口up时发送请求同步。
目前能找到的模拟器中(主要为eNSP和EVE-NG),只有eNSP Pro的S系列交换机支持VCMP协议,因此本文无法进行模拟仿真,推荐仔自信阅读官方的配置文档进行参考:https://support.huawei.com/enterprise/zh/doc/EDOC1100410518/7f43ee5d?idPath=24030814|21782164|21782167|259602657#ZH-CN_TASK_0177103064
8. GVRP(动态注册VLAN)
官方文档: https://support.huawei.com/enterprise/zh/doc/EDOC1100301657/7f439e5f
配置文档:https://mp.weixin.qq.com/s/04Oo5OxZG62GJbItr9vUdQ
GVRP(GARP VLAN Registration Protocol)基于GARP(Generic Attribute Registration Protocol)协议,用于对多设备上的Trunk接口的VLAN进行动态维护,用户只需在少量设备上进行VLAN配置就能应用到整个交换网络,节省了配置时间。
参与GVRP的实体为交换机的Trunk类型端口,实体之间通过发送3种消息报文实现VLAN的注册(将端口加入VLAN)和注销(将端口退出VLAN),GVRP分为双向和单向的注册和注销:https://support.huawei.com/enterprise/zh/doc/EDOC1100301657/4fa51074
手工配置的VLAN称为静态VLAN,通过GVRP创建的VLAN称为动态VLAN,
动静态VLAN受GVRP的注册模式影响:
- Normal模式:允许动态VLAN在端口上进行注册,同时会发送静态VLAN和动态VLAN的声明消息。
- Fixed模式:不允许动态VLAN在端口上注册,只发送静态VLAN的声明消息。
- Forbidden模式:不允许动态VLAN在端口上进行注册,同时删除端口上除VLAN1外的所有VLAN,只发送VLAN1的声明消息。
GVRP和VCMP的主要区别在于,GVRP创建的是动态VLAN,并且支持将VLAN关联到接口,而VCMP创建的是静态VLAN,只用于同步VLAN配置。
交换机动态注册一个VLAN的前提是,接收和发送GVRP报文的接口必须是Trunk模式,并且允许了该VLAN通过。

接入交换机核心配置:
1 |
|
汇聚交换机核心配置:
1 |
|
配置验证:
- ACC1和ACC2上全局启用GVRP,并将pc划入相应VLAN,级联接口启用GVRP,并允许要注册的VLAN通过,以实现GVRP双向注册;
- 两台AGG交换机在收到从左到右和从右到左方向的VLAN注册报文后,会自动添加VLAN10和VLAN20两个动态VLAN并绑定到Trunk接口:

- 双向注册方式下,要删除vlan,需要一并删除ACC1和ACC2的该vlan
9. 综合案例
9.1. 拓扑

配置验证:
- MUX VLAN区域的VLAN内和VLAN间通信规则符合MUX VLAN特性;
- Super VLAN区域的VLAN内和VLAN间通信规则符合Super VLAN特性;
- 单臂路由区域能够通过路由器的虚拟子接口实现VLAN间通信;
- MUX VLAN和Super VLAN的相同VLAN可以实现VLAN间通信;
- 通过在PE设备的链路间抓包可以看到双层VLAN Tag;
- PE2的VLAN999是通过GVRP动态注册的;
- Sub-VLAN 10的主机将默认网关改为.254,可以实现和VLAN66,88的互通。
9.2. Mux VLAN
主 VLAN (Principal VLAN): 为 VLAN 10。此区域连接了一个服务器以及一个路由器,路由器的 g0/0/ 0作为 VLAN 10 的默认网关(10.0.10.254)。
互通型从 VLAN (Group Sub-VLAN 20): 该部分终端基于接口划分VLAN。处于同一互通型从 VLAN 中的主机不仅可以与主 VLAN 的服务器以及网关通信,相互之间也能进行二层通信。
隔离型从 VLAN (Separate Sub-VLAN 30): 该部分终端基于 MAC 地址划分VLAN。处于同个隔离型从 VLAN 中的主机只能与主 VLAN 的 Server 进行通信,相互之间完全二层隔离。
9.3. Super VLAN
此区域用于演示 Super VLAN(VLAN 聚合),旨在节省 IP 地址并实现多个二层 Sub-VLAN 共享同一网关。
- Super-VLAN (Super-VLAN 1020): 对外表现为一个三层VLANIF接口,用作Sub-VLAN的默认网关(10.0.10.253),实跨Sub- VLAN通信。
- Sub-VLAN 10: 基于 IP 地址划分到 VLAN 10。
- Sub-VLAN 20: 基于 IPv4 协议划分到 VLAN 20。
- Sub-VLAN 之间依靠VLAN间ARP代理功能,实现二层互通。
- Sub-VLAN 10要实现跨VLAn访问VLAN 66或者 VLAN 88,需要将默认网关改为 10.0.10.253。
9.4. GVRP
- PE1 和 PE2 链路之间配置 GVRP 协议,使 PE1 的 VLAN 信息从 Trunk 接口 g0/0/1 传输给对端的 PE2 的 Trunk 接口 g0/0/1,使其能自动创建 VLAN 99。
- PE1 的 g0/0/1 使用Fixed模式,使其只发送静态VLAN的声明消息。
- 之所以不适用GVRP为PE2创建VLAN 11,21,原因是PE2的g0/0/2接口必须使用hybrid模式来剥离外层标签,而GVRP只支持Trunk模式,因此会导致该接口无法启用GVRP,从而无法绑定这两个VLAN。
9.5. QinQ
- PE1 和 PE2 配置灵活 QinQ,使两端的 VLAN 10 和 VLAN 20 能够通过 VLAN 隧道实现二层通信
- 使用Sub-VLAN 20的PC8去ping互通型从VLAN 20的PC1,在PE设备的g0/0/1接口上进行抓包,可以看到双层vlan tag:

9.6. 单臂路由
- Router 执行单臂路由(802.1Q 终结子接口)特性,网关定义为 .254 末段。
- 下挂 Switch 接入了两个不同的网段节点:PC66 处于 VLAN 66 ( 10.0.66.1),PC88 处于 VLAN 88 ( 10.0.88.1),通过Router的终结子接口以及ARP广播,实现二者的跨网段通信。
- MUX VLAN的设备可以通过Router的g0/0/0接口IP实现与VLAN 66和VLAN 88互通。






















