Unix: traceroute を高速に実施

こんにちは。ccieojisan です。

今回はネットワーク屋さんなら良く使う traceroute について紹介したいと思います。

皆さん、普通に traceroute <宛先> としてデフォルトで実行していませんか?もちろんデフォルトで使ってもまったく問題ありません。

私が最近経路の確認で何回も traceroute をする必要があった際に高速に traceroute を行う方法を模索したため、それを紹介したいと思います。 (traceroute結果が出るまでの待ち時間を短縮したかった)

まずは default のまま、www.yahoo.co.jp へ traceroute した結果です。実行時間を測るため、time コマンドを先頭に入れてます。 ※プロバイダから支給されたルータが traceroute(UDP) をフィルタしているみたいなので、-I オプションを付けて ICMP で実行しています。

特に何もオプションをしなければ、完全な traceroute の出力を得るのに 7秒 もかかってしまいます。

下記のオプションを付けることで高速に実行できます。

  • -q1 : クエリを1回のみにする(デフォルトは3回)
  • -w1 : タイムアウトを1秒にする
  • -n : 名前解決をしない

おっと、約1秒弱とかなり高速になり、およそ6倍に高速化されました。※宛先や区間によって差異は当然異なります。

経路確認だと、名前解決は欲しいなという場合は -n を外してこんな感じの結果。

名前解決ありだと、ちょっとタルくなり2秒くらい。まぁ7秒よりは大分マシですね。

他のオプションなども man traceroute で調べてみてくださいね。

スポンサーリンク