04-QinQ-BPDU TUNNEL操作
本章节下载 (300.26 KB)
IEEE802.1Q中定义的VLAN Tag域只有12个比特用于表示VLAN ID,所以交换机最多可以支持4094个VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。
S5500-SI系列交换机提供的端口QinQ特性是一种简单、灵活的二层VPN技术,它通过在运营商接入端为用户的私网报文封装外层VLAN Tag,使报文携带两层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数量的需求。
图1-1 QinQ的报文结构
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的功能外,对于同一个端口接收的报文还可以根据报文的不同内层VLAN ID添加不同的外层VLAN Tag。
& 说明:
在同时配置了基本QinQ和灵活QinQ功能的情况下,S5500-SI交换机将对接收的报文首先匹配灵活QinQ的Tag映射规则,满足条件的将按灵活QinQ处理,不满足条件的根据基本QinQ的配置封装外层Tag。
TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示VLAN Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE802.1Q协议定义的以太网帧的VLAN Tag结构如图1-2所示。
不同厂商的设备可能将QinQ报文外层VLAN Tag的TPID字段设为不同的值。
为了和这些设备兼容,S5500-SI系列交换机提供了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 |
集群 |
0x88A7 |
设备保留 |
0xFFFD/0xFFFE/0xFFFF |
表1-2 配置基本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功能后,设备将根据不同的内层VLAN Tag添加不同的外层VLAN Tag,如果端口收到命令配置以外的VLAN报文,则为报文添加端口缺省VLAN的VLAN Tag。
表1-3 配置外层VLAN Tag的添加策略
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
进入以太网视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
进入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功能和基本QinQ功能可以同时配置,对于没有匹配灵活QinQ映射规则的报文,将使用基本QinQ功能为其封装端口缺省VLAN的外层Tag。
S5500-SI系列交换机在发送带有VLAN Tag的报文时所携带的TPID值可以在系统视图下进行配置,此配置将在所有端口生效。
表1-4 配置端口添加外层Tag时采用的TPID值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置端口添加外层Tag时采用的TPID值 |
qinq ethernet-type hex-value |
可选 缺省情况下,端口添加外层Tag时采用的TPID值为0x8100 |
l Provider A、Provider B作为运营商网络接入设备。
l Customer A、Customer B、Customer C为用户网络接入设备。
l Provider A、Provider B之间通过Trunk端口连接,Provider A属于运营商网络的VLAN1000,Provider B属于运营商网络的VLAN2000。
l Provider A和Provider B之间,运营商采用其他厂商的设备,TPID值为0x8200。
希望配置完成后达到下列要求:
l Customer A的VLAN10的报文可以和Customer B的VLAN10的报文经过运营商网络的VLAN1000转发后互通;Customer A的VLAN20的报文可以和Customer C的VLAN20的报文经过运营商网络的VLAN2000转发后互通。
图1-3 配置QinQ功能组网图
& 说明:
用户必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。
(1) Provider A的配置
# 进入系统视图。
<ProviderA> system-view
l GigabitEthernet1/0/1端口的配置
# 配置端口为Hybrid端口,允许VLAN1000和VLAN2000的报文通过,并且在发送时去掉外层Tag。
[ProviderA] interface GigabitEthernet 1/0/1
[ProviderA-GigabitEthernet1/0/1] port link-type hybrid
[ProviderA-GigabitEthernet1/0/1] port hybrid vlan 1000 2000 untagged
# 将来自VLAN10的报文封装VLAN ID为1000的外层Tag。
[ProviderA-GigabitEthernet1/0/1] qinq vid 1000
[ProviderA-GigabitEthernet1/0/1-vid-1000] raw-vlan-id inbound 10
[ProviderA-GigabitEthernet1/0/1-vid-1000] quit
# 将来自VLAN20的报文封装VLAN ID为2000的外层Tag。
[ProviderA-GigabitEthernet1/0/1] qinq vid 2000
[ProviderA-GigabitEthernet1/0/1-vid-2000] raw-vlan-id inbound 20
[ProviderA-GigabitEthernet1/0/1-vid-2000] quit
[ProviderA-GigabitEthernet1/0/1] quit
l GigabitEthernet1/0/2端口的配置
# 配置端口为Access端口,允许VLAN1000的报文通过。
[ProviderA] interface GigabitEthernet 1/0/2
[ProviderA-GigabitEthernet1/0/2] port access vlan 1000
# 配置该端口的基本QinQ功能,将来自VLAN10的报文封装VLAN ID为1000的外层Tag。
[ProviderA-GigabitEthernet1/0/2] qinq enable
[ProviderA-GigabitEthernet1/0/2] quit
l GigabitEthernet1/0/3端口的配置
# 配置端口为Trunk端口,且允许VLAN1000和VLAN2000的报文通过。
[ProviderA] interface GigabitEthernet 1/0/3
[ProviderA-GigabitEthernet1/0/3] port link-type trunk
[ProviderA-GigabitEthernet1/0/3] port trunk permit vlan 1000 2000
[ProviderA-GigabitEthernet1/0/3] quit
# 为与公共网络中的设备进行互通,配置Provider A在发送报文时携带的TPID值为0x8200。
[ProviderA] qinq ethernet-type 8200
(2) Provider B的配置
l GigabitEthernet1/0/1端口的配置
# 配置端口为Trunk端口,且允许VLAN1000和VLAN2000的报文通过。
<ProviderB> system-view
[ProviderB] interface GigabitEthernet 1/0/1
[ProviderB-GigabitEthernet1/0/1] port link-type trunk
[ProviderB-GigabitEthernet1/0/1] port trunk permit vlan 1000 2000
[ProviderB-GigabitEthernet1/0/1] quit
# 为与公共网络中的设备进行互通,配置Provider B在发送报文时携带的TPID值为0x8200。
[ProviderB] qinq ethernet-type 8200
l GigabitEthernet1/0/2端口的配置
# 配置端口为Access端口,允许VLAN2000的报文通过。
[ProviderB] interface GigabitEthernet 1/0/2
[ProviderB-GigabitEthernet1/0/2] port access vlan 2000
# 配置该端口的基本QinQ功能,将来自VLAN20的报文封装VLAN ID为2000的外层Tag。
[ProviderB-GigabitEthernet1/0/2] qinq enable
(3) 公共网络设备的配置
由于Provider A和Provider B之间使用的公共网络设备可能来自于其他厂商,这里只介绍基本原理:配置公共网络中与Provider A的GigabitEthernet1/0/3端口和Provider B的GigabitEthernet1/0/1端口连接的设备,使其相应的端口允许VLAN1000和VLAN2000的报文携带VLAN Tag进行发送即可。
为了避免网络中出现环路,用户可以开启设备的STP功能。但是,由于BPDU报文(STP协议通过在设备之间传递BPDU报文来确定网络的拓扑结构)是二层组播报文,所有开启STP功能的设备都会接收并处理,因此不同网络的生成树一起计算,导致每个网络都无法生成正确的生成树,当网络中存在冗余链路时必然出现环路。
BPDU TUNNEL功能可以解决上述问题,它可使运行STP功能的不同网络拥有各自的生成树,互不干扰,它具有下列作用:
l 可以对不同网络的BPDU报文进行隔离,本网络中的拓扑结构计算不会受其它网络的BPDU报文的影响。
l 可以使同一个用户网络的BPDU报文在运营商网络内指定的VLAN中进行广播,使得在不同地域的同一个用户网络可以跨越运营商网络进行统一的生成树计算。
BPDU TUNNEL可以实现下列两个功能:
l 对BPDU报文进行隔离
l 对BPDU报文进行透明传输
当端口收到BPDU报文时,将之丢弃,使之不参与生成树的计算。用户可以使用“2.2 配置BPDU报文隔离”配置来实现该功能。
图2-1中,上部为运营商网络,下部为用户网络,用户网络分为用户网络A和用户网络B两个部分。通过在运营商网络两端的报文输入/输出设备上配置“2.3 配置BPDU报文透明传输”,可以实现用户网络的BPDU报文在运营商网络中进行透明传输,且不同用户网络的生成树独立进行计算。
图2-1 BPDU TUNNEL网络层次示意图
l 在报文输入端,设备将来自用户网络的BPDU报文的目的MAC地址0x0180-C200-0000修改为特殊的组播MAC地址(默认为0x010F-E200-0003)。在运营商网络中,修改后的BPDU报文被当作数据报文在用户所属的VLAN中进行转发。
l 在报文输出端,设备将目的MAC地址为BPDU TUNNEL报文特有的组播MAC地址(默认为0x010F-E200-0003)的报文识别出来,将其目的MAC地址还原为BPDU报文的原目的MAC地址0x0180-C200-0000,然后将BPDU报文送到指定的用户网络。
& 说明:
用户必须通过配置保证用户网络的BPDU报文在运营商网络中进行透明传输的过程中,其VLAN Tag不能被改变也不能被去掉,否则,系统无法对用户网络的BPDU报文进行正确的透明传输。
开启全局和端口的BPDU TUNNEL功能后,该端口可以对BPDU报文进行隔离。
表2-1 配置BPDU报文隔离
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启全局的BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
可选 缺省情况下,全局BPDU TUNNEL功能处于开启状态 |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启端口的BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
必选 缺省情况下,所有端口的BPDU TUNNEL功能关闭 |
& 说明:
l 只有全局BPDU TUNNEL功能打开后,端口的BPDU TUNNEL功能才能生效。
l BPDU TUNNEL功能与GVRP功能不兼容,两者不可以同时应用。关于GVRP的介绍,请参见“VLAN”部分。
l 端口下的BPDU TUNNEL功能与NTDP功能不兼容,两者不可以同时应用。如果要开启端口的BPDU TUNNEL功能,必须先用undo ntdp enable命令关闭端口的NTDP功能。关于NTDP功能的介绍,请参见“集群管理”部分。
在打开BPDU TUNNEL功能的端口上开启端口的STP协议的BPDU TUNNEL功能后,该端口收到的用户网络的BPDU报文可以在运营商网络中进行透明传输。
表2-2 配置BPDU报文透明传输
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
开启全局的BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
可选 缺省情况下,全局BPDU TUNNEL功能打开 |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启端口的BPDU TUNNEL功能 |
bpdu-tunnel dot1q enable |
必选 缺省情况下,所有端口的BPDU TUNNEL功能关闭 |
|
关闭端口的STP功能 |
stp disable |
必选 缺省情况下,端口的STP功能处于开启状态 |
|
开启端口的STP协议的BPDU TUNNEL功能 |
bpdu-tunnel dot1q stp |
必选 缺省情况下,端口的STP协议的BPDU TUNNEL功能没有开启 |
& 说明:
l 只有全局BPDU TUNNEL功能打开后,端口的BPDU TUNNEL功能才能生效。
l BPDU TUNNEL功能与GVRP功能不兼容,两者不可以同时应用。关于GVRP的介绍,请参见“VLAN”部分。
l 端口下的BPDU TUNNEL功能与NTDP功能不兼容,两者不可以同时应用。如果要开启端口的BPDU TUNNEL功能,必须先用undo ntdp enable命令关闭端口的NTDP功能。关于NTDP功能的介绍,请参见 “集群管理”部分。
BPDU TUNNEL报文采用的组播目的MAC地址默认为0x010F-E200-0003,用户可以通过下面的配置将其修改为0x0100-0CCD-CDD0、0x0100-0CCD-CDD1或0x0100-0CCD-CDD2。
表2-3 配置BPDU TUNNEL报文采用的组播目的MAC地址
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置BPDU TUNNEL报文采用的组播目的MAC地址 |
bpdu-tunnel tunnel-dmac mac-address |
可选 缺省情况下,BPDU TUNNEL报文采用的组播目的MAC地址为0x010F-E200-0003 |
l Customer A、Customer B、Customer C、Customer D为用户网络接入设备;
l Provider A、Provider B、Provider C为运营商网络接入设备,它们之间通过配置好的Trunk端口实现连接。
要求配置实现下列功能:
l 处于不同地域的用户Customer A、Customer C、Customer D可以跨越运营商网络进行统一的生成树计算。
l 对用户Customer B的BPDU报文进行隔离,使之不参与生成树的计算。
(1) Provider A的配置
# 在GigabitEthernet1/0/1端口配置BPDU报文透明传输功能。
<ProviderA> system-view
[ProviderA] interface GigabitEthernet 1/0/1
[ProviderA-GigabitEthernet1/0/1] port access vlan 2
[ProviderA-GigabitEthernet1/0/1] stp disable
[ProviderA-GigabitEthernet1/0/1] undo ntdp enable
[ProviderA-GigabitEthernet1/0/1] bpdu-tunnel dot1q enable
[ProviderA-GigabitEthernet1/0/1] bpdu-tunnel dot1q stp
(2) Provider B的配置
# 在GigabitEthernet1/0/2端口配置BPDU报文隔离功能。
<ProviderB> system-view
[ProviderB] interface GigabitEthernet 1/0/2
[ProviderB-GigabitEthernet1/0/2] port access vlan 4
[ProviderB-GigabitEthernet1/0/2] undo ntdp enable
[ProviderB-GigabitEthernet1/0/2] bpdu-tunnel dot1q enable
(3) Provider C的配置
# 在GigabitEthernet1/0/3端口配置BPDU报文透明传输功能。
<ProviderC> system-view
[ProviderC] interface GigabitEthernet 1/0/3
[ProviderC-GigabitEthernet1/0/3] port access vlan 2
[ProviderC-GigabitEthernet1/0/3] stp disable
[ProviderC-GigabitEthernet1/0/3] undo ntdp enable
[ProviderC-GigabitEthernet1/0/3] bpdu-tunnel dot1q enable
[ProviderC-GigabitEthernet1/0/3] bpdu-tunnel dot1q stp
# 在GigabitEthernet1/0/4端口配置BPDU报文透明传输功能。
[ProviderC-GigabitEthernet1/0/3] quit
[ProviderC] interface GigabitEthernet 1/0/4
[ProviderC-GigabitEthernet1/0/4] port access vlan 2
[ProviderC-GigabitEthernet1/0/4] stp disable
[ProviderC-GigabitEthernet1/0/4] undo ntdp enable
[ProviderC-GigabitEthernet1/0/4] bpdu-tunnel dot1q enable
[ProviderC-GigabitEthernet1/0/4] bpdu-tunnel dot1q stp
& 说明:
当用户网络的STP状态稳定后,如果Customer A是根桥,则在Customer C和Customer D上与Provider C相连的端口都可以收到Customer A发出的STP报文;Customer B上由于配置了BPDU报文隔离功能,所以在Customer B与Provider B相连的端口上收不到Customer A发出的STP报文。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!