VLAN知识点归纳与总结(概念+机制篇)
介绍了VLAN技术的基础概念以及工作机制。
VLAN技术是一种基于以太网的二层技术,应用在数据链路层。主要作用是隔离广播域,控制广播报文泛洪的范围。拥有相同VLAN ID的设备间可以通过二层广播形式进行通信,不同VLAN ID的设备间只能通过三层方式进行通信。
一、1种数据帧
二层通信主要通过数据帧完成,以太网数据帧为Ethernet_II形式。主要包含目的MAC地址、源MAC地址、协议长度/类型、载荷数据以及前向纠错FCS。VLAN技术基于以太网帧,IEEE协会定义了802.1Q标准,即在Ethernet_II数据帧中插入VLAN Tag,形成携带VLAN信息的802.1Q数据帧。
- Ethernet_II和802.1Q数据帧结构如下图所示:

如上图所示,TPID、PRI、CFI和VID组成了802.1Q Tag,同4Byte,添加在SMAC字段与Type字段之间形成802.1Q数据帧。802.1Q Tag具体内容如下:
- TPID:Tag Protocol Identifier,标签协议标识符,表示数据帧类型,华为设备规定802.1Q数据帧的值为0x8100;
- PRI:Priority,优先级,交换机在发送拥塞后优先发送PRI高的数据,范围0-7;
- CFI:Canonical Format Indicator,标准格式指示位,表明数据帧中的MAC地址是否是标准格式,0表示标准模式,1表示非标准模式。
- VID:VLAN ID,有效范围为1-4095。

华为设备中,DEI与CFI指同一比特位。CFI概念相对传统,DEI是由CFI演化而来。DEI为丢弃合格指示符,在网络拥塞时提供更精细的流量策略,0表示丢弃资格较低,1表示丢弃资格较高。
二、3种接口
交换机内部在处理和转发数据帧时都是基于标签进行的。根据处理数据帧方式的不同,华为交换机将接口类型分为三类,分别是Access、Trunk和Hybrid。在华为交换机中默认存在一个缺省VLAN ID,即VLAN 1。缺省VLAN ID又被称为PVID(Port Default VLAN ID),缺省情况下,每个接口的PVID都是1。VLAN 1永远存在,不可删除,接口可以通过undo命令退出VLAN 1。
1、Access接口
用于连接无法处理“携带标签数据帧”的设备,例如PC等。链路类型为接入链路,只能属于一个VLAN,发送数据帧时将标签剥离后发送,具体流程如图所示:

值得注意的是,当交换机连接路由器,且仅需实现单个VLAN的三层路由时(以路由器物理接口作为网关),可通过Access接口进行连接。
2、Trunk接口
用于连接可以处理“携带标签数据帧”的设备,例如交换机、路由器等。链路类型为主干链路,可承载不同VLAN。数据帧通过Trunk接口时标签会被保留(即带标签发送),但接口缺省VLAN的数据帧会以Untagged的方式进行转发。具体工作流程如下图所示。

当需要实现多个VLAN的三层路由时(以路由器子接口作为网关),可通过Trunk接口进行连接。
3、Hybrid接口
Hybrid接口是华为独有的接口类型,相比上面两种类型而言更加的灵活,但是配置相对复杂。Hybrid接口即可用于连接终端设备又可用于连接交换机、路由器、AP等设备,链路类型可以是接入链路也可以是主干链路,允许多个VLAN帧以带标签或不带标签的方式通过。Hybrid接口与Trunk接口工作流程基本相同,唯一区别是Hybrid接口允许多个VLAN帧以不带标签形式通过,而Trunk接口只允许携带缺省VLAN的帧以不带标签的方式通过,具体流程如图所示。

