QinQ简介

QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网网络。

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

当需要较多的VLAN时,可以配置基本QinQ功能。通过对VLAN增加外层Tag,使得VLAN的可用数目范围变大,解决VLAN数目资源紧缺的问题。

配置注意事项

本举例适用于S系列交换机所有产品的所有版本(除S5731-L和S5731S-L外)

组网需求

图3-91所示,网络中有两个企业,企业1有两个分支,企业2有两个分支。这两个企业的各办公地的企业网都分别和运营商网络中的SwitchA和SwitchB相连,且公网中存在其它厂商设备,其外层VLAN Tag的TPID值为0x9100。

现需要实现:

  • 企业1和企业2独立划分VLAN,两者互不影响。

  • 各企业两分支之间流量通过公网透明传输,相同业务之间互通,不同业务之间互相隔离。

可通过配置QinQ来实现以上需求。利用公网提供的VLAN100使企业1互通,利用公网提供的VLAN200使企业2互通,不同企业之间互相隔离。并通过在连接其它厂商设备的接口上配置修改QinQ外层VLAN Tag的TPID值,来实现与其它厂商设备的互通。图3-91 配置基本QinQ示例组网图

配置思路

采用如下的思路配置QinQ:

  1. 在SwitchA和SwitchB上均创建VLAN100和VLAN200,配置连接业务的接口为QinQ类型,并分别加入VLAN。实现不同业务添加不同的外层VLAN Tag。

  2. 配置SwitchA和SwitchB上连接公网的接口加入相应VLAN,实现允许VLAN100和200的报文通过。

  3. 在SwitchA和SwitchB连接公网的接口上配置外层VLAN tag的TPID值,实现与其它厂商设备的互通。

操作步骤

  1. 创建VLAN


    # 在SwitchA上创建VLAN100和VLAN200。

    <HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 100 200

    # 在SwitchB上创建VLAN100和VLAN200。

    <HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] vlan batch 100 200


  2. 配置接口类型为QinQ


    # 在SwitchA上配置接口GE1/0/1、GE1/0/2的类型为QinQ,GE1/0/1的外层tag为VLAN100,GE1/0/2的外层tag为VLAN200。SwitchB的配置与SwitchA类似,不再赘述。

    [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] port link-type dot1q-tunnel //配置接口的链路类型为QinQ [SwitchA-GigabitEthernet1/0/1] port default vlan 100 [SwitchA-GigabitEthernet1/0/1] quit [SwitchA] interface gigabitethernet 1/0/2 [SwitchA-GigabitEthernet1/0/2] port link-type dot1q-tunnel //配置接口的链路类型为QinQ [SwitchA-GigabitEthernet1/0/2] port default vlan 200 [SwitchA-GigabitEthernet1/0/2] quit


  3. 配置Switch连接公网侧的接口


    # 在SwitchA上配置接口GE1/0/3加入VLAN100和VLAN200。SwitchB的配置与SwitchA类似,不再赘述。

    [SwitchA] interface gigabitethernet 1/0/3 [SwitchA-GigabitEthernet1/0/3] port link-type trunk [SwitchA-GigabitEthernet1/0/3] port trunk allow-pass vlan 100 200 [SwitchA-GigabitEthernet1/0/3] quit


  4. 配置外层VLAN tag的TPID值


    # 在SwitchA上配置外层VLAN tag的TPID值为0x9100。

    [SwitchA] interface gigabitethernet 1/0/3 [SwitchA-GigabitEthernet1/0/3] qinq protocol 9100 //配置QinQ外层VLAN tag的TPID值为0x9100

    # 在SwitchB上配置外层VLAN tag的TPID值为0x9100。

    [SwitchB] interface gigabitethernet 1/0/3 [SwitchB-GigabitEthernet1/0/3] qinq protocol 9100 //配置QinQ外层VLAN tag的TPID值为0x9100


  5. 验证配置结果


    从企业1一处分支内任意VLAN的一台PC ping企业1另外一处分支同一VLAN内的PC,如果可以ping通则表示企业1内部可以互相通信。

    从企业2一处分支内任意VLAN的一台PC ping企业2另外一处分支同一VLAN内的PC,如果可以ping通则表示企业2内部可以互相通信。

    从企业1一处分支内任意VLAN的一台PC ping企业2任意一处分支同一VLAN内的PC,如果不能ping通则表示企业1和企业2之间相互隔离。


