traceroute: ルータが応答せず、ユーザーにタイムアウトが表示される場合があります

traceroute: ルータが応答せず、ユーザーにタイムアウトが表示される場合があります

私は小規模ネットワークの管理者で、ユーザーから苦情が出ている問題を調査しています。苦情の根本はtraceroute、パス上のルーターがプローブに応答せずtraceroute、ユーザーにタイムアウト ( *RTT の代わりに s が表示される) が表示されることがあることです。

ネットワークは、イーサネット/ワイヤレスで接続された数台の Linux ルーターで構成されています。Linux ルーターのアイドル率は 99%、リンク使用率は 20 mbit/s、パケット数は 2000/s です。ワイヤレスは安定しています。パス上のすべてのルーターへの PING は 10 ms ですが、もちろん多少のばらつきはあります。これらのホストへのフラッド PING は、パケット損失なしで数分間実行されます (パケット損失は 0 です)。ネットワーク経由で巨大なファイルをダウンロードすると、平均 10.2 MB/s になります。

正しい traceroute次のようになります:

# traceroute -nI 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  192.168.0.1  3.919 ms  3.866 ms  4.117 ms
 2  10.41.13.1  4.149 ms  6.714 ms  6.707 ms
 3  10.41.1.11  8.475 ms  8.468 ms  8.705 ms
 4  10.0.0.2  8.697 ms  9.428 ms  9.707 ms

問題がある traceroute次のようになります:

# traceroute -nI 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  192.168.0.1  3.190 ms  3.140 ms  3.128 ms
 2  10.41.13.1  3.119 ms  3.113 ms *
 3  10.41.1.11  3.697 ms *  3.683 ms
 4  10.0.0.2  4.531 ms  4.524 ms  5.171 ms
# traceroute -nI 10.0.0.2
traceroute to 10.0.0.2 (10.0.0.2), 30 hops max, 60 byte packets
 1  192.168.0.1  3.471 ms  3.405 ms  3.388 ms
 2  10.41.13.1  3.372 ms  3.359 ms  3.350 ms
 3  10.41.1.11  5.039 ms * *
 4  10.0.0.2  5.105 ms  5.484 ms  5.473 ms

少し調べてみたところ、次のように動作するtcpdumpことがわかりましたtraceroute

  1. まず、TTL が 1、2、3、4、5、6 の ICMP リクエストを大量に送信します。各 TTL は 3 回送信されます。つまり、18 パケットです :)
  2. すべての応答をしばらく待機します ( Time Exceeded)。
  3. すべての返信が返ってきたら、結果を表示します。
  4. または、タイムアウトを待機し、アスタリスクでマークされた欠落した応答を含む結果を表示します。

タイムアウトの原因は、ルータが 3 つの要求をすべて受信しても応答しない場合があり、ICMP Time Exceeded を送信しないことです。

ルーターにこの動作を設定する設定がいくつかあるのではないかと思います。icmp_rate制限icmp_レートマスク1秒あたりのicmpメッセージ数そしてicmp_msgs_バーストすべて何らかの形で説明されているkernel.orgドキュメントtracerouteそして、ここが私が失敗した点です。常に動作させるための変数の値を用意していませんでした。

すべてのルーターでこれを設定してみました:

  • icmp_ratelimit設定する0(何も制限しない)
  • icmp_msgs_per_sec10000(十分に高い値に設定)
  • icmp_msgs_burst5000(十分に高い)に設定

それは役に立ちませんでした。同じ動作、ランダム タイムアウトが発生します。を制限からicmp_ratemask除外する方法を完全に理解していないため、には手を出しませんでした。Time Exceeded

最後に質問です:

  1. この種の問題に詳しい場合traceroute、どのように解決しましたか?
  2. 上記のカーネル設定に精通している場合、「十分な」値とは何でしょうか?
  3. 問題なく動作するようにメッセージicmp_ratemaskを制限しないように変更する正しい方法は何ですか?Time Exceededtraceroute
  4. さらに、これらの設定(または関連する設定)を変更すると、セキュリティ侵害が発生しますか? DoS 攻撃を受けたり、誰かの DDoS 攻撃の元になったりしたくありません。

答え1

ホップのコントロール プレーン ポリシーの一部として、ICMP プローブはほとんど無視されます。メトリックと傾向、履歴データに関して、より徹底した情報が必要な場合は、専用のオンプレミスの smokeping インスタンスをお勧めします。

関連情報