VLAN扩展技术

VLAN聚合

tips
华三技术中称之为“Super-Vlan”技术。 主要用于数据中心服务器区之间的隔离,实际上对于IP地址的节省意义不大。
一般情况下,一个 VLAN 对应一个 VLANIF 接口。但由于在一个 VLAN 对应的子网中,子网号、子网广播地址、子网网关不能作为 VLAN 内的主机 IP 地址,并且子网中实际接入的主机数量可能少于可用的 IP 地址数量,容易造成 IP 地址的浪费。因此需要引入 VLAN 聚合。

类似于路由聚合,将不同网段的 VLAN 聚合成一个范围更大的网段,并将它们的网关设置成同一个。提高了 IP 地址的利用率。

  • VLAN 聚合:在一个物理网络内,用多个VLAN(称为Sub-VLAN)隔离广播域,并将这些 Sub-VLAN 聚合成一个逻辑的 VLAN(称为Super-VLAN),这些 Sub-VLAN 使用同一个 IP 子网和缺省网关,进而达到节约 IP 地址资源的目的。
  • Sub-VLAN只包含物理接口,不能建立三层 VLANIF 接口,用于隔离广播域。每个 Sub-VLAN 内的主机与外部的三层通信设备是靠 Super-VLAN 的三层 VLANIF 接口实现的。
  • Super-VLAN:只建立三层 VLANIF 接口,不包含物理接口,与子网网关对应。与普通的 VLAN 不同,Super-VLAN 的 VLANIF 接口状态取决于所包含的 Sub-VLAN 的物理接口状态。
注意
  • VLAN 1 不能配置为 Super-VLAN
  • Super-VLAN 的 VLAN ID 与 Sub-VLAN 的 VLAN ID 必须不同
  • 将 Sub-VLAN 加入到 Super-VLAN 时,必须保证 Sub-VLAN 没有创建对应的 VLANIF 接口。

聚合原理

每个 Sub-VLAN 对应一个广播域,多个 Sub-VLAN 和一个 Super-VLAN 关联,只给 Super-VLAN 分配一个 IP 子网,所有 Sub-VLAN 都使用 Super-VLAN 的 IP 子网和缺省网关进行 三层 通信。

多个 Sub-VLAN 共享一个网关地址,节约了子网网络地址、子网定向广播地址、子网缺省网关地址,且各 Sub-VLAN 间的界线也不再是从前的子网界线了,可以根据每个 Sub-VLAN 内所需的 IP 地址数量进行灵活的地址规划,从而既保证了各个 Sub-VLAN 作为一个独立广播域实现广播隔离,又节省了IP地址资源,提高了编址的灵活性。

VLAN 之间的通信过程

相同Sub-VLAN
相同的 Sub-VLAN 之间通信就好比原先的普通 VLAN ,由于同属于一个广播域,因此相同 Sub-VLAN 的设备直接通过二层通信。
不同Sub-VLAN

不同的 Sub-VLAN 之间通信,IP 地址属于相同网段,因此主机会发送 ARP请求 ,但是实际不同 Sub-VLAN 之间属于不同的广播域,因而 ARP 报文无法传递到其他 Sub-VLAN ,ARP 请求得不到响应,设备无法学习到对端 MAC 地址,从而无法完成 Sub-VLAN 之间通信。

要实现Sub-VLAN之间的通信,需要在 Super-VLAN 的 VLANIF 中开启 ARP 代理功能

通信过程:

  1. PC1 发现 PC2 跟自己在同一网段下,并且自己的 ARP 表没有 PC2 的表项,因此直接发送 ARP 广播请求 PC2 的 MAC 地址。
  2. 作为网关的 Super-VLAN 对应的 VLANIF100 收到 PC1 的 ARP 请求,由于网关上使能了 Sub-VLAN 间的 ARP 代理功能,则向 Super-VLAN100 的所有 Sub-VLAN 接口发送一个 ARP 广播,请求 PC2 的 MAC 地址。
  3. PC2 收到网关发送的 ARP 广播,应答该 ARP 请求。
  4. 网关收到 PC2 的应答后,将自己的 MAC 地址回应给 PC1,PC1 之后要发送给 PC2 的报文都先发送给网关,由网关进行三层转发。
与其他设备的二层通信

Sub-VLAN 与其他设备进行二层通信时,与普通的 VLAN 内二层通信无差别。

  1. 从 PC1 进入 SW1 的报文会被打上 VLAN10 的 Tag。在 SW1 中这个 Tag 不会因为 VLAN10 是 VLAN100 的 Sub-VLAN 而变为 VLAN100 的 Tag。
  2. 当报文从 SW1 的 GE0/0/0 出去时,依然携带 VLAN10 的 Tag。也就是说,SW1 本身不会发出 VLAN100 的报文。就算其他设备有 VLAN100 的报文发送到该设备上,这些报文也会因为 SW1 上没有 VLAN100 应的物理接口而被丢弃。
  3. 对于其他设备而言,有效的 VLAN 只有 Sub-VLAN10,20和30, 所有的报文都是在这些VLAN中交互的。因此,SW1 上虽然配置了 VLAN 聚合,但与其他设备的二层通信, 不会涉及到Super-VLAN,与正常的 二层通信流程 一样。
与其他设备三层通信
与其他设备进行三层通信时,就直接通过默认网关进行路由了。

MUX VLAN

