ping command: TTL Expired In Transit Error and Solution

When I try to ping other UNIX / Linux / BSD or MS-Windows servers in our network I get the following message:

TTL Expired In Transit

How do I fix this problem?

This error indicates network configuration problem. There is loop in routing:

A routing loop is a common problem with various types of networks, particularly computer networks. They are formed when an error occurs in the operation of the routing algorithm, and as a result, in a group of nodes, the path to a particular destination forms a loop. In the simplest version, a routing loop of size two, node A thinks that the path to some destination (call it C) is through its neighbouring node, node B. At the same time, node B thinks that the path to C starts at node A. Thus, whenever traffic for C arrives at either A or B, it will loop endlessly between A and B, unless some mechanism exists to prevent that behaviour.

How Do I Troubleshoot Routing Loop Problem?

To debug the problem you need to type the following command to see current routing table under UNIX / Linux / BSD / OS X operating systems:
# ip route show
# route -n
# netstat -rn
If you are using a hardware router or managed switch, check routing table using vendor specific route command, the following should work on cisco devices:
# show ip route
You can now find out wrong routing tables. You can delete or correct those routes using route command or ip command itself.
### delete example ###
ip route delete dev eth1
### set route example ###
ip route add dev eth0

In same cases you can simply reboot your router or managed switch and fix the problem.

Posted by: SXI ADMIN

The author is the creator of SXI LLC and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.