1. 什么是VLAN? VLAN(Virtual LAN),翻译成中文是“虚拟局域网”。LAN可以是由少数几台家用计算机构成的网络,也可以是数以百计的计算机构成的企业网络。VLAN所指的LAN特指使用路由器分割的网络——也就是广播域。 广播域,指的是广播帧(目标MAC地址全部为1)所能传递到的范围,亦即能够直接通信的范围。严格地说,并不仅仅是广播帧,多播帧(Multicast Frame)和目标不明的单播帧(Unknown Unicast Frame)也能在同一个广播域中畅行无阻。 本来,二层交换机只能构建单一的广播域,不过使用VLAN功能后,它能够将网络分割成多个广播域。
  2. 为什么要分割广播域 那么,为什么需要分割广播域呢?那是因为,如果仅有一个广播域,有可能会影响到网络整体的传输性能。 图中,是一个由5台二层交换机(交换机1~5)连接了大量客户机构成的网络。如果A要与B通讯,如果没有分割广播域,就如下图所示要广播所有客户机。 这个ARP请求原本是为了获得计算机B的MAC地址而发出的。也就是说:只要计算机B能收到就万事大吉了。可是事实上,数据帧却传遍整个网络,导致所有的计算机都收到了它。如此一来,一方面广播信息消耗了网络整体的带宽,另一方面,收到广播信息的计算机还要消耗一部分CPU时间来对它进行处理。造成了网络带宽和CPU运算能力的大量无谓消耗。所以就需要分割广播域了。
  3. 实现VLAN的机制 首先,在一台未设置任何VLAN的二层交换机上,任何广播帧都会被转发给除接收端口外的所有其他端口(Flooding)。例如,计算机A发送广播信息后,会被转发给端口2、3、4。 这时,如果在交换机上生成红、蓝两个VLAN;同时设置端口1、2属于红色VLAN、端口3、4属于蓝色VLAN。再从A发出广播帧的话,交换机就只会把它转发给同属于一个VLAN的其他端口——也就是同属于红色VLAN的端口2,不会再转发给属于蓝色VLAN的端口。

同样,C发送广播信息时,只会被转发给其他属于蓝色VLAN的端口,不会被转发给属于红色VLAN的端口。 处于同一VLAN下的交换机才能通信,而不处于同一VLAN下的交换机不能相互通信,从而形成了网络隔离。 如果需要VLAN间的通信时,VLAN间的通信也需要路由器提供中继服务,这被称作“VLAN间路由”。 VLAN的访问链接(Access Link) 交换机的端口,可以分为以下两种: (1)访问链接(Access Link) (2)汇聚链接(Trunk Link) 访问链接: 访问链接,指的是“只属于一个VLAN,且仅向该VLAN转发数据帧”的端口。在大多数情况下,访问链接所连的是客户机。 通常设置VLAN的顺序是:

(1)生成VLAN

(2)设定访问链接(决定各端口属于哪一个VLAN)

设定访问链接的手法,可以是事先固定的、也可以是根据所连的计算机而动态改变设定。前者被称为“静态VLAN”、后者自然就是“动态VLAN”了。

● 静态VLAN——基于端口

静态VLAN又被称为基于端口的VLAN(PortBased VLAN)。顾名思义,就是明确指定各端口属于哪个VLAN的设定方法。(静态链接多了之后,会比较杂乱,不适合复杂结构的网络。)

● 动态VLAN

另一方面,动态VLAN则是根据每个端口所连的计算机,随时改变端口所属的VLAN。这就可以避免上述的更改设定之类的操作。动态VLAN可以大致分为3类:

(1)基于MAC地址的VLAN(MAC Based VLAN)

(2)基于子网的VLAN(Subnet Based VLAN)

(3)基于用户的VLAN(User Based VLAN)

其间的差异,主要在于根据OSI参照模型哪一层的信息决定端口所属的VLAN。

● 基于MAC地址的VLAN

基于MAC地址的VLAN,就是通过查询并记录端口所连计算机上网卡的MAC地址来决定端口的所属。假定有一个MAC地址“A”被交换机设定为属于VLAN “10”,那么不论MAC地址为“A”的这台计算机连在交换机哪个端口,该端口都会被划分到VLAN 10中去。计算机连在端口1时,端口1属于VLAN 10;而计算机连在端口2时,则是端口2属于VLAN 10。 由于是基于MAC地址决定所属VLAN的,因此可以理解为这是一种在OSI的第二层设定访问链接的办法。

但是,基于MAC地址的VLAN,在设定时必须调查所连接的所有计算机的MAC地址并加以登录。而且如果计算机交换了网卡,还是需要更改设定。

● 基于IP地址的VLAN

基于子网的VLAN,则是通过所连计算机的IP地址,来决定端口所属VLAN的。不像基于MAC地址的VLAN,即使计算机因为交换了网卡或是其他原因导致MAC地址改变,只要它的IP地址不变,就仍可以加入原先设定的VLAN。 因此,与基于MAC地址的VLAN相比,能够更为简便地改变网络结构。IP地址是OSI参照模型中第三层的信息,所以我们可以理解为基于子网的VLAN是一种在OSI的第三层设定访问链接的方法。

基于用户的VLAN,则是根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个VLAN。这里的用户识别信息,一般是计算机操作系统登录的用户,比如可以是Windows域中使用的用户名。这些用户名信息,属于OSI第四层以上的信息。

总的来说,决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。 VLAN的汇聚链接(Trunk Link)