选择区域语言: EN CN HK

04-二层技术-以太网交换配置指导

06-QinQ配置

本章节下载  (308.4 KB)

docurl=/cn/Service/Document_Software/Document_Center/Switches/Catalog/S12500/S12500/Configure/Operation_Manual/H3C_S12500_CG-R1828P04-6W182/04/201407/834567_30005_0.htm

06-QinQ配置


1 QinQ

1.1  QinQ简介

QinQ是802.1Q in 802.1Q的简称,它是基于IEEE 802.1Q技术的一种二层隧道协议,通过将用户的私网报文封装上外层VLAN Tag,使其携带两层VLAN Tag穿越运营商的骨干网络(又称公网),从而为用户提供了一种比较简单的二层VPN隧道技术,也使运营商利用一个VLAN为包含多个VLAN的用户网络提供服务成为了可能。

1.1.1  QinQ的产生背景

IEEE802.1Q定义的VLAN ID域只有12个比特,最多可以支持4094个VLAN。但在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。

QinQ是一种简单、灵活的二层VPN技术,通过给报文打两层VLAN Tag,从而最多可以提供4094 X 4094个VLAN,满足了城域网对VLAN数量的需求。

QinQ主要可以解决如下几个问题:

·     缓解日益紧缺的公网VLAN ID资源问题。

·     用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突。

·     为小型城域网或企业网提供一种较为简单的二层VPN解决方案。

·     当运营商升级网络时,用户网络不必更改原有配置,使用户网络具有了较强的独立性。

1.1.2  QinQ的实现原理

在公网的传输过程中,设备只根据外层VLAN Tag转发报文,并将报文的源MAC地址表项学习到外层VLAN Tag所在VLAN的MAC地址表中,而用户的私网VLAN Tag将被当作报文的数据部分进行传输。

图1-1 QinQ典型应用组网图

 

图1-1所示,用户网络A和B的私网VLAN分别为VLAN 1~10和VLAN 1~20。运营商为用户网络A和B分配的公网VLAN分别为VLAN 3和VLAN 4。当用户网络A和B中带VLAN Tag的报文进入运营商网络时,报文外面就会被分别封装上VLAN 3和VLAN 4的VLAN Tag。这样,来自不同用户网络的报文在运营商网络中传输时被完全分开,即使这些用户网络各自的VLAN范围存在重叠,在运营商网络中传输时也不会产生冲突。当报文穿过运营商网络,到达运营商网络另一侧PE设备后,报文会被剥离运营商网络为其添加的公网VLAN Tag,然后再传送给用户网络的CE设备。

1.1.3  QinQ的报文结构

图1-2所示,QinQ报文在运营商网络中传输时带有双层VLAN Tag:

·     内层VLAN Tag:为用户的私网VLAN Tag,对应图中的Customer VLAN Tag;。依靠该Tag在私网中传送QinQ报文。

·     外层VLAN Tag:为运营商分配给用户的公网VLAN Tag,对应图中的Service VLAN Tag。依靠该Tag在公网中传送QinQ报文,内层VLAN Tag在公网中被屏蔽。

图1-2 QinQ的报文结构

 

说明

接口的MTU(Maximum Transmission Unit,最大传输单元)值默认为1500字节。由于为报文加上外层VLAN Tag后,报文长度将增加4个字节,因此建议用户适当增加运营商网络中各接口的MTU值(至少为1504字节)。有关接口MTU值的相关配置,请参见“接口管理配置指导”中的“以太网接口”。

 

1.1.4  QinQ的实现方式

QinQ的实现方式可分为以下两种:

1. 基本QinQ

基本QinQ是基于端口方式实现的。当端口上配置了基本QinQ功能后,不论从该端口收到报文是否带有VLAN Tag,设备都会为该报文打上本端口缺省VLAN的Tag:

·     如果收到的是带有VLAN Tag的报文,该报文就成为带双Tag的报文;

·     如果收到的是不带VLAN Tag的报文,该报文就成为带有本端口缺省VLAN Tag的报文。

2. 灵活QinQ

灵活QinQ是基于端口与VLAN相结合的方式实现的,它对QinQ的功能进行了扩展,是对QinQ的一种更灵活的实现。灵活QinQ除了能实现所有基本QinQ的功能外,对于从同一个端口收到的报文,还可以根据VLAN的不同进行不同的操作,包括:

·     为匹配流分类的报文添加外层VLAN Tag。

·     根据报文内层VLAN的802.1p优先级标记外层VLAN的802.1p优先级。

通过使用灵活QinQ技术,在能够隔离运营商网络和用户网络的同时,又能够提供丰富的业务特性和更加灵活的组网能力。

1.1.5  VLAN Tag的TPID值可调功能

图1-3所示,是IEEE802.1Q协议定义的以太网帧的VLAN Tag结构,TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。

图1-3 以太网帧的VLAN Tag报文结构

 

说明

有关TPID、Priority、CFI和VLAN ID字段的含义,请参见“二层技术-以太网交换配置指导”中的“VLAN”。

 

不同厂商的设备可能将QinQ报文外层VLAN Tag的TPID字段设为不同的值,为了和其他厂商的设备兼容,设备提供了QinQ报文的TPID值可调功能。用户通过配置TPID的值,使得发送到公网中的QinQ报文携带的TPID值与其他厂商相同,就可以实现与其他厂商的设备互通。

由于TPID字段在以太网报文中所处位置与不带VLAN Tag的报文中协议类型字段所处位置相同,为避免网络中报文转发和接收造成混乱,不允许用户将TPID值配置为表1-1中列举的常用协议的类型值。

表1-1 常用协议类型值

协议类型

协议对应的类型值

ARP

0x0806

PUP

0x0200

RARP

0x8035

IP

0x0800

IPv6

0x86DD

PPPoE

0x8863/0x8864

MPLS

0x8847/0x8848

IPX/SPX

0x8137

IS-IS

0x8000

LACP

0x8809

802.1x

0x888E

Cluster

0x88A7

设备保留

0xFFFD/0xFFFE/0xFFFF

 

1.2  QinQ配置任务简介

表1-2 QinQ配置任务简介

配置任务

说明

详细配置

配置基本QinQ功能

必选

1.3 

配置灵活QinQ功能

配置添加外层VLAN Tag的策略

两者至少选其一

1.4.1 

配置内外层VLAN Tag中802.1p优先级的映射关系

1.4.2 

配置VLAN TagTPID

可选

1.5 

 

1.3  配置基本QinQ功能

表1-3 配置基本QinQ功能

操作

命令

说明

进入系统视图

system-view

-

进入接口视图或端口组视图

进入二层以太网接口或二层聚合接口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group manual port-group-name

使能端口的基本QinQ功能

qinq enable

必选

缺省情况下,端口的基本QinQ功能处于关闭状态

 

注意

基本QinQ功能应在运营商网络中与用户网络相连的设备上进行配置,并且应配置在连接用户网络侧的端口上。

 

1.4  配置灵活QinQ功能

说明

有关QoS策略的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。

 

1.4.1  配置添加外层VLAN Tag的策略

用户可以通过配置QoS策略,为匹配流分类的报文添加外层VLAN Tag。

表1-4 配置添加外层VLAN Tag的QoS策略

操作

命令

说明

进入系统视图

system-view

-

定义类并进入类视图

traffic classifier tcl-name [ operator { and | or } ]

必选

缺省情况下,流分类规则之间的逻辑关系为and,即数据包匹配全部规则才属于该类

定义匹配数据包的规则

if-match match-criteria

必选

请根据实际情况配置匹配规则

退回系统视图

quit

-

定义一个流行为并进入流行为视图

traffic behavior behavior-name

必选

配置插入VLAN tag的流行为

nest top-most vlan-id vlan-id-value

必选

可根据实际情况配置其他流行为

退回系统视图

quit

-

定义策略并进入策略视图

qos policy policy-name

必选

在策略中为类指定采用的流行为

classifier tcl-name behavior behavior-name

必选

退回系统视图

quit

-

进入二层以太网接口视图或者端口组视图

interface interface-type interface-number

port-group manual port-group-name

-

在指定接口的入方向上应用QoS策略

qos apply policy policy-name inbound

必选

 

1.4.2  配置内外层VLAN Tag中802.1p优先级的映射关系

用户可以通过配置QoS策略,改变802.1p优先级映射关系,从而为不同内层VLAN的802.1p优先级标记不同的外层VLAN的802.1p优先级。

表1-5 配置内外层VLAN Tag中802.1p优先级的映射关系

操作

命令

说明

进入系统视图

system-view

-

定义类并进入类视图

