04-QinQ-BPDU TUNNEL操作
本章节下载 (381.78 KB)
目 录
IEEE 802.1Q中定义的VLAN Tag域中只有12个比特用于表示VLAN ID,所以设备最多可以支持4094个VLAN。在实际应用中,尤其是在城域网中,需要大量的VLAN来隔离用户,4094个VLAN远远不能满足需求。
H3C S3610&S5510系列以太网交换机提供的端口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数量的需求。
图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的功能外,灵活QinQ还能够对同一个端口收到的报文根据不同的VLAN Tag做不同的动作,为报文的不同内层VLAN ID添加不同的外层VLAN ID。
TPID(Tag Protocol Identifier,标签协议标识)是VLAN Tag中的一个字段,用于表示Tag的协议类型,IEEE 802.1Q协议规定该字段的取值为0x8100。
IEEE 802.1Q协议定义的以太网帧的Tag报文结构如图1-2所示。
图1-2 以太网帧的Tag报文结构
不同厂商的设备可能将QinQ报文外层Tag的TPID字段设为不同的值,用户可以为端口设置TPID值。当端口收到报文后,先为报文添加带有指定TPID值的外层VLAN Tag,然后再将报文发送出去,这样,发送到公网中的QinQ报文就携带了特定的协议类型,可以与其他厂商的设备互通。
表1-1 配置基本QinQ功能
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
开启以太网端口的基本QinQ功能 |
qinq enable |
必选 缺省情况下,端口的基本QinQ功能关闭 |
& 说明:
l 同一端口下基本QinQ功能不能与灵活QinQ功能同时配置。
l 建议用户不要在设备上同时配置基本QinQ与Voice VLAN功能,否则有可能导致该功能不能正常工作。
基本QinQ功能添加的外层VLAN Tag是端口的缺省VLAN ID对应的VLAN Tag,灵活QinQ特性可以根据不同的内层VLAN Tag添加不同的外层VLAN Tag。
& 说明:
l 同一端口下灵活QinQ功能不能与基本QinQ功能同时配置。
l 建议用户不要在设备上同时配置灵活QinQ与Voice VLAN功能,否则有可能导致该功能不能正常工作。
操作 |
命令 |
说明 |
|
进入系统视图 |
system-view |
- |
|
进入以太网端口视图或端口组视图 |
进入以太网端口视图 |
interface interface-type interface-number |
二者必选其一 进入以太网端口视图后,下面进行的配置只在当前端口生效;进入端口组视图后,下面进行的配置将在端口组中的所有端口生效 |
进入端口组视图 |
port-group { manual port-group-name | aggregation agg-id } |
||
创建一个QinQ实例并进入QinQ视图,同时配置端口灵活QinQ功能添加的外层VLAN Tag |
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的报文通过。
可以使用下面的命令为设备的端口设置QinQ报文的TPID值。
表1-3 配置端口的QinQ以太网协议类型值
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入以太网端口视图 |
interface interface-type interface-number |
- |
配置全局的QinQ报文TPID值 |
qinq ethernet-type hex-value |
可选 缺省情况下,所有端口的TPID值为0x8100 |
& 说明:
S3610&S5510系列以太网交换机支持配置一种不同于IEEE 802.1Q标准(0x8100)的TPID值,即如果想为多个端口配置自定义的TPID值时,需要将这些端口的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的端口Ethernet1/0/2、Provider2的端口Ethernet1/0/3配置了QinQ功能的以太网协议类型为0x8200。
图1-3 配置QinQ功能组网图
& 说明:
用户必须通过配置保证运营商网络中的设备之间允许QinQ报文通过。
(1) Provider1的配置
# 进入系统视图。
<Sysname> system-view
# 配置Ethernet1/0/1端口为Hybrid端口,允许VLAN10、VLAN20、VLAN1000和VLAN2000通过,且在发送VLAN1000和VLAN2000的报文时去除Tag,发送VLAN10和VLAN20的报文时保留Tag。
[Sysname] interface Ethernet 1/0/1
[Sysname-Ethernet1/0/1] port link-type hybrid
[Sysname-Ethernet1/0/1] port hybrid vlan 10 20 tagged
[Sysname-Ethernet1/0/1] port hybrid vlan 1000 2000 untagged
# 为来自VLAN10的报文封装VLAN ID为1000的外层Tag。
[Sysname-Ethernet1/0/1] qinq vid 1000
[Sysname-Ethernet1/0/1-vid-1000] raw-vlan-id inbound 10
[Sysname-Ethernet1/0/1-vid-1000] quit
# 为来自VLAN20的报文封装VLAN ID为2000的外层Tag。
[Sysname-Ethernet1/0/1] qinq vid 2000
[Sysname-Ethernet1/0/1-vid-2000] raw-vlan-id inbound 20
[Sysname-Ethernet1/0/1-vid-2000] quit
[Sysname-Ethernet1/0/1] quit
# 配置Ethernet1/0/2端口为Trunk端口,且允许VLAN1000和VLAN2000通过。
[Sysname] interface Ethernet 1/0/2
[Sysname-Ethernet1/0/2] port link-type trunk
[Sysname-Ethernet1/0/2] port trunk permit vlan 1000 2000
# 配置Ethernet1/0/2端口的QinQ功能的以太网协议类型为0x8200。
[Sysname-Ethernet1/0/2] qinq ethernet-type 8200
(2) Provider2的配置
# 配置Ethernet1/0/3端口为Trunk端口,且允许VLAN1000和VLAN2000通过。
<Sysname> system-view
[Sysname] interface Ethernet 1/0/3
[Sysname-Ethernet1/0/3] port link-type trunk
[Sysname-Ethernet1/0/3] port trunk permit vlan 1000 2000
# 配置Ethernet1/0/3端口的QinQ功能的以太网协议类型为0x8200。
[Sysname-Ethernet1/0/3] qinq ethernet-type 8200
[Sysname-Ethernet1/0/3] quit
# 配置Ethernet1/0/4端口为Hybrid端口,允许VLAN10和VLAN1000通过,且在发送VLAN1000的报文时去除Tag,在发送VLAN10的报文时保留Tag。
[Sysname] interface Ethernet 1/0/4
[Sysname-Ethernet1/0/4] port link-type hybrid
[Sysname-Ethernet1/0/4] port hybrid vlan 10 tagged
[Sysname-Ethernet1/0/4] port hybrid vlan 1000 untagged
# 为来自VLAN10的报文封装VLAN ID为1000的外层Tag。
[Sysname-Ethernet1/0/4] qinq vid 1000
[Sysname-Ethernet1/0/4-vid-1000] raw-vlan-id inbound 10
[Sysname-Ethernet1/0/4-vid-1000] quit
# 配置Ethernet1/0/5端口为Hybrid端口,允许VLAN20和VLAN2000通过,且在发送VLAN2000的报文时去除Tag,在发送VLAN20的报文时保留Tag。
[Sysname] interface Ethernet 1/0/5
[Sysname-Ethernet1/0/5] port link-type hybrid
[Sysname-Ethernet1/0/5] port hybrid vlan 20 tagged
[Sysname-Ethernet1/0/5] port hybrid vlan 2000 untagged
# 为来自VLAN20的报文封装VLAN ID为2000的外层Tag。
[Sysname-Ethernet1/0/5] qinq vid 2000
[Sysname-Ethernet1/0/5-vid-2000] raw-vlan-id inbound 20
[Sysname-Ethernet1/0/5-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。
在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地址(0100-0CCD-CDD0)。BPDU报文在运营商网络中的格式如图2-2所示。
图2-2 运营商网络中的BPDU报文格式
l 在报文输出端,把特殊组播MAC地址的报文送上CPU处理,还原其BPDU报文身份,然后送到客户网络。
注意:
用户必须通过配置保证用户网络的BPDU报文在运营商网络中进行透明传输的过程中,其VLAN Tag不能被改变也不能被去掉,否则,系统无法对用户网络的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功能 |
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 端口Ethernet1/0/4、Ethernet1/0/3、Ethernet1/0/5配置了STP协议的BPDU TUNNEL功能,来自Customer1、Customer3、Customer4的STP报文可以在运营商网络透明传输;
l 端口Ethernet1/0/2配置了BPDU TUNNEL功能,用于隔离Customer2和运营商网络的BPDU报文。
(1) Provider1的配置
# 在Ethernet1/0/4端口配置STP协议的BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface Ethernet 1/0/4
[Sysname-Ethernet1/0/4] port access vlan 2
[Sysname-Ethernet1/0/4] stp disable
[Sysname-Ethernet1/0/4] bpdu-tunnel dot1q enable
[Sysname-Ethernet1/0/4] bpdu-tunnel dot1q stp
(2) Provider2的配置
# 在Ethernet1/0/2端口配置BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface Ethernet 1/0/2
[Sysname-Ethernet1/0/2] port access vlan 4
[Sysname-Ethernet1/0/2] bpdu-tunnel dot1q enable
(3) Provider3的配置
# 在Ethernet1/0/3端口配置STP协议的BPDU TUNNEL功能。
<Sysname> system-view
[Sysname] interface Ethernet 1/0/3
[Sysname-Ethernet1/0/3] port access vlan 2
[Sysname-Ethernet1/0/3] stp disable
[Sysname-Ethernet1/0/3] bpdu-tunnel dot1q enable
[Sysname-Ethernet1/0/3] bpdu-tunnel dot1q stp
[Sysname-Ethernet1/0/3] quit
# 在Ethernet1/0/5端口配置STP协议的BPDU TUNNEL功能。
[Sysname] interface Ethernet 1/0/5
[Sysname-Ethernet1/0/5] port access vlan 2
[Sysname-Ethernet1/0/5] stp disable
[Sysname-Ethernet1/0/5] bpdu-tunnel dot1q enable
[Sysname-Ethernet1/0/5] bpdu-tunnel dot1q stp
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!