华为——QinQ详解

简介: 华为——QinQ详解

QinQ技术诞生的背景


QinQ最初主要是为扩展VLAN ID空间而产生的,但随着城域以太网的发展以及运营商精细化运作的要求,QinQ的双层标签又有了进一步的使用场景。它的内、外层标签可以代表不同的信息,如内层标签代表用户,外层标签代表业务。另外,QinQ数据帧带着两层标签穿越运营商网络,内层标签透明传送,也可以看作是一种简单、实用的VPN技术。因此它又可以作为核心MPLS VPN在城域以太网VPN的延伸,最终形成端到端的VPN技术。由于QinQ方便易用的特点,现在已经在各运营商中得到了广泛的应用,如QinQ技术在城域以太网解决方案中和多种业务相结合。特别是灵活QinQ(Selective QinQ/VLAN Stacking)的出现,使得QinQ业务更加受到了运营商的推崇和青睐。


QinQ封装和终结


QinQ是在传统802.1Q VLAN标签头基础上再增加一层新的802.1Q VLAN标签头,如图所示。由此可知,QinQ帧比传统的802.1Q帧多了四个字节,即新增的802.1Q VLAN标签。


640.jpg


QinQ帧封装的过程就是把单层802.1Q标签的数据帧转换成双层802.1Q标签的数据帧。封装过程主要发生在城域网侧连接用户的交换机端口上进行的。根据不同的VLAN标签封装依据,QinQ可以分为“基本QinQ”和“灵活QinQ”两种类型。具体说明如下。


01基本QinQ封装


“基本QinQ封装”是将进入一个端口的所有流量全部封装一个相同的外层VLAN标签,是一种基于端口的QinQ封装方式,也称“QinQ二层隧道”。开启端口的基本QinQ功能后,当该端口接收到已经带有VLAN标签的数据帧时,则该数据帧就将封装成双层标签的帧;如果接收到的是不带VLAN标签的数据帧,则该数据帧将封装成为带有端口缺省VLAN的一层标签的帧。


02灵活QinQ封装


“灵活QinQ”是对QinQ的一种更灵活的实现,是基于端口封装与基于VLAN封装的结合方式。除了能实现所有基本QinQ的功能外,灵活QinQ对于同一个端口接收的数据帧还可以根据不同的内层VLAN标签执行不同的外层标签封装。它又可分为以下三个子类:


基于VLAN ID的灵活QinQ:


它是基于数据帧中不同的内层标签的VLAN ID来添加不同的外层标签。即具有相同内层标签的帧添加相同的外层VLAN标签,具有不同内层标签的帧添加不同的外层VLAN标签。这就要求不同用户的内层VLAN ID或VLAN ID范围绝对不能重叠或交叉。华为S系列交换机中的S2700、S3700、S5700、S6700仅支持基于VLAN ID的灵活QinQ功能。


基于802.1p优先级的灵活QinQ:


它是基于数据帧中不同的内层标签的802.1p优先级来添加不同的外层标签。即具有相同内层VLAN 802.1p优先级的帧添加相同的外层标签,具有不同内层VLAN 802.1p优先级的帧添加不同的外层标签。这就要求不同用户的内层VLAN的802.1p优先级或802.1p优先级范围绝对不能重叠或交叉。基于802.1p优先级的灵活QinQ在华为S系列交换机中仅S7700、S9300和S9700系列支持。


基于流策略的灵活QinQ:


它是根据所定义的QoS策略为不同的数据帧添加不同的外层标签。基于流策略的灵活QinQ是基于端口与VLAN相结合的方式实现的,能够针对业务类型提供差别服务。基于流策略的灵活QinQ在华为S系列交换机中仅S7700、S9300和S9700系列支持。


03QinQ/Dot1q终结子接口

 

QinQ/Dot1q终结是指设备对数据帧的双层或者单层VLAN标签进行识别,根据后续的转发行为对帧中的双层或者单层VLAN标签进行剥离,然后继续传送。

也就是这些VLAN标签仅在此之前生效,后面的数据传输和处理不再依据帧中的这些VLAN标签。


【经验之谈】VLAN终结的实质包括两个方面:


  • 对接口收到的VLAN报文,去除VLAN标签后进行三层转发或其他处理。从设备其它接口转发出去的报文是否带有VLAN标签由对应的端口类型及其数据发送规则决定。    
  • 对接口发送的报文,又将相应的VLAN标签信息添加到报文中后再发送。


 终结一般在路由子接口上执行,即终结子接口,如我们在单臂路由中就要配置路由子接口的802.1Q的VLAN终结。如果路由子接口是对数据帧的单层VLAN标签终结,那么该子接口称为Dot1q 终结子接口;如果路由子接口是对数据帧的双层VLAN标签终结,那么该子接口称为QinQ终结子接口。QinQ终结子接口根据终结的用户VLAN标签的类型,通常分为两种子接口:


  • 明确的QinQ终结子接口:两层VLAN标签为固定的值。
  • 模糊的QinQ终结子接口:两层VLAN标签为范围值,即:终结的内、外层标签都为一个VLAN ID范围值。

