2.2 虚拟局域网
2.2.1 VLAN概述
VLAN(Virtual Local Area Network,虚拟局域网)是一种通过将局域网内的设备逻辑地而不是物理地划分成一个个网段,从而实现虚拟工作组的技术。VLAN将一个物理的LAN在逻辑上划分成多个广播域(多个 VLAN)。VLAN 内的主机间可以直接通信,而 VLAN间不能直接互通。这样,广播报文被限制在一个 VLAN 内,同时提高了网络安全性。对VLAN的另一个定义是,它能够使单一的交换结构被划分成多个小的广播域。
VLAN技术在以太网帧的基础上增加了VLAN头,用VLAN ID把用户划分为更小的工作组,每一个 VLAN 都包含一组有着相同需求的计算机工作站,与物理上形成的 LAN有着相同的属性,如图2-10所示。但由于它是逻辑地而不是物理地划分,所以同一个VLAN内的各个工作站无须被放置在同一个物理空间里,即这些工作站不一定属于同一个物理LAN网段。一个VLAN内部的广播和单播流量都不会转发到其他VLAN中,从而有助于控制流量、减少设备投资、简化网络管理、提高网络的安全性。
图2-10 VLAN的典型应用
VLAN具有以下特点。
① 区段化。使用 VLAN 可将一个广播域分隔成多个广播域,相当于分隔出物理上分离的多个单独的网络。即将一个网络进行区段化,减少每个区段的主机数量,提高网络性能。
② 灵活性。VLAN配置、成员添加、移去和修改都是通过在交换机上进行配置实现的。一般情况下无须更改物理网络与增添新设备及更改布线系统,所以VLAN提供了极大的灵活性。
③ 安全性。将一个网络划分VLAN后,不同VLAN内的主机间通信必须通过3层设备,而在3层设备上可以设置ACL等实现第3层的安全性,即VLAN间的通信是在受控的方式下完成的。相对于没有划分VLAN的网络,所有主机可直接通信而言,VLAN提供了较高的安全性。另外,用户想加入某一个VLAN必须通过网络管理员在交换机上进行配置,相应地提高了安全性。
2.2.2 VLAN的划分方式
VLAN的划分方式也可以理解为VLAN的类型,下面将逐一介绍。
1.基于端口划分VLAN
根据交换设备的端口编号来划分VLAN。网络管理员将端口划分为某个特定VLAN的端口,连接在这个端口的主机即属于这个特定的VLAN。目前最普遍的VLAN划分方式为基于端口的划分方式,如图2-11所示。
图2-11 基于端口划分VLAN
其优点是配置相对简单,对交换机转发性能几乎没有影响,其缺点是需要为每个交换机端口配置所属的 VLAN,一旦用户移动位置可能需要网络管理员对交换机相应端口进行重新设置。
2.基于MAC地址划分VLAN
根据交换机端口所连接设备的MAC地址来划分VLAN。网络管理员成功配置MAC地址和VLAN ID映射关系表,如图2-12所示基于MAC地址划分VLAN。如果交换机收到的是Untagged(不带VLAN标签)帧,则依据该表添加VLAN ID。
图2-12 基于MAC地址划分VLAN
该 VLAN 类型的优势表现在当终端用户的物理位置发生改变时,不需要重新配置VLAN,提高了终端用户的安全性和接入的灵活性。但是由于网络上的所有MAC地址都需要掌握和配置,所以管理任务较重。
3.基于协议划分VLAN
根据端口接收到报文所属的协议类型及封装格式分配不同的VLAN ID,即基于协议划分VLAN,如图2-13所示。网络管理员需要配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,则依据该表添加VLAN ID。
图2-13 基于协议划分VLAN
基于协议划分VLAN,将网络中提供的服务类型与VLAN相绑定,可方便管理和维护。但是需要对网络中所有的协议类型和VLAN ID的映射关系表进行初始配置。
4.基于子网划分VLAN
如果交换设备收到的是Untagged帧,交换设备根据报文中的IP地址信息,确定添加的VLAN ID。基于子网划分VLAN如图2-14所示。
图2-14 基于子网划分VLAN
这种划分方式将网段或IP地址发出的报文在指定的VLAN中传输,减轻了网络管理者的任务量,且有利于管理。但是网络中的用户分布需要有规律,且多个用户在同一个网段。
5.基于策略划分VLAN
基于MAC地址、IP地址、端口组合策略划分VLAN是指在交换机上配置终端的MAC地址和IP地址,并与VLAN关联,如图2-15所示。只有符合条件的终端才能加入指定VLAN。符合条件的终端加入指定VLAN后,严禁修改IP地址或MAC地址,否则会导致终端从指定VLAN中退出。这种划分VLAN的方式安全性非常高,但是需要进行手工配置。
图2-15 基于策略划分VLAN
2.2.3 VLAN技术原理
VLAN技术为了实现转发控制,在待转发的以太网帧中添加VLAN标签,然后设定交换机端口对该标签和帧的处理方式。处理方式包括丢弃帧、转发帧、添加标签、移除标签。
转发帧时,通过检查以太网报文中携带的VLAN标签,是否为该端口允许通过的标签,可判断出该以太网帧是否能够从端口转发。VLAN通信基本原理如图2-16所示,在该图中,假设有一种方法,将A发出的所有以太网帧都加上标签5,此后查询二层转发表,根据目的MAC地址将该帧转发到B连接的端口。由于在该端口配置了仅允许VLAN 1通过,所以A发出的帧将被丢弃。以上意味着支持VLAN技术的交换机,转发以太网帧时不再仅仅依据目的 MAC 地址,同时还要考虑该端口的 VLAN 配置情况,从而实现对二层转发的控制。
图2-16 VLAN通信基本原理
IEEE 802.1q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4B的IEEE 802.1q Tag,如图2-17所示。
图2-17 基于IEEE 802.1q的VLAN帧格式
IEEE 802.1q Tag包含4个字段,其含义如下。
① Type:长度为2B,表示帧类型。取值为0x8100时表示IEEE 802.1q Tag帧。如果不支持IEEE 802.1q的设备收到这样的帧,会将其丢弃。
② PRI(Priority):长度为2bit,表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当交换机阻塞时,会先发送优先级高的数据帧。
③ CFI(Canonical Format Indicator):长度为1bit,表示MAC地址是否为经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
④ VID(VLAN ID):长度为12bit,表示该帧所属的VLAN。可配置的VLAN ID取值范围为0~4095,但是0和4095协议中规定为保留的VLAN ID,不能给用户使用。另外交换机初始情况下有一个默认VLAN,默认VLAN的VLAN ID为1,初始情况下默认VLAN包含所有端口。
使用VLAN标签后,在交换网络环境中,以太网的帧有两种格式:没有加上IEEE 802.1q Tag标志的,称为标准以太网帧(Untagged Frame);加上IEEE 802.1q Tag标志的,称为带有VLAN标记的帧(Tagged Frame),如图2-18所示。
图2-18 VLAN标记的帧
VLAN技术通过以太网帧中的标签,结合交换机端口的VLAN配置,实现对报文转发的控制,VLAN转发流程如图2-19所示。
图2-19 VLAN转发流程
转发过程中,标签操作类型有两种:添加标签和移除标签。添加标签是对于Untagged帧添加PVID,在端口收到对端设备的帧后进行。移除标签是删除帧中的VLAN信息,以Untagged帧的形式发送给对端设备。
2.2.4 VLAN端口类型
为了提高处理效率,华为交换机内部的数据帧都带有 VLAN Tag,以统一方式处理。当一个数据帧进入交换机端口时,如果没有带 VLAN Tag,且该端口配置了 PVID(Port Default VLAN ID),那么该数据帧就会被标记上端口的PVID。如果数据帧已经带有VLAN Tag,那么即使端口已经配置了PVID,交换机也不会再给数据帧标记VLAN Tag了。
由于端口类型不同,交换机对帧的处理过程也不同。
1.Access端口
一般用于连接主机,当接收到不带Tag的报文时,接收该报文并打上默认VLAN的Tag。当接收到带Tag的报文时,如果VLAN ID与默认VLAN ID相同,则接收该报文。如果VLAN ID与默认VLAN ID不同时,则丢弃该报文。发送帧时,先剥离帧的PVID Tag,然后再发送。Access端口,用于连接主机,有如下特点:
● 仅仅允许唯一的VLAN ID通过本端口,这个值与端口的PVID相同;
● 如果该端口收到对端设备发送的帧是Untagged,交换机将强制加上该端口的PVID;
● Access端口发往对端设备的以太网帧永远是Untagged Frame;
● 很多型号的交换机默认端口类型是Access,PVID默认是1,VLAN 1由系统创建,不能被删除。
2.Trunk端口
用于连接交换机,在交换机之间传递Tag的报文,可以自由设定允许通过多个VLAN ID,这些ID可以与PVID相同,也可以不同。其对于帧的处理过程如下。
当接收到不带Tag的报文时,打上默认的VLAN ID,如果默认VLAN ID在允许通过的VLAN ID列表里,则接收该报文;如果默认VLAN ID不在允许通过的VLAN ID列表里,则丢弃该报文。
当接收到带Tag的报文时,如果VLAN ID在端口允许通过的VLAN ID列表里,则接收该报文。如果VLAN ID不在端口允许通过的VLAN ID列表里,则丢弃该报文。
发送帧时,当VLAN ID与默认VLAN ID相同,且是该端口允许通过的VLAN ID时,则去掉Tag后发送该报文。当VLAN ID与默认VLAN ID不同,且是该端口允许通过的VLAN ID时,则保持原有Tag,并发送该报文。
3.Hybrid端口
Access端口发往其他设备的报文都是Untagged Frame,而Trunk端口仅在一种特定情况下才能发出Untagged Frame,其他情况发出的都是Tagged Frame。某些应用中,可能希望能够灵活地控制VLAN标签的移除。例如,在本交换机的上行设备不支持VLAN的情况下,且希望实现各个用户端口的相互隔离。通过Hybrid端口可以解决此问题,它对接收不带Tag的报文处理同Trunk端口一致;对接收带Tag的报文处理也同Trunk端口一致。发送帧时,如果VLAN ID是该端口允许通过的VLAN ID,则发送该报文。可以通过命令设置发送时是否携带Tag。
VLAN内的链路分为接入链路(Access Link)与干线链路(Trunk Link),链路类型如图2-20所示。接入链路用于终端设备和交换机相连,如果VLAN是基于端口进行划分的,一个接入链路只能属于某一个特定 VLAN。干线链路最通常的使用场合就是连接两个VLAN交换机的链路,通过干线链路可使VLAN跨越多个交换机,所以一个干线链路可以承载多个VLAN的数据。对于上述各端口类型,Access端口只能连接接入链路,Trunk端口只能连接干线链路,Hybrid端口既可以连接接入链路也可以连接干线链路。
图2-20 链路类型
2.2.5 VLAN的基本配置
基于端口划分VLAN是最简单、最有效也是最常见的划分方式。交换机的VLAN常用配置命令如表2-1所示。
表2-1 VLAN常用配置命令