Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

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?

share|improve this question
add comment

8 Answers 8

up vote 17 down vote accepted

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.

share|improve this answer
    
That worked for me. Thanks –  Leonardo Jul 14 '09 at 1:59
add comment

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 returned to the sender. It prevents infinite loops, where packets travel in circles forever.

share|improve this answer
3  
It's not truly exact, the packet is not return to the sender but only an icmp message. –  radius Jul 13 '09 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 '09 at 6:49
add comment

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.

share|improve this answer
add comment

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 10.20.30.0/24 will result in a route like 10.0.0.0/8.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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),
share|improve this answer
2  
no, this sounds like a whole mess of completely unrelated problems... –  Chris S Sep 5 '13 at 15:47
add comment

protected by Chris S Sep 5 '13 at 15:47

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.