配置基于基本QinQ的二层协议透明传输示例
组网需求
如图14-8所示,CE设备为企业处于不同地域网络的边缘设备,PE1和PE2为运营商的边缘设备。VLAN100和VLAN200所属二层网络为不同用户,并且通过运营商网络实现互联。为了防止二层网络形成环路,网络中运行STP协议,并且企业用户希望STP只在各自自有网络中运行以生成正确的生成树。即:
VLAN100中的设备可以共同完成生成树计算。
VLAN200中的设备可以共同完成生成树计算。
同时,由于公网VLAN资源紧张,需要尽量减少使用运营商网络VLAN ID数量。
配置思路
采用如下的思路配置基于基本QinQ的二层协议透明传输的基本功能:
配置CE设备的STP功能,破除二层网络中的环路。
- 配置CE发送到PE的STP协议报文带有指定的Tag值,实现VLAN100和VLAN200中STP独立计算。
配置PE基于VLAN的二层协议透明传输功能,实现STP协议报文不上送PE设备的CPU进行处理。
配置PE的基本QinQ功能。使得CE发出的带有不同Tag值的STP协议报文都被打上外层Tag10在骨干网络中传输,实现节约公网VLAN资源。
操作步骤
- 使能CE设备的生成树计算功能
# 配置CE1。
<HUAWEI> system-view [~HUAWEI] sysname CE1 [*HUAWEI] commit [~CE1] stp enable [*CE1] commit
# 配置CE2。
<HUAWEI> system-view [~HUAWEI] sysname CE2 [*HUAWEI] commit [~CE2] stp enable [*CE2] commit
# 配置CE3。
<HUAWEI> system-view [~HUAWEI] sysname CE3 [*HUAWEI] commit [~CE3] stp enable [*CE3] commit
# 配置CE4。
<HUAWEI> system-view [~HUAWEI] sysname CE4 [*HUAWEI] commit [~CE4] stp enable [*CE4] commit
- 配置CE1与CE2发送到PE的STP协议报文带Tag100。配置CE3与CE4发送到PE的STP协议报文带Tag200
# 配置CE1。
[~CE1] vlan 100
[*CE1-vlan100] quit
[*CE1] interface 10ge 1/0/1
[*CE1-10GE1/0/1] port link-type trunk
[*CE1-10GE1/0/1] port trunk allow-pass vlan 100
[*CE1-10GE1/0/1] stp bpdu vlan 100
[*CE1-10GE1/0/1] quit
[*CE1] commit
# 配置CE2。
[~CE2] vlan 100
[*CE2-vlan100] quit
[*CE2] interface 10ge 1/0/1
[*CE2-10GE1/0/1] port link-type trunk
[*CE2-10GE1/0/1] port trunk allow-pass vlan 100
[*CE2-10GE1/0/1] stp bpdu vlan 100
[*CE2-10GE1/0/1] quit
[*CE2] commit
# 配置CE3。
[~CE3] vlan 200
[*CE3-vlan200] quit
[*CE3] interface 10ge 1/0/1
[*CE3-10GE1/0/1] port link-type trunk
[*CE3-10GE1/0/1] port trunk allow-pass vlan 200
[*CE3-10GE1/0/1] stp bpdu vlan 200
[*CE3-10GE1/0/1] quit
[*CE3] commit
# 配置CE4。
[~CE4] vlan 200
[*CE4-vlan200] quit
[*CE4] interface 10ge 1/0/1
[*CE4-10GE1/0/1] port link-type trunk
[*CE4-10GE1/0/1] port trunk allow-pass vlan 200
[*CE4-10GE1/0/1] stp bpdu vlan 200
[*CE4-10GE1/0/1] quit
[*CE4] commit
- 配置PE的基本QinQ透明传输功能。使来自CE的VLAN100和VLAN200的报文被打上外层Tag10在运营商网络中传输
# 配置PE1。
[~PE1] vlan 10
[*PE1-vlan10] quit
[*PE1] interface 10ge 1/0/2
[*PE1-10GE1/0/2] port link-type dot1q-tunnel
[*PE1-10GE1/0/2] port default vlan 10
[*PE1-10GE1/0/2] l2protocol-tunnel stp vlan 10
[*PE1-10GE1/0/2] quit
[*PE1] interface 10ge 1/0/3
[*PE1-10GE1/0/3] port link-type dot1q-tunnel
[*PE1-10GE1/0/3] port default vlan 10
[*PE1-10GE1/0/3] l2protocol-tunnel stp vlan 10
[*PE1-10GE] quit
[*PE1] commit
# 配置PE2。
[~PE2] vlan 10
[*PE2-vlan10] quit
[*PE2] interface 10ge 1/0/2
[*PE2-10GE1/0/2] port link-type dot1q-tunnel
[*PE2-10GE1/0/2] port default vlan 10
[*PE2-10GE1/0/2] l2protocol-tunnel stp vlan 10
[*PE2-10GE1/0/2] quit
[*PE2] interface 10ge 1/0/3
[*PE2-10GE1/0/3] port link-type dot1q-tunnel
[*PE2-10GE1/0/3] port default vlan 10
[*PE2-10GE1/0/3] l2protocol-tunnel stp vlan 10
[*PE2-10GE1/0/3] quit
[*PE2] commit
如果对端设备发送的为非标准协议报文,用户可以先执行命令l2protocol-tunnel user-defined-protocol protocol-name protocol-mac protocol-mac [ encap-type { { ethernetii | snap } protocol-type protocol-type-value | llc dsap dsap-value ssap ssap-value } ] group-mac { group-mac | default-group-mac },自定义二层透明传输协议的特征信息,然后执行命令l2protocol-tunnel user-defined-protocol protocol-name vlan { low-id [ to high-id ] } &<1-10>,使能接口基于基本QinQ的二层协议透明传输功能。
- 配置PE替换接收到CE的STP协议报文的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 EncapeType ProtocolType Protocol-MAC Group-MAC Pri ----------------------------------------------------------------------------- stp llc dsap 0x42 0180-c200-0000 0100-5e00-0011 0 ssap 0x42
配置完成后,在CE1和CE2设备上执行display stp brief命令可以检查MSTP的根。CE1和CE2之间完成了生成树计算功能。CE1上的10GE1/0/1为根(Root)端口,CE2上的10GE1/0/1为指定(Designated)端口。
[~CE1] display stp brief MSTID Port Role STP State Protection Cost Edged 0 10GE1/0/1 ROOT forwarding none 2000 disable
[~CE2] display stp brief MSTID Port Role STP State Protection Cost Edged 0 10GE1/0/1 DESI forwarding none 2000 disable
在CE3和CE4设备上执行display stp brief命令可以检查MSTP的根。CE3和CE4之间完成了生成树计算功能。CE3上的10GE1/0/1为根(Root)端口,CE4上的10GE1/0/1为指定(Designated)端口。
[~CE3] display stp brief MSTID Port Role STP State Protection Cost Edged 0 10GE1/0/1 ROOT forwarding none 2000 disable
[~CE4] display stp brief MSTID Port Role STP State Protection Cost Edged 0 10GE1/0/1 DESI forwarding none 2000 disable
在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: 10GE1/0/1 10GE1/0/2 ---------------- Active Untag Port: 10GE1/0/1 10GE1/0/2 ------------------- Interface Physical 10GE1/0/1 Up 10GE1/0/2 Up
配置文件
CE1的配置文件
# sysname CE1 # vlan batch 100 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 100 stp bpdu vlan 100 # return
CE2的配置文件
# sysname CE2 # vlan batch 100 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 100 stp bpdu vlan 100 # return
CE3的配置文件
# sysname CE3 # vlan batch 200 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 200 stp bpdu vlan 200 # return
CE4的配置文件
# sysname CE4 # vlan batch 200 # interface 10GE1/0/1 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 10GE1/0/2 port link-type dot1q-tunnel port default vlan 10 l2protocol-tunnel stp vlan 10 # interface 10GE1/0/3 port link-type dot1q-tunnel port default vlan 10 l2protocol-tunnel stp vlan 10 # return
PE2的配置文件
# sysname PE2 # vlan batch 10 # l2protocol-tunnel stp group-mac 0100-5e00-0011 # interface 10GE1/0/2 port link-type dot1q-tunnel port default vlan 10 l2protocol-tunnel stp vlan 10 # interface 10GE1/0/3 port link-type dot1q-tunnel port default vlan 10 l2protocol-tunnel stp vlan 10 # return