1) 简介
VLAN(virtual local area network,虚拟局域网)把一个LAN(local area network,局域网)划分为多个逻辑的LAN → VLAN,处于同一个VLAN的主机能直接互通,而处于不同VLAN的主机则不能直接互通,从而增加了局域网的安全性。VLAN技术的优点:
a) 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络的处理能力;
b) 增强了局域网的安全性;
c) 可灵活构建虚拟工作组;
2) VLAN报文封装
我们知道,标准的以太网(局域网的一种最常见形式)V2的MAC帧格式如图所示:
其中:
Dmac—表示目的MAC地址;
Smac—表示源MAC地址;
Type—表示上层使用的是何种协议。如type=0x0800,表示上层使用的IP数据包;type=0x0805,表示上层使用的是X.25协议。此类型值在内核源码if_ethernet.h中可以查到;
Data—表示上层报文内容,长度在46到1500字节;
FCS—Frame check sequence,帧检测序列。
VLAN是在局域网的基础上发展而来,自然继承了局域网的报文封装格式。然而,要使网络设备能够分辨不同的VLAN报文,需要在报文中添加标识VLAN的字段。协议规定:在以太网报文的目的MAC(Dmac)和源MAC地址(Smac)字段之后,协议类型 (type)字段之前加上4个字节的VLAN tag,用以标识VLAN的相关信息。其报文封装如图所示:
除了标准的EthernetV2报文字段外,新增VLAN Tag字段包含四个域:
TPID:Tag Protocol Identifier,标签协议标识。是IEEE定义的新类型,表明这是一个加了802.1Q标签的帧。TPID包含了一个固定的值0x8100;
P:Priority,指明帧的优先级。一共有8种优先级,0-7。IEEE 802.1Q标准使用这三位信息;
CFI:Canonical Format Indicator,规范格式标识符。CFI值为0说明是规范格式,1为非规范格式。它被用在令牌环/源路由FDDI介质访问方法中来指示封装帧中所带地址的比特次序信息;
VLAN-ID:VLAN Identified,指明VLAN的ID,是一个12位的域,取值范围为0~4095,一共4096个,由于0 和4095 为协议保留取值,所以VLANID 的取值范围为1~4094每个支持802.1Q协议的交换机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
由上述分析可知,VLAN-ID像IPv4地址一样,也是一种宝贵的网络资源(仅4096个),大型企业的组网中可能出现VLAN-ID分配完毕的尴尬,因而就有了后续各种类似VxLAN、tunnel等的新技术。
3) VLAN具体实现
在VLAN的具体实现中,设备供应商往往用一个独立的进程进行VLAN报文处理与控制,并与接口管理相关进程配合,将VLAN实现为一种三层的虚拟接口(VLAN接口)。VLAN接口不作为物理实体存在于设备上,每个VLAN-ID对应一个VLAN接口,在为VLAN接口配置IP地址后,该IP地址即可作为本VLAN内网络设备的网关地址,此时该VLAN接口能对需要跨网段的报文进行三层转发。
4) VLAN的配置
a) 基于实体接口配置VLAN
基于实体接口配置VLAN常用于组网固定的场景中,将网络设备的某几个接口划分到某个VLAN,那几个划分到同一VLAN的实体接口就组成了一个虚拟局域网VLAN。由此引申出将实体接口分类为不同的链路类型:
→access类型:接口只能发送一个VLAN报文,发出去的报文不带VLANtag;
→trunk类型:接口能发送多个VLAN报文,发出去的接口缺省VLAN报文不带VLAN tag,其他非接口缺省VLAN报文携带VLAN tag;
→hybrid类型:接口能发送多个VLAN报文,发出去的报文可以根据需要配置某些VLAN的报文带VLAN tag,某些不带。
b) 基于MAC地址配置VLAN
基于MAC地址配置VLAN常用于终端设备不固定的组网环境中,如移动办公、无线接入等。其原理是根据报文的源MAC地址来划分VLAN,网络设备的MAC—VLAN表记录了MAC地址和VLAN的对应关系。
5) 参考:
RFC 2643 《Cabletron’sSecureFast VLAN Operational Model》
RFC 2641 《Cabletron’sVlanHello Protocol Version 4》
《VLAN入门基础知识》