19.6. Using traceroute, tcptraceroute, and mtr to Pinpoint Network Problems
Problem
You're having problems reaching a particular host or network, and ping confirms there is a problem, but there are several routers between you and the problem, so you need to narrow it down further. How do you do this?
Solution
Use traceroute, tcptraceroute, or mtr.
traceroute is an old standby that works well on your local network. Here is a two-hop traceroute on a small LAN with at least two subnets:
$ traceroute mailserver1
traceroute to mailserver1.alrac.net (192.168.2.76), 30 hops max, 40 byte packets
1 pyramid.alrac.net (192.168.1.45) 3.605 ms 6.902 ms 9.165 ms
2 mailserver1.alrac.net (192.168.2.76) 3.010 ms 0.070 ms 0.068 msThis shows you that it passes through a single router, pyramid. If you run traceroute on a single subnet, it should show only one hop, as no routing is involved:
$ traceroute uberpc
traceroute to uberpc.alrac.net (192.168.1.77), 30 hops max, 40 byte packets
1 uberpc (192.168.1.77) 5.722 ms 0.075 ms 0.068 mstraceroute may not work over the Internet
because a lot of routers are programmed to ignore its UDP datagrams.
If you see a lot of timeouts, try the -I option, which sends ICMP ECHO requests
instead.
You could also try tcptraceroute, which sends TCP packets and is therefore nearly nonignorable:
$ tcptraceroute bratgrrl.com Selected device eth0, address 192.168.1.10, port 49422 for outgoing packets Tracing the path to bratgrrl.com (67.43.0.135) on TCP port 80 (www), 30 hops ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access