Explanation:
Understanding the Problem in MPLS CoS Classification
How EXP Bits Are Used for CoS in MPLS
Traffic is sent from VPN-A Site-1 CE-1 PE-1 P-1 PE-2 CE-2.
The MPLS LSP (Label Switched Path) from PE-1 to PE-2 is expected to carry MPLS EXP bits, which are used for Class of Service (CoS) classification.
PE-2 should classify traffic based on EXP bits received in the MPLS label.
What Happens with PHP (Penultimate Hop Popping)?
By default, the penultimate router (P-1) pops the top MPLS label before sending the packet to PE-2.
Since the EXP bits are in the top MPLS label, they get removed along with the label.
This means that PE-2 no longer sees the correct EXP bits, leading to incorrect traffic classification.
Solution: Configure Explicit-Null on PE-2
Explicit Null (explicit-null) must be configured on PE-2 to ensure that P-1 does NOT remove the MPLS label.
Instead of removing the label, P-1 will send a label of 0 (for IPv4) or 2 (for IPv6) to PE-2.
This preserves the MPLS EXP bits, allowing PE-2 to classify the traffic correctly.
Evaluating the Answer Choices Again
B. Configure the explicit-null statement on PE-2.
Correct, because:
PE-2 is the egress LSR, where Ultimate Hop Popping (UHP) must be enabled.
Configuring explicit-null ensures that P-1 does not remove the label, preserving the EXP bits for CoS classification at PE-2.
Configuration on PE-2:
set protocols mpls explicit-null
Juniper Documentation Reference:
'Explicit-null must be configured on the egress LSR to prevent PHP from removing the top MPLS label, thereby preserving the EXP bits.'
A. Configure the explicit-null statement on PE-1.
Incorrect, because:
Explicit-null must be configured on the egress LSR (PE-2), not the ingress LSR (PE-1).
PE-1 only labels the traffic but does not control PHP behavior on P-1.
C. Configure VPN prefix mapping for the PE-1_to_PE-2 LSP.
Incorrect, because:
VPN prefix mapping is used for mapping VPN routes to LSPs but does not solve the EXP bit issue.
The problem here is label removal (PHP), not route mapping.
D. Set a static CoS value for the PE-1_to-PE-2 LSP.
Incorrect, because:
This does not preserve the original EXP bits, it only applies a static CoS value.
It's a workaround, not a fix.
Final Answer: B. Configure the explicit-null statement on PE-2.
Key Takeaways
Penultimate Hop Popping (PHP) removes the outer MPLS label at P-1, which also removes the EXP bits used for CoS classification.
To keep EXP bits intact, configure explicit-null on the egress PE (PE-2).
This forces P-1 to send a label (0 for IPv4, 2 for IPv6) to PE-2, preserving the EXP bits for CoS classification.
Official Juniper Documentation Reference
Juniper MPLS CoS and PHP Behavior Guide
'To retain CoS EXP bits at the egress LSR, configure explicit-null on the egress PE. This prevents PHP from stripping the MPLS label before reaching the final PE router.'