当以太网中主机数量过多时会导致冲突严重、广播泛滥、性能明显下降甚至造成网络无法使用等问题,虽说可以通过交换机实现LAN互连解决冲突严重的问题,但是仍然无法实现广播报文隔离,提高网络质量。为解决这一些列问题,VLAN技术应运而生。VLAN到底是什么?有什么作用?是如何进行工作的?又该如何配置呢?您真的了解吗?

什么是VLAN?为什么要使用VLAN?

VLAN(即虚拟局域网)是将一个物理LAN在逻辑上划分成多个广播域的通信技术。也就是说,它可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,在VLAN内主机之间的通信就如同LAN内一样,但不同VLAN之间不能直接互通,这样同一个广播域的报文就会被限制在一个VLAN内。

有人可能会问,我们为什么要使用VLAN进行广播域分割?答案很简单,因为如果仅有一个广播域,很有可能会影响到整个网络的传输性能,为了确保网络良好的传输性能,使用VLAN是有必要的。

如下图所示,在早前LAN的组网方案中,当主机A想要与主机B进行通信时,必须要向同一局域网中的所有交换机和其他主机广播ARP(地址解析协议)请求,然后获得主机B的MAC地址(因为以太网通信必须在数据帧中指定目标MAC地址才能正常通信)。

关于VLAN技术您了解多少-冯金伟博客园

如上图,当交换机A收到ARP请求(广播帧)之后,会将它转发给除接收端口以外的其他所有端口(也就是Flooding泛洪),交换机B、C同样也会Flooding(泛洪),最终ARP请求会被转发到同一网络中的所有设备上。这样会致使网络被主机和交换机发送的报文轰炸,导致主机的CPU运算能力和整个网络的带宽将会被大量消耗,产生广播风暴,甚至导致整个网络崩溃。使用VLAN技术可有效的避免这种情况发生。

关于VLAN技术您了解多少-冯金伟博客园

通过配置VLAN,可以将网络分段为不同的广播域(VLAN),ARP请求(广播帧)将会被限制只能发送到同一VLAN的端口,并不会发送到其他VLAN的端口,如下图,这样可较大程度的节省网络资源和带宽,从而提高网络的灵活性及其性能。

VLAN有什么作用?您能从中获得什么?

VLAN除了能将网络划分为多个广播域,有效防止广播风暴以外,它还能提高网络安全性,使网络管理更便捷、灵活等。

  • 限制广播域(提高网络处理能力):可将广播域限制在一个VLAN内,节省带宽,提高网络处理能力。

  • 端口分隔:即便是在同一个交换机上,处于不同VLAN的端口也不能通信。这时一个物理交换机可以当做多个逻辑交换机使用。

  • 增强局域网安全性:不同VLAN内的报文在传输的过程中是相互隔离的状态,因此信不同VLAN不能直接通,可有效杜绝不安全的广播信息。

  • 提高网络可靠性:由于每个VLAN之间相对独立,因此当某个VLAN内发生故障时,也不会影响到其他VLAN的正常工作。

  • 构建灵活的虚拟工作组:VLAN可将不同的用户划分到不同的工作组中,同一个工作组的用户不会局限于某一个固定的物理范围,使得网络构建和维护更加灵活便捷。

与此同时,网络管理也相对灵活,当用户所属网络发生更改时,无需更换端口和连线,只需更改软件配置即可。

VLAN是如何工作的?VLAN原理概述

1. VLAN基本通信原理

简单来说,当报文进入到VLAN所处的交换机端口时,会被添加上识别的VLAN字段(打标封装),如VLAN标签(国际标准协议)、ISL标签(思科专有VLAN标记手段),当带有识别VLAN手段的数据帧从另一个端口输出时,该标签将会被剥离。下面以国际标准协议为例:

第一步,识别VLAN报文

为了让交换机分辨不同VLAN的报文,会在报文中添加识别VLAN的字段,根据IEEE 802.1Q协议规定,需在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签,如下图。

关于VLAN技术您了解多少-冯金伟博客园

VLAN标签(VLAN Tag,简称Tag)是一种VLAN标识符,包含了TPID、PRI、CFI、VID四个字段,一般添加在数据链路层封装中。

