08-QinQ配置
本章节下载: 08-QinQ配置 (290.65 KB)
下表列出了本章所包含的内容。
如果您需要…… |
请阅读…… |
了解QinQ的基本原理和概念 |
|
了解QinQ的配置任务及配置过程 |
|
了解QinQ的典型配置 |
配置举例1:基于流分类的Nested VLAN配置过程举例 配置举例2:端口的QinQ报文TPID值可调功能配置过程举例 配置举例3:VLAN-VPN Tunnel典型配置举例 |
QinQ是指将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网)。在公网中报文只根据外层VLAN Tag(即公网VLAN Tag)传播,用户的私网VLAN Tag被屏蔽。
单层VLAN Tag、双层VLAN Tag的报文结构如下所示:
图1-1 单/双层VLAN Tag报文结构
相对基于MPLS的二层VPN,QinQ具有如下特点:
l 为用户提供了一种更为简单的二层VPN隧道。
l 不需要信令协议的支持,可以通过纯静态配置实现。
由于QinQ的实现是基于802.1Q协议中的Trunk端口概念,要求隧道上的设备都必须支持802.1Q协议,所以QinQ只适用于小型的、以三层交换机为骨干的企业网或小规模的城域网。
QinQ主要可以解决如下几个问题:
l 缓解日益紧缺的公网VLAN ID资源问题。
l 用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突。
l 为小型城域网或企业网提供一种较为简单的二层VPN解决方案。
S9500系列路由交换机通过以下两种方式实现QinQ:
(1) 开启端口的VLAN VPN特性功能
开启端口的VLAN VPN功能后,当该端口接收到报文,无论报文是否带有VLAN Tag,交换机都会为该报文打上本端口缺省VLAN的VLAN Tag。这样,如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是Untagged的报文,该报文就成为带有端口缺省VLAN Tag的报文。
(2) 配置基于流分类的Nested VLAN
基于流分类的Nested VLAN,即灵活QinQ,是对QinQ的一种更灵活的实现。用户可以对端口下匹配特定ACL流规则的报文进行如下操作:
l 设置报文的外层VLAN Tag
l 修改报文的外层VLAN Tag
TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE 802.1Q协议定义的以太网帧的Tag报文结构如下:
图1-2 以太网帧的VLAN Tag报文结构
S9500系列交换机缺省采用协议规定的TPID值(0x8100)。某些厂商的设备将QinQ报文外层Tag的TPID值设置为0x9100或0x9200。为了和这些设备兼容,S9500系列交换机提供了基于端口的QinQ报文TPID值可调功能。
用户可以将连接公网侧的端口设置为VLAN-VPN Uplink端口,这些端口的TPID值可以由用户自行配置。VLAN-VPN Uplink端口收到报文时会将报文外层VLAN Tag中的TPID值替换为用户设定值再进行发送,从而使发送到公网中的QinQ报文可以被其他厂商的设备识别。
l 端口的GVRP、STP或802.1x协议均未启动
l 端口所属的VLAN关闭了IGMP Snooping
l 端口所属的VLAN接口上未开启IGMP
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
开启端口的VLAN VPN特性 |
vlan-vpn enable |
缺省情况下,端口VLAN VPN特性是关闭的 |
显示系统中所有端口的VLAN VPN配置信息 |
display port vlan-vpn |
显示信息包括:当前的TPID值、VLAN-VPN端口信息、VLAN-VPN Uplink端口信息 |
注意:
l 如果某端口的GVRP、STP、NTP、802.1x、RRPP协议中的任一个已经启动,则不允许用户开启端口的VLAN VPN特性。
l 如果端口所属的VLAN已经使能了IGMP Snooping或者端口所属的VLAN接口下使能了IGMP,则不允许开启端口的VLAN VPN特性。反之亦然。
l 使能了VLAN VPN的端口如果要加入VLAN,此VLAN上不能开启IGMP Snooping,其VLAN接口也不能开启IGMP。
l VLAN内如果有端口使能了VLAN VPN,则不允许删除此VLAN。
l 配置QinQ功能后则已经配置的ACL可能会失效。
l 要引用的访问控制列表和子规则已经定义
l nested-vlanid指定的VLAN已经存在
配置步骤 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
interface interface-type interface-number或port-group index |
- |
|
对匹配ACL流规则的报文设置外层VLAN Tag |
下发三层流分类规则的命令形式 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] nested-vlan nested-vlanid [ interface interface-type interface-number destination-vlan [ l2-vpn ] | link-aggregation group groupid destination-vlan | smart-link group groupid destination-vlan ] |
Nested-VLAN必须是已存在的VLAN,否则报文将因找不到出口而被丢弃 |
同时下发二层和三层流分类规则的命令形式 |
traffic-redirect inbound ip-group { acl-number | acl-name } rule rule link-group { acl-number | acl-name } [ rule rule ] nested-vlan nested-vlanid [ interface interface-type interface-number destination-vlan [ l2-vpn ] | link-aggregation group groupid destination-vlan | smart-link group groupid destination-vlan ] 或traffic-redirect inbound ip-group { acl-number | acl-name } link-group { acl-number | acl-name } rule rule nested-vlan nested-vlanid [ interface interface-type interface-number destination-vlan [ l2-vpn ] | link-aggregation group groupid destination-vlan | smart-link group groupid destination-vlan ] |
||
下发二层流分类规则的命令形式 |
traffic-redirect inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] nested-vlan nested-vlanid [ interface interface-type interface-number destination-vlan [ l2-vpn ] | link-aggregation group groupid destination-vlan | smart-link group groupid destination-vlan ] |
||
对匹配ACL流规则的报文修改外层VLAN Tag |
下发三层流分类规则的命令形式 |
traffic-redirect inbound ip-group { acl-number | acl-name } [ rule rule [ system-index index ] ] modified-vlan modified-vlanid |
该命令修改的是报文最外层的VLAN Tag |
同时下发二层和三层流分类规则的命令形式 |
traffic-redirect inbound ip-group { acl-number | acl-name } rule rule link-group { acl-number | acl-name } [ rule rule ] modified-vlan modified-vlanid 或traffic-redirect inbound ip-group { acl-number | acl-name } link-group { acl-number | acl-name } rule rule modified-vlan modified-vlanid |
||
下发二层流分类规则的命令形式 |
traffic-redirect inbound link-group { acl-number | acl-name } [ rule rule [ system-index index ] ] modified-vlan modified-vlanid |
注意:
目前只有后缀为DB或者DC的单板支持traffic-redirect { nested-vlan | modified-vlan }命令。
由于VLAN-VPN Uplink端口通常与VLAN VPN端口配合使用,因此配置前请确认,要使能VLAN-VPN Uplink端口满足条件:端口上未使能VLAN VPN。
表1-3 配置QinQ报文的TPID值可调功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
设置端口采用的TPID值 |
vlan-vpn tpid value |
value取值范围是1~0xFFFF,缺省值为0x8100 请不要设置可能引起冲突的TPID值,比如已知的协议类型 TPID值只能在VLAN-VPN Uplink出口被更改 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
将端口设置为VLAN-VPN Uplink端口 |
vlan-vpn uplink enable |
缺省情况下,端口的VLAN-VPN Uplink特性是关闭的 |
显示系统中所有端口的VLAN VPN配置信息 |
display port vlan-vpn |
显示信息包括:当前的TPID值、VLAN-VPN端口信息、VLAN-VPN Uplink端口信息 |
注意:
l LSB1XP4以及LSB1TGX1型单板目前不支持该命令。
l vlan-vpn uplink enable命令和vlan-vpn enable命令互斥,即端口执行了vlan-vpn enable就不能执行vlan-vpn uplink enable,反之亦然。
VLAN-VPN Tunnel功能主要是实现在不同地域的用户网络,通过运营商网络内指定的VLAN VPN进行BPDU报文的透明传输。
如图1-3中上面为运营商网络,下面为用户网络。其中运营商网络包括报文输入输出设备,用户网络分别为用户网络A和用户网络B两个部分。通过在运营商网络两端报文输入输出设备上的配置,在一端将BPDU报文的目的MAC地址格式替换成为特殊格式的MAC地址,在另一端还原为目的MAC地址格式,从而使报文在运营商网络中实现了透明传输。
图1-3 VLAN-VPN Tunnel网络层次示意图
VLAN-VPN Tunnel的主要配置包括:
表1-4 VLAN-VPN Tunnel的配置
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
启动系统VLAN-VPN Tunnel功能 |
vlan-vpn tunnel |
必选 |
进入以太网端口视图 |
interface interface-type interface-number |
- |
启动以太网端口VLAN VPN功能 |
vlan-vpn enable |
必选 端口VLAN VPN特性是关闭的 |
在完成QinQ配置后,在任意视图下执行display命令可以显示配置后QinQ的运行情况,通过查看显示信息验证配置的效果;在任意视图下执行traceuser命令,用来监视指定端口入方向的特定用户报文,如果有符合条件的报文,屏幕终端上会有显示。
表1-5 QinQ的显示与维护
操作 |
命令 |
显示ATM主端口或者子接口下使能了VLAN VPN的PVC配置信息 |
display atm vlan-vpn [ interface atm interface-number [ pvc { pvc-name | vpi/vci } ] ] |
显示VLAN VPN的相关配置信息 |
display port vlan-vpn |
监视指定端口入方向的特定用户报文 |
traceuser interface interface-type interface-number [ mac mac-address ] [ vlan vlan-id ] [ number number ] |
l 如图1-4所示的组网环境中,S9512上主要包括两种业务:一种是普通用户上网,另一种是组播视频点播,灵活QinQ根据DSLAM(Digital Subscriber Line Access Multiplexer,数字用户线接入复接器)上送报文的Tag标记,在外层封装不同的Tag来区分这两种业务。
l VLAN 100~512属于家庭上网用户,对于这个VLAN范围内的报文,S9512需要再封装一层VLAN 1000的外层Tag,交给BRAS处理。
l VLAN 600是组播VLAN,S9512如果收到带VLAN 600的Tag报文,则不作任何处理。
图1-4 灵活QinQ配置组网图
# 在VLAN 600使能igmp-snooping。
<H3C> system-view
[H3C] vlan 600
[H3C-vlan600] igmp-snooping enable
[H3C-vlan600] quit
# 将下行端口GigabitEthernet4/1/2配置为Hybrid端口,配置VLAN 1000为Untagged,VLAN 600为Tagged。
[H3C] interface GigabitEthernet4/1/2
[H3C-GigabitEthernet4/1/2] port link-type hybrid
[H3C-GigabitEthernet4/1/2] port hybrid vlan 600 tagged
[H3C-GigabitEthernet4/1/2] port hybrid vlan 1000 untagged
[H3C-GigabitEthernet4/1/2] quit
# 配置流模板。
[H3C] flow-template user-defined slot 4 s-tag-vlan
[H3C-GigabitEthernet4/1/2] flow-template user-defined
[H3C-GigabitEthernet4/1/2] quit
# 配置灵活QinQ,对于Tag是100~512的报文,从上行端口GigabitEthernet4/1/1出去时打上1000的外层Tag。
[H3C] acl number 4000
[H3C-acl-link-4000] rule 0 permit s-tag-vlan 100 to 512
[H3C-GigabitEthernet4/1/2] traffic-redirect inbound link-group 4000 rule 0 nested-vlan 1000
[H3C-GigabitEthernet4/1/2] vlan filter disable
[H3C-GigabitEthernet4/1/2] quit
# 配置上行端口GigabitEthernet4/1/1为Trunk端口,允许VLAN 1000和VLAN 600通过。
[H3C] interface GigabitEthernet4/1/1
[H3C-GigabitEthernet4/1/1] port link-type trunk
[H3C-GigabitEthernet4/1/1] port trunk permit vlan 600 1000
l Switch A、Switch C为S9500路由交换机,Switch B为其他厂商的交换机(假设采用的TPID值为0x9100);
l Switch A和Switch C的端口GigabitEthernet2/1/1分别与两侧的用户网络相连;
l Switch B只允许VLAN 10的报文通过;
l 要求Switch A和Switch C所连接的用户网络之间能够互通非VLAN 10的报文。
图1-5 配置端口的QinQ报文TPID值可调
(1) 配置Switch A、Switch C(由于Switch A和Switch C的配置完全相同,以下仅以Switch A上的配置为例)
# 配置Switch A上VLAN-VPN Uplink端口的TPID值为0x9100。
<SwitchA> system-view
System View: return to User View with Ctrl+Z.
[SwitchA] vlan-vpn tpid 9100
[SwitchA] vlan 10
[SwitchA-vlan10] quit
# 配置Switch A的端口GigabitEthernet2/1/2为VLAN-VPN Uplink端口,端口属于VLAN 10。
[SwitchA] interface GigabitEthernet2/1/2
[SwitchA-GigabitEthernet2/1/2] port link-type trunk
[SwitchA-GigabitEthernet2/1/2] port trunk permit vlan 10
[SwitchA-GigabitEthernet2/1/2] vlan-vpn uplink enable
# 配置Switch A的端口GigabitEthernet2/1/1为VLAN VPN端口,端口属于VLAN 10。
[SwitchA] interface GigabitEthernet2/1/1
[SwitchA-GigabitEthernet2/1/1] port access vlan 10
[SwitchA-GigabitEthernet2/1/1] vlan-vpn enable
[SwitchA-GigabitEthernet2/1/1] quit
(2) 配置Switch B
由于Switch B为其他厂商的设备,此处只介绍一下配置要求:将Switch B的端口GigabitEthernet3/1/1和GigabitEthernet3/1/3配置为Trunk端口,且都属于VLAN 10。
& 说明:
报文从Switch A=>Switch C的转发过程如下:
l 来自用户私网侧的报文进入Switch A的端口GigabitEthernet2/1/1后,由于此端口为VLAN VPN端口,报文外层被打上了端口缺省的VLAN Tag(VLAN ID为10),然后转发至GigabitEthernet2/1/2。
l 由于GigabitEthernet2/1/2为VLAN-VPN Uplink端口,交换机将报文外层VLAN Tag中的TPID值改为用户设定值0x9100,然后发送到公网网络。
l 报文进入公网中Switch B的端口GigabitEthernet3/1/2。Switch B将该报文在VLAN 10内转发,发送到端口GigabitEthernet3/1/1。
l 报文从Switch B的端口GigabitEthernet3/1/1发送到另一侧的用户网络,进入Switch C的端口GigabitEthernet2/1/2。Switch C将该报文在VLAN 10内转发,发送至端口GigabitEthernet2/1/1。由于端口GigabitEthernet2/1/1为Access端口,交换机去掉报文的外层VLAN Tag,恢复原来的报文。
反方向的转发过程类似。
配置完成以后,如果Switch A和Switch C所连接的用户网络彼此能够收到对端发来的数据包,则说明配置成功。
l S9500系列交换机作为运营商网络接入设备,即组网图中的Switch C、Switch D;
l S2000系列交换机为用户网络接入设备,即组网图中的Switch A、Switch B;
l Switch C与Switch D设备之间通过Trunk端口实现连接,通过配置使能VLAN-VPN Tunnel功能,从而使用户网络与运营商网络之间实现透明传输。
图1-6 VLAN-VPN Tunnel配置示意图
# 启动MSTP。
<H3C> system-view
[H3C] stp enable
# 将端口设置为Trunk端口并且允许VLAN 10通过。
[H3C] vlan 10
[H3C-Ethernet0/1] port link-type trunk
[H3C-Ethernet0/1] port trunk permit vlan 10
(2) Switch B的配置
# 启动MSTP。
<H3C> system-view
[H3C] stp enable
# 将端口设置为Trunk 端口并且容许VLAN 10通过。
[H3C] vlan 10
[H3C-Ethernet0/1] port link-type trunk
[H3C-Ethernet0/1] port trunk permit vlan 10
(3) Switch C的配置
# 启动MSTP。
<H3C> system-view
[H3C] stp enable
# 启动VLAN-VPN Tunnel。
[H3C] vlan-vpn tunnel
# 将Ethernet4/1/1加入VLAN 20。
[H3C] vlan 20
[H3C-Vlan20] port Ethernet4/1/1
[H3C-Vlan20] quit
# 关闭Ethernet4/1/1的STP协议并打开VLAN-VPN。
[H3C] interface Ethernet4/1/1
[H3C-Ethernet4/1/1] stp disable
[H3C-Ethernet4/1/1] vlan-vpn enable
[H3C-Ethernet4/1/1] quit
# 将Ethernet4/1/3端口设置为Trunk端口,并把该端口加入到所有的VLAN。
[H3C] interface Ethernet4/1/3
[H3C-Ethernet4/1/3] port link-type trunk
[H3C-Ethernet4/1/3] port trunk permit vlan all
(4) Switch D的配置
# 启动MSTP。
<H3C> system-view
[H3C] stp enable
# 启动VLAN-VPN Tunnel。
[H3C] vlan-vpn tunnel
# 将Ethernet3/1/1加入VLAN 20。
[H3C] vlan 20
[H3C-Vlan20] port Ethernet3/1/1
[H3C-Vlan20] quit
# 关闭Ethernet3/1/1的STP协议并打开VLAN-VPN。
[H3C] interface Ethernet3/1/1
[H3C-Ethernet3/1/1] stp disable
[H3C-Ethernet3/1/1] vlan-vpn enable
[H3C-Ethernet3/1/1] quit
# 将Ethernet3/1/3端口设置为Trunk端口,并把该端口加入到所有的VLAN。
[H3C] interface Ethernet3/1/3
[H3C-Ethernet3/1/3] port link-type trunk
[H3C-Ethernet3/1/3] port trunk permit vlan all
注意:
l 使能VLAN-VPN Tunnel的设备上一定要启动STP协议;否则客户网络的BPDU进入交换机后,无法透传;
l 使能VLAN-VPN的端口要配置为Access端口;中间运营商网络要配置为Trunk链路;
l 在使能了DOT1X,GVRP,STP,NTDP,GMRP协议的端口上不能配置VLAN-VPN Tunnel。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!