05-QINQ-BPDU_TUNNEL操作
本章节下载 (305.18 KB)
目 录
IEEE 802.1Q中定义的VLAN Tag域只有12个比特用于表示VLAN ID,所以设备最多可以支持4094个VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。
设备提供的端口QinQ特性,可以给报文打两层VLAN Tag,内层VLAN Tag为用户私网VLAN Tag,外层VLAN Tag为运营商分配给用户的VLAN Tag。运营商设备根据外层VLAN Tag对报文进行转发,并将源MAC地址表项学习到外层Tag所在VLAN的MAC地址表中,而用户的私网VLAN Tag在传输过程中将被屏蔽。
QinQ的报文结构如图1-1所示。QinQ特性使设备最多可以提供4094X4094个VLAN,满足城域网对VLAN数量的需求。
QinQ主要可以解决如下几个问题:
l 缓解日益紧缺的公网VLAN ID资源问题。
l 用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突。
l 为小型城域网或企业网提供一种较为简单的二层VPN解决方案。
& 说明:
QinQ功能只需在运营商网络进行配置,用户网络不需进行配置。
QinQ可分为两种:基本QinQ和灵活QinQ。
(1) 基本QinQ
基本QinQ是基于端口方式实现的。开启端口的基本QinQ功能后,当该端口接收到报文,设备会为该报文封装本端口缺省VLAN的VLAN Tag。如果接收到的是已经带有VLAN Tag的报文,该报文就成为双Tag的报文;如果接收到的是不带VLAN Tag的报文,该报文就成为带有端口缺省VLAN Tag的报文。
(2) 灵活QinQ
灵活QinQ是对QinQ的一种更灵活的实现,它是基于端口与VLAN结合的方式实现的。除了能实现所有基本QinQ的功能外,灵活QinQ还能够对同一个端口收到的报文根据不同的VLAN Tag做不同的动作,为报文的不同内层VLAN ID封装不同的外层VLAN ID。
& 说明:
在同时配置了基本QinQ和灵活QinQ功能的情况下,S5500-SI交换机将对接收的报文首先匹配灵活QinQ的Tag映射规则,满足条件的将按灵活QinQ处理,不满足条件的根据基本QinQ的配置封装外层Tag。
TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE 802.1Q协议定义的以太网帧的Tag报文结构如图1-2所示。
不同厂商的设备可能将QinQ报文外层Tag的TPID字段设为不同的值,用户可以设置和修改TPID值。
正常情况下,端口收到报文时,首先判断该报文的原始TPID,如果为0x8100,则交换机认为该报文携带有VLAN Tag并进行相应处理;如果TPID为其他数值,则交换机认为该报文不携带VLAN Tag。
在配置了QinQ报文TPID值可调功能后,交换机会将报文外层VLAN Tag中的TPID值替换为用户设定值再进行发送,从而使发送到公网中的QinQ报文携带特定的协议类型,用于与其他厂商的设备互通。
表1-1 配置基本QinQ功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启以太网端口的QinQ功能 |
qinq enable |
必选 缺省情况下,端口的QinQ功能关闭 |
基本QinQ功能添加的外层VLAN Tag是端口的缺省VLAN ID对应的VLAN Tag,灵活QinQ特性可以根据不同的内层VLAN Tag添加不同的外层VLAN Tag。
如果某端口收到的报文不匹配灵活QinQ的Tag映射规则,在启用基本QinQ功能的情况下将为报文封装端口缺省VLAN的外层VLAN Tag,在未启用基本QinQ功能的情况下将丢弃报文。
表1-2 配置灵活QinQ功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
配置需要封装的外层Tag,并进入QinQ视图 |
qinq vid vlan-id |
必选 缺省情况下,没有指定灵活QinQ需要封装的外层Tag |
|
配置对指定内层标签的报文添加外层VLAN Tag |
raw-vlan-id inbound { all | vlan-id-list } |
必选 缺省情况下,没有配置对指定内层标签的报文添加外层VLAN Tag |
注意:
l 灵活QinQ功能可以在运营商与客户相连的Access、Trunk、Hybrid端口设置。
l 一个内层VLAN Tag只能对应一个外层VLAN Tag。如果用户想改变报文的外层VLAN Tag,需要先删除旧的外层VLAN Tag配置,然后再配置新的外层VLAN Tag。
l 当使用命令qinq vid来配置灵活QinQ时,为了保证报文的正确传输,需要在本交换机的出端口配置去掉Tag的操作或在与本交换机相连接的其他交换机对应的端口上配置允许带有Tag的报文通过。
表1-3 配置QinQ报文TPID值可调功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置全局的QinQ以太网协议类型值 |
qinq ethernet-type hex-value |
可选 缺省情况下,全局的QinQ以太网协议类型值为0x8100 |
注意:
QinQ报文的TPID值可调功能应在运营商网络中的设备上进行配置。
l Provider1、Provider2作为运营商网络接入设备。
l Customer1、Customer2、Customer3为用户网络接入设备。
l Provider1、Provider2之间通过配置好的Trunk端口实现连接,可以允许运营商网络的VLAN1000和VLAN2000的报文通过。
l Customer1能够发出VLAN10和VLAN20的报文,要求Customer1和Customer2之间可以互通VLAN10的报文,Customer1和Customer3之间可以互通VLAN20的报文。
l Provider1的端口GigabitEthernet1/0/2、Provider2的端口GigabitEthernet1/0/3配置了QinQ功能的以太网协议类型为0x8200。
& 说明:
用户必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。
(1) Provider1的配置
# 进入系统视图。
<Sysname> system-view
# 配置GigabitEthernet1/0/1端口为Hybrid端口,允许VLAN1000和VLAN2000的报文通过,并在发出时不携带外层VLAN Tag。
[Sysname] interface GigabitEthernet 1/0/1
[Sysname-GigabitEthernet1/0/1] port link-type hybrid
[Sysname-GigabitEthernet1/0/1] port hybrid vlan 1000 2000 untagged
# 将来自VLAN10的报文打上VLAN ID为1000的外层Tag。
[Sysname-GigabitEthernet1/0/1] qinq vid 1000
[Sysname-GigabitEthernet1/0/1-vid-1000] raw-vlan-id inbound 10
[Sysname-GigabitEthernet1/0/1-vid-1000] quit
# 将来自VLAN20的报文打上VLAN ID为2000的外层Tag。
[Sysname-GigabitEthernet1/0/1] qinq vid 2000
[Sysname-GigabitEthernet1/0/1-vid-2000] raw-vlan-id inbound 20
[Sysname-GigabitEthernet1/0/1-vid-2000] quit
[Sysname-GigabitEthernet1/0/1] quit
# 配置GigabitEthernet1/0/2端口为Trunk端口,且允许VLAN1000和VLAN2000通过。
[Sysname] interface GigabitEthernet 1/0/2
[Sysname-GigabitEthernet1/0/2] port link-type trunk
[Sysname-GigabitEthernet1/0/2] port trunk permit vlan 1000 2000
[Sysname-GigabitEthernet1/0/2] quit
# 配置QinQ功能的以太网协议类型为0x8200。
[Sysname] qinq ethernet-type 8200
# 配置GigabitEthernet1/0/4为Hybrid端口,可以发出VLAN1000的报文,且在发出时不携带外层VLAN Tag。
[Sysname] interface GigabitEthernet 1/0/4
[Sysname-GigabitEthernet1/0/4] port link hybrid
[Sysname-GigabitEthernet1/0/4] port hybrid vlan 1000 untagged
# 将来自VLAN10的报文打上VLAN ID为1000的外层Tag。
[Sysname-GigabitEthernet1/0/4] qinq vid 1000
[Sysname-GigabitEthernet1/0/4-vid-1000] raw-vlan-id inbound 10
[Sysname-GigabitEthernet1/0/4-vid-1000] quit
(2) Provider2的配置
# 配置GigabitEthernet1/0/3端口为Trunk端口,且允许VLAN1000和VLAN2000通过。
<Sysname> system-view
[Sysname] interface GigabitEthernet 1/0/3
[Sysname-GigabitEthernet1/0/3] port link-type trunk
[Sysname-GigabitEthernet1/0/3] port trunk permit vlan 1000 2000
[Sysname-GigabitEthernet1/0/3] quit
# 配置QinQ功能的以太网协议类型为0x8200。
[Sysname] qinq ethernet-type 8200
# 配置GigabitEthernet1/0/5为Hybrid端口,可以发出VLAN2000的报文,且在发出时不携带外层VLAN Tag。
[Sysname] interface GigabitEthernet 1/0/5
[Sysname-GigabitEthernet1/0/5] port link hybrid
[Sysname-GigabitEthernet1/0/5] port hybrid vlan 2000 untagged
# 将来自VLAN20的报文打上VLAN ID为2000的外层Tag。
[Sysname-GigabitEthernet1/0/4] qinq vid 2000
[Sysname-GigabitEthernet1/0/4-vid-2000] raw-vlan-id inbound 20
[Sysname-GigabitEthernet1/0/4-vid-2000] quit
经过上述配置,来自Customer1的VLAN10和VLAN20的报文在Provider1和Provider2的Trunk端口传输时带有两层Tag:
l 来自VLAN10的报文:外层Tag VLAN ID为1000,外层Tag携带的以太网协议类型为0x8200。
l 来自VLAN20的报文:外层Tag VLAN ID为2000,外层Tag携带的以太网协议类型为0x8200。
使用MSTP使组网图中不同VLAN的报文按照不同的生成树转发。MSTP具体配置为:
l 网络中所有设备属于同一个MST域。
l VLAN10的报文沿着实例1转发,VLAN30沿着实例3转发,VLAN40沿着实例4转发,VLAN20沿着实例0转发。
l Switch A和Switch B为汇聚层设备,Switch C和Switch D为接入层设备。VLAN10、VLAN30在汇聚层设备终结,VLAN40在接入层设备终结,因此配置实例1和实例3的根桥分别为Switch A和Switch B,实例4的根桥为Switch C。
QinQ具体配置为:
l Switch C的端口GigabitEthernet1/0/4属于VLAN10和VLAN20且打开了QinQ功能,将来自VLAN10的报文打上VLAN ID为1000的外层Tag,将来自VLAN20的报文打上VLAN ID为2000的外层Tag。
l 在端口GigabitEthernet1/0/2上将Tag为1000和2000的报文去掉外层Tag。
图1-4 QinQ与MSTP结合组网图
& 说明:
图中链路上的说明“Permit”表示该链路允许哪些VLAN的报文通过。
(1) 配置Switch C
# 配置MST域。
<Sysname> system-view
[Sysname] stp region-configuration
[Sysname-mst-region] region-name example
[Sysname-mst-region] instance 1 vlan 10
[Sysname-mst-region] instance 3 vlan 30
[Sysname-mst-region] instance 4 vlan 40
[Sysname-mst-region] revision-level 0
# 手工激活MST域的配置。
[Sysname-mst-region] active region-configuration
# 定义Switch C为实例4的根桥。
[Sysname] stp instance 4 root primary
# 显示已经生效的MST域的配置信息。
[Sysname] display stp region-configuration
Oper configuration
Format selector :0
Region name :example
Revision level :0
Instance Vlans Mapped
0 1 to 9, 11 to 29, 31 to 39, 41 to 4094
1 10
3 30
4 40
(2) 配置Switch C的端口GigabitEthernet1/0/2的QinQ功能。
# 进入系统视图。
<Sysname> system-view
[Sysname] vlan 10
[Sysname-vlan10] quit
[Sysname] vlan 20
[Sysname-vlan20] quit
# 进入GigabitEthernet1/0/4接口视图。
[Sysname] interface GigabitEthernet1/0/4
[Sysname-GigabitEthernet1/0/4] port link-type trunk
[Sysname-GigabitEthernet1/0/4] port trunk permit vlan 10 20 1000 2000
# 将来自VLAN10的报文打上VLAN ID为1000的外层Tag。
[Sysname-GigabitEthernet1/0/4] qinq vid 1000
[Sysname-GigabitEthernet1/0/4-vid-1000] raw-vlan-id inbound 10
[Sysname-GigabitEthernet1/0/4-vid-1000] quit
# 将来自VLAN20的报文打上VLAN ID为2000的外层Tag。
[Sysname-GigabitEthernet1/0/4] qinq vid 2000
[Sysname-GigabitEthernet1/0/4-vid-2000] raw-vlan-id inbound 20
[Sysname-GigabitEthernet1/0/4-vid-2000] quit
[Sysname-GigabitEthernet1/0/4] quit
# 配置GigabitEthernet1/0/2端口为Hybrid端口,将Tag为1000和2000的报文去掉外层Tag。
[Sysname] interface GigabitEthernet1/0/2
[Sysname-GigabitEthernet1/0/2] port link-type hybrid
[Sysname-GigabitEthernet1/0/2] port hybrid vlan 1000 2000 untagged
注意:
l 当使用命令qinq vid来配置灵活QinQ时,为了保证报文的正确传输,需要在本交换机的出端口配置去掉Tag的操作或在与本交换机相连接的其他交换机对应的端口上配置允许带有Tag的报文通过。
l 本举例采用在报文的出端口去掉Tag的方式。
在QinQ网络中,由于运营商网络对客户透明,当客户和运营商网络之间的连接有冗余时必然导致环路问题。这一问题就要求运营商网络能透明传输STP/RSTP/MSTP报文,这样,客户可以跨越运营商网络构建自己的STP树,切断冗余链路。
STP/RSTP/MSTP协议通过在设备之间传递BPDU报文(Bridge Protocol Data Unit,桥协议数据单元)来确定网络的拓扑结构。要实现BPDU报文在运营商网络中透传,必须达到以下要求:
l 同一个客户网络的所有分支必须都能收到自己的BPDU报文。
l 不同客户网络中的BPDU报文必须隔离,不能互相影响。
这两个问题可以通过下列方法解决:
l 在端口收到BPDU报文时,给BPDU报文打上运营商分配给客户的VLAN Tag。这样,在运营商网络中,BPDU报文可以按正常的数据报文进行转发。
l 为了避免客户BPDU报文被运营商网络设备处理,需要给封装的BPDU报文赋一个特殊的组播MAC地址作为报文的目的MAC地址,同时给BPDU报文添加运营商网络的VLAN Tag。这样,一方面可以保证BPDU报文能够在运营商网络的VLAN中转发,另一方面,利用特殊的组播MAC地址把BPDU TUNNEL的报文标识出来,当BPDU TUNNEL报文流出运营商网络时,外层的VLAN Tag被去掉,同时目的MAC地址被还原为原来的BPDU报文的目的MAC地址。
BPDU TUNNEL功能可以使在不同地域的用户网络,通过运营商网络内使能了QinQ功能的设备进行BPDU报文的透明传输。
对STP协议的BPDU报文进行透明传输后,分布在不同地区的用户网络能够进行统一的生成树计算,并且用户网络和运营商网络拥有各自的生成树,互不干扰。
图2-1中,上部为运营商网络,下部为用户网络。其中,运营商网络包括报文输入/输出设备;用户网络分为用户网络A和用户网络B两个部分。通过在运营商网络两端的报文输入/输出设备上启用BPDU TUNNEL功能,可以实现BPDU报文在运营商网络中透明传输。
图2-1 BPDU TUNNEL网络层次示意图
BPDU报文在运营商网络中的处理过程如下:
l 在报文输入端,为BPDU报文封装运营商分配给客户的VLAN Tag,将BPDU报文的目的MAC地址修改为一个组播MAC地址。BPDU报文在运营商网络中的格式如图2-1所示。
图2-2 运营商网络中的BPDU报文格式
l 在报文输出端,把特殊组播MAC地址的报文送上CPU处理,还原其BPDU报文身份,然后送到客户网络。
在设备上正确配置了MSTP协议。
表2-1 配置BPDU TUNNEL
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启全局BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
可选 缺省情况下,全局BPDU TUNNEL功能打开 只有全局BPDU TUNNEL功能打开后,端口下配置的BPDU TUNNEL功能才能生效 |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启以太网端口BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
必选 缺省情况下,所有端口的BPDU TUNNEL功能都是关闭的 打开BPDU TUNNEL功能后对运营商网络和用户网络的BPDU报文进行隔离 |
|
关闭以太网端口的STP功能 |
stp disable |
必选 缺省情况下,所有端口的STP功能处于开启状态 如果要启用STP协议的BPDU TUNNEL功能则需要先关闭端口下的STP功能 |
|
开启以太网端口STP协议的BPDU TUNNEL功能 |
bpdu-tunnel dot1q stp |
可选 在打开BPDU TUNNEL功能的端口上配置该命令,实现STP协议的BPDU TUNNEL透传处理 |
& 说明:
l 在以太网端口上,由于STP协议的BPDU TUNNEL功能与STP功能不兼容,因此两者不可以同时启用。如果要启用STP协议的BPDU TUNNEL功能则需要先关闭端口下的STP功能。
l 以太网端口上,由于BPDU TUNNEL功能与GVRP功能不兼容,因此两者不可以同时应用。如果要启用BPDU TUNNEL功能则需要先关闭端口下的GVRP功能。
l 端口下的BPDU TUNNEL功能与NTDP功能不兼容,两者不可以同时应用。如果要开启端口的BPDU TUNNEL功能,必须先用undo ntdp enable命令关闭端口的NTDP功能。关于NTDP功能的介绍,请参见本手册“集群管理”部分。
l Customer1、Customer2、Customer3、Customer4为用户网络接入设备;
l Provider1、Provider2、Provider3为运营商网络接入设备,它们之间通过配置好的Trunk端口实现连接,属于运营商网络的VLAN2;
l 端口GigabitEthernet1/0/4、GigabitEthernet1/0/3、GigabitEthernet1/0/5配置了STP协议的BPDU TUNNEL功能,来自Customer1、Customer3、Customer4的STP报文可以在运营商网络透明传输;
l 端口GigabitEthernet1/0/2配置了BPDU TUNNEL功能,用于隔离Customer2和运营商网络的BPDU报文。
图2-3 配置BPDU TUNNEL组网图
(1) Provider1的配置
# 在GigabitEthernet1/0/4端口配置STP协议的BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface GigabitEthernet 1/0/4
[Sysname-GigabitEthernet1/0/4] port access vlan 2
[Sysname-GigabitEthernet1/0/4] stp disable
[Sysname-GigabitEthernet1/0/4] bpdu-tunnel dot1q enable
[Sysname-GigabitEthernet1/0/4] bpdu-tunnel dot1q stp
l Provider2的配置
# 在GigabitEthernet1/0/2端口配置BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface GigabitEthernet 1/0/2
[Sysname-GigabitEthernet1/0/2] port access vlan 4
[Sysname-GigabitEthernet1/0/2] bpdu-tunnel dot1q enable
(2) Provider3的配置
# 在GigabitEthernet1/0/3端口配置STP协议的BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface GigabitEthernet 1/0/3
[Sysname-GigabitEthernet1/0/3] port access vlan 2
[Sysname-GigabitEthernet1/0/3] stp disable
[Sysname-GigabitEthernet1/0/3] bpdu-tunnel dot1q enable
[Sysname-GigabitEthernet1/0/3] bpdu-tunnel dot1q stp
[Sysname-GigabitEthernet1/0/3] quit
# 在GigabitEthernet1/0/5端口配置STP协议的BPDU TUNNEL功能。
[Sysname] interface GigabitEthernet 1/0/5
[Sysname-GigabitEthernet1/0/5] port access vlan 2
[Sysname-GigabitEthernet1/0/5] stp disable
[Sysname-GigabitEthernet1/0/5] bpdu-tunnel dot1q enable
[Sysname-GigabitEthernet1/0/5] bpdu-tunnel dot1q stp
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!