Ipv6

為什麼在我的 ISP 上 mtr 比 traceroute 更可靠?

  • August 13, 2016

我的traceroute6結果被截斷,而結果mtr跨越整個路徑。為什麼會發生這種情況?

mtr 預設使用 ICMP ECHO~~,就像跟踪路由~~. 在下執行 traceroutesudo不會改變結果。也不-M tcp-M udp-M icmp

(注意我故意測試“IP 的生產版本”。舊的“實驗版本”按預期工作:-)。

地鐵

$ time mtr -n --report -c 1 google.co.uk
Start: Thu Aug 11 11:29:08 2016
HOST: localhost.localdomain       Loss%   Snt   Last   Avg  Best  Wrst StDev
 1.|-- fdaa:bbcc:ddee:0:924d:4af  0.0%     1    5.7   5.7   5.7   5.7   0.0
 2.|-- ???                       100.0     1    0.0   0.0   0.0   0.0   0.0
 3.|-- ???                       100.0     1    0.0   0.0   0.0   0.0   0.0
 4.|-- ???                       100.0     1    0.0   0.0   0.0   0.0   0.0
 5.|-- 2a00:2380:3013:9000::8     0.0%     1   23.1  23.1  23.1  23.1   0.0
 6.|-- 2a00:2380:13::23           0.0%     1   23.2  23.2  23.2  23.2   0.0
 7.|-- 2a00:2380:2001:5000::d     0.0%     1   19.2  19.2  19.2  19.2   0.0
 8.|-- 2001:4860:0:1::1049        0.0%     1   13.0  13.0  13.0  13.0   0.0
 9.|-- 2001:4860:0:1::8f          0.0%     1   19.6  19.6  19.6  19.6   0.0
10.|-- 2a00:1450:4009:809::2003   0.0%     1   24.0  24.0  24.0  24.0   0.0

real    0m6.229s
user    0m0.002s
sys 0m0.011s

跟踪路由6

$ time traceroute -6 -n google.co.uk
traceroute to google.co.uk (2a00:1450:4009:809::2003), 30 hops max, 80 byte packets
1  fdaa:bbcc:ddee:0:924d:4aff:fe06:1c9  3.351 ms  3.324 ms  5.569 ms
2  * * *
3  * * *
4  2a00:2302::1103:100:37  20.128 ms !X  20.118 ms !X  20.120 ms !X

real    0m0.221s
user    0m0.000s
sys 0m0.006s

跟踪路徑6

tracepath 類似於 traceroute,只是不需要超級使用者權限並且沒有花哨的選項。

它使用UDP埠埠或一些隨機埠。

tracepath6 是

$$ a $$很好的替代 traceroute6 和$$ a $$Linux錯誤隊列應用的經典例子。

$ time tracepath6 -n google.co.uk
1?: [LOCALHOST]                        0.035ms pmtu 1488
1:  fdaa:bbcc:ddee:0:924d:4aff:fe06:1c9                   4.101ms 
1:  fdaa:bbcc:ddee:0:924d:4aff:fe06:1c9                   3.161ms 
2:  no reply
3:  2a00:2302::1103:100:36                               17.379ms asymm  5 
4:  2a00:2302::1103:100:37                               17.222ms !A
    Resume: pmtu 1488 

real    0m5.068s
user    0m0.001s
sys 0m0.005s

執行之間的結果略有不同:有時未顯示第 3 跳。第 3 跳或第 4 跳的地址也發生了變化(無論使用什麼工具);看起來使用了兩條不同的路徑。

mtr以互動方式執行時,它最終能夠找到第 3 跳(雖然不是第 4 跳)。該躍點顯示 80-90% 的損失。(如 NANOG 列表中所述,需要專家網路知識才能完全理解 mtr 等工具的輸出 :-)。

traceroute 手冊頁說!X指示 ICMP錯誤響應之一(除了所需的“超出 TTL”)。 traceroute看到一個就放棄。它看起來mtr更健壯。

這是一個奇怪的案例。當具有足夠大 TTL 的數據包簡單地通過時,我想不出為什麼要用“管理禁止”替換“超出 TTL”響應。感謝您mtr容忍這種怪異:)。

在行程時間之後,可以列印一些附加註釋:!H、!N 或 !P(無法訪問主機、網路或協議)、!S(源路由失敗)、!F(需要分段)、!X(管理通信禁止)、!V(違反主機優先級)、!C(有效的優先級截止)或 ! (ICMP 無法訪問的程式碼)。如果幾乎所有的探測都導致某種無法訪問,traceroute 將放棄並退出。

引用自:https://unix.stackexchange.com/questions/302751