traffic classifier tcl-name [ operator { and | or } ]

必选

缺省情况下,流分类规则之间的逻辑关系为and,即数据包匹配全部规则才属于该类

定义匹配用户网络802.1p优先级的规则

if-match customer-dot1p 8021p-list

必选

请根据实际情况配置匹配规则

退回系统视图

quit

-

定义一个流行为并进入流行为视图

traffic behavior behavior-name

必选

配置标记报文的802.1p优先级

remark dot1p 8021p

必选

可根据实际情况配置其他流行为

退回系统视图

quit

-

定义策略并进入策略视图

qos policy policy-name

必选

在策略中为类指定采用的流行为

classifier tcl-name behavior behavior-name

必选

退回系统视图

quit

-

进入二层以太网接口视图或者端口组视图

interface interface-type interface-number

port-group manual port-group-name

-

应用QoS策略到指定接口

qos apply policy policy-name  { inbound | outbound }

必选

 

1.5  配置VLAN TagTPID

表1-6 配置QinQ报文外层VLAN Tag的TPID值

操作

命令

说明

进入系统视图

system-view

-

进入相应视图

进入二层以太网接口或二层聚合接口视图

interface interface-type interface-number

二者必选其一

进入端口组视图

port-group manual port-group-name

配置端口添加外层VLAN Tag时采用的TPID值

qinq ethernet-type hex-value

可选

缺省情况下,端口添加外层Tag时采用的TPID值为0x8100

 

注意

·     配置qinq ethernet-type命令的同时,需要在连接用户网络侧的端口上使能qinq enable命令。建议在设备的同一块单板上配置qinq ethernet-type命令和qinq enable命令。

·     QinQ报文的TPID值可调功能应在运营商网络中的设备上进行配置,并且应配置在连接运营商网络侧的端口上。

·     对于同一块单板,除了支持缺省值外,只能支持其他一个以太网协议类型(TPID)值。

 

1.6  QinQ典型配置举例

说明

缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP。

 

1.6.1  基本QinQ典型配置举例

1. 组网需求

·     公司A的两个分支机构Site 1和Site 2通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 10~70;公司B的两个分支机构Site 3和Site 4也通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 30~90。

·     PE 1和PE 2为运营商网络的边缘设备,且二者通过TPID值为0x8200的第三方厂商设备进行连接。

·     通过配置,利用运营商提供的VLAN 100使公司A的两个分支机构之间实现互通,利用运营商提供的VLAN 200使公司B的两个分支机构之间实现互通。

2. 组网图

图1-4 基本QinQ应用组网图

 

3. 配置步骤

说明

您必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。

 

(1)     配置PE 1

·     配置端口GigabitEthernet4/0/1

# 配置端口为Trunk端口,且允许VLAN 100的报文通过。

<PE1> system-view

[PE1] interface GigabitEthernet 4/0/1

[PE1-GigabitEthernet4/0/1] port link-type trunk

[PE1-GigabitEthernet4/0/1] port trunk permit vlan 100

# 配置端口的缺省VLANVLAN 100

[PE1-GigabitEthernet4/0/1] port trunk pvid vlan 100

# 使能端口的基本QinQ功能。

[PE1-GigabitEthernet4/0/1] qinq enable

[PE1-GigabitEthernet4/0/1] quit

·     配置端口GigabitEthernet4/0/2

# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。

[PE1] interface GigabitEthernet 4/0/2

[PE1-GigabitEthernet4/0/2] port link-type trunk

[PE1-GigabitEthernet4/0/2] port trunk permit vlan 100 200

# 配置端口添加的外层VLAN Tag的TPID值为0x8200。

[PE1-GigabitEthernet4/0/2] qinq ethernet-type 8200

[PE1-GigabitEthernet4/0/2] quit

·     配置端口GigabitEthernet4/0/3

# 配置端口为Trunk端口,且允许VLAN 200的报文通过。

[PE1] interface GigabitEthernet 4/0/3

[PE1-GigabitEthernet4/0/3] port link-type trunk

[PE1-GigabitEthernet4/0/3] port trunk permit vlan 200

# 配置端口的缺省VLANVLAN 200

[PE1-GigabitEthernet4/0/3] port trunk pvid vlan 200

# 使能端口的基本QinQ功能。

[PE1-GigabitEthernet4/0/3] qinq enable

[PE1-GigabitEthernet4/0/3] quit

