ICMPリダイレクト:icmpushでテストする方法


3

ICMPリダイレクトを受信したときに、Linuxシステムでルーティングテーブルがどのように変化するかを確認したい。そのために私は使用します

icmpush -v red -sp current-gateway -gw new-gateway -dest google.com -c host -prot tcp my-eth1-ip-address

(成功を返す)、しかしの結果

route -n 

同じまま。もちろん、私はの出力をチェックしました

cat /proc/sys/net/ipv4/conf/eth1/accept_redirects

これは1です。これはUbuntu 12マシンで、カーネルの最後の安定バージョンがあり、ファイアウォールはインストールされていません。

質問:何が間違っているのでしょうか?


Linuxは、セキュリティ上の理由から、別のパケットへの返信として送信されたリダイレクトのみを受け入れる場合があります。
-grawity

回答:


1

よると、ドキュメント/ネットワーキング/ IP-sysctl.txt、デフォルトのリダイレクトによってのみ、すでにルーティングテーブルにリストされていたもののゲートウェイのために受け入れられています。

secure_redirects-ブール値
    ゲートウェイに対してのみICMPリダイレクトメッセージを受け入れ、
    デフォルトゲートウェイリストにリストされています。
    インターフェースのsecure_redirectsは、次のうち少なくとも1つが有効になっています。
    conf / {all、interface} / secure_redirectsはTRUEに設定され、
    それ以外の場合は無効になります
    デフォルトTRUE

0

仮定:の呼び出しはicmpush外部インターフェースeth1ではなく、localhostを使用するloため、カーネルはゲートウェイからの正しいリダイレクトであることを認識しません。その上、Linuxカーネルの非常に古いバージョンでは、これらのルートはの応答に表示されませんでしたroute -n。先ほど触れたように、の応答はroute -nC一時的なリダイレクトルートも含める正しい方法です。

@grawity、別のパケットへの返信で送信されたリダイレクトの受け入れについて:どこかで読んだことがありますか?本当に興味があるからです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.