在配置Hybrid接口时,需要手动配置接口的PVID、处理数据帧的方式(是否携带标签发送)以及允许通过的VLAN ID等。
三、5种划分方式
1、基于端口划分
※原理:
基于交换机接口进行划分,接口可不连续、可在多个交换机中。Access接口只能属于一个VLAN,Trunk和Hybrid接口可以属于多个VLAN。
接口收到数据帧时,若不带标签则打上缺省VLAN ID在所属VLAN内转发,若带标签则检查标签是否与PVID相同,相同接收不同丢弃。
※特点:
配置简单,运维方便;移动性差,设备更换交换机时需要重新配置。
2、基于MAC地址划分
※原理:
根据需要预先配置MAC地址与VLAN ID的映射关系,交换机收到不带标签的数据帧时,根据数据帧的MAC地址进行映射关系查询,再将VLAN ID赋予数据帧进行转发。收到不带标签数据帧处理方式与基于接口划分方式相同。
※特点:
配置复杂,需要提前进行MAC地址收集,工作量较大,会影响转发效率;设备移动性强,可做到即插即用。
推荐使用Hybrid接口进行配置,Trunk接口可用但不灵活,Access接口不可用。
3、基于子网(IP地址)划分
※原理:
基于IP地址+子网掩码进行划分,根据IP地址+子网掩码与VLAN ID建立映射关系。交换机收到不带标签数据帧后,根据数据帧网络层的IP地址以及子网掩码信息,进行映射查询,再将对应的VLAN ID赋予该数据帧,并在VLAN域内转发。收到不带标签数据帧处理方式与基于接口划分方式相同。
※特点:
前期配置较繁琐,影响转发效率;移动性好,只要IP地址不变,物理位置改变不会影响VLAN配置。
4、基于协议划分
※原理:
基于数据帧中Type字段进行VLAN划分,根据协议类型Type与VLAN ID建立映射关系。交换机收到不带标签数据帧后,根据数据帧中协议类型字段进行映射查询,再将对应的VLAN ID赋予该数据帧,并在VLAN域内转发。收到不带标签数据帧处理方式与基于接口划分方式相同。
※特点:
可将不同协议类型,如IPv4、IPv6、ARP等划入不同VLAN进行隔离。
5、基于策略划分
※原理:
基于多种划分方式的组合而划分,常见的有“MAC地址+IP地址”或“MAC地址+IP地址+端口”等策略。将终端的MAC地址、IP地址、连接端口进行绑定后与VLAN建立映射关系,为符合条件的数据帧赋予VLAN ID,并在VLAN域内转发。交换机收到不带标签的数据帧时,根据策略判断该数据帧是否满足策略要求,并打上标签,收到不带标签的数据帧处理方式与基于接口划分方式相同。
※特点:
安全性高、配置复杂,适合对于安全要求较高的网络环境。
四、6种扩展应用
1、三层通信
如上文所述,VLAN的作用是隔离广播域,控制二层广播通信的范围。通过划分VLAN的方式可以将规模较大的网络分割成若干小规模网络以减小网络风险的影响范围。但是在实际应用中,不同VLAN之间也是需要通信的,这时可以通过三层进行通信。VLAN间三层通信的方式大体分为两种,分别是VLANIF接口间的通信以及单臂路由。
※VLANIF接口:
VLANIF接口间通信主要应用于具备三层功能的交换机中。交换机为每个VLAN分别创建一个VLANIF接口并为其配置IP地址成为每个VLAN的网关。VLANIF接口为逻辑接口,只要对应VLAN内有一个接口激活,VLANIF接口就会生效。各VLANIF接口的IP地址可通过路由协议进行路由传递,从而实现三层通信。
※单臂路由:
单臂路由主要应用在交换机与路由器级联的场景中。交换机侧配置为Trunk接口时,路由器侧可通过配置子接口的方式在同一条物理链路中处理这些携带不同VLAN ID的数据包。子接口为逻辑接口,其状态依赖于对应的物理接口。一个物理接口可以配置若干子接口,每个子接口可以配置不同的IP地址用以对应不同的VLAN。
同一交换机中可以建立多个VLAN,路由器可以通过同一条物理链路接收携带不同VLAN ID的数据包。每一个VLAN对应一个子接口,子接口作为VLAN的网关进行三层通信。
2、VLAN聚合
※作用:
节省IP地址。在进行VLAN划分时,会同时进行子网划分,从而导致一些IP地址无法被用于终端设备,例如:网络号、网关地址、广播地址等。同时在同一VLAN域内会出现由于实际设备数量小于子网内IP地址数量导致的地址浪费。基于以上两种情况会导致在某些时候出现IP地址不足的情况。VLAN聚合技术可在同一网段内对设备进行广播域隔离,同时各VLAN可共用同一VLANIF接口作为网关。
※原理:
VLAN聚合包括Super-VLAN和Sub-VLAN。Super-VLAN为上级VLAN,Sub-VLAN为下级VLAN。Super-VLAN是一个逻辑VLAN,不属于任何物理接口,其VLANIF接口作为三层网关;Sub-VLAN具有物理接口的普通VLAN,连接各终端设备进行二层通信。同一Super-VLAN可与多个Sub-VLAN关联,所连Sub-VLAN共享同一网关和子网。Super-VLAN基于VLANIF接口,只用于三层转发,并不会为数据帧打标签,各数据帧的标签仍然为Sub-VLAN所属VLAN的VLAN ID。
每个Sub-VLAN对应一个广播域,互相二层隔离。各Sub-VLAN间的通讯通过VLANIF接口完成,由于Sub-VLAN属于同一网段,所以需要在VLANIF接口中开启ARP代理。具体原因如下:
设备发出ARP Request报文,由于各Sub-VLAN属于同一网段,所以ARP Request报文中对端IP地址不是网关地址,导致VLANIF接口不会回应设备发出的ARP Request报文。VLANIF接口开启ARP代理功能后,当VLANIF接口收到设备泛洪的ARP Request报文后不管对端地址是否为自身地址都会对其进行回应。
3、Mux VLAN
※作用:
MUX VLAN主要解决同一网段中不同设备间安全隔离以及流量控制的问题。假设企业中部门A和部门B间需要隔离,同时两个部门又都需要访问服务器-A,解决方案通常有两种:第一为三层通信,通过配置VLANIF接口实现;第二为二层通信,通过配置MUX VLAN实现。
MUX VLAN中通过Separate VLAN的设置可以实现在同一VLAN内的设备之间保持隔离。同时可以做到不同Subordinate VLAN访问同一个Principal VLAN。
※原理:
Mux VLAN分为Principal VLAN和Subordinate VLAN两部分。其中Principle VLAN为主,Subordinate VLAN为从。Subordinate VLAN又分为Separate VLAN和Group VLAN两部分,Separate VLAN中每个设备相互隔离不可通信,Group VLAN中每个设备可相互联通可以通信。
与Super VLAN类似,Mux VLAN中的Principal VLAN和Subordinate VLAN也必须在同一网段中,不同网段间仍需通过三层进行通信。与VLAN聚合不同,Mux VLAN中Principal VLAN和Subordinate VLAN都需要绑定到物理接口上,同时接口类型必须为Access或者Hybrid Untagged,Trunk接口无法配置Mux VLAN。
- Mux VLAN中各类型VLAN间通信规则如下:
①Principal VLAN接口可以和所有Mux VLAN中的接口通信;
②同设备中,所有Separate VLAN接口均只能与Principal VLAN接口通信;
③不同设备中,相同Separate VLAN内的接口可以通信;
④同一Group VLAN中,各接口可以互相通信;
⑤不同Group VLAN中,各接口不能互相通信。
4、Voice VLAN
主要针对音频业务,例如IP电话。通过将音频业务与其他业务隔离并为其添加QoS策略的方式保证音频业务的质量。
Voice VLAN生效的前提是如何识别识别音频流,Voice VLAN有两种识别方式,分别是基于MAC地址和基于VLAN Tag。
※基于MAC地址:
根据报文的源MAC地址判断是否为音频流。判断依据是OUI(Organizationally Unique Identifier)即组织唯一标识符。OUI指的是MAC地址的前24位,通常为IEEE协会根据不同业务进行分配。但是在Voice VLAN中,用户需要手动设置OUI。交换机收到报文后,会根据源MAC地址中的OUI来判断该流量是否为音频流,并判断是否为其提升优先级。
基于MAC地址识别的方式适用于IP电话等终端设备发送Untagged报文的场景。交换机收到报文后会将源MAC地址与配置好的OUI掩码做与运算,若结果匹配则为其打上Voice VLAN标签并提升优先级,若不匹配为其打上PVID标签。
※基于VLAN Tag:
根据报文携带的VLAN Tag判断是否为音频流。判断依据为VLAN ID,若收到的报文携带的VLAN ID与接口配置的Voice VLAN ID相同,则认定其为音频流并为其提升优先级;若收到Untagged报文则会直接为其打上PVID的标签。所以基于VLAN Tag识别的方式只适用于可获得交换机Voice VLAN配置的IP电话等终端设备。
终端设备可通过多种协议学习到Voice VLAN信息,例如LLDP协议。终端设备发送LLDP报文至交换机,交换机会将Voice VLAN信息填写在LLDP报文中发送给终端设备,终端设备收到后再次发送业务报文时会携带对应的标签,交换机收到后会进行比对并判断是否属于Voice VLAN,符合则为其提升优先级。
5、QinQ
QinQ(802.1Qin802.1Q)是一种隧道技术,常用于运营商网络以构造二层VPN。QinQ技术通过VLAN嵌套实现,华为产品中又称为VLAN VPN。交换机通过内层VLAN(C-VLAN)标签在内网中转发,通过外层VLAN(S-VLAN)标签在公网中转发。QinQ技术由基本QinQ和灵活QinQ组成,二者特点不同,应用场景也不同。
配置QinQ的交换机在发送报文时会在原有数据帧的基础上额外增加一个802.1Q标准的VLAN TAG字段,两个VLAN TAG字段分别表示内层标签(C-VLAN)和外层标签(S-VLAN),二者格式相同。如下图所示。

