MAC Withdrawal - VPLS/H-VPLS
Overview
The MAC withdrawal mechanism allows for faster convergence by immediately clearing dynamically learned MAC addresses upon detecting a switchover event, rather than waiting for the usual aging process. This process is triggered by specific network events or state changes, such as:
• Spoke-PW switchover: A path between two VPLS network elements, typically between MTU-s (Multi-Tenant Units) and Provider Edge (PE) routers, transitions from standby to active or vice versa.
• MLAG switchover: When a link failure or node failure occurs in a MLAG setup, leading to the activation of a previously standby link.
The main goal is to ensure that MAC addresses learned from any given path (spoke or mesh) are promptly removed when a switchover occurs, preventing stale entries from affecting the network.
The MAC withdrawal message, defined as the LDP Positive MAC Flush message, is used to remove MAC address tables. This message can be triggered either by MTU-s or PE-rs depending on the network topology and the specific trigger event (such as a switchover or link failure).
Characteristics of MAC Withdrawal - VPLS/H-VPLS
• MAC Withdrawal is used to speed up network convergence during topology changes.
• It ensures that dynamically learned MAC addresses are flushed proactively instead of aging out, reducing traffic disruption.
• Triggers for MAC Withdrawal:
• Spoke PW Switchover: When a Spoke Pseudowire (PW) transitions between active and standby.
• MLAG Switchover: When a multi-chassis link aggregation (MLAG) event causes a switchover between active and standby devices.
• Node Failure: When a PE-rs (Provider Edge router) or MTU-s (Multi-Tenant Unit switch) fails or reboots.
• PW Status TLV: The Preferential Forwarding Status bit in an LDP PW Status TLV can signal a switchover.
• Manual Intervention: Administrators can trigger MAC withdrawal manually for network maintenance.
Benefits
• Proactively removes outdated MAC entries, reducing the time taken for the network to stabilize.
• Ensures quick adaptation to topology changes without requiring manual intervention.
• Reduces packet flooding by clearing invalid MAC table entries.
• Prevents stale forwarding information, ensuring accurate traffic routing.
• Ensures seamless transition when a standby link becomes active.
• Enables compatibility with industry-standard VPLS/H-VPLS deployments.
• Prevents unnecessary flushing across Mesh PWs, maintaining stability.
Prerequisites
• Define Interfaces and Loopback Addresses:
Configure Layer 2 interfaces, like port channel interfaces (e.g., po1), and assign specific IP addresses for proper identification and routing. Additionally, assign loopback IP addresses to establish essential points of connec-tivity. These configurations establish the efficient network routing and communication.
!
interface lo
ip address 127.0.0.1/8
ip address 2.2.2.2/32 secondary
ipv6 address ::1/128
interface xe14
ip address 30.1.1.2/24
• Configure IGP for Dynamic Routing:
Enable ISIS to facilitate dynamic routing on all nodes within the net-work. Define ISIS router instances to match loopback IP addresses and add network segments to ISIS areas for proper route distribution.Set up neighbor relationships using loopback IP addresses, ensuring efficient route advertisement and convergence for optimal network performance.
• ISIS Configuration:
router isis 1
is-type level-2-only
metric-style wide
microloop-avoidance level-2
mpls traffic-eng router-id 2.2.2.2
mpls traffic-eng level-2
capability cspf
dynamic-hostname
bfd all-interfaces
net 49.0000.0000.0002.00
passive-interface lo
!
interface xe14
mpls ldp-igp sync isis level-2
isis network point-to-point
ip router isis 1
• OSPF Configuration:
router ospf 1
ospf router-id 2.2.2.2
network 2.2.2.2/32 area 0.0.0.0
network 30.1.1.0/24 area 0.0.0.0!
!
interface xe14
ip ospf network point-to-point
Configuration
Topology
This topology represents MAC withdrawal for VPLS/H-VPLS with Primary and Secondary Hub architecture.
MAC Withdrawal for VPLS/H-VPLS Topology
Configuring H-VPLS
Configure PE1 router as follows:
1. Configure router LDP.
PE1(config)#router ldp
PE1(config-router)# router-id 2.2.2.2
PE1(config-router)# transport-address ipv4 2.2.2.2
2. Configure targeted-peer under router LDP.
PE1(config-router)# targeted-peer ipv4 5.5.5.5
PE1(config-router-targeted-peer)# exit-targeted-peer-mode
PE1(config-router)# targeted-peer ipv4 3.3.3.3
PE1(config-router-targeted-peer)# exit-targeted-peer-mode
3. Enable LDP and label-switching for core interface.
PE1(config)#interface xe14
PE1(config-if)# enable-ldp ipv4
PE1(config-if)#label-switching
PE1(config)#interface xe26
PE1(config-if)# enable-ldp ipv4
PE1(config-if)#label-switching
4. Configure VPLS instance.
PE1(config)#mpls vpls vpls2000 2000
PE1(config-vpls)# signaling ldp
PE1(config-vpls-sig)# vpls-peer 3.3.3.3
PE1(config-vpls-sig)# vpls-peer 5.5.5.5
PE1(config-vpls-sig)# exit-signaling
PE1(config-vpls)# exit-vpls
PE1(config)#
5. Configure sub-interface and attach vpls-instance to sub-interface.
PE1(config)#
PE1(config)#interface xe16.2000 switchport
PE1(config-if)# encapsulation dot1q 2000
PE1(config-if)# access-if-vpls
PE1(config-acc-if-vpls)# mpls-vpls vpls2000
PE1(config-acc-if-vpls)#
Configuring the H-VPLS MAC-Withdrawal on PE2 (Primary Hub):
1. Configure router LDP.
PE2(config)#router ldp
PE2(config-router)# router-id 5.5.5.5
PE2(config-router)# transport-address ipv4 5.5.5.5
2. Configure targeted-peer under router LDP.
PE2(config)#router ldp
PE2(config-router)# targeted-peer ipv4 2.2.2.2
PE2(config-router-targeted-peer)# exit-targeted-peer-mode
PE2(config-router)# targeted-peer ipv4 3.3.3.3
PE2(config-router-targeted-peer)# exit-targeted-peer-mode
PE2(config-router)#
3. Enable LDP and label-switching for core interface
PE2(config)#interface xe1
PE2(config-if)# enable-ldp ipv4
PE2(config-if)#label-switching
PE2(config)#interface xe12
PE2(config-if)# enable-ldp ipv4
PE2(config-if)#label-switching
4. Configure VPLS instance.
PE2(config)#mpls vpls vpls2000 2000
PE2(config-vpls)# signaling ldp
PE2(config-vpls-sig)# vpls-peer 2.2.2.2
PE2(config-vpls-sig)# vpls-peer 3.3.3.3
PE2(config-vpls-sig)# exit-signaling
PE2(config-vpls)# exit-vpls
PE2(config)#
5. Configure L2-ckt.
PE2 (config)#mpls l2-circuit vc2000 2222 8.8.8.8 mode raw
PE2(config-pseudowire)#
6. Attach L2-ckt under vpls instance.
PE2 (config)#mpls vpls vpls2000 2000
PE2(config-vpls)#vpls-vc vc2000
PE2(config-vpls-spoke)#
7. Configure mac-withdrawal under VPLS instance.
PE2(config-vpls-spoke)#mpls vpls vpls2000 2000
PE2(config-vpls)# vpls-vc vc2000
PE2(config-vpls-spoke)# exit-spoke
PE2(config-vpls)# mac-withdrawal flush-propagate-spoke-to-mesh
PE2(config-vpls)#exit
PE2(config)#
Configuring the H-VPLS on PE3 (Secondary Hub):
1. Configure router LDP.
PE3(config)#router ldp
PE3(config-router)# router-id 3.3.3.3
PE3(config-router)# transport-address ipv4 3.3.3.3
2. Configure targeted-peer under router LDP.
PE3(config)#router ldp
PE3(config-router)# targeted-peer ipv4 2.2.2.2
PE3(config-router-targeted-peer)# exit-targeted-peer-mode
PE3(config-router)# targeted-peer ipv4 5.5.5.5
PE3(config-router-targeted-peer)# exit-targeted-peer-mode
PE3(config-router)#
3. Enable LDP and label-switching for core interface.
PE3(config)#interface xe23
PE3(config-if)# enable-ldp ipv4
PE3(config-if)#label-switching
PE3(config)#interface xe26
PE3(config-if)# enable-ldp ipv4
PE3(config-if)#label-switching
4. Configure VPLS instance.
PE3(config)#mpls vpls vpls2000 2000
PE3(config-vpls)# signaling ldp
PE3(config-vpls-sig)# vpls-peer 2.2.2.2
PE3(config-vpls-sig)# vpls-peer 5.5.5.5
PE3(config-vpls-sig)# exit-signaling
PE3(config-vpls)# exit-vpls
PE3(config)#
5. 5.Configure L2-ckt.
PE3(config)#mpls l2-circuit vc2001 2223 8.8.8.8 mode raw
PE3(config-pseudowire)#
6. Attach L2-ckt under VPLS instance.
PE3 (config)#mpls vpls vpls2000 2000
PE3(config-vpls)#vpls-vc vc2001
PE3(config-vpls-spoke)#
7. Configure mac-withdrawal under VPLS instance.
PE3(config)#mpls vpls vpls2000 2000
PE3(config-vpls)# vpls-vc vc2001
PE3(config-vpls-spoke)# exit-spoke
PE3(config-vpls)# mac-withdrawal flush-propagate-spoke-to-mesh
PE3(config-vpls)#exit
PE3(config)#
Configuring the H-VPLS on Spoke Router:
1. Configure router LDP.
Spoke(config)#router ldp
Spoke(config-router)# router-id 8.8.8.8
Spoke(config-router)# transport-address ipv4 8.8.8.8
2. Configure targeted-peer under router LDP.
Spoke(config-router)# targeted-peer ipv4 5.5.5.5
Spoke(config-router-targeted-peer)# exit-targeted-peer-mode
Spoke(config-router)# targeted-peer ipv4 3.3.3.3
Spoke(config-router-targeted-peer)# exit-targeted-peer-mode
3. Enable LDP and label-switching for core interface.
Spoke(config)#interface xe12
Spoke(config-if)# enable-ldp ipv4
Spoke(config-if)#label-switching
Spoke(config)#interface xe25
Spoke(config-if)# enable-ldp ipv4
Spoke(config-if)#label-switching
4. Configure VPLS instance.
Spoke (config)#mpls vpls vpls2000 2000
Spoke (config-vpls)#
5. Configure L2-ckt.
Spoke(config)#mpls l2-circuit vc2000 2222 5.5.5.5 mode raw
Spoke(config-pseudowire)#!
Spoke(config-pseudowire)#mpls l2-circuit vc2001 2223 3.3.3.3 mode raw
Spoke(config-pseudowire)#
6. Configure Primary and Secondary spoke under VPLS instance.
Spoke(config)#mpls vpls vpls2000 2000
Spoke(config-vpls)#vpls-vc vc2000
Spoke(config-vpls-spoke)# secondary vc2001
Spoke(config-vpls-spoke)# exit-spoke
Spoke(config-vpls)# exit-vpls
Spoke(config)#
7. Configure sub-interface and attach vpls-instance to sub-interface.
Spoke(config)#
Spoke(config)#interface xe26.2000 switchport
Spoke(config-if)# encapsulation dot1q 2000
Spoke(config-if)# access-if-vpls
Spoke(config-acc-if-vpls)# mpls-vpls vpls2000
Spoke(config-acc-if-vpls)#
8. Configure mac-withdrawal under VPLS instance.
Spoke(config)#mpls vpls vpls2000 2000
Spoke(config-vpls)#mac-withdrawal flush-on-spoke-vc-standby-activation
Spoke(config-vpls)#commit
Spoke(config-vpls)#
Running Configuration on PE1 Router:
router ldp
router-id 2.2.2.2
targeted-peer ipv4 3.3.3.3
exit-targeted-peer-mode
targeted-peer ipv4 5.5.5.5
transport-address ipv4 2.2.2.2
!
interface xe14
enable-ldp ipv4
!
interface xe26
enable-ldp ipv4
!
mpls vpls vpls2000 2000
signaling ldp
vpls-peer 3.3.3.3
vpls-peer 5.5.5.5
exit-signaling
exit-vpls
!
interface xe16.2000 switchport
access-if-vpls
mpls-vpls vpls2000
Running Configuration on PE2 Router:
router ldp
targeted-peer ipv4 2.2.2.2
exit-targeted-peer-mode
targeted-peer ipv4 3.3.3.3
exit-targeted-peer-mode
transport-address ipv4 5.5.5.5
!
mpls l2-circuit vc2000 2222 8.8.8.8 mode raw
!
mpls vpls vpls2000 2000
vpls-vc vc2000
exit-spoke
mac-withdrawal flush-propagate-spoke-to-mesh
signaling ldp
vpls-peer 2.2.2.2
vpls-peer 3.3.3.3
exit-signaling
exit-vpls
Running Configuration on PE3 Router:
router ldp
targeted-peer ipv4 2.2.2.2
exit-targeted-peer-mode
targeted-peer ipv4 5.5.5.5
exit-targeted-peer-mode
transport-address ipv4 3.3.3.3
!
mpls l2-circuit vc2001 2223 8.8.8.8 mode raw
!
mpls vpls vpls2000 2000
vpls-vc vc2001
exit-spoke
exit-spoke
mac-withdrawal flush-propagate-spoke-to-mesh
signaling ldp
vpls-peer 2.2.2.2
vpls-peer 5.5.5.5
exit-signaling
exit-vpls
Running Configuration on Spoke Router:
router ldp
router-id 8.8.8.8
targeted-peer ipv4 3.3.3.3
exit-targeted-peer-mode
targeted-peer ipv4 5.5.5.5
exit-targeted-peer-mode
transport-address ipv4 8.8.8.8
!
mpls l2-circuit vc2000 2222 5.5.5.5 mode raw
!
mpls l2-circuit vc2001 2223 3.3.3.3 mode raw
!
mpls vpls vpls2000 2000
vpls-vc vc2000
secondary vc2001
exit-spoke
mac-withdrawal flush-on-spoke-vc-standby-activation
exit-vpls
!
interface xe26.2000 switchport
access-if-vpls
mpls-vpls vpls2000
Validation
PE2#show mpls vpls vpls2000
Virtual Private LAN Service Instance: vpls2000, ID: 2000
SIG-Protocol: LDP
Attachment-Circuit: UP
Learning: Enabled
Control-Word: Disabled
Flow Label Status: Disabled, Direction: None, Static: No
Group ID: 0, VPLS Type: Ethernet, Configured MTU: 1500
Description: none
service-tpid: dot1.q
Operating mode: Raw
MAC Withdrawal:
Propagated to the mesh peers from the hub
Configured interfaces:
None
Mesh Peers:
2.2.2.2 (Peer VPLS Type: Ethernet) (Up) (UpTime: 2d12h13m)
3.3.3.3 (Peer VPLS Type: Ethernet) (Up) (UpTime: 2d12h22m)
Spoke Peers:
vc2000 (Up) (UpTime 01:31:27)
PE3#show mpls vpls vpls2000
Virtual Private LAN Service Instance: vpls2000, ID: 2000
SIG-Protocol: LDP
Attachment-Circuit: UP
Learning: Enabled
Control-Word: Disabled
Flow Label Status: Disabled, Direction: None, Static: No
Group ID: 0, VPLS Type: Ethernet, Configured MTU: 1500
Description: none
service-tpid: dot1.q
Operating mode: Raw
MAC Withdrawal:
Propagated to the mesh peers from the hub
Configured interfaces:
None
Mesh Peers:
2.2.2.2 (Peer VPLS Type: Ethernet) (Up) (UpTime: 2d12h16m)
5.5.5.5 (Peer VPLS Type: Ethernet) (Up) (UpTime: 2d12h22m)
Spoke Peers:
vc2001 (Dn) (Reason: VC on standby)
Spoke#show mpls vpls vpls2000
Virtual Private LAN Service Instance: vpls2000, ID: 2000
SIG-Protocol: N/A
Attachment-Circuit: UP
Learning: Enabled
Control-Word: Disabled
Flow Label Status: Disabled, Direction: None, Static: No
Group ID: 0, Configured MTU: 1500
Description: none
service-tpid: dot1.q
Operating mode: Raw
MAC Withdrawal:
Sent on switchover from secondary spoke to primary spoke
Configured interfaces:
Interface: xe26.2000
Status: Up
Subinterface Match Criteria(s) :
dot1q 2000
Spoke Peers:
vc2000 (Up) (UpTime 01:31:33)
Secondary: vc2001 (Dn) (Reason: VC on standby)
CLI Commands
The MAC Withdrawal for VPLS/H-VPLS introduces the following configuration commands.
mac-withdrawal flush-on-spoke-vc-standby-activation
Use this command to send MAC withdraw when the secondary spoke becomes the primary.
Use no parameter of this command to remove MAC withdraw when the secondary spoke becomes the primary.
Command Syntax
mac-withdrawal flush-on-spoke-vc-standby-activation
no mac-withdrawal flush-on-spoke-vc-standby-activation
Parameters
None
Default
None
Command Mode
VPLS Mode
Applicability
Introduced in OcNOS version 6.6.0.
Example
Explain or describe the example.
#configure terminal
(config)#mpls vpls vpls12 12
(config-vpls)#mac-withdrawal flush-on-spoke-vc-standby-activation
mac-withdrawal flush-propagate-spoke-to-mesh
Use this command to allow propagation of MAC withdraw from spoke to mesh.
Use no parameter of this command to remove propagation of MAC withdraw from spoke to mesh.
Command Syntax
mac-withdrawal flush-propagate-spoke-to-mesh
Parameters
None
Default
None
Command Mode
VPLS Mode
Applicability
Introduced in OcNOS version 6.6.0.
Example
Explain or describe the example.
#configure terminal
(config)#mpls vpls vpls12 12
(config-vpls)#mac-withdrawal flush-propagate-spoke-to-mesh
Glossary
The following provides definitions for key terms or abbreviations and their meanings used throughout this document:
Key Terms/Acronym | Description |
H-VPLS | Hierarchical Virtual Private LAN Service |
VPLS | Virtual Private LAN Service |