1. Qiita
  2. 投稿
  3. traceroute
  • 11
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

とりあえず実行

$ traceroute www.google.com
traceroute to www.google.com (74.125.235.80), 30 hops max, 60 byte packets
1  v-182-163-87-250.ub-freebit.net (182.163.87.250)  0.036 ms  0.014 ms  0.011 ms
2  vps2-gate-1.oi.dti.ad.jp (202.216.248.154)  1.643 ms  1.636 ms  1.624 ms
3  oi-gate-1.otemachi4.dti.ad.jp (203.181.69.1)  0.892 ms  1.039 ms  1.153 ms
4  ae0.109.TR1.B9A.FreeBit.NET (219.99.88.77)  3.655 ms  3.751 ms  3.745 ms
5  210.173.176.243 (210.173.176.243)  3.368 ms  3.441 ms  3.604 ms
6  72.14.235.148 (72.14.235.148)  3.755 ms  2.254 ms  2.401 ms
7  209.85.250.249 (209.85.250.249)  2.765 ms  3.139 ms  3.327 ms
8  nrt19s01-in-f16.1e100.net (74.125.235.80)  3.123 ms  3.119 ms  3.244 ms

完了!
このように、自分から宛先までのパス(経路)を表示させることができる

動作

  • 目的はあるホストから別のホストへの経路の表示
  • パケットのTTLを1ずつ増やしながら、対向に送信する
  • TTLが1のパケットをルータが受信すると破棄するがその時ICMP Time Exceededを送信元に返す特性を利用
  • LinuxはUDP、WindowsはICMP Echo Requestが標準
  • 表示される経路は往路のみで、復路が同じとは限らない
    • ICMP Time Exceededがどの経路で返ってくるかまでは見ない
  • 反応が遅い時は名前解決をoffにするべし(Linuxなら-nオプション)

使いどき

  • VPSやパブリッククラウド上のインスタンスを調査する時
  • Next-hopが冗長(VRRP、HSRPなど)されていたり、複数(PBRなど)ある場合、どちらを通っているか確認する時
  • 宛先までpingが飛ばない時
  • UDPで疎通確認したい時
  • 経路監視(Akamaiも使っているとか)

Looking Glass

一般的にtracerouteは自分から相手のマシンの経路を知るために利用するが、相手のマシンを起点に実行することもできる。
相手から自分を見るため、looking glass(鏡)と呼ばれている。
ちなみに下2つのサイトはtracerouteだけではなく、BGPという組織間をつないでいるルーティングプロトコルの情報も取得できます。

参考文献