tips
华三技术中称之为“Private Vlan”技术,并且无separate VLAN,只有Primary Vlan和Secondary Vlan,默认各个Secondary Vlan之间隔离。 主要用于小区vlan划分,因为默认一个用户一个vlan,但由于用户量较多,vlan号不够用,因此使用Private vlan技术进行vlan扩展。 具体原理可见 https://www.h3c.com/cn/d_201505/868804_30003_0.htm image.png
MUX VLAN(Multiplex VLAN,多路 VLAN),提供了在 VLAN 端口间进行二层流量隔离的机制。

传统 VLAN 中,要实现二层流量隔离,就要配置多个 VLAN ID,并在交换机上对各个 VLAN ID 进行放行限制,在网络规模较大时,不仅耗费大量 VLAN ID,同时增加了工作量和维护量。

MUX VLAN 分为 Principal VLAN(主VLAN) 和 Subordinate VLAN(从VLAN),Subordinate VLAN 又分为 Separate VLAN(隔离型从VLAN)和 Group VLAN(互通型从VLAN)。

  • Principal VLAN:可以与 MUX VLAN 内所有 VLAN 进行通信
  • Separate VLAN :只能和 Principal VLAN 进行通信,和其他 VLAN 隔离。每个 Separate VLAN 必须绑定一个 Principal VLAN
  • Group VLAN:可以和 Principal VLAN 通信,同时可以与处于同一组的 VLAN 进行通信,但不能和其他组或 Separate VLAN 进行通信。每个 Group VLAN 必须绑定一个 Principal VLAN。
注意
  • MUX VLAN 技术中,一个 Principal VLAN 只能将一个VLAN设置为Separate VLAN。可以将多个VLAN设置为Group VLAN(最多128个)
  • 配置为 MUX VLAN(即 Principal VLAN)的 VLAN 不能在 Super-VLAN、Sub-Vlan 中使用

MUX VLAN 应用举例

如上图,实现了:

  • 部门A和B各自实现了内部用户二层互通
  • 部门A和B的用户之间二层隔离
  • 部门A和B的用户都能通过二层访问服务器
  • 访客区内的任意PC除了能访问服务器,不饿能访问其他任何设备,包括其他访客。

QinQ

由于 IEEE802.1Q 中定义的 VLAN Tag 域只有12bit ,只能表示4094个 VLAN,因此利用 VLAN 对用户进行隔离和标识受到网络扩展的限制。

QinQ(802.1Q in 802.1Q)技术是一项扩展 VLAN 空间的技术,通过在802.1Q标签报文的基础上再加一层802.1Q的 Tag 来达到扩展 VLAN 空间的功能。

如上图,用户报文在公网上传递时携带了两层Tag,内层是私网Tag,外层是公网Tag。

QinQ 工作原理

QinQ封装结构

QinQ封装在无标签的以太网数据帧的源MAC地址字段后面加上两个VLAN标签构成。

  • TPID(Tag Protocol Identifier,标签协议标识):表示帧类型。取值为 0x8100 时表示 802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
    • 对于内层的802.1Q Tag,该值设置为0x8100;
    • 对于外层的802.1Q Tag,不同厂商所使用的 值可能不相同:
      • 0x8100:Huawei路由器使用
      • 0x88A8:802.1ad规定外层802.1Q Tag中的TPID为0x88a8

在公网传输的过程中,设备只根据 外层 VLAN Tag 转发报文,并根据报文的外层 VLAN Tag 进行 MAC 地址学习,而用户的私网 VLAN Tag 将被当作报文的 数据部分 进行传输。即使私网 VLAN Tag 相同,也能通过公网 VLAN Tag 区分不同的用户。

企业A和企业B的私网 VLAN 分别为 1-101-20,公网 VLAN 分别为 34 ,企业A和B的报文进入公网时,报文外面就会携带上 VLAN 3 和 4 的标签,即使私网 VLAN Tag 有重叠,也不会产生冲突,当报文穿过公网,到达另一侧 PE 后,报文会被剥离公网 VLAN Tag,然后再转发给用户网络的 CE 设备。

实现方式——基本QinQ

基本 QinQ 是基于 端口 方式实现的。开启端口的基本 QinQ 功能后,当该端口接收到报文,设备会为该报文打上本端口缺省 VLAN 的 VLAN Tag。如果接收到的是已经带有 VLAN Tag ,则会成为双 Tag 的报文,如果不带 VLAN Tag 的报文,则成为带有缺省 VLAN Tag 的报文。

基于端口的QinQ的缺点是外层VLAN Tag封装方式固定,不能根据业务种类选择外层VLAN Tag封装的方式,从而很难有效支持多业务的灵活运营。

实现方式——灵活QinQ

相比于基本 QinQ 的固定 Tag(对进入二层 QinQ 接口的 所有帧 加上 相同 的外层 Tag ),灵活 QinQ(Selective QinQ) 可根据流分类的结果选择是否打外层标签,打上何种标签。可根据用户的 VLAN标签、优先级(缺省情况下,外层 VLAN 和内层 VLAN 优先级保持一致)、MAC地址、IP协议、IP源地址、 IP目的地址、或应用程序的端口号进行流分类。

配置注意事项

  • vlan-id1 和 vlan-id2 指的是内网标签,vlan-id3指的是外网标签。
  • 配置灵活QinQ的当前接口类型建议为 Hybrid,并且必须先通过命令 qinq vlan-translation enable 先使能 VLAN 转换功能。灵活QinQ功能只在当前接口的入方向生效

参考文章