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 转发