Tracerouteって?
ざっくりというと、通信相手までの経路を調査するときに使用するコマンド、
どこでルーティングされているかという事を調査する事ができる。
なので、L2レベルで通信している機器はここでは表示されません。ブリッジとかは分からないが、ルータ、スイッチ(L3層)なら分かります。
Unix(Linux,mac)で使用可能です。
コマンドにすると、こんな感じ。
traceroute 【IPアドレスまたはドメイン名】
オプションは色々あります。
- -4
- IPv4を使う。
- -6
- IPv6を使う
- -i
- インターフェースを指定する。
- -n
- アドレス表記にする。
などなど。。だが、基本的には
- アドレス表記にする。
traceroute 8.8.8.8
という形で指定する事がほとんどだと思う。
実行結果として、以下のように表示される。
[jst-dito@sv0066 ~]$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 _gateway (192.168.162.1) 1.114 ms 1.049 ms 2.287 ms
2 ドメイン名(サンプルのIP) 7.309 ms 7.288 ms 7.233 ms
3 ドメイン名2(サンプルのIP2) 10.667 ms 10.600 ms
4 ドメイン名3(サンプルのIP3) 7.801 ms 7.791 ms
5 ドメイン名4 (サンプルのIP4) 7.733 ms 7.713 ms
以下略...
数字 dns.google (8.8.8.8) 7.039 ms 7.081 ms 7.056 ms
左側の数字の所に、どのルータを経由しているかが記載されており、そのIPが横に(で記載されている。)
複数の組み合わせのIPを持つ場合は、同じ列に表示される。
実際の運用での使用ケース
特定の機器から通信でエラーが出た際の、障害箇所の特定として使用する。
ゲートウェイを出てからエラーがあるのか、出る前にエラーがあるのかの有無だけでも、
自社設備の問題か否かを区別する事ができる。
MTRコマンド
MTRは、mytracerouteの略である。
これは、tracerouteとpingを組み合わせて、ネットワークパスの健全性を測定するものです。
tracerouteにはpingのロス率や各速度などを記載できていないが、mtrは合わせて一覧として見る事ができる。
実行結果は、以下のような形になる。
これは、そのまま実行すると、pingのように常時実行し続けるものになる。基本構文は以下。
mtr 8.8.8.8
また、以下の記事にあるが、障害が発生したときは、パケットロスの部分のパーセンテージが上昇する。そこを確認する事でどの経路に問題があるかを確認できる。
レポート表示
mtrの結果をテキスト形式でログとして見ておきたいケースがある、そういった場合は、以下のようにレポートモードで実行する事で記録に残せる。
mtr -r -c 【実行回数】【IPアドレス】 > 【テキスト名】
コマンドにすると以下の通り。
mtr -r -c 5 8.8.8.8 > mtrreport
MTRをZabbixで確認する。
Zabbixのテンプレートで、mtrを実装することが可能。
ホスト名のインターフェースの欄に、mtrの宛先のIPアドレスを入れると、
Zabbixサーバから目的のIPまでをtracerouteしてくれる。
これの良い所は、通常のmtrだとどのタイミングでpingが切れたかの時間を測る事ができないが、
Zabbixの場合はグラフでも表示されるため、障害があったときに後から確認ができる事である。