VLAN高级技术


Vlan高级技术

VLAN聚合

VLAN聚合 [VLAN Aggregation],也称Super-VLAN: 指在一个物理网络内,用多个VLAN [称为Sub-VLAN] 隔离广播域,并将这些Sub-VLAN聚合成一个逻辑的VLAN [Super-VLAN],这些Sub-VLAN使用同一个IP子网和缺省网关,进而达到节约IP地址资源的目的

Sub-VLAN只包含物理接口,不能建立三层VLANIF接口,用于隔离广播域

  • 每个Sub-VLAN内的主机与外部的三层通信是靠Super-VLAN的三层VLANIF接口来实现的

Super-VLAN:只建立三层VLANIF接口,不包含物理接口,与子网网关对应

  • Super-VLAN的VLANIF接口状态取决于所包含Sub-VLAN的物理接口状态
VLAN聚合的原理

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

VLAN聚合的优势:

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

VLAN间通信

相同Sub-VLAN内部通信:同一个Sub-VLAN属于同一个广播域,相同Sub-VLAN之间可以通过二层直接通信

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

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

不同Sub-VLAN之间通信举例

Super-VLAN VLANIF100开启ARP代理之后PC1和PC2之间通信过程如下:

  1. PC1发现PC2与自己在同一网段,且自己ARP表无PC2对应表项,则直接发送ARP广播请求PC2的MAC地址
  2. 作为网关的Super-VLAN对应的VLANIF 100收到PC1的ARP请求,由于网关上使能Sub-VLAN间的ARP代理功能,则向Super-VLAN 100的所有Sub-VLAN接口发送一个ARP广播,请求PC2的MAC地址
  3. PC2收到网关发送的ARP广播后,对此请求进行ARP应答
  4. 网关收到PC2的应答后,就把自己的MAC地址回应给PC1,PC1之后要发给PC2的报文都先发送给网关,由网关做三层转发

Sub-VLAN与其他设备的二层通信

  • 当Sub-VLAN与其他设备进行二层通信时,与普通的VLAN内二层通信无区别
  • 由于Super-VLAN不属于任何物理接口,即不会处理任何携带Super-VLAN标签的报文

Sub-VLAN二层通信过程举例:

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

Sub-VLAN 与其他网络进行三层通信:先将数据发往默认网关,即Super-VLAN对应的VLANIF,再进行路由

VLAN聚合关键配置命令

1. 创建Super-VLAN

[Huawei-vlan100] aggregate-vlan
  • Super-VLAN中不能包含任何物理接口,VLAN1不能配置为Super-VLAN
  • Super-VLAN中的VLAN ID与Sub-VLAN中的VLAN ID 必须使用不同的 VLAN ID

2. 将Sub-VLAN加入Super-VLAN

[Huawei-vlan100] access-vlan { vlan-id1 [ to vlan-id2 ] }
  • 将Sub-VLAN加入到Super-VLAN中时,必须保证Sub-VLAN没有创建对应的VLANIF接口

  • vlan-id1表示第一个VLAN的编号

  • vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1的取值,它和vlan-id1共同确定一个范围

  • 如果不指定to vlan-id2参数,则只将编号为vlan-id1的VLAN加入super-VLAN中

3. 使能Super-VLAN对应的VLANIF接口的Proxy ARP

[Huawei-vlanif100] arp-proxy inter-sub-vlan-proxy enable
  • 使能Sub-VLAN间的Proxy ARP功能

MUX VLAN

MUX VLAN [Multiplex VLAN] 提供了一种通过VLAN进行网络资源控制的机制

MUX VLAN分为Principal VLAN [主VLAN]Subordinate VLAN [从VLAN] ,Subordinate VLAN又分为Separate VLAN [隔离型从VLAN]Group VLAN [互通型从VLAN]

  • Principal port可以和MUX VLAN内的所有接口进行通信
  • Separate port只能和Principal port进行通信,和其他类型的接口实现完全隔离
  • Group port可以和Principal port进行通信,在同一组内的接口也可互相通信,但不能和其他组接口或Separate port通信

在使用MUX VLAN的过程中,无论是Separate VLAN还是Group VLAN都必须与一个Principle VLAN绑定

加入Principal VLAN中的接口,可以与MUX VLAN内的所有接口进行通信。

MUX VLAN配置命令

1. 配置MUX VLAN中的Principal VLAN

[Huawei-vlan100] mux-vlan
  • 配置该VLAN为MUX VLAN,即Principal VLAN
  • 如果指定VLAN已经用于Principal VLAN,那么该VLAN不能在Super-VLAN、Sub-VLAN的配置中使用

