Cisco – Traceroute doesn’t show one hop

ciscojunipermplsvrf

I have an interesting issue where my traceroute skips one hop on the way. I do not know why but it seems to be some kind of Juniper behaviour which I do not understand yet. Blue routers are Cisco machines, The other PC-like icons are Juniper routers.

I have this topology:
enter image description here

But when I do a CE2: traceroute 172.16.0.1 (to CE1 Lo0 interface) I get the following:

root> traceroute 172.16.0.1                       
traceroute to 172.16.0.1 (172.16.0.1), 30 hops max, 52 byte packets
 1  192.168.1.9 (192.168.1.9)  2.514 ms  1.861 ms  1.393 ms
 2  10.0.3.1 (10.0.3.1)  5.597 ms  6.516 ms  5.480 ms
     MPLS Label=300160 CoS=0 TTL=1 S=0
     MPLS Label=18 CoS=0 TTL=1 S=1
 3  10.0.2.5 (10.0.2.5)  5.618 ms  6.154 ms  5.312 ms
     MPLS Label=300 CoS=0 TTL=1 S=0
     MPLS Label=203 CoS=0 TTL=1 S=0
     MPLS Label=18 CoS=0 TTL=2 S=1
 4  10.0.2.1 (10.0.2.1)  5.742 ms  5.344 ms  5.366 ms
     MPLS Label=203 CoS=0 TTL=1 S=0
     MPLS Label=18 CoS=0 TTL=1 S=1
 5  172.16.1.9 (172.16.1.9)  5.550 ms  4.752 ms  4.675 ms
     MPLS Label=18 CoS=0 TTL=1 S=1
 6  172.16.1.10 (172.16.1.10)  5.315 ms  5.238 ms  5.532 ms

root> 

And I try the same thing from the other side CE1: traceroute 192.168.0.1 (to CE2 interface Lo0) I get this:

CE1#traceroute 192.168.0.1                  
Type escape sequence to abort.
Tracing the route to 192.168.0.1
VRF info: (vrf in name/id, vrf out name/id)
  1 172.16.1.9 1 msec 1 msec 0 msec
  2 10.0.1.2 [MPLS: Labels 201/16 Exp 0] 5 msec 5 msec 4 msec
  3 10.0.2.2 [MPLS: Labels 301/300144/16 Exp 0] 4 msec 4 msec 4 msec
  4 10.0.2.6 [MPLS: Labels 300144/16 Exp 0] 4 msec 4 msec 4 msec
  5 192.168.0.1 5 msec 6 msec 6 msec
CE1#

As you can see, the PE2_2 router is not present in the output?
Can anyone please explain why this occurs?

Best Answer

traceroute works by using probe packets with increasing TTL values. The hop where a packet's TTL times out is supposed to return an time exceeded ICMP message which is processed and displayed by traceroute. If a hop doesn't decrement the TTL you simply don't see it.

Apparently, PE2_2 doesn't decrement TTL in that path - without the (sanitized) configuration we won't be able to tell you why.