|
Question : Router blocks tracert's ICMP requests other than the final hop?
|
|
Here's a weird one for you guys. It's not causing me any problems, but it's peculiar. Why is it that when I run a tracert from any machine connected in my home network, the only host that responds is my router, and the machine that I am tracing to. For example: C:\Documents and Settings\bill.LAN>tracert www.google.ca
Tracing route to www.l.google.com [72.14.207.104] over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.1.1 2 * * * Request timed out. 3 * * * Request timed out. 4 * * * Request timed out. 5 * * * Request timed out. 6 * * * Request timed out. 7 * * * Request timed out. 8 * * * Request timed out. 9 35 ms 37 ms 34 ms 72.14.207.104
Trace complete.
It seems to determine the correct number of hops to each site, and I can understand certain hops along the way not responding to ICMP echo, but no matter where I trace none of them respond. This happens both from my XP Pro machine and my Windows 2003 server. I am only running through an el-cheapo D-Link 514 router, and can't see anything that it could be doing to cause this. I'm stumped! I thought for a moment that perhaps my ISP was doing some weird traffic shaping of some sort, however when I connect directly to the modem it traces fine!
C:\Documents and Settings\bill.LAN>tracert 72.14.207.104 -d
Tracing route to 72.14.207.104 over a maximum of 30 hops
1 * * * Request timed out. 2 7 ms 6 ms 9 ms 64.59.181.242 3 50 ms 32 ms 33 ms 66.163.76.73 4 53 ms 30 ms 32 ms 66.163.66.14 5 32 ms 44 ms 31 ms 198.32.245.6 6 33 ms 34 ms 47 ms 66.249.94.96 7 34 ms 33 ms 43 ms 72.14.236.134 8 78 ms 32 ms 33 ms 72.14.207.104
Trace complete.
Can anyone else think of a reason this might be happening? I know it's something in the router, but I have no clue what setting is causing this.
|
Answer : Router blocks tracert's ICMP requests other than the final hop?
|
|
The way traceroute works is that it sends an echo request to the end host with a Time to Live starting at 0 and working its way up until it gets an echo reply from the end host. TTL is in the IP packet header, when a packet goes through a layer 3 device it will decrease the TTL by one. When a device receives a packet with a TTL of 0 it will send back an ICMP TTL expired message to the sending host and drop the packet, which prevents packets with no desintation from roaming around the internet forever. It's the TTL expired messages that traceroute displays as intermediate hops.
The reason that you aren't seeing all the intermediate hops but you do see the last one is that the last hop responds with an echo-reply message and not a TTL exceeded.
To fix this you need to set your router to allow ICMP Time to Live Exceeded packets.
|
|
|
|