配置文件

  • SwitchA的配置文件

    # sysname SwitchA # vlan batch 100 200 # interface GigabitEthernet1/0/1  port link-type dot1q-tunnel  port default vlan 100 # interface GigabitEthernet1/0/2  port link-type dot1q-tunnel  port default vlan 200 # interface GigabitEthernet1/0/3  qinq protocol 9100  port link-type trunk  port trunk allow-pass vlan 100 200 # return
  • SwitchB的配置文件

    # sysname SwitchB # vlan batch 100 200 # interface GigabitEthernet1/0/1  port link-type dot1q-tunnel  port default vlan 100 # interface GigabitEthernet1/0/2  port link-type dot1q-tunnel  port default vlan 200 # interface GigabitEthernet1/0/3  qinq protocol 9100  port link-type trunk  port trunk allow-pass vlan 100 200 # return

相关信息

技术论坛

玩转高大上的QinQ技术

视频

如何配置QinQ

配置灵活QinQ示例-基于VLAN ID的QinQ

QinQ简介

QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网网络。

灵活QinQ是对QinQ的一种更灵活的实现,又叫VLAN Stacking或QinQ Stacking。它是基于接口与VLAN相结合的方式实现的。除了能实现所有基本QinQ的功能外,对于同一个接口接收的报文还可以根据不同的VLAN做不同的动作。

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

配置注意事项

在交换机上配置QinQ功能时需注意:

  • 对于盒式交换机配置灵活QinQ命令之前,必须先通过命令qinq vlan-translation enable使能VLAN转换功能。

  • 配置灵活QinQ的当前接口类型建议为Hybrid,且灵活QinQ功能只在当前接口的入方向生效。

  • 灵活QinQ叠加后的外层VLAN必须存在。

  • 接口配置VLAN Stacking功能后在发送帧时,若需要剥掉外层Tag,该接口要以Untagged方式加入叠加后的stack-vlan;若不需要剥掉外层Tag,该接口要以Tagged方式加入叠加后的stack-vlan

  • 配置灵活QinQ功能时,一个内层VLAN在一个接口上只能叠加一个外层VLAN。

  • 对于需要单层透传的VLAN,请不要指定为灵活QinQ的内层VLAN。

  • 下面单板和设备在配置灵活QinQ功能后,对于其他需要单层透传的VLAN,必须配置自身映射到自身的VLAN Mapping,形如:port vlan-mapping vlan 20 map-vlan 20

    • ES0D0G24SA00、ES0D0G24CA00、EH1D2G24SSA0和EH1D2S24CSA0单板

    • 盒式S5700-EI、S3700-EI和S3700-SI

  • 本举例适用于S系列交换机所有产品的所有版本(除S5731-L和S5731S-L外)

组网需求

图3-92所示,PC上网用户和VoIP用户通过SwitchA和SwitchB接入运营商网络,通过运营商的网络互相通信。

企业内部为PC分配的企业内部VLAN为100,为VoIP电话分配的内部VLAN为300。

要求PC上网用户和VoIP用户分别以VLAN2和VLAN3通过运营商网络。

图3-92 配置基于VLAN ID灵活QinQ组网图

配置思路

采用如下的思路配置灵活QinQ:

  1. SwitchA和SwitchB上创建相关VLAN。

  2. SwitchA和SwitchB上配置接口类型并加入VLAN。

  3. SwitchA和SwitchB的接口上配置灵活QinQ功能。

