配置基于QinQ的二层协议透明传输示例
本示例组网特点是骨干网设备收到的二层协议报文带有VLAN Tag,通过配置基于QinQ的二层协议透明传输功能,实现用户网络的二层协议报文在骨干网络中沿着不同的二层隧道穿越骨干网络到达目的用户网络中,实现正常的协议计算功能,同时实现节省运营商的VLAN ID。本实例以STP协议为例。
组网需求
如果骨干网设备的每个接口有多个用户网络接入,且用户网络发送的二层协议报文需要携带VLAN Tag,为了实现不同用户网络的二层协议报文在骨干网络的透明传输,同时为了节省运营商的VLAN ID,可以配置基于QinQ的二层协议透明传输。这样,骨干网络根据二层协议报文的外层VLAN ID为用户分配不同的隧道,属于不同VLAN的二层协议报文经过不同的隧道穿越骨干网络。
如图6-4所示,CE设备通过PE设备相连,CE网络之间运行STP协议。CE1和CE2发送到PE的BPDU(Bridge Protocol Data Unit)报文带有VLAN Tag100;CE3和CE4发送到PE的BPDU报文带有VLAN Tag200。此时可以在PE上配置基于QinQ的二层协议透明传输,使得:
VLAN100中的设备可以共同完成生成树计算。
VLAN200中的设备可以共同完成生成树计算。
同时,为了节省公网VLAN ID,在PE设备上配置QinQ,使得CE发送到PE带有VLAN Tag100和VLAN Tag200的BPDU报文,都被打上外层VLAN Tag10在骨干网络中传输。此时,骨干网络中传输的BPDU报文带有两层VLAN Tag。
本例采用替换来自用户网络的原始二层协议报文的组播MAC地址为指定组播MAC地址的方法,配置骨干网络透明传输CE发送来的BPDU报文,默认的BPDU报文的目的MAC地址为0180-C200-0000。
本例中interface1、interface2、interface3分别代表GE0/1/1、GE0/1/2、GE0/1/3。
配置思路
采用如下的思路配置基于QinQ的二层协议透明传输的基本功能:
(可选)分别将CE、PE上的接口切换为二层接口。
如果接口已经是二层接口,则不需要执行此步配置。
- 在CE、PE上分别使能STP功能。
- 配置CE二层转发功能,使得CE发往PE的报文携带一层VLAN Tag。
- 在PE上配置基于QinQ的二层协议透明传输功能:
- 配置QinQ,使得PE间互通的报文带有两层VLAN Tag。
- 去使能PE用户侧接口STP功能,并使能tagged类型接口的二层协议透明传输功能。
- 替换接收到CE的报文的MAC地址。
数据准备
为完成此配置例,需准备如下的数据:
- CE与PE互连的接口类型、编号;PE与PE互连的接口类型、编号。
- CE所属的VLAN ID。
- PE间互通报文的外层VLAN Tag值。
- 二层协议报文的目的MAC地址被替换后的组播MAC地址。
操作步骤
- (可选)分别将CE、PE的接口转换成二层接口
使用portswitch命令,将图6-4中PE设备和CE设备的所有接口都转换成二层接口。
- 在CE、PE上分别使能STP功能
# 配置CE1
[~CE1] stp enable
[*CE1] commit
# 配置CE2
[~CE2] stp enable
[*CE2] commit
# 配置CE3
[~CE3] stp enable
[*CE3] commit
# 配置CE4
[~CE4] stp enable
[*CE4] commit
# 配置PE1
[~PE1] stp enable
[*PE1] commit
# 配置PE2
[~PE2] stp enable
[*PE2] commit
- 配置CE二层转发功能
# 配置CE1。
[~CE1] vlan 100
[*CE1-vlan100] quit
[*CE1] interface gigabitethernet 0/1/1
[*CE1-GigabitEthernet0/1/1] undo shutdown
[*CE1-GigabitEthernet0/1/1] port trunk allow-pass vlan 100
[*CE1-GigabitEthernet0/1/1] stp bpdu vlan 100
[*CE1-GigabitEthernet0/1/1] quit
[*CE1] commit
# 配置CE2。
[~CE2] vlan 100
[*CE2-vlan100] quit
[*CE2] interface gigabitethernet 0/1/1
[*CE2-GigabitEthernet0/1/1] undo shutdown
[*CE2-GigabitEthernet0/1/1] port trunk allow-pass vlan 100
[*CE2-GigabitEthernet0/1/1] stp bpdu vlan 100
[*CE2-GigabitEthernet0/1/1] quit
[*CE2] commit
# 配置CE3。
[~CE3] vlan 200
[*CE3-vlan200] quit
[*CE3] interface gigabitethernet 0/1/1
[*CE3-GigabitEthernet0/1/1] undo shutdown
[*CE3-GigabitEthernet0/1/1] port trunk allow-pass vlan 200
[*CE3-GigabitEthernet0/1/1] stp bpdu vlan 200
[*CE3-GigabitEthernet0/1/1] quit
[*CE3] commit
# 配置CE4。
[~CE4] vlan 200
[*CE4-vlan200] quit
[*CE4] interface gigabitethernet 0/1/1
[*CE4-GigabitEthernet0/1/1] undo shutdown
[*CE4-GigabitEthernet0/1/1] port trunk allow-pass vlan 200
[*CE4-GigabitEthernet0/1/1] stp bpdu vlan 200
[*CE4-GigabitEthernet0/1/1] quit
[*CE4] commit
- 在PE上配置基于QinQ的二层协议透明传输功能
配置QinQ
# 配置PE1。
[~PE1] vlan 10
[*PE1-Vlan10] quit
[*PE1] interface gigabitethernet 0/1/3
[*PE1-GigabitEthernet0/1/3] undo shutdown
[*PE1-GigabitEthernet0/1/3] port link-type trunk
[*PE1-GigabitEthernet0/1/3] port trunk allow-pass vlan 10
[*PE1-GigabitEthernet0/1/3] quit
[*PE1] interface gigabitethernet 0/1/1
[*PE1-GigabitEthernet0/1/1] undo shutdown
[*PE1-GigabitEthernet0/1/1] port link-type dot1q-tunnel
[*PE1-GigabitEthernet0/1/1] port default vlan 10
[*PE1-GigabitEthernet0/1/1] quit
[*PE1] interface gigabitethernet 0/1/2
[*PE1-GigabitEthernet0/1/2] undo shutdown
[*PE1-GigabitEthernet0/1/2] port link-type dot1q-tunnel
[*PE1-GigabitEthernet0/1/2] port default vlan 10
[*PE1-GigabitEthernet0/1/2] quit
[*PE1] commit
# 配置PE2。
[~PE2] vlan 10
[*PE2-Vlan10] quit
[*PE2] interface gigabitethernet 0/1/3
[*PE2-GigabitEthernet0/1/3] undo shutdown
[*PE2-GigabitEthernet0/1/3] port link-type trunk
[*PE2-GigabitEthernet0/1/3] port trunk allow-pass vlan 10
[*PE2-GigabitEthernet0/1/3] quit
[*PE2] interface gigabitethernet 0/1/1
[*PE2-GigabitEthernet0/1/1] undo shutdown
[*PE2-GigabitEthernet0/1/1] port link-type dot1q-tunnel
[*PE2-GigabitEthernet0/1/1] port default vlan 10
[*PE2-GigabitEthernet0/1/1] quit
[*PE2] interface gigabitethernet 0/1/2
[*PE2-GigabitEthernet0/1/2] undo shutdown
[*PE2-GigabitEthernet0/1/2] port link-type dot1q-tunnel
[*PE2-GigabitEthernet0/1/2] port default vlan 10
[*PE2-GigabitEthernet0/1/2] quit
[*PE2] commit
在PE设备上执行display vlan命令可以查看QinQ的信息。
以PE1的显示为例。
[~PE1] display vlan 10 verbose
* : Management-VLAN --------------------- VLAN ID : 10 VLAN Name : VLAN Type : Common Description : VLAN 0010 Status : Enable Broadcast : Enable MAC Learning : Enable Smart MAC Learning : Disable Current MAC Learning Result : Enable Statistics : Disable Property : Default VLAN State : Up ---------------- Untagged Port: GigabitEthernet0/1/1 GigabitEthernet0/1/2 ---------------- Active Untag Port: GigabitEthernet0/1/1 GigabitEthernet0/1/2 ---------------- Tagged Port: GigabitEthernet0/1/3 ---------------- Active Tag Port: GigabitEthernet0/1/3 --------------------- Interface Physical GigabitEthernet0/1/1 UP GigabitEthernet0/1/2 UP GigabitEthernet0/1/3 UP
去使能PE用户侧接口STP功能,并使能tagged类型接口的二层协议透明传输功能。
# 配置PE1
[~PE1] interface gigabitethernet 0/1/1
[~PE1-GigabitEthernet0/1/1] stp disable
[*PE1-GigabitEthernet0/1/1] l2protocol-tunnel stp enable
[*PE1-GigabitEthernet0/1/1] quit
[*PE1] interface gigabitethernet 0/1/2
[*PE1-GigabitEthernet0/1/2] stp disable
[*PE1-GigabitEthernet0/1/2] l2protocol-tunnel stp enable
[*PE1-GigabitEthernet0/1/2] quit
[*PE1] commit
# 配置PE2
[~PE2] interface gigabitethernet 0/1/1
[~PE2-GigabitEthernet0/1/1] stp disable
[*PE2-GigabitEthernet0/1/1] l2protocol-tunnel stp enable
[*PE2-GigabitEthernet0/1/1] quit
[*PE2] interface gigabitethernet 0/1/2
[*PE2-GigabitEthernet0/1/2] stp disable
[*PE2-GigabitEthernet0/1/2] l2protocol-tunnel stp enable
[*PE2-GigabitEthernet0/1/2] quit
[*PE2] commit
替换接收到CE的报文的MAC地址。
# 配置PE1
[~PE1] l2protocol-tunnel stp group-mac 0100-5e00-0011
[*PE1] commit
# 配置PE2
[~PE2] l2protocol-tunnel stp group-mac 0100-5e00-0011
[*PE2] commit
- 检查配置结果
配置完成后,在PE上使用display l2protocol-tunnel group-mac命令可以查看透明传输的二层协议名称、协议类型、协议报文的组播目的MAC地址、Group-MAC地址。
以PE1的显示为例。
[~PE1] display l2protocol-tunnel group-mac stp
Protocol Protocol-MAC Group-MAC ----------------------------------------------------------------------------- stp 0180-c200-0000 0100-5e00-0011
配置完成后,在CE设备上执行display stp brief命令可以检查MSTP的根。以CE3和CE4为例,CE3和CE4之间完成了生成树计算功能。CE3上的GE0/1/1为根(Root)端口,CE4上的GE0/1/1为指定(Designated)端口。
[~CE3] display stp brief
MSTID Port Role STP State Protection Cost Edged 0 GigabitEthernet0/1/1 ROOT forwarding none 199999 disable
[~CE4] display stp
MSTID Port Role STP State Protection Cost Edged 0 GigabitEthernet0/1/1 DESI forwarding none 199999 disable
配置文件
CE1的配置文件
# sysname CE1 # vlan batch 100 # stp enable # interface GigabitEthernet0/1/1 undo shutdown port link-type trunk port trunk allow-pass vlan 100 stp bpdu vlan 100 # return
CE2的配置文件
# sysname CE2 # vlan batch 100 # stp enable # interface GigabitEthernet0/1/1 undo shutdown port link-type trunk port trunk allow-pass vlan 100 stp bpdu vlan 100 # return
CE3的配置文件
# sysname CE3 # vlan batch 200 # stp enable # interface GigabitEthernet0/1/1 undo shutdown port link-type trunk port trunk allow-pass vlan 200 stp bpdu vlan 200 # return
CE4的配置文件
# sysname CE4 # vlan batch 200 # stp enable # interface GigabitEthernet0/1/1 undo shutdown port link-type trunk port trunk allow-pass vlan 200 stp bpdu vlan 200 # return
PE1的配置文件
# sysname PE1 # vlan batch 10 # l2protocol-tunnel stp group-mac 0100-5e00-0011 # interface GigabitEthernet0/1/1 undo shutdown port link-type dot1q-tunnel port default vlan 10 stp disable l2protocol-tunnel stp enable # interface GigabitEthernet0/1/2 undo shutdown port link-type dot1q-tunnel port default vlan 10 stp disable l2protocol-tunnel stp enable # interface GigabitEthernet0/1/3 undo shutdown port link-type trunk port trunk allow-pass vlan 10 # return
PE2的配置文件
# sysname PE2 # vlan batch 10 # l2protocol-tunnel stp group-mac 0100-5e00-0011 # interface GigabitEthernet0/1/1 undo shutdown port link-type dot1q-tunnel port default vlan 10 stp disable l2protocol-tunnel stp enable # interface GigabitEthernet0/1/2 undo shutdown port link-type dot1q-tunnel port default vlan 10 stp disable l2protocol-tunnel stp enable # interface GigabitEthernet0/1/3 undo shutdown port link-type trunk port trunk allow-pass vlan 10 # return