VLAN基本概念
VLAN的帧格式
传统的以太网数据帧在目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,如图5-2所示。
IEEE 802.1Q是虚拟桥接局域网的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag,如图5-3所示。
802.1Q Tag包含4个字段,各字段解释如表5-1所示:
字段 |
长度 |
名称 |
解释 |
---|---|---|---|
TPID |
2bytes |
Tag Protocol Identifier(标签协议标识符),表示帧类型。 |
取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。 |
PRI |
3bits |
Priority,表示帧的优先级。 |
取值范围为0~7,值越大优先级越高。用于当交换机阻塞时,优先发送优先级高的数据帧。 |
CFI |
1bit |
Canonical Format Indicator(标准格式指示位),表示MAC地址是否是经典格式。 |
CFI为0说明是经典格式,CFI为1表示为非经典格式。用于兼容以太网和令牌环网。在以太网中,CFI的值为0。 |
VID |
12bits |
VLAN ID,表示该帧所属的VLAN。 |
VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094(4064~4094为设备缺省保留VLAN ID,通过命令vlan reserved可以将保留VLAN范围修改到其他VLAN区间)。 |
- 有标记帧(tagged frame):加入了4字节802.1Q Tag的帧
- 无标记帧(untagged frame):原始的、未加入4字节802.1Q Tag的帧
链路类型
如图5-4所示,VLAN中有以下两种链路类型:
接入链路(Access Link):用于连接用户主机和交换机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标记的帧。因此,主机发送和接收的帧都是untagged帧。
干道链路(Trunk Link):用于交换机间的互连或交换机与路由器之间的连接。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上传输的帧都是Tagged帧。
- 对于主机来说,它不需要知道VLAN的存在。主机发出的是untagged报文。
- 交换设备接收到报文后,根据配置规则(如接口信息)判断出报文所属的VLAN后,再进行处理。
- 如果报文需要通过另一台交换机转发,则该报文必须通过干道链路透传到对端交换设备上。为了保证其它交换设备能够正确处理报文中的VLAN信息,在干道链路上传输的报文必须都打上了VLAN标记。
- 当交换设备最终确定报文出接口后,将报文发送给主机前,需要将VLAN标记从帧中删除,这样主机接收到的报文都是不带VLAN标记的以太网帧。
所以,一般情况下,干道链路上传输的都是tagged帧,接入链路上传送到的都是untagged帧。这样处理的好处是:网络中配置的VLAN信息可以被所有交换设备正确处理,而主机不需要了解VLAN信息。
接口类型
在802.1Q中定义VLAN帧后,将接口分为4类:
Access接口
如图5-4所示,Access接口是交换机上用来连接用户主机的接口,它只能连接接入链路。仅仅允许唯一的VLAN ID通过本接口,这个VLAN ID与接口的缺省VLAN ID相同,Access接口发往对端设备的以太网帧永远是不带标签的帧。
Trunk接口
如图5-4所示,Trunk接口是交换机上用来和其他交换机连接的接口,它只能连接干道链路,允许多个VLAN的帧(带Tag标记)通过。
Hybrid接口
如图5-5所示,Hybrid接口是交换机上既可以连接用户主机,又可以连接其他交换机的接口。Hybrid接口既可以连接接入链路又可以连接干道链路。Hybrid接口允许多个VLAN的帧通过,并可以在出接口方向将某些VLAN帧的Tag剥掉。
QinQ接口
QinQ(802.1Q-in-802.1Q)接口是使用QinQ协议的接口。QinQ接口可以给帧加上双重Tag,即在原来Tag的基础上,给帧加上一个新的Tag,从而可以支持多达4094×4094个VLAN,满足网络对VLAN数量的需求。
QinQ帧的格式如图5-6所示。外层的标签通常被称作公网Tag,用来存放公网的VLAN ID。内层标签通常被称作私网Tag,用来存放私网的VLAN ID。
QinQ协议的详细描述,请参见QinQ。
缺省VLAN
每种类型的接口都可以配置一个缺省VLAN,对应的VLAN ID为PVID(Port Default VLAN ID)。接口类型不同,缺省VLAN的含义也有所不同。
关于不同类型接口的PVID以及对以太网帧的处理方式请参见各类型接口对数据帧的处理方式。
VLAN的划分
划分VLAN是VLAN的基本配置,VLAN划分成功后,即可实现同一VLAN中的用户可以互相通信。不同的场景采用不同的划分方式,如表5-2所示。
VLAN划分方式 |
原理 |
优点 |
缺点 |
---|---|---|---|
基于接口划分VLAN |
根据交换设备的接口编号来划分VLAN。 网络管理员给交换机的每个接口配置不同的PVID,即一个接口缺省属于的VLAN。
对VLAN帧的处理由接口类型决定。 |
定义成员简单。 |
成员移动需重新配置VLAN。 |
基于MAC地址划分VLAN |
根据计算机网卡的MAC地址来划分VLAN。 网络管理员成功配置MAC地址和VLAN ID映射关系表,如果交换机收到的是untagged(不带VLAN标签)帧,则依据该表为帧添加Tag。 |
当终端用户的物理位置发生改变,不需要重新配置VLAN。提高了终端用户的安全性和接入的灵活性。 |
|
基于子网划分VLAN |
如果交换设备收到的是untagged(不带VLAN标签)帧,交换设备根据报文中的源IP地址信息,确定添加的VLAN ID。 |
将指定网段或IP地址发出的报文在指定的VLAN中传输,有利于管理。 |
网络中的用户分布需要有规律,且多个用户在同一个网段。 |
基于协议划分 |
根据数据帧所属的协议(族)类型及封装格式来划分VLAN。 网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是untagged帧,就依据该表给数据帧添加指定VLAN的Tag。然后数据帧将在指定VLAN中传输。 |
将网络中提供的服务类型与VLAN相绑定,方便管理和维护。 |
|
设备同时支持多种方式划分VLAN,规定的优先使用顺序是(优先级高低顺序从左至右):基于MAC地址划分VLAN->基于子网划分VLAN->基于协议划分VLAN->基于接口划分VLAN。
基于接口划分VLAN的优先级最低,但却是最常用的VLAN划分方式。