AWSを介してLinuxボックスを設定してナビゲートしていますsysctl
。実行すると、そのアドレスを参照するパスがすでにマシンにip route
あることがわかります。169.X.X.X
質問:
systctl -w net.ipv4.route.flush=1
効果は何ですか?systctl -w net.ipv4.route.flush=1
AWS Linuxインスタンスが期待どおりに機能するために必要なデフォルトのボックス/構成はめちゃくちゃになりますか?
答え1
ipv4_sysctl_rtcache_flush()
これにより、カーネル関数が引数を使用して呼び出されるようになります1
。
ただし、関数はネットワーク仕様(技術的にはa struct net *
)だけでなく、引数としてインポートすることを期待しています1
。したがって、それは有効な主張ではないsysctl -w net.ipv4.route.flush=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 1
1.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>