前言
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。 VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
正文
一、VLAN基本概念
1 VLAN概述
- 将一个物理的LAN在逻辑上划分成多个广播域的通信技术
- 将广播报文限制在一个VLAN内
本例中,原本属于同一广播域的主机被划分到了两个VLAN中,即,VLAN1和VLAN2。VLAN内部的主机可以直接在二层互相通信,VLAN1和VLAN2之间的主机无法直接实现二层通信。
- 特点
- 限制广播域:广播域被限制在一个VLAN内,从而节省了带宽、提高了网络处理能力。
- 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能与其它VLAN内的用户直接通信。
- 提高了网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
- 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
2 VLAN帧格式
- VLAN Tag
- 标识所属VLAN
- 遵循IEEE 802.1Q标准
- 支持802.1Q协议的交换机既可以收发有标记帧,也可以收发无标记帧
- 交换机内部的数据包一律携带Tag
- IEEE 802.1Q
- IEEE 802.1Q是虚拟桥接局域网的正式标准,对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag。
- 802.1q Tag各字段含义
- TPID:长度为2字节,表示帧类型。取值为0x8100时表示802.1q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- PRI:Priority,长度为3比特,表示帧的优先级,取值范围为0~7,值越大优先级越高。一般情况下,当交换机部署QoS时,优先发送优先级高的数据帧。
- CFI:Canonical Format Indicator,长度为1比特,表示MAC地址是否是经典格式。CFI为0说明是经典格式,CFI为1表示为非经典格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
- VID:VLAN ID,长度为12比特,表示该帧所属的VLAN。
- 每台支持802.1Q协议的交换机都可以发送包含VLAN ID的数据包,以指明自己属于哪一个VLAN。因此,在一个VLAN交换网络中,以太网帧有以下两种形式:
- 有标记帧(tagged frame):加入了4字节802.1Q Tag的帧。
- 无标记帧(untagged frame):原始的、未加入4字节802.1Q Tag的帧。
3 VLAN链路类型
- 接入链路(Access Link)
- 常用作连接用户主机和交换机的链路。通常情况下,主机并不需要知道自己属于哪个VLAN,主机硬件通常也不能识别带有VLAN标记的帧。因此,主机发送和接收的帧都是untagged帧。
- 干道链路(Trunk Link)
- 常用作连接交换机与交换机或交换机与路由器之间的链路。干道链路可以承载多个不同VLAN数据,数据帧在干道链路传输时,干道链路的两端设备需要能够识别数据帧属于哪个VLAN,所以在干道链路上,一般传输的帧都是Tagged帧。
- 拓扑描述
- 对于主机来说,它不需要知道VLAN的存在。主机发出的是untagged报文。
- 交换设备接收到报文后,根据配置规则(如端口信息)判断报文所属的VLAN后,再进行处理。
- 如果报文需要通过另一台交换机转发,则该报文必须通过干道链路传输到对端交换设备上。为了保证其它交换设备能够正确处理报文中的VLAN信息,在干道链路上传输的报文一般均打上了VLAN标记。
- 当交换设备最终确定报文出端口后,将报文发送给主机前,需要将VLAN标记从帧中删除,这样主机接收到的报文都是不带VLAN 标记的以太网帧。
4 PVID
- PVID表示端口在缺省情况下所属的VLAN。
- 缺省情况下,交换机每个端口的PVID都是1。
- PVID即Port VLAN ID 思科叫做本征Vlan。
- 代表端口的缺省VLAN。交换机从对端设备收到的帧有可能是Untagged的数据帧,但所有以太网帧在交换机中都是以Tagged的形式来被处理和转发的,因此交换机必须给端口收到的Untagged数据帧添加上Tag。为了实现此目的,必须为交换机配置端口的缺省VLAN。当该端口收到Untagged数据帧时,交换机将给它加上该缺省VLAN的VLAN Tag。
5 VLAN端口类型
端口类型用于识别VLAN帧,每种端口类型均可配置一个缺省VLAN
5.1 Access端口
- Access端口在收到数据后会添加VLAN Tag,VLAN ID和端口的PVID相同。
- Access端口在转发数据前会移除VLAN Tag。
Access端口是交换机上用来连接用户主机的端口,它只能连接接入链路,并且只能允许唯一的VLAN ID通过本端口。
- Access端口收发数据帧的规则如下:
- 如果该端口收到对端设备发送的帧是untagged(不带VLAN标签),交换机将强制加上该端口的PVID。如果该端口收到对端设备发送的帧是tagged(带VLAN标签),交换机会检查该标签内的VLAN ID。当VLAN ID与该端口的PVID相同时,接收该报文。当VLAN ID与该端口的PVID不同时,丢弃该报文。
- Access端口发送数据帧时,总是先剥离帧的Tag,然后再发送。Access端口发往对端设备的以太网帧永远是不带标签的帧。
- 在本示例中,交换机的G0/0/1,G0/0/2,G0/0/3端口分别连接三台主机,都配置为Access端口。主机A把数据帧(未加标签)发送到交换机的G0/0/1端口,再由交换机发往其他目的地。收到数据帧之后,交换机根据端口的PVID给数据帧打上VLAN标签10,然后决定从G0/0/3端口转发数据帧。G0/0/3端口的PVID也是10,与VLAN标签中的VLAN ID相同,交换机移除标签,把数据帧发送到主机C。连接主机B的端口的PVID是2,与VLAN10不属于同一个VLAN,因此此端口不会接收到VLAN10的数据帧。
5.2 Trunk端口
- 当Trunk端口收到帧时,如果该帧不包含Tag,将添加上端口的PVID;如果该帧包含Tag,则不改变。
- 当Trunk端口发送帧时,该帧的VLAN ID在Trunk的允许发送列表中:若与端口的PVID相同时,则剥离Tag发送;若与端口的PVID不同时,则直接发送。
Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过。
- Trunk端口收发数据帧的规则如下:
- 当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文。否则丢弃该报文。
- 端口发送数据帧时,当VLAN ID与端口的PVID相同,且是该端口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与端口的PVID不同,且是该端口允许通过的VLAN ID时,保持原有Tag,发送该报文。
- 在本示例中,SWA和SWB连接主机的端口为Access端口,PVID如图所示。SWA和SWB互连的端口为Trunk端口,PVID都为1,此Trunk链路允许所有VLAN的流量通过。当SWA转发VLAN1的数据帧时会剥离VLAN标签,然后发送到Trunk链路上。而在转发VLAN20的数据帧时,不剥离VLAN标签直接转发到Trunk链路上。
5.3 Hybrid端口
- Hybrid端口既可以连接主机,又可以连接交换机。
- Hybrid端口可以以Tagged 或Untagged方式加入VLAN 。
Access端口发往其他设备的报文,都是Untagged数据帧,而Trunk端口仅在一种特定情况下才能发出untagged数据帧,其它情况发出的都是Tagged数据帧。
- Hybrid端口是交换机上既可以连接用户主机,又可以连接其他交换机的端口。Hybrid端口既可以连接接入链路又可以连接干道链路。Hybrid端口允许多个VLAN的帧通过,并可以在出端口方向将某些VLAN帧的Tag剥掉。华为设备默认的端口类型是Hybrid。
- Hybrid端口收发数据帧的规则如下:
- 当接收到对端设备发送的不带Tag的数据帧时,会添加该端口的PVID,如果PVID在允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。当接收到对端设备发送的带Tag的数据帧时,检查VLAN ID是否在允许通过的VLAN ID列表中。如果VLAN ID在接口允许通过的VLAN ID列表中,则接收该报文,否则丢弃该报文。
- Hybrid端口发送数据帧时,将检查该接口是否允许该VLAN数据帧通过。如果允许通过,则可以通过命令配置发送时是否携带Tag。
- 在本示例中,要求主机A和主机B都能访问服务器,但是它们之间不能互相访问。此时交换机连接主机和服务器的端口,以及交换机互连的端口都配置为Hybrid类型。交换机连接主机A的端口的PVID是2,连接主机B的端口的PVID是3,连接服务器的端口的PVID是100。
- 配置port hybrid tagged vlan vlan-id命令后,接口发送该vlan-id的数据帧时,不剥离帧中的VLAN Tag,直接发送。该命令一般配置在连接交换机的端口上。
- 配置port hybrid untagged vlan vlan-id命令后,接口在发送vlan-id的数据帧时,会将帧中的VLAN Tag剥离掉再发送出去。该命令一般配置在连接主机的端口上。
6 VLAN划分
6.1 VLAN划分方法
- 基于端口划分VLAN
- 根据交换设备的端口编号来划分VLAN。
- 网络管理员给交换机的每个端口配置不同的PVID,即一个端口缺省属于的VLAN。
- 当一个数据帧进入交换机端口时,如果没有带VLAN标签,且该端口上配置了PVID,那么,该数据帧就会被打上端口的PVID。
- 如果进入的帧已经带有VLAN 标签,那么交换机不会再增加VLAN 标签,对VLAN 帧的处理由端口类型决定。
- 基于MAC地址划分VLAN
- 根据计算机网卡的MAC地址来划分VLAN。
- 网络管理员成功配置MAC地址和VLAN ID映射关系表,如果交换机收到的是untagged(不带VLAN标签)帧,则依据该表添加VLAN ID。
- 基于子网划分VLAN
- 如果交换设备收到的是untagged(不带VLAN标签)帧,交换设备根据报文中的IP地址信息,确定添加的VLAN ID。
- 基于协议划分VLAN
- 根据接口接收到的报文所属的协议(族)类型及封装格式来给报文分配不同的VLAN ID。网络管理员需要配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是untagged(不带VLAN标签)帧,则依据该表添加VLAN ID。
- 目前,支持划分VLAN的协议有IPV4、IPV6、IPX、AppleTalk(AT),封装格式有Ethernet II、802.3 raw、802.2 LLC、802.2 SNAP。
- 基于匹配策略划分VLAN
- 基于MAC地址、IP地址、接口组合策略划分VLAN是指在交换机上配置终端的MAC地址和IP地址,并与VLAN关联。只有符合条件的终端才能加入指定VLAN。符合策略的终端加入指定VLAN后,严禁修改IP地址或MAC地址,否则会导致终端从指定VLAN中退出。
6.2 VLAN划分匹配优先级
- 基于匹配策略>基于MAC地址和基于子网>基于协议>基于端口
- 基于MAC地址和基于子网拥有相同的优先级
- 可以通过命令改变基于MAC地址划分VLAN和基于子网划分VLAN的优先级,从而决定优先划分VLAN的方式。
- 基于端口的优先级最低,却是最常用的VLAN划分方式。
- 基于匹配策略的优先级最高,却是最不常用的VLAN划分方式。
二、VLAN通信原理
1 VLAN基本通信原理
2 VLAN内跨设备通信
- Trunk link实现相同VLAN内跨设备通信
- 中继作用,把VLAN报文透传到互联的交换机
- 干线作用,一条Trunk Link上可以传输多个VLAN的报文。
- 为了让S1和S2之间的链路既支持VLAN2 内的用户通讯又支持VLAN3内的用户通讯,需要配置连接端口同时加入两个VLAN。即应配置S1的以太网端口Port2和S2的以太网端口Port1同时加入VLAN2和VLAN3。
- 当用户主机PC1发送数据给用户主机PC2时,数据帧的发送过程如下:
- 数据帧首先到达S1的端口Port4。
- 端口Port4给数据帧加上Tag,Tag的VID字段填入该端口所属的VLAN的编号2。
- S1将帧发送到本交换机上除Port4外的所有属于VLAN2的端口(假设MAC地址表为空)。
- 端口Port2将帧转发到S2上。
- S2收到帧后,会根据帧中的Tag识别出该帧属于VLAN2,于是将该帧发给本交换机上除Port1外所有属于VLAN2的端口(假设MAC地址表为空)。
- 端口Port3将数据帧发送给主机PC2。
3 VLAN间通信
3.1 VLAN间通信——单臂路由
- 默认情况下,不同VLAN之间不能直接通信
- 可以通过外部路由器部署子接口实现不同VLAN相互通信
- R1为支持配置子接口的三层设备,S1为二层交换设备。LAN通过S1的以太网接口(交换式以太网接口)与R1的以太网接口(路由式以太网接口)相连:
- 在R1与S1相连的以太网接口上创建2个子接口,并配置802.1Q封装与VLAN2和VLAN3 分别对应。
- 配置子接口的IP地址,保证两个子接口对应的IP地址路由可通。
- 将S1与R1相连的以太网接口类型配置为Trunk或Hybrid类型,允许VLAN2和VLAN3的帧通过。
- 将用户设备的缺省网关设置为所属VLAN对应子接口的IP地址。
- PC1和PC2的通信过程如下:
- PC1将PC2的IP地址和自己所在网段进行比较,发现主机C和自己不在同一个子网。
- PC1发送ARP请求给自己的网关R1,请求网关的MAC地址。
- R1收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLAN2对应子接口的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为R1的VLAN2子接口MAC 地址、目的IP为PC2的IP地址的报文。
- R1收到该报文后进行三层转发,发现PC1的IP地址为直连路由,报文将通过VLAN3关联的子接口进行转发。
- R1作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把PC1的报文发送给PC2。PC1与PC2之间交互的报文都先发送给网关,由路由器R1做三层路由。
3.2 VLAN间通信——三层交换机虚接口
- 可以通过VLANIF接口实现不同VLAN相互通信
- 三层交换机通过路由表传输第一个数据包后,会产生一个同时包含MAC地址与IP地址的数据转发映射表。当同样的数据流再次通过时,直接使用二层转发
为了保证第一次数据流通过路由表正常转发,路由表中必须有正确的路由表项。因此必须在三层交换机上部署三层接口并部署路由协议,实现三层路由可达。VLANIF接口由此而产生。
- 在交换机上划分了2个VLAN:VLAN2和VLAN3。可通过如下配置实现VLAN间互通。
- 在S1上创建2 个VLANIF接口并配置VLANIF接口的IP地址,保证两个VLANIF接口对应的IP地址路由可通。
- 将用户设备的缺省网关设置为所属VLAN对应VLANIF接口的IP地址。
- PC1和PC2的通信过程如下:
- PC1将PC2的IP地址和自己所在网段进行比较,发现PC2和自己不在同一个子网。
- PC1发送ARP请求给自己的网关S1,请求网关的MAC地址。
- S1收到该ARP请求后,返回ARP应答报文,报文中源MAC地址为VLANIF2的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为VLANIF2接口MAC 地址、目的IP为PC2的IP地址的报文。
- S1收到该报文后进行三层转发,发现PC2的IP地址为直连路由,报文将通VLANIF3 接口进行转发。
- S1作为VLAN3内主机的网关,向VLAN3内发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把PC1的报文发送给PC2。PC1之后要发给PC2的报文将由交换机S1做三层交换。
三、VLAN Aggregation
1 基本概念
- VLAN Aggregation使处于相同子网的VLAN实现广播隔离
- Super-VLAN,只建立三层接口,不包含物理端口,是若干Sub-VLAN 的集合
- Sub-VLAN,只包含物理端口,不能创建三层接口,用于隔离广播域的VLAN,通过Super-VLAN与外部实现三层交换
VLAN Aggregation(VLAN聚合,也称Super VLAN)技术就是在一个物理网络内,用多个VLAN隔离广播域,使不同的VLAN 属于同一个子网。
- Super-VLAN:和通常意义上的VLAN不同,它只建立三层接口,与该子网对应,而且不包含物理端口。可以把它看作一个逻辑的三层概念——若干Sub-VLAN的集合。
- Sub-VLAN:只包含物理端口,用于隔离广播域的VLAN,不能建立三层VLAN接口。它与外部的三层交换是靠Super-VLAN的三层接口来实现的。
- 一个Super-VLAN可以包含一个或多个保持着不同广播域的Sub-VLAN。Sub-VLAN不再占用一个独立的子网网段。在同一个Super-VLAN中,无论主机属于哪一个Sub-VLAN,它的IP地址都在Super-VLAN对应的子网网段内。
2 通信原理
2.1 Sub-VLAN间三层通信
- 使能Sub-VLAN间的ARP Proxy功能,实现Sub-VLAN间互通。
- Super-VLAN(VLAN10)包含Sub-VLAN(VLAN2 和VLAN3)
- 上述拓扑假设S1已经开启了Sub-VLAN间的ARP Proxy功能,通信过程如下:
- PC1将PC2的IP 地址(1.1.1.20)和自己所在网段1.1.1.0/24 进行比较,发现PC2和自己在同一个子网,但是PC1的ARP表中无PC2的对应表项。
- PC1发送ARP广播,请求PC2的MAC 地址。
- PC2并不在VLAN2的广播域内,无法接收到PC1的这个ARP请求。
- 由于网关上使能Sub-VLAN间的ARP Proxy,当网关收到PC1的ARP请求后,开始在路由表中查找,发现ARP请求中的PC2的IP地址(1.1.1.20)为直连接口路由,则网关向所有其他Sub-VLAN接口发送一个ARP广播,请求PC2的MAC地址。
- PC2收到网关发送的ARP广播后,对此请求进行ARP应答。
- 网关收到PC2的应答后,就把自己的MAC地址当作PC2的MAC地址回应给PC1。
- 网关和PC1的ARP表项中都存在PC2的对应表项。
- PC1之后要发给B的报文都先发送给网关,由网关做三层转发。
2.2 Sub-VLAN与外部网络的二层通信
- 基于端口的VLAN二层通信中,无论是数据帧进入接口还是从接口发出都不会有针对Super-VLAN的报文
- 从PC1侧Port1进入设备S1的帧会被打上VLAN2的Tag,在设备S1中这个Tag不会因为VLAN2是VLAN10的Sub-VLAN而变为VLAN10的Tag。该数据帧从Trunk类型的接口Port3出去时,依然是携带VLAN2的Tag。设备S1本身不会发出VLAN10的报文。就算其他设备有VLAN10的报文发送到该设备上,这些报文也会因为设备S1上没有VLAN10对应物理端口而被丢弃。
Super-VLAN中是不存在物理端口的,这种限制是强制的,表现在:
- 如果先配置了Super-VLAN,再配置Trunk接口时,Trunk的VLAN allowed表项里就自动滤除了Super VLAN。
- 如果先配好了Trunk端口,并允许所有VLAN通过,则在此设备上将无法配置Super-VLAN。本质原因是有物理端口的VLAN都不能被配置为Super VLAN。而允许所有VLAN通过的Trunk端口是所有VLAN的tagged端口,当然任何VLAN 都不能被配置为Super VLAN。
- 对于设备S1而言,有效的VLAN只有VLAN2和VLAN3,所有的数据帧都在这两个VLAN中转发的。
2.3 Sub-VLAN与外部网络的三层通信
- S2上配置了Super-VLAN 4,Sub-VLAN 2和Sub-VLAN 3,并配置一个普通的VLAN10;Switch2上配置两个普通的VLAN 10和VLAN 20。假设Super-VLAN 4中的Sub-VLAN 2下的主机PC1 想访问与S1 相连的主机PC3;假设设S2上已配置了去往1.1.3.0/24网段的路由,Switch2上已配置了去往1.1.1.0/24网段的路由:
- PC1将PC3的IP地址(1.1.3.2)和自己所在网段1.1.1.0/24进行比较,发现PC3和自己不在同一个子网。
- PC1发送ARP请求给自己的网关,请求网关的MAC地址。
- S2收到该ARP请求后,查找Sub-VLAN和Super-VLAN的对应关系,从Sub-VLAN 2发送ARP应答给PC1。ARP应答报文中的源MAC地址为Super-VLAN 4对应的VLANIF4的MAC地址。
- PC1学习到网关的MAC地址。
- PC1向网关发送目的MAC为Super-VLAN 4对应的VLANIF4的MAC、目的IP为1.1.3.2的报文。
- S2收到该报文后进行三层转发,下一跳地址为1.1.2.2,出接口为VLANIF10,把报文发送给S1。
- S1收到该报文后进行三层转发,通过直连出接口VLANIF20,把报文发送给PC3。
- PC3的回应报文,在Switch2上进行三层转发到达Switch1。
- Switch1收到该报文后进行三层转发,通过super-VLAN,把报文发送给PC1。
四、MUX VLAN
- 提供了一种通过VLAN进行网络资源控制的机制。
- 分为Principal VLAN和Subordinate VLAN,Subordinate VLAN又分为Separate VLAN 和Group VLAN
MUX VLAN分为Principal VLAN和Subordinate VLAN,Subordinate VLAN又分为Separate VLAN和Group VLAN:
- Principal VLAN,所属端口为Principal port,Principal port可以和MUX VLAN内的所有端口进行通信。
- Subordinate VLAN
- Separate VLAN,所属端口为Separate port,Separate port只能和Principal port进行通信,和其他类型的端口实现完全隔离。每个Separate VLAN必须绑定一个Principal VLAN。
- Group vlan,所属端口为Group port,Group port可以和Principal port进行通信,在同一组内的端口也可互相通信,但不能和其他组端口或Separate port 通信。每个Group VLAN必须绑定一个Principal VLAN。
拓扑描述
- 根据MUX VLAN特性,企业可以用Principal port连接企业服务器,Separate port连接企业客户,Group port连接企业员工。这样就能够实现企业客户、企业员工都能够访问企业服务器,而企业员工内部可以通信、企业客户间不能通信、企业客户和企业员工之间不能互访的目的。
五、Voice VLAN应用
- 通过配置Voice VLAN可以区分语音流量和业务流量,使语音流量优于业务流量,从而为语音流量提供服务保证。
- 现网Vlan,分为普通vlan和Voice VLAN工位双接口
- 随着IP网络的融合,TCP/IP网络可以为高速上网HSI(High Speed Internet)业务、VoIP(Voice over IP)业务、IPTV(Internet Protocol Television)业务提供服务。
- 语音数据在传输时需要具有比其他业务数据更高的优先级,以减少传输过程中可能产生的时延和丢包现象。
- 为了区分语音数据流,可在交换机上部署Voice VLAN功能,把VoIP的电话流量进行VLAN隔离,并配置更高的优先级,从而能够保证通话质量。
网友评论