字段概述TPID表示数据帧类型。用来判断数据帧是否携带VLAN标签,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧PRI表示数据帧的802.1P优先级。当网络拥塞时,交换机优先发送优先级高的数据帧CFI表示MAC地址在不同的传输介质中是否以标准格式进行封装。取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装VID表示该数据帧所属的VLAN ID(编号),有效取值范围是1~4094

注:在同一个VLAN交换网络中,存在Tagged帧(有标记帧)和Untagged帧(无标记帧)两种数据帧,Tagged帧表示加入了4字节VLAN标签的帧;Untagged帧表示原始的、没有加入4字节VLAN标签的帧。

第二步:转发VLAN报文

以太网接口类型不同,交换机对数据帧的处理过程也不同。

根据接口连接对象的不同,以太网接口可分为Access、Trunk、Hybrid、QinQ四种类型,如下:

接口类型概述Access接口一般用于不能识别Tag的用户终端(如主机、服务器)相连,或不需要区分不同VLAN成员时使用Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端Hybrid接口既可用连接不能识别Tag的用户终端(如主机、服务器)和网络设备(如Hub),也可用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端QinQ接口支持QinQ协议,一般用于私网和公网之间的连接

接收数据帧

  • 当接收到带有VLAN标签的数据帧(Tagged帧)时,Access、Trunk、Hybrid接口都会根据数据帧的VID来判断其是否为允许通过的VLAN,若是则接收该数据帧。

  • 当接收到不带VLAN标签的数据帧(Untagged帧)时,Access、Trunk、Hybrid接口都会给数据帧打上VLAN标签,其中Trunk、Hybrid接口都会根据数据帧的VID来判断其是否为允许通过的VLAN,若是则接收;而Access接口无需判断就直接将所有数据帧无条件接收。

注:QinQ接口会给数据帧添加双重Tag,在原有的Tag基础上再添加一个802.1Q的Tag,即数据帧有两层802.1Q Tag(一层公网Tag,一层私网Tag)。

发送数据帧

当交换机将数据帧发出时,Access接口会直接剥离数据帧中的VLAN标签,然后发送出去;Trunk接口则是只有当数据帧中的VID与接口的PVID相等时,才会剥离数据帧中的VLAN标签,然后将其发送出去;Hybrid接口则是根据接口上的配置来判断是否剥离数据帧中的VLAN标签,剥离数据帧中的VLAN标签,将其发送出去。

2. VLAN内通信原理

VLAN内通信是指在位于相同网段的同一个VLAN内的用户进行通信。VLAN内通信可以是发生在同交换机上,也可以发生在跨交换机(也就是说不同交换机)上,但无论是什么类型,VLAN内通信主要分为以下三个步骤:

(1)主机报文转发:在发起通信之前,源主机会将自身的IP地址与目的主机的IP地址进行匹配,若是两者位于同一网段,则获取目的主机的MAC地址,并将其作为目的MAC地址封装进报文;若是两者位于不同网段,源主机将其报文递交给网关,获取网关的MAC地址,并将其作为目的MAC地址封装进报文。

(2)交换机内部的以太网交换:交换机根据接收到的报文目的MAC地址和VID以及三层转发标志位置来判断进行二层交换还是三层交换。

(3)VLAN标签的添加和剥离:在设备之间交互时,根据交换机接口的设置添加或剥离Tag。

3. VLAN间通信原理

由于广播帧只能在同一个VLAN内进行转发,因此不同VLAN的用户之间无法实现二层相互通信。但在实际应用中,处于不同VLAN中的用户会存在相互通信的需求,因此,若想实现不同VLAN之间的通信就需要借助三层交换机虚拟端口或单臂路由。具体如下:

单臂路由——使用中继端口实现多个VLAN和路由器子接口的模式,实现单臂路由。如下图,先将路由器和交换机之间的连接端口配置为中继端口(该链路为Trunk链路);然后删除与交换机相连的路由器物理端口的IP地址,并启用物理端口;最后在路由器上为每个逻辑子接口进行VLAN的封装、IP地址和子网掩码的配置。该种方式,可有效节约交换机和路由器端口,但转发带宽会受到中继链路带宽限制。