数据帧在内网转发时为正常二层转发,此时还只拥有一个VLAN TAG字段,即内网标签。当数据帧到达边界交换机时,由于边界交换机配置了QinQ,所以会为其打上外层标签并转发至公网。公网中的交换机只会根据外层标签进行数据帧的转发,不会理会内层标签的具体内容。因为外层标签的存在,数据帧才会被送入指定的隧道,从而保证了与其他数据帧的隔离,增加安全性。
分布式企业网络一般需要跨公网将多个内网连接起来,在实际运行中,会分为五个阶段:
①终端至UPE:UPE(User-face Provider Edge)为用户侧边界设备,接入层。此阶段通过内层标签转发数据帧,并由UPE为其打上外层标签;
②UPE至NPE:NPE(Network-face Provider Edge)为核心侧边界设备,汇聚层。此阶段通过外层标签转发数据,并由NPE进行QinQ终结,即剥离外层标签;
③NPE至另一端NPE:此阶段一般通过MPLS网络转发数据包;
④另一端NPE至另一端UPE:此阶段由另一端NPE进行QinQ再封装,打上外层标签进行转发;
⑤另一端UPE至目的终端:此阶段由另一端UPE进行QinQ终结,剥离外层标签后通过内层标签进行转发。
- 整体框架如图所示:

※基本QinQ:
基本QinQ基于端口配置,所有经过该端口的数据帧无论是否携带内层标签都会被打上同样的外层标签。
基本QinQ配置相对简单,但是策略颗粒度粗,无法根据业务种类进行规划。实际场景如下(S-VLAN为外层标签,C-VLAN为内层标签):

如图所示,无论内层标签是什么,凡是经过UPE进行QinQ封装的数据帧都被打上了VLAN 100的外层标签,这就是基于端口配置的基本QinQ的工作流程。
※灵活QinQ:
灵活QinQ可根据内层标签或802.1p优先级为不同数据流封装不同的外层标签。灵活QinQ配置相对复杂,但是策略颗粒度较细,可以根据不同业务、不同用户、不同优先级进行外部标签封装,具体场景如下:

如图所示,灵活QinQ可以根据内层标签封装不同的外层标签,从而保证各个业务的高速转发。
※TPID:
数据帧的TPID值封装在VLAN TAG字段中, 802.1Q规定VLAN数据帧的TPID为0x8100,一般情况下QinQ数据帧中外层标签的TPID值也为0x8100。但在实际应用中部分厂商设备会将TPID值设置为其他数值,为适配不同厂家设备,在华为交换机中可通过“qinq protocal”命令来修改TPID数值。
※BPDU Tunnel:
BPDU Tunnel最主要的作用是传递BPDU报文。在分布式企业网络中,同一公司分布在两地的内网需要运行STP协议进行防环。运营商通过BPDU Tunnel传递两个BPDU报文,使得处于两地的内网可以统一进行STP计算,降低环路风险。
BPDU Tunnel的实现原理是对BPDU报文进行修改,使其变为BPDU Tunnel报文,便可在运营商网络中进行转发。具体结构如图所示:

①将BPDU报文的目的MAC地址修改为统一的组播地址;
②在FCS字段前加入用户信息字段,用于描述表示此报文为BPDU Tunnel报文。
BPDU Tunnel除了可以转发BPDU报文用于STP计算外,还可转发其余二层协议报文,例如:LLDP、LACP等。
6、VLAN Mapping
VLAN Mapping是一种VLAN映射技术,核心手段是用新的VLAN ID替换原先的VLAN ID。
在公网二层转发环境中,可通过VLAN Mapping将内网VLAN ID替换为公网VLAN ID进行公网转发,或者将S-VLAN ID替换为新的VLAN ID进行转发。另外,若一个公司内部由于VLAN ID规划问题导致两个直接相连区域的VLAN ID不一致,也可用VLAN Mapping的方式进行二层转发,只需在两个VLAN ID间建立映射关系即可。
VLAN Mapping主要有两种映射方式,分别是基于VLAN的Mapping以及基于MQC的Mapping:
基于VLAN的Mapping以VLAN ID为基准进行替换。单层VLAN标签直接替换,双层VLAN标签替换S-VLAN标签。基于VLAN的Mapping分为1:1(一对一)模式和N:1(多对一)模式两种:在替换时,1:1模式在用户侧只有一种标签,N:1模式在用户侧可以有多种标签,但无论如何在网络侧都只能拥有一种标签。
基于MQC的Mapping以MQC策略为基准进行替换。用户可以将不同种类的流量匹配到不同的流分类中,再将其于VLAN Mapping的动作相关联,最终完成VLAN ID的替换。
※原理:
- 带VLAN标签:
①收到报文后,根据VLAN Mapping决定替换单层、双层或双层外侧标签;
②学习源MAC,根据源MAC+映射后的VLAN ID刷新MAC地址表;
③学习目的MAC,根据目的MAC+映射后的VLAN ID查找MAC地址表;
④找到对应表项从对应接口进行转发,未找到对应表项在VLAN内广播。
- 不带VLAN标签:
①根据VLAN划分的方式决定是否添加VLAN标签,不能添加的丢弃、能添加的添加VLAN标签;
②学习MAC地址,进行二层转发。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)