实验


基本QinQ和灵活QinQ结合实验


拓扑:

640.png


实验步骤:


1.配置4台PC的IP地址,子网掩码。

640.png

640.png

640.png

640.png

2.在交换机sw5上创建VLAN 1000和VLAN 2000分别加入到GE0/0/1和GE0/0/2中,GE0/0/3配置为Trunk端口并放行对应的vlan

1. system-view
2. sysname sw5
3. Vlan batch 1000 2000
4.  interface GigabitEthernet0/0/1
5.    port link-type access
6.    port default vlan 1000
7.  interface GigabitEthernet0/0/2
8.    port link-type access
9.    port default vlan 2000
10.  interface GigabitEthernet0/0/3
11.    port link-type trunk
12.    port trunk allow-pass vlan 1000 2000

3.在交换机sw6上创建VLAN 1000和VLAN 2000分别加入到GE0/0/1和GE0/0/2中,GE0/0/3配置为Trunk端口并放行对应的vlan

1. system-view
2. sysname sw6
3. Vlan batch 1000 2000
4. interface GigabitEthernet0/0/1
5.   port link-type access
6.   port default vlan 2000
7. interface GigabitEthernet0/0/2
8.   port link-type access
9.   port default vlan 1000
10. interface GigabitEthernet0/0/3
11.   port link-type trunk
12.   port trunk allow-pass vlan 1000 2000

4.在交换机sw3上,创建VLAN 100、200,将GE0/0/2配置为Trunk端口并允许VLAN 100、200的流量通过,将G0/0/3设置为灵活QinQ

1. system-view
2. sysname sw3
3. Vlan batch 100 200
4. interface GigabitEthernet0/0/2
5.   port link-type trunk
6.   port trunk allow-pass vlan 100 200
7. interface GigabitEthernet0/0/3
8.   qinq vlan-translation enable
9.   port hybrid untagged vlan 100 200
10.   port vlan-stacking vlan 1000 stack-vlan 100
11.   port vlan-stacking vlan 2000 stack-vlan 200

5.在交换机sw4上,创建VLAN 100、200,将GE0/0/2配置为Trunk端口并允许VLAN 100、200的流量通过,将G0/0/3设置为灵活QinQ

1. system-view
2. sysname sw4   
3. Vlan batch 100 200
4. interface GigabitEthernet0/0/2
5.    port link-type trunk
6.    port trunk allow-pass vlan 100 200
7. interface GigabitEthernet0/0/3
8.    qinq vlan-translation enable
9.    port hybrid untagged vlan 100 200
10.    port vlan-stacking vlan 1000 stack-vlan 100
11.    port vlan-stacking vlan 2000 stack-vlan 200

6.在交换机sw1上,创建VLAN 500,将GE0/0/1配置为Trunk端口并允许VLAN 500的流量通过,将G0/0/2设置为接口QinQ

1. system-view
2. sysname sw1
3. Vlan 500
4. interface GigabitEthernet0/0/1
5.   port link-type trunk
6.   port trunk allow-pass vlan 500
7. interface GigabitEthernet0/0/2
8.   port link-type dot1q-tunnel
9.  port default vlan 500

7.在交换机sw2上,创建VLAN 500,将GE0/0/1配置为Trunk端口并允许VLAN 500的流量通过,将G0/0/2设置为接口QinQ

1. system-view
2. sysname sw2
3. Vlan 500
4. interface GigabitEthernet0/0/1
5.   port link-type trunk
6.   port trunk allow-pass vlan 500
7. interface GigabitEthernet0/0/2
8.   port link-type dot1q-tunnel
9.  port default vlan 500


实验结果:


要求同一VLAN内的PC可以互相通信

PC1  ping PC4 通,反之也可以。


640.png


PC2  ping PC3 通,反之也可以。


640.png

640.png


 

p1 ping不同PC2、3

640.png

p2 ping不同PC1、4


640.png

相关文章
|
供应链 5G vr&ar
华为在高端智能手机市场再次撕开了一道深深的口子
智能手机市场趋于饱和,增长变得越来越难,智能手机厂商从被动卷走向了主动卷。
78 0