关于VLAN技术您了解多少-冯金伟博客园

三层交换机虚拟端口——其实就是借助三层交换机的交换技术及路由功能。如下图,先在三层交换机上创建VLAN;然后在三层交换机上使用“IP Routing”命令启用IP路由转发功能,为每个VLAN创建SVI接口(交换机虚拟接口,是一种与VLAN ID相关联的虚拟VLAN接口),并配置IP地址和子网掩码。该种方式采用内部交换链路进行交换,具备速度高、无冲突等优势。

关于VLAN技术您了解多少-冯金伟博客园

其实我们还可以将每个VLAN与路由器端口连接,利用路由协议实现VLAN之间的路由,如下图。但该种方式,会使每个VLAN在路由器上都需要一个物理端口,会占用大量路由器端口,导致成本增加,因此,该种方式使用较少。

关于VLAN技术您了解多少-冯金伟博客园

如何划分VLAN?怎么配置VLAN?

划分VLAN可有效减少广播风暴、简化网络管理、提高网络的安全性,是用户最常使用的配置。VLAN划分方式主要分为基于接口、基于MAC地址、基于协议、基于子网以及基于策略五种,其中基于接口划分使用最为常见的方式。

1. 基于接口划分VLAN

基于接口划分VLAN是根据交换机的接口来划分VLAN。该方式定义成员简单,只需将所有接口都定义为相应的VLAN即可,适用于位置固定的网络。

该方式的配置需要网络管理员预先给交换机的每个接口配置不同的PVID,当数据帧进入到交换机时,若是没有携带VLAN标签,则会为该数据帧加上接口制定PVID的Tag,然后让该数据帧在指定的PVID中传输。

2. 基于MAC地址划分VLAN

基于MAC地址划分VLAN是根据数据帧的源MAC地址划分VLAN,可有效提高网络安全性和接入的灵活性,适用于位置经常发生变动但网卡不变的小型网络,如移动PC。

该方式的配置需要网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到Untagged帧时,会根据该表为数据帧加上指定VLAN的Tag,然后让其在指定VLAN中进行传输。

3. 基于子网划分VLAN

基于子网划分VLAN是根据数据帧中的源IP地址和子网掩码来划分VLAN,即便是位置发生改变也无需重新配置VLAN,同时,可将VLAN扩大广域网(也就是广播域跨越多个交换机),减少网络通信量,适用于对安全性要求不高,但对移动性和简易管理性要求较高的网络,如PC需要配置多个IP地址分别访问不同网段的服务器等。

该方式的配置需要网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到Untagged帧时,会根据该表为数据帧加上指定VLAN的Tag,然后该数据帧将在指定VLAN中进行传输。

4. 基于协议划分VLAN

基于协议划分VLAN是根据数据帧所属的协议类型及封装格式来划分VLAN,可根据网络提供的服务类型与VLAN绑定,便于管理和维护,适用于同时运行多协议的网络。

该方式的配置需要网络管理员先配置以太网帧中的协议域和VLAN ID的映射关系表,当交换机收到Untagged帧时,会根据该表给数据帧添加指定VLAN 的Tag,然后该数据帧会在指定VLAN中进行传输。

5. 基于策略划分VLAN

基于策略划分VLAN是根据配置的策略划分VLAN,可实现多组合的划分方式,如接口、MAC地址、IP地址等,其具备较高的安全性且灵活性,可根据实际需求以及其管理管理模式选择划分的方式,适用于需求比较复杂的网络。

该方式的配置需要网络管理员预先配置策略,当交换机收到Untagged帧,且匹配到配置的策略时,会给该数据帧添加指定VLAN的 Tag,然后让该数据帧在指定VLAN中进行传输。

若是Untagged帧匹配到多种划分VLAN方式时,其优先级从高到低的顺序为:基于策略划分VLAN>基于MAC地址划分VLAN、基于子网划分VLAN(两者的优先级可通过命令改变)>基于协议划分VLAN>基于接口划分VLAN。