VLAN

1. 简介

  • 虚拟局域网(Virtual Local Area Network,VLAN),是将局域网从逻辑上划分为一个个网段,从而实现虚拟工作组的一种交换技术。
  • 每个网段内所有主机间的通讯和广播仅限于该VLAN内,广播帧不会被转发到其他网段,VLAN间不能进行直接通信,从而实现了对广播域的分割和隔离。

1.1. VLAN产生背景

  • 网桥、集线器或交换机构成的整个物理局域网同属于一个广播域,任何一个广播帧或多播帧都将被光波导整个局域网的每一台主机
  • 在网络通讯中,广播信息是普遍存在的,这些广播帧将占用大量网络带宽,导致网络速度和通讯效率下降,增加网络主机处理广播信息的负荷
  • 蠕虫病毒泛滥,为防止网络阻塞和瘫痪,需要进行有效的广播域隔离

1.2. VLAN作用

  • 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
  • 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
  • 提高网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
  • 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

2. 静态VLAN与动态VLAN

2.1. 静态VLAN

明确指定个端口所属VLAN的设定方法,也称为基于端口的VLAN。

特点:是将交换机按端口进行分组,每组定义一个VLAN,属于同一个VLAN的端口,可来自一台或多台交换机(即可跨多台交换机设置VLAN)。

2.2. 动态VLAN

根据每个端口所连的计算机,动态设置端口所属VLAN的设定方法。

划分依据 说明 优点 缺点
基于端口 根据以太网交换机的端口来划分 定义VLAN成员时非常简单(只要将所有的端口都指定一下就可以了) 如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。
基于MAC地址 根据端口所连计算机的网卡MAC地址,决定该端口所属的VLAN。
eg.MAC地址为”00-0C-6E-E1-1B-36”的计算机被设置为属于VLAN2,则该计算机连接的交换机端口会被自动划归为VLAN2。
当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,可以认为这种根据MAC地址的划分方法是基于用户的VLAN 初始化时,所有的用户都必须进行配置,若用户数量较大则配置量非常大。
此外这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。
基于子网 根据每个主机的网络层地址划分的。虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系 用户的物理位置改变了,不需要重新配置所属的VLAN。
此外无需附加的帧标签来识别VLAN,可减少网络的通信量
效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的,一般的交换机芯片都可以自动检查网络上数据包的以太网帧头,但要让芯片能检查IP帧头,需要更高的技术,同时更费时
基于协议 根据报文的协议类型和封装格式进行VLAN的划分。
如:IP、IPX、AppleTalk协议族;Ethernet II,802.3,802.3/802.2 LLC, 802.3/802.2 SNAP等封装格式
一个交换机换到其他的交换机时,VLAN不用重新配置 初始化时,所有的用户都必须进行配置,配置量大、执行效率低、无法限制广播包

2.3. 动静态VLAN对比

静态VLAN 动态VLAN
划分方式 基于端口 基于MAC地址、子网、用户
特点 需人为设定,需设定的端口数目较多,工作量大 自动设定,灵活,省事

3. 802.1Q VLAN帧格式

3.1. 传统以太网帧格式

目的MAC地址 源MAC地址 长度或类型 数据 FCS
区段大小(bytes)) 6 6 2 46~1500 4

3.2. 802.1Q帧格式

目的MAC地址 源MAC地址 802.1Q Tag 长度或类型 数据 FCS
区段大小(bytes)) 6 6 4 2 46~1500 4

其中802.1Q Tag中又细分了TPID、PRI、CFI和VID4个字段,四个字段说明如下:

字段 长度(bits) 名称 说明
TPID 16 Tag Protocol ID,表示这个帧是否带标签 如果该值取0x8100,则表示这个帧是带Tag的帧,相反表示其是传统不带Tag标签的帧;
该帧与传统的以太网帧中该位置的Type/Length字段兼容
PRI 3 Priority,表示帧的优先级 取值范围为0~7,值越大优先级越高,在交换机阻塞时,优先发送优先级较高的帧
CFI 1 标准格式指示位 -
VID 12 VLAN Identifier,表示该帧所属的VLAN VLAN的有效取值范围为1~4094(0和4095为保留取值)

4. VLAN间的通信

可使用路由器或三层交换机为VLAN设置路由,在三层交换机中划分VLAN,以支持VLAN间的相互通讯。

4.1. 同VLAN内主机的跨域通讯

  1. 在交换机端口各拿num(VLAN)个端口级联,专门用于对应VLAN的主机跨交换机通讯
  2. 让交换机间的互联链路汇集到一条链路上(汇聚链路主干链路),该链路的端口被称为汇聚连接端口,该链路允许各VLAN的通讯流过

4.2. 不同接口类型下的VLAN间通信流程

交换机上的端口分为三种一种是接入层端口直连设备的,叫做Access;一种是交换机和交换机之间的端口负责汇聚的叫做Trunk,还有一种是Access与Trunk混合的模式,叫做Hybrid。

接口类型 不带Tag报文处理 带Tag报文处理 发送帧处理流程
Access接口 接收该报文,并打上缺省的VLAN ID 当VLAN ID与缺省VLAN ID相同(合法)时,接收该报文;
不合法时丢弃该报文
先剥离帧的PVID Tag,然后再发送
Trunk接口 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里(合法)时,接收该报文;
不合法时丢弃该报文
当VLAN ID在接口允许通过的VLAN ID列表里(合法)时,接收该报文;
不合法时丢弃该报文
若不是接口允许通过的VLAN ID时,则丢弃该报文。
当VLAN ID与缺省VLAN ID相同(合法)时,去掉Tag,发送该报文。
不合法时保持原有Tag,发送该报文
Hybrid接口 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里(合法)时,接收该报文。
不合法时丢弃该报文
当VLAN ID在接口允许通过的VLAN ID列表里(合法)时,接收该报文;
不合法时丢弃该报文
当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。
可以通过命令设置发送时是否携带Tag

4.3. Tag/Untag报文的处理原则

背景:在交换机内部,为快速高效的处理,报文都是带tag转发的。(交换机上很多会配置多个VLAN,不同VLAN的流量仅能靠tag标签区分)

4.3.1. 报文进入switch时

在接收报文时,交换机的主要职责是——根据tag/untag属性和端口属性决定是否允许该报文进入该端口:

  • 报文属性为untag:允许报文进入该端口,并打上PVID的VLAN tag(与端口属性无关)
  • 报文属性为tag,且此交换机端口为Access端口:若端口允许该报文tag标明的VLAN通过,接收并处理报文;若不允许则丢弃报文
  • 报文属性为tag,且此交换机端口为Trunk/Hybrid端口:若端口允许该报文tag标明的VLAN通过,接收并处理报文;若不允许则丢弃报文

4.3.2. 报文出switch时

在转发报文时,主要职责是——根据出端口属性决定是否携带tag转发报文:

  • 出端口为Access端口:不带tag转发(将标签剥离)
  • 出端口为Trunk端口:若报文所在的VLAN和PVID相同,则报文不带tag转发;否则带tag转发
  • 出端口为Hybrid端口:根据报文所在的VLAN配置是/否为tag,决定是/否带tag转发