Another useful utility is testing connectivity, especially in routed environments, is traceroute. While ping tests for basic connectivity with another host, traceroute will show you the path that a packet takes (in terms of crossing intermediate routers) between a source and destination. Since we haven’t set up routing yet, traceroute won’t provide us with much useful information. In a routed environment, traceroute provides valuable information because it helps to indicate at which point in a packet’s travels a failure is occurring. Issues might include an intermediate router being offline, or physical connection problems.
Traceroute works by sending groups of 3 UDP datagrams to the destination address specified, with varying time to live (TTL) values. For example, imagine there are three routers between our system and the destination host that we’re to determine the path to. Traceroute will send out 3 UDP datagrams with a TTL of one. When these hit the first router in the path, their TTL will be decremented by one, causing the packets to expire. ICMP “time exceeded” messages will be sent back to the source host. It will then send out another 3 UDP datagrams with a TTL of 2, which will exceed their TTL at the second router. This process continues until the destination host is reached. The cumulative information provided shows the path to the destination. If the process fails at any point, this indicates or suggests a problem area between the source and destination. Traceroute is an exceptionally simple and powerful troubleshooting tool in routed environments. To use it, simply enter traceroute followed by the destination IP address or hostname.
Type escape sequence to abort.
Tracing the route to 192.168.1.209
1 192.168.1.209 4 msec 40 msec *
As I mentioned previously, traceroute doesn’t provide very much information on our network yet. Once some routing is configured, we’ll be able to see multiple hops in the path to a destination.