11-QinQ配置
本章节下载: 11-QinQ配置 (295.75 KB)
目 录
IEEE802.1Q中定义的VLAN Tag域中只有12个比特位用于表示VLAN ID,所以设备最多可以支持4094个VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。
设备提供的端口QinQ特性是一种简单、灵活的二层VPN技术,它通过在运营商网络边缘设备上为用户的私网报文封装外层VLAN Tag,使报文携带两层VLAN Tag穿越运营商的骨干网络(公网)。
在公网中,设备只根据外层VLAN Tag对报文进行转发,并将报文的源MAC地址表项学习到外层Tag所在VLAN的MAC地址表中,而用户的私网VLAN Tag在传输过程中将被当作报文中的数据部分来进行传输。
QinQ特性使得运营商可以用一个VLAN为含有多个VLAN的用户网络服务。如图1-1所示,用户网络A的私网VLAN为VLAN 1~10,用户网络B的私网VLAN为VLAN 1~20。运营商为用户网络A分配的VLAN为VLAN 3,为用户网络B分配的VLAN为VLAN 4。当用户网络A的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为3的VLAN Tag;当用户网络B的带VLAN Tag的报文进入运营商网络时,报文外面会被封装上一层VLAN ID为4的VLAN Tag。这样,不同用户网络的报文在公网传输时被完全分开,即使两个用户网络的VLAN范围存在重叠,在公网传输时也不会产生混淆。
图1-1 QinQ功能示意图
QinQ特性使网络最多可以提供4094X4094个VLAN,满足城域网对VLAN数量的需求,它主要解决了如下几个问题:
l 缓解日益紧缺的公网VLAN ID资源问题。
l 用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突。
l 为小型城域网或企业网提供一种较为简单的二层VPN解决方案。
QinQ报文在公网传输时带有双层VLAN Tag,内层VLAN Tag为用户私网VLAN Tag,外层VLAN Tag为运营商分配给用户的VLAN Tag,报文结构如图1-2所示。
图1-2 QinQ的报文结构
接口的MTU值默认为1500字节。当为报文加上外层VLAN Tag后,报文的长度会增加4个字节,建议用户适当增加运营商网络中各接口的MTU(Maximum Transmission Unit,最大传输单元)值,至少为1504字节。
QinQ可分为两种:基本QinQ和灵活QinQ。
(1) 基本QinQ
基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文打上本端口缺省VLAN的VLAN Tag。如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是不带VLAN Tag的报文,该报文就成为带有端口缺省VLAN Tag的报文。
(2) 灵活QinQ
灵活QinQ是对QinQ的一种更灵活的实现,它是基于端口与VLAN相结合的方式实现的。除了能实现所有基本QinQ的功能外,对于同一个端口接收的报文还可以根据不同的VLAN做不同的动作,可以实现以下功能:
l 为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag。
l 根据报文的原有内层VLAN的802.1p优先级标记外层VLAN报文的802.1p优先级。
l 可以在添加外层VLAN Tag的同时对内层用户VLAN ID进行修改。
目前,S3500-EA系列交换机只支持为具有不同内层VLAN ID的报文添加不同的外层VLAN Tag。
TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE802.1Q协议定义的以太网帧的VLAN Tag结构如图1-3所示。
设备可以根据TPID值来识别报文中是否携带对应的VLAN Tag:当端口收到报文时,根据配置的TPID值与报文中相应的字段进行比较,如果二者一致,则表示报文中携带相应的VLAN Tag。例如,配置VLAN Tag中携带的TPID值为0x9100,而报文中实际携带的TPID值为0x8100,此时,设备就会认为报文中不携带VLAN Tag。
另外,不同厂商的设备可能将QinQ报文外层VLAN Tag的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 |
集群 |
0x88A7 |
设备保留 |
0xFFFD/0xFFFE/0xFFFF |
表1-2 配置基本QinQ功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入端口视图或端口组视图 |
进入二层以太网端口或二层聚合端口视图 |
interface interface-type interface-number |
二者必选其一 进入二层以太网端口视图后,下面进行的配置只在当前端口生效;进入二层聚合端口视图后,下面进行的配置将在二层聚合端口及其所对应聚合组中的所有成员端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
开启端口的基本QinQ功能 |
qinq enable |
必选 缺省情况下,端口的基本QinQ功能关闭 |
l 基本QinQ功能应该在运营商网络边缘设备上连接用户网络的接口上进行配置。
l 不能在镜像反射口上配置基本QinQ功能,关于反射口的介绍请参见“接入分册”中的“端口镜像配置”。
基本QinQ功能添加的外层VLAN Tag是端口的缺省VLAN ID对应的VLAN Tag,灵活的QinQ特性可以根据不同的内层VLAN Tag添加不同的外层VLAN Tag。
如果在端口上同时配置了基本QinQ功能和灵活QinQ功能,满足灵活QinQ配置的报文将按灵活QinQ处理,不满足灵活QinQ配置的报文将按基本QinQ处理。
l 灵活QinQ功能应该在运营商网络边缘设备上连接用户网络的接口上进行配置。
l 不能在镜像反射口上配置灵活QinQ功能,关于反射口的介绍请参见“接入分册”中的“端口镜像配置”。
表1-3 配置外层VLAN Tag的添加策略
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入端口视图或端口组视图 |
进入二层以太网端口或二层聚合端口视图 |
interface interface-type interface-number |
二者必选其一 进入二层以太网端口视图后,下面进行的配置只在当前端口生效;进入二层聚合端口视图后,下面进行的配置将在二层聚合端口及其所对应聚合组中的所有成员端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
进入QinQ视图,并配置端口添加的外层VLAN Tag |
qinq vid vlan-id |
必选 |
|
配置添加该外层VLAN Tag的内层VLAN Tag |
raw-vlan-id inbound { all | vlan-id-list } |
必选 |
l 一个内层VLAN Tag只能对应一个外层VLAN Tag。如果用户想改变报文的外层VLAN Tag,需要先删除旧的外层VLAN Tag配置,然后再配置新的外层VLAN Tag。
l 缺省情况下,需要在配置灵活QinQ的端口上允许上行报文所属的VLAN(即用户网络的VLAN)通过,以保证端口能对报文进行正常接收和处理。网络管理者也可以通过关闭端口的“VLAN检查功能”来省去允许用户VLAN通过的配置,“VLAN检查功能”的相关介绍请参见1.5 配置内层VLAN检查功能。
在灵活QinQ的应用中,接收端口首先将报文的源MAC地址学习到报文内层VLAN的MAC地址表中,然后再封装外层Tag,交由上行端口进行发送;而当报文从上行端口返回时,交换机将从外层VLAN的MAC表中寻找对应的下行MAC表项,因此会造成由于无法找到出端口而在外层VLAN内采取广播发送的情况,大量占用带宽资源,而且产生安全隐患。
为避免以上情况,S3500-EA系列交换机提供了MAC地址同步功能。用户可以通过命令设置,将报文内层VLAN的MAC表项同步到外层VLAN的MAC表中,当数据从上行端口返回时,即可找到对应的出端口,采用单播来正常转发。
表1-4 配置MAC地址同步功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
配置MAC地址同步功能 |
mac-mirroring index src-vlan source-vlan-list dest-vlan destination-vlan-id |
必选 缺省情况下,没有开启MAC地址同步功能 |
mac-mirroring index src-vlan source-vlan-id dest-vlan destination-vlan-list |
l 不能修改已经存在的MAC地址同步配置,如需要修改,只能先删除原有配置,再创建新的MAC地址同步规则。
l 如果用户通过多次配置将同一个源VLAN的MAC地址表项同步到不同的目的VLAN,则最终的同步目的VLAN为以上配置中所有目的VLAN的集合;同样,如果用户将不同源VLAN的MAC表项通过多次配置同步到相同的目的VLAN中,则该目的VLAN将接收所有配置中源VLAN的MAC地址表项。
为增强系统的安全性,S3500-EA系列交换机提供了内层VLAN检查功能。当端口接收到需要封装外层Tag的报文时,将对报文的原有Tag进行检查,只有当接收端口允许报文原有的VLAN通过时,该报文才能正常被封装外层Tag,否则报文将被丢弃。
用户也可以根据实际组网情况选择关闭内层VLAN检查功能。
表1-5 配置MAC地址同步功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网端口视图 |
interface interface-type interface-number |
- |
关闭VLAN检查功能 |
vlan-check disable |
必选 缺省情况下,VLAN Tag检查功能开启 |
不能在镜像反射口上配置VLAN Tag中携带的TPID值,关于反射口的介绍请参见“接入分册”中的“端口镜像配置”。
表1-6 在端口下配置
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入端口视图或端口组视图 |
进入二层以太网端口或二层聚合端口视图 |
interface interface-type interface-number |
二者必选其一 进入二层以太网端口视图后,下面进行的配置只在当前端口生效;进入二层聚合端口视图后,下面进行的配置将在二层聚合端口及其所对应聚合组中的所有成员端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group manual port-group-name |
||
配置VLAN Tag中携带的TPID值 |
qinq ethernet-type hex-value |
可选 缺省情况下, VLAN Tag中携带的TPID值都为0x8100 |
l 公司A的两个分支机构Site 1和Site 2通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 10~70;公司B的两个分支机构Site 3和Site 4也通过运营商网络进行通信,该公司各业务使用的VLAN为VLAN 30~90。
l PE 1和PE 2为运营商网络的边缘设备,且二者通过TPID值为0x8200的第三方厂商设备进行连接。
l 通过配置,利用运营商提供的VLAN 100使公司A的两个分支机构之间实现互通,利用运营商提供的VLAN 200使公司B的两个分支机构之间实现互通。
图1-4 基本QinQ配置组网图
用户必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。
(1) 配置PE 1
l 配置端口Ethernet1/0/1
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 10~70的报文通过。
<PE1> system-view
[PE1] interface ethernet 1/0/1
[PE1-Ethernet1/0/1] port link-type trunk
[PE1-Ethernet1/0/1] port trunk permit vlan 100 10 to 70
# 配置端口的缺省VLAN为VLAN 100。
[PE1-Ethernet1/0/1] port trunk pvid vlan 100
# 使能端口的基本QinQ功能。
[PE1-Ethernet1/0/1] qinq enable
[PE1-Ethernet1/0/1] quit
l 配置端口Ethernet1/0/2
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE1] interface ethernet 1/0/2
[PE1-Ethernet1/0/2] port link-type trunk
[PE1-Ethernet1/0/2] port trunk permit vlan 100 200
# 配置端口添加的外层VLAN Tag的TPID值为0x8200。
[PE1-Ethernet1/0/2] quit
[PE1] qinq ethernet-type 8200
l 配置端口Ethernet1/0/3
# 配置端口为Trunk端口,且允许VLAN 200和VLAN 30~90的报文通过。
[PE1] interface ethernet 1/0/3
[PE1-Ethernet1/0/3] port link-type trunk
[PE1-Ethernet1/0/3] port trunk permit vlan 200 30 to 90
# 配置端口的缺省VLAN为VLAN 200。
[PE1-Ethernet1/0/3] port trunk pvid vlan 200
# 使能端口的基本QinQ功能。
[PE1-Ethernet1/0/3] qinq enable
[PE1-Ethernet1/0/3] quit
(2) 配置PE 2
l 配置端口Ethernet1/0/1
# 配置端口为Trunk端口,且允许VLAN 200和VLAN 30~90的报文通过。
<PE2> system-view
[PE2] interface ethernet 1/0/1
[PE2-Ethernet1/0/1] port link-type trunk
[PE2-Ethernet1/0/1] port trunk permit vlan 200 30 to 90
# 配置端口的缺省VLAN为VLAN 200。
[PE2-Ethernet1/0/1] port trunk pvid vlan 200
# 使能端口的基本QinQ功能。
[PE2-Ethernet1/0/1] qinq enable
[PE2-Ethernet1/0/1] quit
l 配置端口Ethernet1/0/2
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 200的报文通过。
[PE2] interface ethernet 1/0/2
[PE2-Ethernet1/0/2] port link-type trunk
[PE2-Ethernet1/0/2] port trunk permit vlan 100 200
# 配置端口添加的外层VLAN Tag的TPID值为0x8200。
[PE2-Ethernet1/0/2] quit
[PE2] qinq ethernet-type 8200
l 配置端口Ethernet1/0/3
# 配置端口为Trunk端口,且允许VLAN 100和VLAN 10~70的报文通过。
[PE2] interface ethernet 1/0/3
[PE2-Ethernet1/0/3] port link-type trunk
[PE2-Ethernet1/0/3] port trunk permit vlan 100 10 to 70
# 配置端口的缺省VLAN为VLAN 100。
[PE2-Ethernet1/0/3] port trunk pvid vlan 100
# 使能端口的基本QinQ功能。
[PE2-Ethernet1/0/3] qinq enable
[PE2-Ethernet1/0/3] quit
(3) 配置第三方厂商设备
对于PE 1与PE 2之间的第三方厂商设备,其关键配置如下:在连通PE 1与PE 2的端口上,都允许VLAN 100和200的报文携带VLAN Tag通过。
l 某公司的两个分支机构Site 1和Site 2通过运营商网络进行通信,该公司的语音和数据业务分别使用VLAN 10和VLAN 20加以区分。
l PE 1和PE 2为运营商网络的边缘设备。
l 通过配置,利用运营商提供的VLAN 100和VLAN 200分别使这两个分支机构间的语音和数据业务实现互通。
图1-5 灵活QinQ配置组网图
用户必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。
(1) 配置PE 1
l 配置端口Ethernet1/0/1
# 配置端口为Hybrid端口,且允许VLAN 10和20的报文带Tag通过、VLAN 100和200的报文不带Tag通过。
<PE1> system-view
[PE1] interface ethernet 1/0/1
[PE1-Ethernet1/0/1] port link-type hybrid
[PE1-Ethernet1/0/1] port hybrid vlan 10 20 tagged
[PE1-Ethernet1/0/1] port hybrid vlan 100 200 untagged
# 配置端口将来自VLAN 10的报文打上VLAN ID为100的外层VLAN Tag。
[PE1-Ethernet1/0/1] qinq vid 100
[PE1-Ethernet1/0/1-vid-100] raw-vlan-id inbound 10
[PE1-Ethernet1/0/1-vid-100] quit
# 配置端口将来自VLAN 20的报文打上VLAN ID为200的外层VLAN Tag。
[PE1-Ethernet1/0/1] qinq vid 200
[PE1-Ethernet1/0/1-vid-200] raw-vlan-id inbound 20
[PE1-Ethernet1/0/1-vid-200] quit
[PE1-Ethernet1/0/1] quit
l 配置端口Ethernet1/0/2
# 配置端口为Trunk端口,且允许VLAN 100和200的报文通过。
[PE1] interface ethernet 1/0/2
[PE1-Ethernet1/0/2] port link-type trunk
[PE1-Ethernet1/0/2] port trunk permit vlan 100 200
(2) 配置PE 2
l 配置端口Ethernet1/0/1
# 配置端口为Hybrid端口,且允许VLAN 10和20的报文带Tag通过、VLAN 100和200的报文不带Tag通过。
<PE2> system-view
[PE2] interface ethernet 1/0/1
[PE2-Ethernet1/0/1] port link-type hybrid
[PE2-Ethernet1/0/1] port hybrid vlan 10 20 tagged
[PE2-Ethernet1/0/1] port hybrid vlan 100 200 untagged
# 配置端口将来自VLAN 10的报文打上VLAN ID为100的外层VLAN Tag。
[PE2-Ethernet1/0/1] qinq vid 100
[PE2-Ethernet1/0/1-vid-100] raw-vlan-id inbound 10
[PE2-Ethernet1/0/1-vid-100] quit
# 配置端口将来自VLAN 20的报文打上VLAN ID为200的外层VLAN Tag。
[PE2-Ethernet1/0/1] qinq vid 200
[PE2-Ethernet1/0/1-vid-200] raw-vlan-id inbound 20
[PE2-Ethernet1/0/1-vid-200] quit
[PE2-Ethernet1/0/1] quit
l 配置端口Ethernet1/0/2
# 配置端口为Trunk端口,且允许VLAN 100和200的报文通过。
[PE2] interface ethernet 1/0/2
[PE2-Ethernet1/0/2] port link-type trunk
[PE2-Ethernet1/0/2] port trunk permit vlan 100 200
(3) 配置第三方厂商设备
对于PE 1与PE 2之间的第三方厂商设备,其关键配置如下:在连通PE 1与PE 2的端口上,都允许VLAN 100和200的报文携带VLAN Tag通过。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!