Cisco – Traceroute showing destination as next hop, even though it isn’t, then no response

ciscoroutingtraceroutevpn

I'm trying to test a new B2B VPN that I've configured. I tried to ping to it from a host on my end, which fails. So I ran a traceroute that show the packets dying out at a multi-layer switch right before the firewall/ASA (which I'll call R1). I logged into that switch, and tried to trace the route from there. Then things got strange. I got the destination listed as the next hop, even though it's several hops away, on the other side of the firewall, and the routing table lists the inside interface of the firewall as the next hop for packets to that destination.

R1# traceroute 10.6.115.135

1 10.6.115.135 8 msec 4 msec 4 msec
2 10.6.115.135 4 msec *  0 msec
3  *  4 msec *
4  *  *  *
5  *  *  *
6  *  *  *

Since 10.6.115.135 is not connected to R1, and not listed specifically in the routing table, I have no idea why it's being listed as the next hop, or why I'm getting response times for it at first. I'm guessing it's related to the VPN, but the VPN is configured on the router…shouldn't the next hop still have to be the router interface R1 is connected to?
Thanks in advance.

Best Answer

A traceroute through a tunnel only shows the tunnel endpoints. The packets, including traceroute packet, are encapsulated in outer packets, which don't have the TTL set the same way as the packets carrying the traceroute, and traceroute depends on the TTL for discovering where the router hops are.

The tunnel fools traceroute into thinking the tunnel endpoints are directly connected. This sort of thing can happen with other protocols (e.g. MPLS), too.