We get the message “TTL expired in transit” when we try to ping to a server in a different network segment. When we run tracert, 4 ip addresses repeat themselves indefinitely:

14    60 ms    59 ms    60 ms  xxx.xxx.xxx.2
15    83 ms    81 ms    82 ms  xxx.xxx.xxx.128
16    75 ms    80 ms    81 ms  xxx.xxx.xxx.249
17    81 ms    78 ms    80 ms  xxx.xxx.xxx.250
18    82 ms    80 ms    77 ms  xxx.xxx.xxx.2
19   102 ms   101 ms   100 ms  xxx.xxx.xxx.128
20   101 ms   100 ms    98 ms  xxx.xxx.xxx.249
21    97 ms    98 ms    99 ms  xxx.xxx.xxx.250

What are the basic steps for troubleshooting this error?

8 Answers 8


As stated in all answers above there is loop in routing that is causing TTL to expire.

Check route on the devices whose IP addresses are repeating. On Linux you can use

route -n 

as root user to see current routing table. On windows you can go to cmd and use command

route print

to see current routing table. On cisco manageable switches you can use command

show ip route

Using above commands on all the four IPs that are repeating you should see which routing table is wrong. One of the four devices / hosts involved should ideally route traffic to destination you are pinging using some other gateway.


You've got a circular route in your networking configurations, check your routing tables on the involved devices.

"TTL expired in transit" is related to the TTL value of the packet; every router it passes through lowers it by one. If it hits 0, the packet is dropped and an ICMP message (the 'expired in transit' message) is sent to the sender. It prevents infinite loops, where packets travel in circles forever.

  • 6
    It's not truly exact, the packet is not return to the sender but only an icmp message.
    – radius
    Jul 13, 2009 at 6:15
  • 3
    While the packet itself is not returned and an ICMP message (this TTL expired message) is sent back to the source, the point about the route-loop and TTL decrement explanation is correct.
    – nik
    Jul 13, 2009 at 6:49

IP packet has a TTL flag. This one is decreased by 1 each time the packet is routed. When the value become 0 the router drop the packet and send an ICMP message Time-to-live exceeded in transit.
This is done to prevent packets to be routed infinitely when there is routing problem on networks. This is your case here, you have a routing loop so that the packet never reach is destination and is finally dropped by one of the router because the TTL reach 0.


While checking the routing tables of the four routers, focus on the network mask of the routes and if the router ist able to route "classless".

On older Ciscos you need to explicitly enable this, otherwise they will route whole classful networks instead of your subnets. E.g. configuring will result in a route like


You make no mention of protocol, but I find that the overuse of static routes leads to the error quite often. Using a dynamic routing protocol should solve this with little effort from the administrators.

I would simply say to start at layer-1. Makes sure the router is on, and that the port linking it to the network is up up. Then map your route from your ICMP source to the destination router, examining the routing table at each hop along the path.


When pinging resulted in Expired In Transit... short diagram - ISP ==> Router ==> Switch ==> to PCs

If ISP can see their device then you may need to reboot the swich. If it works then you are all set. If not, then you may need to reboot the router.

I got the same error message. I rebooted the switch and everything came back up.

Good luck.


OK, so I'll chime in with everyone else. You have a routing loop as evidenced by the fact that the ICMP Echo Request keeps looping between the same 4 routers. Check the routing tables on the routers, starting with the router at x.x.x.250.


I received a TTL expired in transit message and the problem was an erroneous entry in DHCP.

Someone had added the same host name in the DHCP server with a static IP address(10.x.x.11), while the host had also leased a new dynamic IP address (10.x.x.22).

Pinging host.example.com [10.x.x.22] with 32 bytes of data:
Reply from 10.x.x.11: TTL expired in transit.
Reply from 10.x.x.11: TTL expired in transit.
Reply from 10.x.x.11: TTL expired in transit.
Reply from 10.x.x.11: TTL expired in transit.

Ping statistics for 10.x.x.22:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
  • 3
    no, this sounds like a whole mess of completely unrelated problems...
    – Chris S
    Sep 5, 2013 at 15:47

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .