tracerouteコマンド
配信の経路を確認できる
https://speakerdeck.com/openjny/linux-networking-tools-101?slide=22
例
$ traceroute google.com
出力例
code:result by gpt-4
$ traceroute www.google.com
1 192.168.1.1 (192.168.1.1) 1.123 ms 1.587 ms 1.540 ms
2 10.0.0.1 (10.0.0.1) 2.674 ms 2.340 ms 2.313 ms
3 isp-gateway.example.com (203.0.113.1) 12.456 ms 13.789 ms 13.654 ms
4 isp-core-router.example.com (203.0.113.2) 20.321 ms 21.876 ms 21.835 ms
5 major-internet-hub.example.com (198.51.100.1) 35.123 ms 34.567 ms 34.789 ms
6 google-edge-server.example.com (203.0.113.3) 40.456 ms 41.123 ms 41.789 ms
7 www.google.com (172.217.1.4) 45.321 ms 46.876 ms 46.835 ms
7回ホップしてwww.google.comにたどり着いている
1のRTTは、1.123~1.540ms
1(192.168.1.1) は通常、家のローカルネットワークにあるルータのIPアドレス
2(10.0.0.1) はISPのローカルネットワークか、近隣のネットワークデバイスなど
#??
結果の中間ぐらいに表示される***はなに
ラストマイル問題を確認できる
/mrsekut-book-4297119250/048
traceroute(tracert) ~ネットワークの経路を調査する:ネットワークコマンドの使い方 - @IT
tracerouteコマンドはTTLを徐々に大きくして何度もリクエストを送ることで1ホップ先を順々に見てるらしい
ICMPを使用してる
例えば、最初にTTLを1としてIPパケットを対象ホストへ送出すると、1番目のルーター(1ホップ目)が受け取った時点でTTLを減算した結果0となってしまうので、ルーターはICMP Time Exceededエラーを返答する。これが1台目のルーターの結果となる。次にTTLを2にして送出すれば、2台目のルーターの結果が得られる。
このように、目的のホストに到達するまでTTLを増加させつつ次々にパケットを送出することで、tracerouteの結果を得ることができるというわけだ。