1.VLAN 基本概念
1.1VLAN 的帧格式
传统的以太网数据帧在目的 MAC 地址和源 MAC 地址之后封装的是上层协议的类型字段,如图1 所示。
图 1 传统的以太网数据帧格式
IEEE 802.1q 是虚拟桥接局域网的正式标准,对 Ethernet 帧格式进行了修改,在源 MAC 地址字段和协议类型字段之间加入 4 字节的 802.1q Tag,如图 2 所示。
图 2 802.1q 帧格式
802.1Q Tag 包含 4 个字段,各字段解释如表 1 所示:
表 1 802.1Q Tag 各字段含义介绍 |
|||
字段 |
长度 |
名称 |
解释 |
TPID |
2bytes |
Tag Protocol Identifier(标签协议标识符),表示帧类型。 |
取值为 0x8100 时表示 802.1q Tag 帧。如果不支持 802.1q 的设备收到这样的帧,会将其丢弃。 |
PRI |
3bits |
Priority,表示帧的优先级。 |
取值范围为 0~7,值越大优先级越高。用于当交换机阻塞时,优先发送优先级高的数据帧。 |
CFI |
1bit |
Canonical Format Indicato(r 标准格式指示位),表示 MAC 地址是否是经典格式。 |
CFI 为 0 说明是经典格式,CFI 为 1 表示为非经典格式。用于兼容以太网和令牌环网。在以太网中,CFI 的值为 0。 |
VID |
12bits |
VLAN ID,表示该帧所属的 VLAN。 |
VLAN ID 取值范围是 0~4095。由于 0 和 4095 为协议保留取值,所以 VLAN ID 的有效取值范围是 1~4094。 |
每台支持 802.1q 协议的交换机发送的数据包都会包含VLAN ID,以指明交换机属于哪一个 VLAN。因此,在一个 VLAN 交换网络中,以太网帧有以下两种形式:
·有标记帧(tagged frame):加入了 4 字节 802.1q Tag 的帧
·无标记帧(untagged frame):原始的、未加入 4 字节 802.1q Tag 的帧
1.2链路类型
如图 3 所示,VLAN 中有以下两种链路类型:
·接入链路(Access Link):用于连接用户主机和交换机的链路。通常情况下,主机并不需要知道自己属于哪个 VLAN,主机硬件通常也不能识别带有 VLAN 标记的帧。因此,主机发送和接收的帧都是 untagged 帧。
·干道链路(Trunk Link):用于交换机间的互连或交换机与路由器之间的连接。干道链路可以承载多个不同 VLAN 数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个 VLAN,所以在干道链路上传输的帧都是 Tagged 帧。
图 3 链路类型示意图
说明:
· 对于主机来说,它不需要知道 VLAN 的存在。主机发出的是 untagged 报文。
· 交换设备接收到报文后,根据配置规则(如接口信息)判断出报文所属的 VLAN 后,再进行处理。
· 如果报文需要通过另一台交换机转发,则该报文必须通过干道链路透传到对端交换设备上。为了保证其它交换设备能够正确处理报文中的 VLAN 信息,在干道链路上传输的报文必须都打上了 VLAN 标记。
· 当交换设备最终确定报文出接口后,将报文发送给主机前,需要将 VLAN 标记从帧中删除,这样主机接收到的报文都是不带 VLAN 标记的以太网帧。所以,一般情况下,干道链路上传输的都是 tagged 帧,接入链路上传送到的都是 untagged 帧。这样处理的好处是:网络中配置的 VLAN 信息可以被所有交换设备正确处理,而主机不需要了解VLAN 信息。
1.3接口类型
在 802.1Q 中定义 VLAN 帧后,设备的有些接口可以识别 VLAN 帧,有些接口则不能识别 VLAN
帧。根据对 VLAN 帧的识别情况,将接口分为 4 类:
· Access 接口
如图 3 所示,Access 接口是交换机上用来连接用户主机的接口,它只能连接接入链路。仅仅允许唯一的 VLAN ID 通过本接口,这个 VLAN ID 与接口的缺省 VLAN ID 相同,Access 接口发往对端设备的以太网帧永远是不带标签的帧。
· Trunk 接口
如图 3 所示,Trunk 接口是交换机上用来和其他交换机连接