私は小規模ネットワークの管理者で、ユーザーから苦情が出ている問題を調査しています。苦情の根本は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
。
- まず、TTL が 1、2、3、4、5、6 の ICMP リクエストを大量に送信します。各 TTL は 3 回送信されます。つまり、18 パケットです :)
- すべての応答をしばらく待機します (
Time Exceeded
)。 - すべての返信が返ってきたら、結果を表示します。
- または、タイムアウトを待機し、アスタリスクでマークされた欠落した応答を含む結果を表示します。
タイムアウトの原因は、ルータが 3 つの要求をすべて受信しても応答しない場合があり、ICMP Time Exceeded を送信しないことです。
ルーターにこの動作を設定する設定がいくつかあるのではないかと思います。icmp_rate制限、icmp_レートマスク、1秒あたりのicmpメッセージ数そしてicmp_msgs_バーストすべて何らかの形で説明されているkernel.orgドキュメントtraceroute
そして、ここが私が失敗した点です。常に動作させるための変数の値を用意していませんでした。
すべてのルーターでこれを設定してみました:
icmp_ratelimit
設定する0
(何も制限しない)icmp_msgs_per_sec
10000
(十分に高い値に設定)icmp_msgs_burst
5000
(十分に高い)に設定
それは役に立ちませんでした。同じ動作、ランダム タイムアウトが発生します。を制限からicmp_ratemask
除外する方法を完全に理解していないため、には手を出しませんでした。Time Exceeded
最後に質問です:
- この種の問題に詳しい場合
traceroute
、どのように解決しましたか? - 上記のカーネル設定に精通している場合、「十分な」値とは何でしょうか?
- 問題なく動作するようにメッセージ
icmp_ratemask
を制限しないように変更する正しい方法は何ですか?Time Exceeded
traceroute
- さらに、これらの設定(または関連する設定)を変更すると、セキュリティ侵害が発生しますか? DoS 攻撃を受けたり、誰かの DDoS 攻撃の元になったりしたくありません。
答え1
ホップのコントロール プレーン ポリシーの一部として、ICMP プローブはほとんど無視されます。メトリックと傾向、履歴データに関して、より徹底した情報が必要な場合は、専用のオンプレミスの smokeping インスタンスをお勧めします。