IP-over-MPLS TTL propagation control
In the MPLS label header, the TTL field indicates the Time To Live (TTL) value for an MPLS packet. For IP-over-MPLS applications, at the ingress LER the TTL value of an IP packet is decremented by one and the IP checksum is recalculated. The TTL value is then copied to the MPLS TTL field in the packet. At each transit LSR hop, the MPLS TTL value is decremented by one. When the MPLS TTL value reaches one or zero, the packet is discarded.
At the MPLS router that pops the label (either the penultimate LSR or egress LER), the MPLS TTL value of the incoming packet is copied to the IP TTL field of the packet, the IP TTL field is decremented by one, and the checksum is recalculated. The result is that each LSR in the MPLS domain is counted as one hop. This behavior is the default.
Optionally, you can configure TTL propagation so that the entire MPLS domain appears as two hops. In this case, the ingress LER decrements the TTL value of the IP packet by one and then places a value of 255 in the MPLS TTL field of the packet. The MPLS TTL value is decremented by one as the MPLS packet passes through each LSR in the MPLS domain. When the label is popped, the value in the MPLS TTL field is discarded, not copied to the IP TTL field of the packet. The TTL of the unlabeled IP packet is then decremented by one as it passes through the egress LER. This means that the IP TTL of the packet is decremented twice from the time it enters the ingress LER to the time it exits the egress LER, making the MPLS domain appear as two hops.
Configuring TTL propagation for the MPLS domain
By default, TTL propagation is enabled for IP over MPLS traffic when an RSVP and an LDP tunnel terminate on the same node. For traceroute to report the hops along the LSP, TTL propagation must be enabled. To make an entire MPLS domain appear as two hops, perform the following steps in configuration mode.
- First, you must enter the following command to disable TTL propagation for IP-over-MPLS. Repeat this step for all nodes in the MPLS domain.
vyatta@R1# set protocols mpls disable-ip-propagate-ttl
- Enable user-defined TTL propagation. 255 is the default. Repeat this step for all nodes in the MPLS domain. Note: The protocols mpls default-ttl command is used only when TTL propagation is disabled.
vyatta@R1# set protocols mpls default-ttl <0-255>Once user-defined TTL propagation is enabled on all nodes in the MPLS domain, routes across the MPLS domain appear as 2 hops, ingress and egress, to the MPLS LSP. The default-ttl value is put on the packets as they enter the LSP. At the tail node, once the MPLS header is removed, the IP TTL is once again used. No details are provided on how many hops the LSP crosses in the MPLS domain.