net.ipv4.route.flush 実行のリスクは何ですか?

net.ipv4.route.flush 実行のリスクは何ですか?

AWSを介してLinuxボックスを設定してナビゲートしていますsysctl。実行すると、そのアドレスを参照するパスがすでにマシンにip routeあることがわかります。169.X.X.X
質問:

  1. systctl -w net.ipv4.route.flush=1効果は何ですか?
  2. systctl -w net.ipv4.route.flush=1AWS Linuxインスタンスが期待どおりに機能するために必要なデフォルトのボックス/構成はめちゃくちゃになりますか?

答え1

  1. ipv4_sysctl_rtcache_flush()これにより、カーネル関数が引数を使用して呼び出されるようになります1

ただし、関数はネットワーク仕様(技術的にはa struct net *)だけでなく、引数としてインポートすることを期待しています1。したがって、それは有効な主張ではないsysctl -w net.ipv4.route.flush=1ため、何もしない可能性が高いです。1

  1. システムが動的に生成されたルート(gatedルーティングデーモンなどの実行など)に依存している場合、ルートキャッシュを正常にクリアするとネットワークトラフィックが一時的に中断される可能性があります。しかし、上記のように、これは有効な構文ではないようですので、net.ipv4.route.flushおそらく何もしません。

sysctlnet.ipv4.route.flushは明らかにip route flush使用されます(またはそれ以降、より良いインタフェースが開発されれば、ある時点で使用されます)。マニュアルip-route(8)ページには次のように記載されています。

ip route flush

ルーティングテーブルの更新

このコマンドは、特定の基準に従って選択されたパスを更新します。

これらのパラメータの構文と意味は、ip Route showの構文と意味と同じですが、ルーティングテーブルが一覧表示されるのではなく消去されます。唯一の違いはデフォルトの動作です。showすべてのIPデフォルトルーティングテーブルをダンプしますが、flushヘルプページを印刷します。

テストVMの簡単な実験によると、ip route flush 11.0.0.0/32へのパスのみがデフォルトのルーティングテーブルから削除されますが、sysctl -w net.ipv4.route.flush=1そうではありません。したがって、明らかにsysctlには効果があるためにはマイナーな構文が必要です。カーネルソースコードを見ると、パラメータとしてデータ構造が必要なようですが、そんなnet.ipv4.route.flushことがなければip route


アクティブなネットワークインターフェイスにパスが表示されている場合、169.254.0.0/16そのネットワークインターフェイスは、構成要件なしでリンク - ローカル接続を提供するBonjour / Zeroconfシステムの一部です。これを削除するには、NOZEROCONF=yes各インターフェイスファイルの設定からRedHatスタイルのネットワーク設定ファイルを取得できます。他のディストリビューションには、Zeroconf設定の選択を解除する別の方法があります。/etc/sysconfig/network/etc/sysconfig/network-scripts/ifcfg-<interface name>

関連情報