1
计算机网络技术理论与实践
1.5.2.2 4.2.2 虚拟局域网VLAN

4.2.2 虚拟局域网VLAN

虚拟局域网(Virtual Local Area Network,VLAN)是由一些局域网网段构成的与物理位置无关的逻辑组,也就是将同一个物理局域网中划分出多个逻辑网络。

传统的物理局域网对于拓扑结构的变化不够灵活和方便,有较大的网络变化开销,另外对于一些位置不在一起的用户之间建立物理局域网不太方便进行布线。此外,通常为了布线方便,一个物理局域网会建立的较大,这就会导致广播风暴的问题。有一些局域网内的用户希望几个用户能够组成一个组,组内的通信与外部不会相互干扰,特别是对于一些公司,不同的部门或项目组为了方便、安全和效率,需要建立较为独立的局域网。解决这些需求的方法就是在物理局域网上,划分出不同的逻辑局域网,这些逻辑局域网是互相隔离的,并且与用户的物理位置没有直接关系,这就是VLAN。在同一个VLAN中的成员之间可以直接通信,不同VLAN的成员之间不能直接通信,如果想要通信,需要用路由器来进行网络间的互联,所以从使用效果上看,VLAN和物理局域网没有太大差别。

VLAN的好处是可以灵活地进行局域网络的划分,当网络拓扑需要改变时,只需要修改交换机的配置即可,不需要重新进行布线,另外当处于不同物理位置的用户之间想组建局域网时,也可以通过VLAN来方便地建立。比如当一个公司中某个项目组成立时,需要位于不同楼层的员工参与,这时不需要改变员工的位置,也不需要为这个项目组重新布线,只需要对公司的交换机进行简单的配置即可,当项目组在工作过程中需要增加新的成员,或者某些成员被调走,也只需要简单的修改交换机的配置,不需要进行物理上的变化。

在图4-5中,虽然4台主机都接在一台交换机上,但是PC1、PC3被划分在一个VLAN中,PC2、PC4被划分在另一个VLAN中。PC1、PC3能够互相通信,PC2、PC4能够互相通信,但是PC1、PC3和PC2、PC4之间不能互通。也就是说整个物理网络被分成了两个虚拟局域网络,这两个网络之间是互相隔离的。

img74

图4-5 虚拟局域网VLAN

1.VLAN的划分策略

划分VLAN所依据的标准是多种多样的,可以按照端口、MAC地址、协议、用户、IP地址等策略进行划分。

(1)按端口划分

将VLAN交换机上的物理端口分成若干组,每个组构成一个虚拟局域网络。这种按网络端口来划分VLAN网络成员的配置过程简单明了,是最常用的一种划分方式。但是这种方式不允许用户移动,一旦用户移动到一个新的位置,网络管理员必须修改原有和新的端口的配置。

(2)按MAC地址划分

交换机按主机的MAC地址进行分组,每个组构成一个虚拟局域网。因为MAC地址在主机上,所以这是一种基于用户的虚拟网络划分手段。在这种方式的VLAN中,当用户从一个物理位置移动到另一个物理位置时,可以自动保留其所属VLAN的成员身份,但这种划分方式要求在进行VLAN划分时,要把此VLAN中的所有用户的MAC地址都添加进去。对于大规模的VLAN,工作量较大,并且当VLAN中增加用户或者用户离开VLAN时,都需要修改配置。

(3)按网络协议划分

VLAN按网络层协议来划分,可分为IP、IPX、DECnet、AppleTalk、Banyan等VLAN网络。这种按网络层协议来组成的VLAN,可使广播域跨越多个VLAN交换机。这对于希望针对具体应用和服务来组织用户的网络管理员来说是非常方便的,并且用户可以在网络内部自由移动,其VLAN成员身份保持不变。

(4)按子网划分

基于IP子网的VLAN,可按照IPv4和IPv6方式来划分VLAN。每个VLAN都是和一段独立的IP网段相对应,将IP的广播组和VLAN的碰撞域一对一地结合起来。这种方式有利于在VLAN交换机内部实现路由,也有利于将动态主机配置(DHCP)技术结合起来,而且用户可以进行移动而不需要重新配置网络地址,便于网络管理。但是这种划分方式的效率比较差,因为查看三层IP地址比查看MAC地址要消耗更多的时间。

(5)按策略划分

基于策略组成的VLAN能实现多种划分方式,包括VLAN交换机端口、MAC地址、IP地址、网络层协议等。网络管理人员可根据自己的管理模式和本单位的需求来决定选择哪种方式来划分VLAN。

(6)按用户定义划分

基于用户定义、非用户授权来划分VLAN,是指为了适应网络用户的特别要求来定义和设计VLAN,而且可以让非VLAN用户访问VLAN用户,但是需要提供用户密码,得到VLAN管理员的认证后才可以加入一个VLAN。

2.VLAN的互联

划分VLAN的交换机包含了3种类型的链路。

·接入链路:接入链路(Access Link)是用来将不支持VLAN功能的普通主机或网络设备接入到一个VLAN交换机的端口上。

·中继链路:中继链路(Trunk Link)主要是承载带有VLAN标记数据(即具有VLAN标记的数据包)的主干链路,通常用于支持VLAN的设备之间的互连,比如两台VLAN交换机之间一般采用Trunk Link进行连接。

