6.4.3 IEEE 802.1q协议
IEEE 802.1q协议也就是“Virtual Bridged Local Area Networks”(虚拟桥接局域网,简称“虚拟局域网”)协议,主要规定了VLAN的实现方法。下面先介绍有关VLAN的基本概念。
1.VLAN简介
“Virtual LANs”(虚拟局域网)目前发展很快,世界上主要的大网络厂商在他们的交换机设备中都实现了VLAN协议。在一个支持VLAN技术的交换机中,可以将它的以太网口划分为几个组,比如生产组,工程组,市场组等。这样,组内的各个用户就像在同一个局域网内(可能各组的用户位于很多的交换机上,而非一个交换机)一样,同时,不是本组的用户就无法访问本组的成员,在一定程度上提高了各组的网络安全性。
实际上,VLAN成员的定义可以分为4种:
(1)根据端口划分VLAN
这种划分VLAN的方法是根据以太网交换机的端口来划分的,比如将某交换机的的1~4端口为VLAN A,5~17为VLAN B,18~24为VLAN C……
以上这些属于同一VLAN组的端口可以不连续,如何配置,由管理员决定。另外,如果有多个交换机的话,例如,可以指定交换机1的1~6端口和交
换机2的1~4端口为同一VLAN,即同一VLAN可以跨越数个以太网交换机。
根据端口划分是目前定义VLAN的最常用的方法,IEEE 802.1q协议规定的就是如何根据交换机的端口来划分VLAN。这种划分的方法的优点是定义VLAN成员时非常简单,只要将所有的端口都定义一下就可以了。它的缺点是如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。
(2)根据MAC地址划分VLAN
这种划分VLAN的方法是根据每个主机的MAC地址来划分的,即对每个MAC地址的主机都配置它属于哪个组。这种划分VLAN的方法的最大优点就是当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置。所以可以认为这种根据MAC 地址的划分方法是基于用户的VLAN。这种方法的缺点是初始化时,所有的用户都必须进行配置,如果有几百个甚至上千个用户的话,配置是非常累的。而且这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。另外,对于使用笔记本电脑的用户来说,他们的网卡可能经常更换,这样,VLAN就必须不停地配置。
(3)根据网络层划分VLAN
这种划分VLAN的方法是根据每个主机的网络层地址或协议类型(如果支持多协议)划分的。虽然这种划分方法可能是根据网络地址,比如IP地址,子网掩码,但它不是路由,不要与网络层的路由混淆。它虽然查看每个数据包的IP地址,但由于不是路由,所以没有RIP(Routing information Protocol,路由信息协议),OSPF(Open Shortest Path First,开放最短路径优先)等路由协议,而是根据生成树算法进行桥交换。
这种方法的优点是用户的物理位置改变了,不需要重新配置他所属的VLAN,而且可以根据协议类型来划分VLAN,这对网络管理者来说很重要,还有,这种方法不需要附加的帧标签来识别VLAN,这样可以减少网络的通信量。其缺点是效率低,因为检查每一个数据包的网络层地址是很费时的(相对于前面两种方法),一般的交换机芯片都可以自动检查网络上数据包的以太网帧头,但要让芯片能检查IP帧头,需要更高的技术,同时也更费时。当然,这也跟各个厂商的实现方法有关。
(4)根据IP组播划分
IP组播实际上也是一种VLAN的定义,即认为一个组播组就是一个VLAN组。这种划分的方法将VLAN扩大到了广域网,因此这种方法具有更大的灵活性,而且也很容易通过路由器进行扩展。当然这种方法不适合局域网,主要是效率不高,对于局域网的组播,有二层组播协议GMRP。
通过上面可以看出,各种不同的VLAN定义方法有各自的优缺点,所以很多厂商的交换机都实现了不只一种方法,这样网络管理者可以根据自己的实际需要进行选择。另外,许多厂商在实现VLAN的时候,考虑到VLAN配置的复杂性,还提供了一定程度的自动配置和方便的网络管理工具。
以前各个厂商都声称他们的交换机实现了VLAN,但各个厂商实现的方法都不相同,所以彼此是无法互连,这样,用户一旦买了某个厂商的交换机,就没法买其他厂商的了。而现在,VLAN的标准是IEEE提出的802.1q协议,只有支持相同的开放标准才能保证网络的互连互通,以及保护网络设备投资。
2.IEEE 802.1q协议简介
IEEE 802.1q协议为标识带有VLAN成员信息的以太帧建立了一种标准方法。IEEE802.1q标准定义了VLAN网桥操作,从而允许在桥接局域网结构中实现定义、运行以及管理VLAN拓朴结构等操作。IEEE 802.1q标准主要用来解决如何将大型网络划分为多个小网络,如此广播和组播流量就不会占据更多带宽的问题。此外IEEE 802.1q标准还提供更高的网络段间安全性。IEEE802.1q完成这些功能的关键在于标签。支持IEEE 802.1q的交换端口可被配置来传输标签帧或无标签帧。一个包含VLAN信息的标签字段可以插入到以太帧中。如果端口有支持IEEE 802.1q的设备(如另一个交换机)相连,那么这些标签帧可以在交换机之间传送VLAN成员信息,这样VLAN就可以跨越多台交换机。但是,对于没有支持IEEE 802.1q设备相连的端口我们必须确保它们用于传输无标签帧,这一点非常重要。
很多PC 和打印机的NIC 并不支持IEEE 802.1q ,一旦它们收到一个标签帧,它们会因为读不懂标签而丢弃该帧。在IEEE 802.1q 中,用于标签帧的最大合法以太帧大小已由1518字节增加到1522字节,这样就会使网卡和旧式交换机由于帧“尺寸过大”而丢弃标签帧。图6-16就是以太网中的IEEE 802.1q 标签帧格式。
Type Length 2 2 2 6 6 1 7 Data
CRC TCI TPID SA DA SFD Preamble
图6-16 IEEE 802.1q 标签帧格式
Preamble (Pre ):前导字段,7字节。Pre 字段中1和0交互使用,接收站通过该字
段知道导入帧,并且该字段提供了同步化接收物理层帧接收部分和导入比特流的方法。
Start-of-Frame Delimiter (SFD ):帧起始分隔符字段,1字节。字段中1和0交互
使用,结尾是两个连续的1,表示下一位是利用目的地址的重复使用字节的重复使用位。
Destination Address (DA ):目的地址字段,6字节。DA 字段用于识别需要接收帧
的站。
Source Addresses (SA ):源地址字段,6字节。SA 字段用于识别发送帧的站。 TPID :标记协议标识字段,2个字节,值为8100(hex )。当帧中的EtherType (以
太网类型)字段值也为8100时,该帧传送标签IEEE 802.1q/802.1p 。
TCI :标签控制信息字段,包括用户优先级(User Priority )、规范格式指示器
(Canonical Format Indicator ,CFI )和VLAN ID 。
“User Priority ”定义用户优先级,包括8个(2^3)优先级别。IEEE 802.1p
为3比特的用户优先级位定义了操作。“CFI ”,在以太网交换机中,规范格式
指示器总被设置为0。由于兼容特性,CFI 常用于以太网类网络和令牌环类网络之间,如果在以太网端口接收的帧具有CFI ,那么设置为1,表示该帧不进
行转发,这是因为以太网端口是一个无标签端口。“VID ”(VLAN ID )是对
VLAN 的识别字段,在标准IEEE 802.1q 中常被使用。该字段为12位。支持
4096(2^12)VLAN 的识别。在4096可能的VID 中,VID =0用于识别帧优先级。4095(FFF )作为预留值,所以VLAN 配置的最大可能值为4094。
Length/Type :长度/类型字段,2字节。如果是采用可选格式组成帧结构时,该字
段既表示包含在帧数据字段中的MAC 客户机数据大小,也表示帧类型ID 。
Data :数据字段,是一组n (46≤n ≤1500)字节的任意值序列。帧总值最小为64字
节。
Frame Check Sequence (FCS ):帧校验序列字段,4字节。该序列包括32位的循
环冗余校验(CRC )值,由发送MAC 方生成,通过接收MAC 方进行计算得出以校验被破坏的帧。