操作步骤

  1. 创建VLAN


    # 在SwitchA上创建VLAN2、VLAN3,即叠加后的外层VLAN。

    <HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 2 3

    # 在SwitchB上创建VLAN2、VLAN3,即叠加后的外层VLAN。

    <HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] vlan batch 2 3


  2. 在接口上配置灵活QinQ


    对于盒式交换机需要在接口下执行qinq vlan-translation enable命令,使能接口VLAN转换功能。

    # 配置SwitchA的接口GE1/0/1

    [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] port link-type hybrid [SwitchA-GigabitEthernet1/0/1] port hybrid untagged vlan 2 3  //配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口 [SwitchA-GigabitEthernet1/0/1] port vlan-stacking vlan 100 stack-vlan 2  //配置内部VLAN Tag为100,并添加外层VLAN Tag为2 [SwitchA-GigabitEthernet1/0/1] port vlan-stacking vlan 300 stack-vlan 3  //配置内部VLAN Tag为300,并添加外层VLAN Tag为3 [SwitchA-GigabitEthernet1/0/1] quit

    # 配置SwitchB的接口GE1/0/1

    [SwitchB] interface gigabitethernet 1/0/1 [SwitchB-GigabitEthernet1/0/1] port link-type hybrid [SwitchB-GigabitEthernet1/0/1] port hybrid untagged vlan 2 3  //配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口 [SwitchB-GigabitEthernet1/0/1] port vlan-stacking vlan 100 stack-vlan 2  //配置内部VLAN为100,并添加外层VLAN为2 [SwitchB-GigabitEthernet1/0/1] port vlan-stacking vlan 300 stack-vlan 3  //配置内部VLAN为300,并添加外层VLAN为3 [SwitchB-GigabitEthernet1/0/1] quit


  3. 配置其它接口


    # 在SwitchA上配置接口GE1/0/2加入VLAN2、VLAN3。

    [SwitchA] interface gigabitethernet 1/0/2 [SwitchA-GigabitEthernet1/0/2] port link-type trunk [SwitchA-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 3 [SwitchA-GigabitEthernet1/0/2] quit

    # 在SwitchB上配置接口GE1/0/2加入VLAN2、VLAN3

    [SwitchB] interface gigabitethernet 1/0/2 [SwitchB-GigabitEthernet1/0/2] port link-type trunk [SwitchB-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 3 [SwitchB-GigabitEthernet1/0/2] quit


  4. 验证配置结果


    如果SwitchA、SwitchB上配置正确,则:


    • PC上网用户可以通过运营商网络互相通信。

    • VoIP用户可以通过运营商网络互相通信。

配置文件

  • SwitchA的配置文件

    # sysname SwitchA # vlan batch 2 to 3 # interface GigabitEthernet1/0/1  port link-type hybrid  port hybrid untagged vlan 2 to 3  port vlan-stacking vlan 100 stack-vlan 2  port vlan-stacking vlan 300 stack-vlan 3 # interface GigabitEthernet1/0/2  port link-type trunk  port trunk allow-pass vlan 2 to 3 # return
  • SwitchB的配置文件

    # sysname SwitchB # vlan batch 2 to 3 # interface GigabitEthernet1/0/1  port link-type hybrid  port hybrid untagged vlan 2 to 3  port vlan-stacking vlan 100 stack-vlan 2  port vlan-stacking vlan 300 stack-vlan 3 # interface GigabitEthernet1/0/2  port link-type trunk  port trunk allow-pass vlan 2 to 3 # return

相关信息

技术论坛

玩转高大上的QinQ技术

视频

如何配置QinQ

配置灵活QinQ示例-基于流的QinQ

QinQ简介

QinQ(802.1Q-in-802.1Q)技术是一项扩展VLAN空间的技术,通过在802.1Q标签报文的基础上再增加一层802.1Q的Tag来达到扩展VLAN空间的功能,可以使私网VLAN透传公网网络。

灵活QinQ是对QinQ的一种更灵活的实现,又叫VLAN Stacking或QinQ Stacking。它是基于接口与VLAN相结合的方式实现的。除了能实现所有基本QinQ的功能外,对于同一个接口接收的报文还可以根据不同的VLAN做不同的动作。

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

配置注意事项

在交换机上配置QinQ功能时需注意:

  • 配置灵活QinQ的当前接口类型建议为Hybrid,且灵活QinQ功能只在当前接口的入方向生效。

  • 灵活QinQ叠加后的外层VLAN必须存在。

  • 接口配置VLAN Stacking功能后在发送帧时,若需要剥掉外层Tag,该接口要以Untagged方式加入叠加后的stack-vlan;若不需要剥掉外层Tag,该接口要以Tagged方式加入叠加后的stack-vlan

  • 配置灵活QinQ功能时,一个内层VLAN在一个接口上只能叠加一个外层VLAN。

  • 对于需要单层透传的VLAN,请不要指定为灵活QinQ的内层VLAN。

  • 本例仅适用于框式交换机的所有版本(除S5731-L和S5731S-L外)

组网需求

图3-93所示,PC上网用户和VoIP用户通过SwitchA和SwitchB接入运营商网络,通过运营商的网络互相通信。

要求PC上网用户和VoIP用户分别以VLAN2和VLAN3通过运营商网络,可以在交换机部署基于流的灵活QinQ来实现。

图3-93 配置基于流的灵活QinQ组网图

配置思路

采用如下的思路配置基于流的灵活QinQ:

  1. 在SwitchA和SwitchB上创建相关VLAN。

  2. 在SwitchA和SwitchB上配置流分类、流行为和流策略。

  3. 在SwitchA和SwitchB上配置接口类型并加入VLAN。

  4. 在SwitchA和SwitchB的接口上应用流策略来实现灵活QinQ功能。

操作步骤

  1. 创建VLAN


    # 在SwitchA上创建VLAN2、VLAN3,即叠加后的外层VLAN。

    <HUAWEI> system-view [HUAWEI] sysname SwitchA [SwitchA] vlan batch 2 3

    # 在SwitchB上创建VLAN2、VLAN3,即叠加后的外层VLAN。

    <HUAWEI> system-view [HUAWEI] sysname SwitchB [SwitchB] vlan batch 2 3


  2. Switch上配置流分类、流行为和流策略


    # 配置SwitchA的流分类、流行为和流策略。

    [SwitchA] traffic classifier name1  //配置流分类name1 [SwitchA-classifier-name1] if-match vlan-id 100 to 200  //匹配VLAN ID 100~200 [SwitchA-classifier-name1] quit [SwitchA] traffic behavior name1  //配置流行为name1 [SwitchA-behavior-name1] nest top-most vlan-id 2  //配置创建外层VLAN的动作,并配置外层VLAN为2。V200R009及之后版本,命令变更为add-tag vlan-id [SwitchA-behavior-name1] quit [SwitchA] traffic classifier name2  //配置流分类name2 [SwitchA-classifier-name2] if-match vlan-id 300 to 400  //匹配VLAN ID 300~400 [SwitchA-classifier-name2] quit [SwitchA] traffic behavior name2  //配置流行为name2 [SwitchA-behavior-name2] nest top-most vlan-id 3  //配置创建外层VLAN的动作,并配置外层VLAN为3。V200R009及之后版本,命令变更为add-tag vlan-id [SwitchA-behavior-name2] quit [SwitchA] traffic policy name1  //配置流策略name1 [SwitchA-trafficpolicy-name1] classifier name1 behavior name1  [SwitchA-trafficpolicy-name1] classifier name2 behavior name2  [SwitchA-trafficpolicy-name1] quit

    # 配置SwitchB的流分类、流行为和流策略。

    [SwitchB] traffic classifier name1  //配置流分类name1 [SwitchB-classifier-name1] if-match vlan-id 100 to 200  //匹配VLAN ID 100~200 [SwitchB-classifier-name1] quit [SwitchB] traffic behavior name1  //配置流行为name1 [SwitchB-behavior-name1] nest top-most vlan-id 2  //配置创建外层VLAN的动作,并配置外层VLAN为2。V200R009及之后版本,命令变更为add-tag vlan-id [SwitchB-behavior-name1] quit [SwitchB] traffic classifier name2  //配置流分类name2 [SwitchB-classifier-name2] if-match vlan-id 300 to 400  //匹配VLAN ID 300~400 [SwitchB-classifier-name2] quit [SwitchB] traffic behavior name2  //配置流行为name2 [SwitchB-behavior-name2] nest top-most vlan-id 3  //配置创建外层VLAN的动作,并配置外层VLAN为3。V200R009及之后版本,命令变更为add-tag vlan-id [SwitchB-behavior-name2] quit [SwitchB] traffic policy name1  //配置流策略name1 [SwitchB-trafficpolicy-name1] classifier name1 behavior name1  [SwitchB-trafficpolicy-name1] classifier name2 behavior name2  [SwitchB-trafficpolicy-name1] quit


  3. 在接口上应用流策略实现灵活QinQ功能


    # 配置SwitchA的接口GE1/0/1。

    [SwitchA] interface gigabitethernet 1/0/1 [SwitchA-GigabitEthernet1/0/1] port link-type hybrid [SwitchA-GigabitEthernet1/0/1] port hybrid untagged vlan 2 3 [SwitchA-GigabitEthernet1/0/1] traffic-policy name1 inbound  //在接口入方向应用流策略name1 [SwitchA-GigabitEthernet1/0/1] quit

    # 配置SwitchB的接口GE1/0/1。

    [SwitchB] interface gigabitethernet 1/0/1 [SwitchB-GigabitEthernet1/0/1] port link-type hybrid [SwitchB-GigabitEthernet1/0/1] port hybrid untagged vlan 2 3 [SwitchB-GigabitEthernet1/0/1] traffic-policy name1 inbound  //在接口入方向应用流策略name1 [SwitchB-GigabitEthernet1/0/1] quit


  4. 配置其它接口


    # 在SwitchA上配置接口GE1/0/2加入VLAN2、VLAN3。

    [SwitchA] interface gigabitethernet 1/0/2 [SwitchA-GigabitEthernet1/0/2] port link-type trunk [SwitchA-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 3 [SwitchA-GigabitEthernet1/0/2] quit

    # 在SwitchB上配置接口GE1/0/2加入VLAN2、VLAN3。

    [SwitchB] interface gigabitethernet 1/0/2 [SwitchB-GigabitEthernet1/0/2] port link-type trunk [SwitchB-GigabitEthernet1/0/2] port trunk allow-pass vlan 2 3 [SwitchB-GigabitEthernet1/0/2] quit


  5. 验证配置结果


    如果SwitchA、SwitchB上配置正确,则:


    • PC上网用户可以通过运营商网络互相通信。

    • VoIP用户可以通过运营商网络互相通信。

配置文件

  • SwitchA的配置文件

    # sysname SwitchA # vlan batch 2 to 3 # traffic classifier name1 operator or precedence 5  if-match vlan-id 100 to 200 traffic classifier name2 operator or precedence 10  if-match vlan-id 300 to 400 # traffic behavior name1  permit  nest top-most vlan-id 2 traffic behavior name2  permit  nest top-most vlan-id 3 # traffic policy name1 match-order config  classifier name1 behavior name1  classifier name2 behavior name2 # interface GigabitEthernet1/0/1  port link-type hybrid  port hybrid untagged vlan 2 to 3  traffic-policy name1 inbound # interface GigabitEthernet1/0/2  port link-type trunk  port trunk allow-pass vlan 2 to 3 # return
  • SwitchB的配置文件

    # sysname SwitchB # vlan batch 2 to 3 # traffic classifier name1 operator or precedence 5  if-match vlan-id 100 to 200 traffic classifier name2 operator or precedence 10  if-match vlan-id 300 to 400 # traffic behavior name1  permit  nest top-most vlan-id 2 traffic behavior name2  permit  nest top-most vlan-id 3 # traffic policy name1 match-order config  classifier name1 behavior name1  classifier name2 behavior name2 # interface GigabitEthernet1/0/1  port link-type hybrid  port hybrid untagged vlan 2 to 3  traffic-policy name1 inbound # interface GigabitEthernet1/0/2  port link-type trunk  port trunk allow-pass vlan 2 to 3 # return