
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
Author