There is part of MPLS BB network scheme:
Client’s traffic are forwarded through MPLS BB in Global Routing Table (not VPN-Instance)
As You can see on the pic 1. Traceroute output doesn’t include all intermediate hops (P routers) from MPLS BB although “mpls ttl propagation” is enabled. This is the problem!
1 gw-servers.net.orn.ru (126.96.36.199) 0.174 ms 0.167 ms 0.142 ms
2 gw-bgp.net.orn.ru (188.8.131.52) 0.144 ms 0.144 ms 0.154 ms
3 184.108.40.206 (220.127.116.11) 0.382 ms 0.287 ms 0.274 ms
4 * * *
5 * * *
6 * * *
7 10.222.177.42 (10.222.177.42) 17.357 ms 19.418 ms 11.983 ms
8 MSK-D2-HQ-ae6.main.synterra.ru (18.104.22.168) 10.659 ms 10.687 ms 10.555 ms
9 msk-b4-hq-ae0.main.synterra.ru (22.214.171.124) 78.413 ms 10.675 ms 10.678 ms
10 Synterra-lgw.Moscow.gldn.net (126.96.36.199) 9.059 ms 9.117 ms synterra-lgw.moscow.gldn.net (188.8.131.52) 9.049 ms
11 cat01.Moscow.gldn.net (184.108.40.206) 11.287 ms 11.363 ms 11.405 ms
12 ms2.centre.ru (220.127.116.11) 11.305 ms 11.429 ms 11.235 ms
There are no any hops from MPLS BB! After Ingress-PE (18.104.22.168) we can see only “* * *” instead 4-th, 5-th and 6-th hop’s ip address!
Execute command “undo ttl expiration pop” on all P-LSRs in MPLS BB
And then we get following result:
When a labeled packet is received with a TTL of 1, the receiving LSR drops the packet and sends an ICMP message “time exceeded” (type 11, code 0) to the originator of IP packet. This is the same behavior that a router would exhibit with an IP packet that had TTL an expiring TTL. However ICMP message may be sent back by two different methods:
ICMP message “time exceeded” is sent to the originator immediately by using LSR’s local ip routing table;
ICMP message “time exceeded” is forwarded along the LSP of original packet was forwarded. (Because intermediate LSR might not have local route to the source of original packet)
Using the ttl expiration pop
command, you can use the local IP route to forward ICMP response packets after the MPLS TTL
Using the undo ttl expiration pop
command, you can disable this function. That is, ICMP response packets are sent along LSPs.
By default, when packets with one label expires, ICMP message “time exceeded” is sent according to the local IP route.
As You remember, customer uses Global Routing Table (GRT) and standalone Route Reflector (RR) for exchanging public Internet routing information. In this case there is one label in packets and all intermediate P devices don’t have routing information about networks which are beyond PE devices. That means that all intermediate P-LSRs don’t know how to forward ICMP message “time exceeded” directly to source of original packet. P-LSRs have to forward ICMP message to the remote PE device which has in their local routing table information about ip address of originator (in our case, originator is 22.214.171.124).
According to documentation, by default local routing table is used by NE40E/NE80E (with VRP version V600R001C00SPC800) for forwarding ICMP message “time exceeded”. That is why in this case we must execute command “undo ttl expiration pop” on all P-LSRs in MPLS BB.
You should remember that LSR may use to different behaviors for forwarding ICMP message “time exceeded”:
Forwarding according local ip routing table;
Forwarding along original LSP to the remote PE device.
If LSR doesn’t have necessary information in own local routing table and You want to use “ttl propagation” You should use “undo ttl expiration pop” command on all intermediate LSRs.