H-VPLS with Redundancy
Last updated
Last updated
Load hvpls.bgp.init.cfg
Configure H-VPLS using LDP with BGP-AD for the N-PE mesh.
R1, R3, and R5 are the U-PEs, and R2, R4, and R6 are the N-PEs.
Each U-PE should only peer to the N-PE one number higher (i.e. R1 to R2, etc).
Configure N-PE redundancy on R1 so that if R2 goes down, R1 switches over to R4 as the N-PE.
BGP is already pre-configured in the core.
In order to achieve N-PE redundancy we must use pseudowire redundancy. Unfortunately there doesn’t appear to be a way to use pseudowire redundancy with a VPLS bridge-domain, so we have no choice but to revert to using a regular VPWS service on R1. This seems to prevent us from having multiple CEs attached to R1.
In summary, R1 just uses VPWS redundancy. This is basic VPWS redundancy and has nothing to do with VPLS. In fact, no MAC learning happens on R1.
R2 and R4 both configure R1 as a U-PE like normal.
On R2 we can shutdown Lo0. This is the PW endpoint, so it will bring down the PW on R1. R1 will then switchover to R4 as the primary xconnect endpoint. During this we can ping CE2 from CE1 to observe convergence.
Only one ping is lost:
If we bring Lo0 back up R1 will move the pseudowire back to R2. R2 will be forced to learn MACs again, and form a full mesh of PWs in the N-PE VPLS. This seems to have even worse convergence than the initial failover.
We can try to optimize this a bit by playing with the delay timers:
The frist timer is the enable timer, which is how long to wait to switchover to the standby PW. The second timer is the one we want to increase, which is the disable timer. This is how long to wait before switching back to the primary PW.
We still see one lost ping when failing over, but now we get no packet loss when Lo0 comes back up.