配置基于VPLS的MAC-Flapping环路检测示例
在VPLS(Virtual Private LAN Service)网络中部署MAC-Flapping环路检测功能后,如果VPLS网络中出现环路,MAC-Flapping环路检测功能通过MAC表项跳变频率判断出现环路,根据阻断策略阻断AC(Attachment Circuit)侧接口或PW(Pseudo Wire),达到破除环路的目的。
组网需求
如图11-2所示,整个VPLS网络通过MPLS(Multiprotocol Label Switching)隧道在每个VPN(Virtual Private Network)的各个Site之间建立PW,并通过PW将用户二层报文在站点间透传。PE设备会在转发报文的同时学习源MAC并建立MAC表项,完成MAC地址与AC侧接口和PW的映射关系。
- 根据接口的阻断优先级:当设备检测到环路时,会选择阻塞阻断优先级低的接口。
- 根据接口是否为信任接口:当设备检测到环路时,会选择阻塞非信任接口。
另外,MAC-Flapping环路检测功能除了能检测以上AC侧接口的环路以外,还能检测PW侧环路。即在PE1、PE2和PE3上分别部署MAC-Flapping环路检测功能后,若检测到PW形成环路,可根据PW阻断优先级阻断其中一个PW,实现破除环路。
配置思路
采用如下的思路配置基于VPLS的MAC-Flapping环路检测:
- 配置基于LDP(Label Distribution Protocol)方式的VPLS,实现CE之间的互通,配置步骤如下:
- 在骨干网上配置路由协议实现互通。
- PE间建立传输业务数据所使用的隧道。
- PE上使能MPLS L2VPN(Layer 2 Virtual Private Network)。
- 在PE上创建VSI,指定信令为LDP,然后将VSI与AC接口绑定。
部署MAC-Flapping环路检测功能,根据MAC表项的跳变频率判断是否出现环路,从而实现破除AC侧接口或PW的环路。
数据准备
为完成此配置例,需准备如下的数据。
- VSI名称及VSI ID。
- 对等体的IP地址及建立对等体时使用的隧道策略。
- 绑定VSI的接口。
- 部署MAC-Flapping环路检测功能的接口或PW。
- MAC-Flapping环路检测功能的检测参数。
- MAC-Flapping环路检测功能的接口或PW阻断优先级。
操作步骤
- 配置基于LDP方式的VPLS
按图11-2配置PE1、PE2和PE3的各接口地址,并配置IGP。本例中使用OSPF。
配置OSPF时,注意需要发布PE1、PE2和PE3的32位Loopback接口地址(LSR-ID)。
具体配置步骤参考后面的配置文件。
配置完成后,在PE1、PE2和PE3上执行display ip routing-table命令可以看到已学到彼此的路由。
配置MPLS基本能力和LDP
具体配置步骤参考后面的配置文件。
配置完成后,在PE1、PE2和PE3上执行display mpls ldp session命令可以看到各PE之间的对等体的Status项为“Operational”,即对等体关系已建立。执行display mpls lsp命令可以看到LSP的建立情况。
在PE上使能MPLS L2VPN
# 配置PE1。
[*PE1] mpls l2vpn
[*PE1-l2vpn] commit
[~PE1-l2vpn] quit
# 配置PE2。
[*PE2] mpls l2vpn
[*PE2-l2vpn] commit
[~PE2-l2vpn] quit
# 配置PE3。
[*PE3] mpls l2vpn
[*PE3-l2vpn] commit
[~PE3-l2vpn] quit
配置VSI
# 配置PE1。
[*PE1] vsi vsi1
[*PE1-vsi-vsi1] pwsignal ldp
[*PE1-vsi-vsi1-ldp] vsi-id 2
[*PE1-vsi-vsi1-ldp] peer 2.2.2.9
[*PE1-vsi-vsi1-ldp] peer 3.3.3.9
[*PE1-vsi-vsi1-ldp] quit
[*PE1-vsi-vsi1] quit
[*PE1] commit
# 配置PE2。
[*PE2] vsi vsi1
[*PE2-vsi-vsi1] pwsignal ldp
[*PE2-vsi-vsi1-ldp] vsi-id 2
[*PE2-vsi-vsi1-ldp] peer 1.1.1.9
[*PE2-vsi-vsi1-ldp] peer 3.3.3.9
[*PE2-vsi-vsi1-ldp] quit
[*PE2-vsi-vsi1] quit
[*PE2] commit
# 配置PE3。
[*PE3] vsi vsi1
[*PE3-vsi-vsi1] pwsignal ldp
[*PE3-vsi-vsi1-ldp] vsi-id 2
[*PE3-vsi-vsi1-ldp] peer 1.1.1.9
[*PE3-vsi-vsi1-ldp] peer 2.2.2.9
[*PE3-vsi-vsi1-ldp] quit
[*PE3-vsi-vsi1] quit
[*PE3] commit
配置VSI与接口绑定
# 配置PE1。
[~PE1] interface gigabitethernet0/1/1.1
[*PE1-GigabitEthernet0/1/1.1] shutdown
[*PE1-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*PE1-GigabitEthernet0/1/1.1] l2 binding vsi vsi1
[*PE1-GigabitEthernet0/1/1.1] undo shutdown
[*PE1-GigabitEthernet0/1/1.1] commit
[~PE1-GigabitEthernet0/1/1.1] quit
[*PE1] interface gigabitethernet0/1/2.1
[*PE1-GigabitEthernet0/1/2.1] shutdown
[*PE1-GigabitEthernet0/1/2.1] vlan-type dot1q 10
[*PE1-GigabitEthernet0/1/2.1] l2 binding vsi vsi1
[*PE1-GigabitEthernet0/1/2.1] undo shutdown
[*PE1-GigabitEthernet0/1/2.1] commit
[~PE1-GigabitEthernet0/1/2.1] quit
# 配置PE2。
[~PE2] interface gigabitethernet0/1/1.1
[*PE2-GigabitEthernet0/1/1.1] shutdown
[*PE2-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*PE2-GigabitEthernet0/1/1.1] l2 binding vsi vsi1
[*PE2-GigabitEthernet0/1/1.1] undo shutdown
[*PE2-GigabitEthernet0/1/1.1] commit
[~PE2-GigabitEthernet0/1/1.1] quit
# 配置PE3。
[~PE3] interface gigabitethernet0/1/1.1
[*PE3-GigabitEthernet0/1/1.1] shutdown
[*PE3-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*PE3-GigabitEthernet0/1/1.1] l2 binding vsi vsi1
[*PE3-GigabitEthernet0/1/1.1] undo shutdown
[*PE3-GigabitEthernet0/1/1.1] commit
[~PE3-GigabitEthernet0/1/1.1] quit
配置CE
# 配置CE1。
<HUAWEI> system-view
[~HUAWEI] sysname CE1
[*HUAWEI] commit
[~CE1] interface gigabitethernet0/1/1.1
[*CE1-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*CE1-GigabitEthernet0/1/1.1] ip address 10.1.1.3 255.255.255.0
[*CE1-GigabitEthernet0/1/1.1] quit
[*CE1] commit
# 配置CE2。
<HUAWEI> system-view
[~HUAWEI] sysname CE2
[*HUAWEI] commit
[~CE2] interface gigabitethernet0/1/1.1
[*CE2-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*CE2-GigabitEthernet0/1/1.1] ip address 10.1.1.1 255.255.255.0
[*CE2-GigabitEthernet0/1/1.1] quit
[*CE2] commit
# 配置CE3。
<HUAWEI> system-view
[~HUAWEI] sysname CE3
[*HUAWEI] commit
[~CE3] interface gigabitethernet0/1/1.1
[*CE3-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*CE3-GigabitEthernet0/1/1.1] ip address 10.1.1.2 255.255.255.0
[*CE3-GigabitEthernet0/1/1.1] quit
[*CE3] commit
# 配置CE4。
<HUAWEI> system-view
[~HUAWEI] sysname CE4
[*HUAWEI] commit
[~CE4] interface gigabitethernet0/1/1.1
[*CE4-GigabitEthernet0/1/1.1] vlan-type dot1q 10
[*CE4-GigabitEthernet0/1/1.1] ip address 10.1.1.4 255.255.255.0
[*CE4-GigabitEthernet0/1/1.1] quit
[*CE4] commit
以上配置完成后,在PE1上执行display vsi name vsi1 verbose命令,可以看到名字为vsi1的VSI建立了两条PW,分别通往PE2和PE3,VSI状态都为UP。
[*PE1] display vsi name vsi1 verbose
***VSI Name : vsi1 Administrator VSI : no Isolate Spoken : disable VSI Index : 1 PW Signaling : ldp Member Discovery Style : -- Bridge-domain Mode : disable PW MAC Learn Style : unqualify Encapsulation Type : vlan MTU : 1500 Diffserv Mode : uniform Service Class : -- Color : -- DomainId : 255 Domain Name : Ignore AcState : disable P2P VSI : disable Multicast Fast Swicth : disable Create Time : 0 days, 0 hours, 15 minutes, 23 seconds VSI State : up Resource Status : -- VSI ID : 2 *Peer Router ID : 2.2.2.9 primary or secondary : primary ignore-standby-state : no VC Label : 4158 Peer Type : dynamic Session : up Tunnel ID : 0x0000000001004c4b42 Broadcast Tunnel ID : -- Broad BackupTunnel ID : -- CKey : 1 NKey : 1073741964 Stp Enable : 0 PwIndex : 1 Control Word : disable *Peer Router ID : 3.3.3.9 primary or secondary : primary ignore-standby-state : no VC Label : 4159 Peer Type : dynamic Session : up Tunnel ID : 0x0000000001004c4b43 Broadcast Tunnel ID : -- Broad BackupTunnel ID : -- CKey : 2 NKey : 1073741965 Stp Enable : 0 PwIndex : 2 Control Word : disable Interface Name : GigabitEthernet0/1/1.1 State : up Access Port : false Last Up Time : 2013/04/18 13:03:25 Total Up Time : 0 days, 0 hours, 6 minutes, 33 seconds Interface Name : GigabitEthernet0/1/2.1 State : up Access Port : false Last Up Time : 2013/04/18 13:06:09 Total Up Time : 0 days, 0 hours, 2 minutes, 41 seconds **PW Information: *Peer Ip Address : 2.2.2.9 PW State : up Local VC Label : 4158 Remote VC Label : 4158 Remote Control Word : disable PW Type : label Tunnel ID : 0x0000000001004c4b42 Broadcast Tunnel ID : -- Broad BackupTunnel ID : -- Ckey : 1 Nkey : 1073741964 Main PW Token : 0x0 Slave PW Token : 0x0 Tnl Type : ldp OutInterface : LDP LSP Backup OutInterface : -- Stp Enable : 0 Mac Flapping : 0 PW Last Up Time : 2013/04/18 13:06:58 PW Total Up Time : 0 days, 0 hours, 1 minutes, 32 seconds *Peer Ip Address : 3.3.3.9 PW State : up Local VC Label : 4159 Remote VC Label : 4158 Remote Control Word : disable PW Type : label Tunnel ID : 0x0000000001004c4b43 Broadcast Tunnel ID : -- Broad BackupTunnel ID : -- Ckey : 2 Nkey : 1073741965 Main PW Token : 0x0 Slave PW Token : 0x0 Tnl Type : ldp OutInterface : LDP LSP Backup OutInterface : -- Stp Enable : 0 Mac Flapping : 0 PW Last Up Time : 2013/04/18 13:07:41 PW Total Up Time : 0 days, 0 hours, 0 minutes, 31 seconds
- 部署MAC-Flapping环路检测功能,根据实际情况选择部署其中一种或两种
在PE1上部署AC侧接口的MAC-Flapping环路检测功能
[*PE1] vsi vsi1
[*PE1-vsi-vsi1] loop-detect eth-loop loop-times 3 detect-cycle 3 cycles 3
[*PE1-vsi-vsi1] commit
[~PE1-vsi-vsi1] quit
[*PE1] interface gigabitethernet0/1/1
[*PE1-GigabitEthernet0/1/1] loop-detect eth-loop priority 2
[*PE1-GigabitEthernet0/1/1] commit
[~PE1-GigabitEthernet0/1/1] quit
[*PE1] interface gigabitethernet0/1/2
[*PE1-GigabitEthernet0/1/2] loop-detect eth-loop priority 4
[*PE1-GigabitEthernet0/1/2] commit
[~PE1-GigabitEthernet0/1/2] quit
在各PE上部署PW的MAC-Flapping环路检测功能
# 配置PE1。
[*PE1] vsi vsi1
[*PE1-vsi-vsi1] loop-detect eth-loop loop-times 3 detect-cycle 3 cycles 3
[*PE1-vsi-vsi1] pwsignal ldp
[*PE1-vsi-vsi1-ldp] peer 2.2.2.9 pw pw1
[*PE1-vsi-vsi1-ldp-pw-pw1] loop-detect eth-loop priority 4
[*PE1-vsi-vsi1-ldp-pw-pw1] quit
[*PE1-vsi-vsi1-ldp] peer 3.3.3.9 pw pw2
[*PE1-vsi-vsi1-ldp-pw-pw2] loop-detect eth-loop priority 2
[*PE1-vsi-vsi1-ldp-pw-pw2] quit
[*PE1-vsi-vsi1] commit
# 配置PE2。
[*PE2] vsi vsi1
[*PE2-vsi-vsi1] loop-detect eth-loop loop-times 4 detect-cycle 4 cycles 4
[*PE2-vsi-vsi1] pwsignal ldp
[*PE2-vsi-vsi1-ldp] peer 1.1.1.9 pw pw1
[*PE2-vsi-vsi1-ldp-pw-pw1] loop-detect eth-loop priority 4
[*PE2-vsi-vsi1-ldp-pw-pw1] quit
[*PE2-vsi-vsi1-ldp] peer 3.3.3.9 pw pw2
[*PE2-vsi-vsi1-ldp-pw-pw2] loop-detect eth-loop priority 2
[*PE2-vsi-vsi1-ldp-pw-pw2] quit
[*PE2-vsi-vsi1] commit
# 配置PE3。
[*PE3] vsi vsi1
[*PE3-vsi-vsi1] loop-detect eth-loop loop-times 5 detect-cycle 5 cycles 5
[*PE3-vsi-vsi1] pwsignal ldp
[*PE3-vsi-vsi1-ldp] peer 1.1.1.9 pw pw1
[*PE3-vsi-vsi1-ldp-pw-pw1] loop-detect eth-loop priority 4
[*PE3-vsi-vsi1-ldp-pw-pw1] quit
[*PE3-vsi-vsi1-ldp] peer 2.2.2.9 pw pw2
[*PE3-vsi-vsi1-ldp-pw-pw2] loop-detect eth-loop priority 2
[*PE3-vsi-vsi1-ldp-pw-pw2] quit
[*PE3-vsi-vsi1] commit
- 验证配置结果
上述配置完成后,执行display loop-detect eth-loop命令可以查看VSI内的MAC-Flapping环路检测配置信息。
[~PE1] display loop-detect eth-loop vsi vsi1
VLAN/VSI LTimes DCycle Cycles Retry Action ------------------------------------------------------------------------------ vsi1 3 3 1 0 Block 0 s Total Items = 1 Blocked Port: --------------- VLAN/VSI Block Port Link-Block Port Detect MAC T -------------------------------------------------------------------------------- vsi1 GE0/1/1 00e0-fc12-3456 0
可见,当PE1检测到AC侧出现环路以后,阻断接口GE0/1/1,从而实现破除环路。
配置文件
CE1的配置文件
#
sysname CE1
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
ip address 10.1.1.3 255.255.255.0
#
return
CE2的配置文件
#
sysname CE2
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
ip address 10.1.1.1 255.255.255.0
#
return
CE3的配置文件
#
sysname CE3
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
ip address 10.1.1.2 255.255.255.0
#
return
CE4的配置文件
#
sysname CE4
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
ip address 10.1.1.4 255.255.255.0
#
return
PE1的配置文件
#
sysname PE1
#
mpls lsr-id 1.1.1.9
#
mpls
#
mpls l2vpn
#
vsi vsi1
pwsignal ldp
vsi-id 2
peer 2.2.2.9
peer 2.2.2.9 pw pw1
loop-detect eth-loop priority 4
peer 3.3.3.9
peer 3.3.3.9 pw pw2
loop-detect eth-loop priority 2
loop-detect eth-loop loop-times 3 detect-cycle 3 cycles 3
#
mpls ldp
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
l2 binding vsi vsi1
#
interface GigabitEthernet0/1/2.1
undo shutdown
vlan-type dot1q 10
l2 binding vsi vsi1
#
interface GigabitEthernet0/1/3
undo shutdown
ip address 192.168.10.1 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet0/1/4
undo shutdown
ip address 192.168.1.2 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 1.1.1.9 255.255.255.255
#
ospf 1
area 0.0.0.0
network 1.1.1.9 0.0.0.0
network 192.168.10.0 0.0.0.255
network 192.168.1.0 0.0.0.255
#
return
PE2的配置文件
#
sysname PE2
#
mpls lsr-id 2.2.2.9
#
mpls
#
mpls l2vpn
#
vsi vsi1
pwsignal ldp
vsi-id 2
peer 1.1.1.9
peer 1.1.1.9 pw pw1
loop-detect eth-loop priority 4
peer 3.3.3.9
peer 3.3.3.9 pw pw2
loop-detect eth-loop priority 2
loop-detect eth-loop loop-times 4 detect-cycle 4 cycles 4
#
mpls ldp
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
l2 binding vsi vsi1
#
interface GigabitEthernet0/1/2
undo shutdown
ip address 192.168.10.2 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet0/1/3
undo shutdown
ip address 192.168.100.1 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 2.2.2.9 255.255.255.255
#
ospf 1
area 0.0.0.0
network 2.2.2.9 0.0.0.0
network 192.168.10.0 0.0.0.255
network 192.168.100.0 0.0.0.255
#
return
PE3的配置文件
#
sysname PE3
#
mpls lsr-id 3.3.3.9
#
mpls
#
mpls l2vpn
#
vsi vsi1
pwsignal ldp
vsi-id 2
peer 1.1.1.9
peer 1.1.1.9 pw pw1
loop-detect eth-loop priority 4
peer 2.2.2.9
peer 2.2.2.9 pw pw2
loop-detect eth-loop priority 2
loop-detect eth-loop loop-times 5 detect-cycle 5 cycles 5
#
mpls ldp
#
interface GigabitEthernet0/1/1.1
undo shutdown
vlan-type dot1q 10
l2 binding vsi vsi1
#
interface GigabitEthernet0/1/2
undo shutdown
ip address 192.168.1.1 255.255.255.0
mpls
mpls ldp
#
interface GigabitEthernet0/1/3
undo shutdown
ip address 192.168.100.2 255.255.255.0
mpls
mpls ldp
#
interface LoopBack1
ip address 3.3.3.9 255.255.255.255
#
ospf 1
area 0.0.0.0
network 3.3.3.9 0.0.0.0
network 192.168.1.0 0.0.0.255
network 192.168.100.0 0.0.0.255
#
return