·混合链路:混合链路(Hybrid Link)是接入链路和中继链路混合所组成的链路,可以连接VLAN-aware设备(具有VLAN功能)和VLAN-unaware设备(不具有VLAN功能)。这种链路可以同时承载带有VLAN标记的数据和不带VLAN标记的数据。

接入链路就是普通的以太网,可以连接计算机或老式的以太网设备,如HUB、PC等。在支持VLAN的以太网交换机内部和以太网交换机之间传输的数据通常都需要具有符合IEEE 802.1Q标准的VLAN标记。

IEEE 802.1Q规范为标识VLAN信息建立了一种标准方法,它支持两种帧格式:标记帧和未标记帧。未标记帧中不携带任何VLAN标识信息,就是一个普通的以太网帧。标记帧就是在以太网帧格式的基础上,将一个4字节的标记字段插入以太网帧的源MAC地址和Length/Type字段中间,并且原始帧的FCS(检验和)也根据这些变化重新计算,如图4-6所示。对以太网帧进行标记的目的是为了让交换机能够识别出该帧所属的VLAN信息。

img75

图4-6 802.1Q的VLAN标记在以太网帧中的位置

如图4-7所示,插入的4字节802.1Q标记头包含了2个字节的标记协议标识(TPID,Tag Protocol Identifier)和2个字节的标记控制信息(TCI,Tag Control Information)。TPID是IEEE定义的类型标识,表明这是一个加了802.1Q标记的数据帧,它的值是0x8100。标记控制信息中包括了Priority、Cfi和VLAN ID字段,其中VLAN ID长度为12位,指明VLAN的ID号,一共可以有4 096个VLAN ID号,用于标识该帧属于哪一个VLAN;CFI(Canonical Format Indicator)长度为1位,主要用于总线型的以太网与FDDI、令牌环网交换数据时的帧格式;Priority包含3位,用于指明数据帧的优先级,一共有8种优先级,主要用于当交换机阻塞时,发送数据包的优先顺序。

img76

图4-7 802.1Q的VLAN标记

通常交换机采用基于端口的VLAN划分方式,因此,在交换机中配置VLAN时,主要是在交换机的端口上进行配置。针对VLAN中三种不同类型的链路,交换机的端口上也相应的可以配置为Access端口、Trunk端口和Hybrid端口。

(1)Access端口用于连接不支持802.1Q标准的网络设备(例如PC、打印机等)。对于不支持802.1Q标准的网络设备,一方面不能识别带VLAN标记的数据帧,另一方面增加了802.1Q标记头的最大合法以太网帧的大小已由1 518字节增加到1 522字节,这样有些超过1 518字节的以太网帧对于网卡和旧式交换机,会因为“尺寸过大”而被丢弃。所以通过Access端口对外传输的都是无标记帧,也就是标准以太网帧。Access端口的工作机制如下:

·每个Access端口必须,且只能属于一个VLAN,这个VLAN的ID号叫做这个Access端口的PVID(Port-based VLAN ID,基于端口的VLAN ID),如果没有对端口配置VLAN,该端口默认属于VLAN 1,即其PVID为1;

·当Access端口从外界收到一个数据帧时,需要判断该数据帧是否带有VLAN的标记,如果没有,则认为该数据帧是合法的,将其加上VLAN标记,其中VLAN ID为本端口的PVID,然后进入交换机内部进行转发,如果带有VLAN标记,则认为该数据帧不合法,直接丢弃;

·当交换机要向一个Access端口转发数据帧时,首先要判断该数据帧的VLAN标记与Access端口的PVID是否一致,如果一致则将数据帧的VLAN标记剥除掉,并转发出去,如果不一致,则直接丢弃。

(2)Trunk端口主要用于交换机之间主干线路的连接。交换机之间为了能够交换多个VLAN的信息,通常传输的是带VLAN标记的数据帧,这样VLAN就可以实现跨越多台交换机。Trunk端口的工作机制如下:

·每个Trunk端口也都具有一个PVID,如果没有设置,默认的PVID为1,每个Trunk端口还可以设置允许哪些VLAN的数据帧通过;

·当Trunk端口接收到数据帧时,需要判断该数据帧是否带有VLAN的标记,如果没有,则将该数据帧加上具有本端口PVID的VLAN标记,进入交换机内部进行转发,如果带VLAN标记,则判断Trunk端口是否允许该标记中VLAN ID所对应VLAN的数据帧通过,如果允许则进入交换机后转发,如果不允许则直接丢弃;

·当交换机需要向Trunk端口转发数据帧时,首先要判断该数据帧的VLAN标记是否与端口的PVID一致,如果一致,则将数据帧中的VLAN标记剥除掉,然后转发出去。如果不一致则判断该端口是否允许此VLAN的数据通过,如果允许则直接转发出去,如果不允许则丢弃。

(3)Hybrid端口使用的较少,这里就不进行详细的介绍了。

当前的交换机基本都支持VLAN,所以交换机内部和交换机之间的数据帧大多都带VLAN标记,而交换机和PC相连的链路上都不带VLAN标记。对于交换机来说,如果它的某个端口所连接的以太网段的所有主机都能识别和发送带802.1Q标记头的数据帧,这种端口称为Tag Aware端口;相反,只要该交换机端口所连接的以太网段有一台主机不支持802.1Q标记头,这个端口就被称为Untag Aware端口。