GNU/Linux >> Linux の 問題 >  >> Linux

Linuxは常にIcmpリダイレクトを送信しますか?

ルーターとして使用されているDebianSqueeze(6.0.6最新)がいくつかあります。
リンクがダウンすると、ICMPリダイレクトがローカルホストに送信されます。これはDebianや他のいくつかのデフォルトの動作です。そのため、リンクが復活すると、ホストは再起動するまでリンクにアクセスできなくなります。

これらのルーターからICMPリダイレクトを送信したくありません。

echo 0 > /proc/sys/net/ipv4/conf/all/send_redirectsをテストしました およびsysctl -w net.ipv4.conf.all.send_redirects=0 net.ipv4.conf.all.send_redirects=0を配置します /etc/sysctl.d/local.conf
これらのソリューションはすべて、適切な値を/proc/sys/net/ipv4/conf/all/send_redirectsに配置します。

しかし…
カーネルはICMPリダイレクトを送信し続けます。再起動後も:

$ tcpdump -n -i eth0
00:56:17.186995 IP 192.168.0.254 > 192.168.0.100: ICMP redirect 10.10.13.102 to host 192.168.0.1, length 68

また、ローカルホスト(Windowsコンピューター)のルーティングテーブルが汚染されています。

これはnetfilterで防ぐことができます:
iptables -t mangle -A POSTROUTING -p icmp --icmp-type redirect -j DROP

通常の方法が機能しない理由について何か考えはありますか?
そして、netfilterを使用せずにICMPリダイレクトが送信されないようにする方法は?

承認された回答:

正しいコマンドは次のとおりです。echo 0 | tee /proc/sys/net/ipv4/conf/*/send_redirects
無効にするには、「all」と「interface_name」に0が必要なためです。

/etc/sysctl.confに または同様のファイルの場合、「all」+「default」を設定する必要があります(または「all」+「interface」ですが、このファイルの処理時にインターフェイスがまだ存在していない可能性があります)。


Linux
  1. ターミネーターを使用して複数のSSHセッションにコマンドを送信する

  2. Linuxコマンドラインから電子メールの添付ファイルを送信する4つの方法

  3. Linuxで出力をファイルとStdoutにリダイレクトする方法

  1. UNIX / Linux:プロセスにシグナルを送信する 3 つの方法

  2. UNIX / Linux :mutt を使用して添付ファイル付きのメールを送信する

  3. Azure Linux VM で Ping を有効にする方法

  1. SSMTPを使用してLinuxターミナルから電子メールを送信する方法

  2. Linux で Bash を使用してすべての出力をファイルにリダイレクトしますか?

  3. Linux で raw メールメッセージを送信するには?