2. 配置Subordinate VLAN中的Group VLAN

[Huawei-vlan100] subordinate group { vlan-id1 [ to vlan-id2 ] } 
  • 一个Principal VLAN下最多配置128个Group VLAN

3. 配置Subordinate VLAN中的Separate VLAN

[Huawei-vlan100] subordinate separate vlan-id
  • 一个Principal VLAN下只能配置一个Separate VLAN,同一MUX VLAN中Group VLAN和Separate VLAN的VLAN ID不能相同

4. 使能接口MUX VLAN功能

[Huawei-GigabitEthernet0/0/1] port mux-vlan enable vlan-id
  • 使能接口的MUX VLAN功能,协商类型negotiation-auto和negotiation-desirable接口不支持配置port mux-vlan enable
  • 只有使能接口MUX VLAN功能后,才能实现Principal VLAN与Subordinate VLAN之间通信、Group VLAN内的接口可以相互通信及Separate VLAN接口间不能相互通信的目的

QinQ

QinQ概述

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

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

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

在华为设备上,外层802.1Q Tag缺省情况下值为0x8100,可以通过命令行调整该值

QinQ工作原理

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

QinQ实现方式 - 基本QinQ
  • 基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省VLAN 的VLAN Tag
    • 如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文
    • 如果接收到的是不带VLAN Tag的报文,该报文就成为带有端口缺省VLAN Tag的报文
  • 基于端口的QinQ的缺点是外层VLAN Tag封装方式固定,不能根据业务种类选择外层VLAN Tag封装的方式,从而很难有效支持多业务的灵活运营
基本QinQ

基本QinQ的报文处理过程:

  1. SW1收到VLAN ID为10和20的报文,将该报文发给SW2
  2. SW2收到该报文后,在该报文原有Tag的外侧再添加一层VLAN ID 为100的外层Tag
  3. 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发
  4. SW3收到VLAN100的报文后,剥离报文的外层Tag。将报文发送给SW4,此时报文只有一层Tag
  5. SW4收到该报文,根据VLAN ID和目的MAC地址进行相应的转发
QinQ实现方式 - 灵活QinQ

**灵活[QinQ Selective QinQ]**可根据流分类的结果选择是否打外层VLAN Tag,打上何种外层VLAN Tag。灵活QinQ可根据用户的VLAN标签、优先级、MAC地址、IP协议、IP源地址、IP目的地址、或应用程序的端口号进行流分类

基于VLAN ID的灵活QinQ:为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag

基于802.1p优先级的灵活QinQ:根据报文的原有内层VLAN的802.1p优先级添加不同的外层VLAN Tag

基于流策略的灵活QinQ:根据QoS策略添加不同的外层VLAN Tag。基于流策略的灵活QinQ能够针对业务类型提供差别服务

灵活QinQ功能是对基本QinQ功能的扩展,它比基本QinQ的功能更灵活。二者之间的主要区别是:

  • 基本QinQ:对进入二层QinQ接口的所有帧都加上相同的外层Tag
  • 灵活QinQ:对进入二层QinQ接口的帧,可以根据不同的内层Tag而加上不同的外层Tag,对于用户VLAN的划分更加细致

灵活QinQ的报文处理过程:

  1. SW1收到VLAN ID为10和20的报文,将该报文转发给SW2
  2. SW2收到VLAN ID为10的报文后,添加一层VLAN ID 为100 的外层Tag;SW2收到VLAN ID为20的报文后,添加一层VLAN ID为200的外层Tag
  3. 带着两层Tag的用户数据报文在网络中按照正常的二层转发流程转发
  4. SW3收到报文后,剥离报文的外层Tag。将报文发送给SW4,此时报文只有一层Tag
  5. SW4收到报文,根据VLAN ID和目的MAC地址进行相应的转发

QinQ配置命令介绍

1. 配置接口类型为dot1q-tunnel

[Huawei-GigabitEthernet0/0/1] port link-type dot1q-tunnel

配置接口类型为dot1q-tunnel,该接口可以是物理接口,也可以是Eth-Trunk接口

2. 使能接口VLAN转换功能

[Huawei-GigabitEthernet0/0/1] qinq vlan-translation enable

3. 配置配置灵活QinQ

[Huawei-GigabitEthernet0/0/1] port vlan-stacking vlan vlan-id1 [ to vlan-id2 ] stack-vlan vlan-id3 [ remark-8021p 8021p-value ]

配置不同的内层VLAN叠加不同的外层VLAN,缺省情况下,外层VLAN优先级与内层VLAN优先级保持一致


文章作者: 十二惊惶
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 十二惊惶 !
  目录