MTR stops tracing too early
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Mtr |
New
|
Undecided
|
Unassigned |
Bug Description
MTR stops tracing to early. For example host juniper.net is reachable behind 12 not responding hops:
traceroute -T -q1 -n juniper.net
traceroute to juniper.net (174.129.25.170), 30 hops max, 60 byte packets
1 10.1.0.1 2.918 ms
2 89.77.124.1 36.751 ms
3 *
4 84.116.253.185 120.378 ms
5 84.116.133.46 161.902 ms
6 84.116.136.141 120.394 ms
7 84.116.130.26 123.098 ms
8 84.116.137.194 123.121 ms
9 63.235.40.165 190.858 ms
10 67.14.36.14 195.124 ms
11 67.133.224.194 195.057 ms
12 205.251.245.23 199.914 ms
13 205.251.245.252 197.754 ms
14 *
15 *
16 *
17 *
18 *
19 *
20 *
21 *
22 *
23 *
24 *
25 *
26 174.129.25.170 189.890 ms
But MTR doesn't reach this hops because of MAX_UNKNOWN_HOSTS = 5:
mtr juniper.net -n -r -c1
Start: Wed Nov 19 23:49:31 2014
HOST: GreyPad Loss% Snt Last Avg Best Wrst StDev
1.|-- 10.1.0.1 0.0% 1 3.0 3.0 3.0 3.0 0.0
2.|-- 89.77.124.1 0.0% 1 20.7 20.7 20.7 20.7 0.0
3.|-- 89.75.6.1 0.0% 1 12.1 12.1 12.1 12.1 0.0
4.|-- 84.116.253.185 0.0% 1 119.8 119.8 119.8 119.8 0.0
5.|-- 84.116.133.46 0.0% 1 139.6 139.6 139.6 139.6 0.0
6.|-- 84.116.136.141 0.0% 1 117.6 117.6 117.6 117.6 0.0
7.|-- 84.116.130.26 0.0% 1 117.7 117.7 117.7 117.7 0.0
8.|-- 84.116.137.194 0.0% 1 116.3 116.3 116.3 116.3 0.0
9.|-- 63.235.40.165 0.0% 1 184.6 184.6 184.6 184.6 0.0
10.|-- 67.14.36.14 0.0% 1 188.7 188.7 188.7 188.7 0.0
11.|-- 72.165.86.90 0.0% 1 187.6 187.6 187.6 187.6 0.0
12.|-- 205.251.245.23 0.0% 1 192.3 192.3 192.3 192.3 0.0
13.|-- 205.251.245.252 0.0% 1 189.1 189.1 189.1 189.1 0.0
14.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
15.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
16.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
17.|-- 216.182.224.199 0.0% 1 190.0 190.0 190.0 190.0 0.0
18.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
You can fool MTR by using -f 21 for this example:
mtr juniper.net -n -f 21 -c 1 -r
Start: Wed Nov 19 23:51:27 2014
HOST: GreyPad Loss% Snt Last Avg Best Wrst StDev
21.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
22.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
23.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
24.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
25.|-- ??? 100.0 1 0.0 0.0 0.0 0.0 0.0
26.|-- 174.129.25.170 0.0% 1 193.5 193.5 193.5 193.5 0.0
Many hosts in the Internet is reachable behind many more than 5 not responding hops. I think default value of MAX_UNKNOWN_HOSTS is too small or it should be na optional parameter that user can set.
And here is traceroute using ICMP not TCP:
# traceroute -I -q1 -n juniper.net
traceroute to juniper.net (174.129.25.170), 30 hops max, 60 byte packets
1 10.1.0.1 5.642 ms
2 89.77.124.1 334.707 ms
3 89.75.6.1 11.667 ms
4 84.116.253.185 124.037 ms
5 84.116.133.46 124.019 ms
6 84.116.136.141 124.022 ms
7 84.116.130.26 123.956 ms
8 84.116.137.194 123.976 ms
9 63.235.40.165 184.789 ms
10 67.14.36.14 190.817 ms
11 72.165.86.90 190.820 ms
12 205.251.245.23 193.766 ms
13 205.251.245.252 190.808 ms
14 *
15 *
16 *
17 216.182.224.199 188.207 ms
18 *
19 *
20 *
21 *
22 *
23 *
24 *
25 *
26 174.129.25.170 191.035 ms
# traceroute --version
Modern traceroute for Linux, version 2.0.20, Nov 8 2014
Copyright (c) 2008 Dmitry Butskoy, License: GPL v2 or any later
So there is 8 not responding hops before destination host.