06-QinQ配置
本章节下载: 06-QinQ配置 (308.4 KB)
QinQ是802.1Q in 802.1Q的简称,它是基于IEEE 802.1Q技术的一种二层隧道协议,通过将用户的私网报文封装上外层VLAN Tag,使其携带两层VLAN Tag穿越运营商的骨干网络(又称公网),从而为用户提供了一种比较简单的二层VPN隧道技术,也使运营商利用一个VLAN为包含多个VLAN的用户网络提供服务成为了可能。
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解决方案。
· 当运营商升级网络时,用户网络不必更改原有配置,使用户网络具有了较强的独立性。
在公网的传输过程中,设备只根据外层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-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值的相关配置,请参见“接口管理配置指导”中的“以太网接口”。
QinQ的实现方式可分为以下两种:
基本QinQ是基于端口方式实现的。当端口上配置了基本QinQ功能后,不论从该端口收到报文是否带有VLAN Tag,设备都会为该报文打上本端口缺省VLAN的Tag:
· 如果收到的是带有VLAN Tag的报文,该报文就成为带双Tag的报文;
· 如果收到的是不带VLAN Tag的报文,该报文就成为带有本端口缺省VLAN Tag的报文。
灵活QinQ是基于端口与VLAN相结合的方式实现的,它对QinQ的功能进行了扩展,是对QinQ的一种更灵活的实现。灵活QinQ除了能实现所有基本QinQ的功能外,对于从同一个端口收到的报文,还可以根据VLAN的不同进行不同的操作,包括:
· 根据报文内层VLAN的802.1p优先级标记外层VLAN的802.1p优先级。
通过使用灵活QinQ技术,在能够隔离运营商网络和用户网络的同时,又能够提供丰富的业务特性和更加灵活的组网能力。
如图1-3所示,是IEEE802.1Q协议定义的以太网帧的VLAN Tag结构,TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
有关TPID、Priority、CFI和VLAN ID字段的含义,请参见“二层技术-以太网交换配置指导”中的“VLAN”。
不同厂商的设备可能将QinQ报文外层VLAN Tag的TPID字段设为不同的值,为了和其他厂商的设备兼容,设备提供了QinQ报文的TPID值可调功能。用户通过配置TPID的值,使得发送到公网中的QinQ报文携带的TPID值与其他厂商相同,就可以实现与其他厂商的设备互通。
由于TPID字段在以太网报文中所处位置与不带VLAN Tag的报文中协议类型字段所处位置相同,为避免网络中报文转发和接收造成混乱,不允许用户将TPID值配置为表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配置任务简介
配置任务 |
说明 |
详细配置 |
|
配置基本QinQ功能 |
必选 |
||
配置灵活QinQ功能 |
配置添加外层VLAN Tag的策略 |
两者至少选其一 |
|
配置内外层VLAN Tag中802.1p优先级的映射关系 |
|||
配置VLAN Tag的TPID值 |
可选 |
表1-3 配置基本QinQ功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入接口视图或端口组视图 |
进入二层以太网接口或二层聚合接口视图 |
interface interface-type interface-number |
二者必选其一 |
进入端口组视图 |
port-group manual port-group-name |
||
使能端口的基本QinQ功能 |
qinq enable |
必选 缺省情况下,端口的基本QinQ功能处于关闭状态 |
基本QinQ功能应在运营商网络中与用户网络相连的设备上进行配置,并且应配置在连接用户网络侧的端口上。
有关QoS策略的详细介绍,请参见“ACL和QoS配置指导”中的“QoS”。
用户可以通过配置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 |
必选 |
用户可以通过配置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-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)值。
缺省情况下,以太网接口、VLAN接口及聚合接口处于DOWN状态。如果要对这些接口进行配置,请先使用undo shutdown命令使接口状态处于UP。
· 公司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的两个分支机构之间实现互通。
图1-4 基本QinQ应用组网图
您必须通过配置保证运营商网络中的设备之间允许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
# 配置端口的缺省VLAN为VLAN 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
# 配置端口的缺省VLAN为VLAN 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
# 配置端口的缺省VLAN为VLAN 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通过。
· Provider A、Provider B作为运营商网络(Operator Network)接入设备,连接用户网络(User Network)设备。
· 用户网络VLAN划分为VLAN 10和VLAN 20。
要求通过配置灵活QinQ实现:用户网络的报文添加外层VLAN Tag100后通过运营商网络。
图1-5 灵活QinQ配置组网图
(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保留在没有任何通知或提示的情况下对资料内容进行修改的权利!