VLAN概述
以太网是一种基于CSMA/CD(Carrier Sense Multiple Access/Collision Detect,载波侦听多路访问/冲突检测)的共享通讯介质的数据网络通讯技术,当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至使网络不可用等问题。通过交换机实现LAN互联虽然可以解决冲突(Collision)严重的问题,但仍然不能隔离广播报文。在这种情况下出现了VLAN(Virtual Local Area Network,虚拟局域网)技术,这种技术可以把一个LAN划分成多个逻辑的LAN——VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,这样,广播报文被限制在一个VLAN内,如图1所示。
VLAN的划分不受物理位置的限制:不在同一物理位置范围的主机可以属于同一个VLAN;一个VLAN包含的用户可以连接在同一个交换机上,也可以跨越交换机,甚至可以跨越路由器。
VLAN的优点如下:
l 限制广播域。广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
l 增强局域网的安全性。VLAN间的二层报文是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信,如果不同VLAN要进行通信,则需通过路由器或三层交换机等三层设备。
l 灵活构建虚拟工作组。用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
VLAN原理
要使网络设备能够分辨不同VLAN的报文,需要在报文中添加标识VLAN的字段。由于普通交换机工作在OSI模型的数据链路层,只能对报文的数据链路层封装进行识别。因此,如果添加识别字段,也需要添加到数据链路层封装中。
IEEE于1999年颁布了用以标准化VLAN实现方案的IEEE 802.1Q协议标准草案,对带有VLAN标识的报文结构进行了统一规定。
传统的以太网数据帧在目的MAC地址和源MAC地址之后封装的是上层协议的类型字段,如图2所示。
如图3所示,VLAN Tag包含四个字段,分别是TPID(Tag Protocol Identifier,标签协议标识符)、Priority、CFI(Canonical Format Indicator,标准格式指示位)和VLAN ID。
l TPID用来判断本数据帧是否带有VLAN Tag,长度为16bit,缺省取值为0x8100。
l Priority表示报文的802.1P优先级,长度为3bit,相关内容请参见“QoS分册”中的“QoS配置”。
l CFI字段标识MAC地址在不同的传输介质中是否以标准格式进行封装,长度为1bit,取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装,缺省取值为0。
l VLAN ID标识该报文所属VLAN的编号,长度为12bit,取值范围为0~4095。由于0和4095为协议保留取值,所以VLAN ID的取值范围为1~4094。
网络设备利用VLAN ID来识别报文所属的VLAN,根据报文是否携带VLAN Tag以及携带的VLAN Tag值,来对报文进行处理。
VLAN交换的概念
VLAN交换是VLAN本地交换的简称,是指在设备本地根据标签(VLAN Tag)进行报文转发,与此同时可以对报文进行标签更改。
VLAN交换通过本地交换组(Local Group)和服务实例(Service Instance)共同实现:把不同端口上的两个服务实例关联到同一个本地交换组中,就建立起了VLAN交换。
1. 本地交换组
本地交换组是基于端口的,一个本地交换组中包含两个端口——连接运营商网络端口的称为网络侧端口,连接用户网络的端口称为用户侧端口,统称为本地交换组的成员端口。
如图 1所示,PE 1的端口Ethernet1/1和Ethernet1/2加入到同一个本地交换组成为其成员端口后,通过在这两个成员端口之间建立起的通道就可以实现报文标签的本地交换。PE 2上的情形与PE 1类似。
2. 服务实例
服务实例被创建在端口下,用来对通过该端口的报文进行识别和处理。服务实例提供了扩展的灵活QinQ特性。目前,服务实例可以应用于VLAN交换、MPLS L2VPN和VPLS。
VLAN交换工作机制
VLAN交换通过在本地交换组的两个成员端口之间建立起一条虚拟的通道,对从通道一端进入的报文进行标签匹配,并将符合匹配规则的报文按照处理规则进行处理后,发往通道另一端发送出去。对于在端口上已建立好VLAN交换的服务实例来说:
l 对于该端口接收的报文,服务实例会对其进行报文匹配,并对符合匹配规则的报文进行相应处理后直接发往本地交换组的对端端口;而对于不符合匹配规则的报文,则将其交由其它应用模块处理。
l 对于该端口发送的报文,服务实例会判断其是否由本地交换组的对端端口发来,如果是就进行相应处理并发送出去,如果不是则会直接发送出去。
如图 2所示,假设已在PE 1和PE 2上完成了相关配置,报文从CE 1到达CE 2的过程如下:
(1) PE 1从端口Ethernet1/2收到来自CE 1的报文后,对其进行报文匹配,符合匹配规则的报文被送往端口Ethernet1/1,在该端口上被封装上外层标签并发送出去;
(2) PE 2的端口Ethernet1/1收到该报文后,对其进行报文匹配,将符合匹配规则的报文的外层标签剥离掉,然后从端口Ethernet1/2发送给CE 2。