Virtual Private LAN Service (VPLS) Using Label Distribution Protocol (LDP) Signaling
Extracted elements (27)
A full mesh of n*(n-1)/2 PWs creates packet replication overhead that limits large-scale deployment. Hierarchical VPLS (H-VPLS) using hub-and-spoke PWs reduces both signaling overhead and replication requirements by aggregating access devices through bridging-capable MTU-s nodes.
A full mesh of PWs is established between PEs so that no PE needs to relay packets through an intermediary, enabling a simple loop-breaking rule (split horizon) rather than a spanning tree protocol.
Service-delimiting encapsulation (e.g., a VLAN tag identifying the customer's VPLS instance) is stripped at ingress and may be re-inserted at egress, keeping the frame traversing the VPLS a 'normalized' customer Ethernet frame. These are local PE actions that do not need to be signaled between PEs.
Unlike BGP VPNs (RFC 4364), VPLS reachability is not advertised via a control plane but is instead obtained by standard learning bridge functions in the data plane, avoiding the need for address resolution servers or other external servers.
Appendix A retains the original VPLS signaling using the PWid FEC Element (FEC type 128) because live deployments use this version. The VCID in this context has global significance across all PEs in the VPLS instance, unlike the point-to-point service identifier use defined in RFC 4447.
RFC 4761 and RFC 4762 both implement VPLS using different signaling protocols and are distinct and incompatible with one another, even though each method is commonly referred to as 'VPLS'.
A PE MUST be able to associate a destination MAC address with a PW in order to forward a frame. VPLS-capable PEs SHOULD have the capability to dynamically learn MAC addresses on both ACs and PWs.
A PE MUST NOT forward traffic from one PW to another PW in the same VPLS mesh (the 'split horizon' rule), preventing loops in the full-mesh topology.
If a PE is not able to support both Ethernet and Ethernet VLAN PWs simultaneously within the same VPLS, it SHOULD send a Label Release with status code 'Unknown FEC' (per RFC 3036) on the PW type it cannot support.
If a PE receives a MAC Address Withdraw Message and does not understand it, it MUST ignore the message; it will continue using stale MAC associations until they are overwritten by normal learning or aged out.
In the MAC List TLV, the U bit MUST be set to 1, the F bit MUST be set to 0, the Type field MUST be set to 0x0404, and the Length MUST be a multiple of 6.
PEs that learn remote MAC addresses SHOULD have an aging mechanism to remove unused entries associated with a PW label, and the aging timer SHOULD be reset when a packet with that source MAC address is received.
Qualified learning (each customer VLAN mapped to its own VPLS instance with its own FIB and broadcast domain) is the default mode and MUST be supported. Support of unqualified learning (all VLANs of a customer in one VPLS) is OPTIONAL.
The capability to manually configure the addresses of remote PEs is REQUIRED; however, auto-discovery procedures (e.g., RADIUS-based or BGP-based) may be used as an alternative.
The MTU interface parameter in the Generalized PWid FEC Element MUST be the same across all PWs in the VPLS mesh.
A MAC Address Withdrawal mechanism is introduced using an LDP Address Withdraw Message containing a MAC List TLV to remove or unlearn dynamically learned MAC addresses for faster convergence after topology changes such as a dual-homed link failure.
In H-VPLS, a bridging-capable MTU-s requires only a single spoke PW per VPLS instance regardless of the number of ACs, because it performs local MAC learning and replication. A non-bridging PE-r requires one PW per AC since it performs no bridging functions.
In the Ethernet access network hierarchical model, a Provider VLAN (P-VLAN) tag is added to customer traffic within the Ethernet island to identify the VPLS instance, with a one-to-one correspondence between P-VLAN and VPLS instance. This limits VPLS instances per Ethernet island to 4K.
Multi-domain VPLS connects fully meshed VPLS networks via a single inter-domain spoke PW per VPLS service between border PEs, creating a three-tier hierarchy: MTU-s to PE-rs (hub-and-spoke), intra-domain PE-rs full mesh, and inter-domain PE-rs full mesh.
The Generalized PWid FEC Element (FEC type 129) from RFC 4447 is used for VPLS signaling. The AGI (Attachment Group Identifier) field identifies the VPLS instance; TAII and SAII are null because the PW mesh terminates on MAC learning tables rather than individual attachment circuits.
IANA allocated the MAC List TLV type value 0x0404 for use in LDP Address Withdraw Messages to carry lists of MAC addresses to be unlearned in a VPLS instance.
LDP authentication methods as described in RFC 3036 SHOULD be applied to prevent unauthenticated messages from disrupting a PE in a VPLS. Additionally, some means to limit the number of MAC addresses per site per VPLS that a PE can learn SHOULD be implemented to prevent denial-of-service attacks.
Traffic isolation between VPLS domains is guaranteed by per-VPLS L2 FIB tables and per-VPLS PWs. Customer traffic SHOULD be encrypted and/or authenticated before entering the service provider network if security is required.
For dual-homed MTU-s failover: upon primary PW failure (detected via LDP hello timeout), MTU-s immediately switches to the secondary PW. The PE terminating the secondary PW then sends a MAC flush message (empty MAC List TLV) to all other PE-rs nodes to purge stale MAC-to-PW associations and accelerate convergence.
MAC Address Withdraw processing: for each MAC in the TLV, remove the association between that MAC and the AC or PW over which the message arrived. For an empty MAC list, remove all MAC addresses associated with the VPLS instance except those learned over the signaling PW that carried the withdrawal.
The MAC List TLV has a 2-byte Type field (0x0404), a 2-byte Length field (must be a multiple of 6), followed by one or more 6-octet IEEE 802 MAC addresses. The U bit MUST be set to 1 (ignore if unknown) and the F bit MUST be set to 0 (do not forward).
The PWid FEC TLV (Appendix A) carries: PW TLV type, C bit, PW Type (Ethernet 0x0005 or Ethernet tagged 0x0004), PW info Length, Group ID (32-bit), PWID (32-bit), and variable-length Interface parameters.