tracerouteコマンドでネットワークの経路を洗い出す
2021-10-302 min read
目次
概要
tracerouteコマンドでネットワークの経路を洗い出した際の操作をメモしました。
環境はmacで実施しています。
また、tracerouteのバージョンは次のバージョンとなります。
Version 1.4a12+Darwin
tracerouteの用途
tracerouteコマンドは、ネットワークのトラブルシュートに使われます。
tracerouteの原理
traceroute は、IPパケットのヘッダ情報に含まれるTTL(Time To Live)を活用します。 TTLは、ルーティングされるたびに1ずつ減っていく値で、パケットの到達範囲の制限や、滞留し続けないようにするために使われます。
※TTLの詳細は後述します。
tracerouteはこの仕組みを利用します。 目的地に向けて、TTLを1つずつ増やしたパケットを順番に目的地まで送ることで、意図的にICMPの時間切れを引き起こし。 時間切れメッセージを送ってきたルータを並べることで、パケットの経路を調べられるます。 ※しかし場合によっては、ルータが時間切れメッセージを返さないこともあります。
IPヘッダのTTL
TTLには0から255までの整数値が入ります。 TTLの値は、パケットを作って送り出すときにノードが初期値を設定します。 そして、パケットのTTLは、ルータを1つ通過する毎に1つずつ値が減っていきます。 もし、経路上でパケットのTTLがゼロになると、そのパケットはルータによって破棄されます。 このとき、パケットを破棄したルータは同時にICMPで時間切れ(TimeExceeded)のメッセージをパケットの送信元に送ることがあります。
コマンドを実行してみる
実際に 8.8.8.8
(GoogleのDNS) への接続経路を洗い出してみます。
$ traceroute -n 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max, 52 byte packets
1 10.18.X.X 6.372 ms 6.000 ms 6.260 ms
2 103.5.X.X 6.324 ms
3 172.30.X.X 6.742 ms 6.937 ms 5.590 ms
4 172.30.X.X 6.780 ms 6.248 ms 6.842 ms
5 210.171.X.X 8.001 ms 8.552 ms 9.676 ms
6 108.170.X.X 8.424 ms
7 72.14.X.X 7.513 ms
8 8.8.8.8 7.154 ms 7.363 ms 7.188 ms
参考文献
Recommends
New Posts
Hot posts!
Date
Tags
(110)
(54)
(54)
(47)
(45)
(36)
(30)
(29)
(24)
(24)
(22)
(21)
(21)
(20)
(19)
(17)
(16)
(16)
(15)
(14)
(12)
(12)
(12)
(12)
(12)
(12)
(11)
(10)
(10)
(10)
(10)
(10)
(9)
(9)
(8)
(8)
(8)
(8)
(7)
(7)
(6)
(6)
(6)
(6)
(6)
(5)
(5)
(5)
(5)
(4)
Author