(2)     配置PE 2

·     配置端口GigabitEthernet4/0/1

# 配置端口为Trunk端口,且允许VLAN 200的报文通过。

<PE2> system-view

[PE2] interface GigabitEthernet 4/0/1

[PE2-GigabitEthernet4/0/1] port link-type trunk

[PE2-GigabitEthernet4/0/1] port trunk permit vlan 200

# 配置端口的缺省VLAN为VLAN 200。

[PE2-GigabitEthernet4/0/1] port trunk pvid vlan 200

# 使能端口的基本QinQ功能。

[PE2-GigabitEthernet4/0/1] qinq enable

[PE2-GigabitEthernet4/0/1] quit

·     配置端口GigabitEthernet4/0/2

# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。

[PE2] interface GigabitEthernet 4/0/2

[PE2-GigabitEthernet4/0/2] port link-type trunk

[PE2-GigabitEthernet4/0/2] port trunk permit vlan 100 200

# 配置端口添加的外层VLAN Tag的TPID值为0x8200。

[PE2-GigabitEthernet4/0/2] qinq ethernet-type 8200

[PE2-GigabitEthernet4/0/2] quit

·     配置端口GigabitEthernet4/0/3

# 配置端口为Trunk端口,且允许VLAN 100的报文通过。

[PE2] interface GigabitEthernet 4/0/3

[PE2-GigabitEthernet4/0/3] port link-type trunk

[PE2-GigabitEthernet4/0/3] port trunk permit vlan 100

# 配置端口的缺省VLANVLAN 100

[PE2-GigabitEthernet4/0/3] port trunk pvid vlan 100

# 使能端口的基本QinQ功能。

[PE2-GigabitEthernet4/0/3] qinq enable

[PE2-GigabitEthernet4/0/3] quit

(3)     配置第三方厂商设备

对于PE 1与PE 2之间的第三方厂商设备,其关键配置如下:在连通PE 1与PE 2的端口上,都允许VLAN 100和200的报文携带VLAN Tag通过。

1.6.2  灵活QinQ典型配置举例

1. 组网需求

·     Provider A、Provider B作为运营商网络(Operator Network)接入设备,连接用户网络(User Network)设备。

·     用户网络VLAN划分为VLAN 10和VLAN 20。

要求通过配置灵活QinQ实现:用户网络的报文添加外层VLAN Tag100后通过运营商网络。

2. 组网图

图1-5 灵活QinQ配置组网图

 

3. 配置步骤

(1)     配置Provider A

# 配置上行策略,给用户网络的报文添加外层VLAN Tag100。

<ProviderA> system-view

[ProviderA] traffic classifier nest operator or

[ProviderA-classifier-nest] if-match service-vlan-id 10 20

[ProviderA-classifier-nest] quit

[ProviderA] traffic behavior nest

[ProviderA-behavior-nest] nest top-most vlan-id 100

[ProviderA-behavior-nest] quit

[ProviderA] qos policy nest

[ProviderA-qospolicy-nest] classifier nest behavior nest

[ProviderA-qospolicy-nest] quit

# 配置端口GigabitEthernet4/0/1允许VLAN 100的报文不带Tag标签通过。

[ProviderA] intface GigabitEthernet 4/0/1

[ProviderA-GigabitEthernet4/0/1] port link-type hybrid

[ProviderA-GigabitEthernet4/0/1] port hybrid vlan 100 untagged

# 在端口GigabitEthernet4/0/1的入方向应用上行策略。

[ProviderA-GigabitEthernet4/0/1] qos apply policy nest inbound

[ProviderA-GigabitEthernet4/0/1] quit

# 配置端口GigabitEthernet4/0/2允许VLAN 100的报文通过。

[ProviderA] interface GigabitEthernet 4/0/2

[ProviderA-GigabitEthernet4/0/2] port link-type trunk

[ProviderA-GigabitEthernet4/0/2] port trunk permit vlan 100

(2)     配置Provider B

Provider B上的配置与Provider A相类似,请参考Provider A上的配置。

说明

由于用户网络的报文仅带有一层VLAN Tag,因此在定义匹配数据包的规则时,应指定if-match match-criteria命令的参数为service-vlan-id vlan-id-list(用于匹配报文的最外层VLAN ID),而不是customer-vlan-id vlan-id-list(用于匹配带有双层VLAN Tag报文的内层VLAN ID)。

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!