Linux 3.6では、ipv4パスキャッシュ(犯罪)。
変更ログ説明する:
IPv4 ルートキャッシュを削除します。次に、FIBツリーを直接見て、そこにキャッシュされた事前に構築されたパスを使用します。
これによると質問、パスキャッシュエントリは次の場所に保存されます。「パス例外」構造はルーティングエントリの一部です。
私の3.16(Debian Jessie)標準配布カーネルでは例外が表示されず、ip route show cache
何も返されません。ルーティングテーブルにはデフォルトパスが1つしかありません。
~#ip ルーティング表示
デフォルト値は 10.11.2.30 dev eth0
10.11.0.0/16 dev eth0 プロトタイプカーネル範囲 link src 10.11.1.76
Q1:カーネルに知られているルーティング例外をすべてリストする方法は?
Q2:これらの例外を選択的に削除する方法は?
Q3:ホストにpingを試みるときにカーネルが正しいデフォルトゲートウェイを選択しないのはなぜですか?
ping 10.30.104.23
PING 10.30.104.23 (10.30.104.23) 56(84)バイトのデータです。
10.11.1.11 icmp_seq=1 から宛先プロトコルに到達できません。
Q3の付録:ICMPリダイレクトのため、この(現在は使用されていない)パスが(どこかに)保存されている可能性があります。ただし、ip route show cache
パス例外がリストされておらず、デフォルトパスが別途指定されている場合、この情報はどこに保存されますか?
ベストアンサー1
まあ、多くの調査の終わりに答えを得たようです。
A1:3.6以降、フルパスキャッシュを一覧表示することはできなくなりました。特定のIPが使用しているルートキャッシュを表示できますが、すべてip route get to A.B.C.D
一覧表示することはできません。
A2:ip route flush cache to A.B.C.D
ルーティングキャッシュから単一のエントリを削除します。
A3:ああ、わかりました。まず、FIB(Forwarding Information Base)と呼ばれるルーティングキャッシュを参照してください。後ろにルーティングテーブルを見てください。
バラよりこのPDF詳細な図を見るには。