カーネルルーティング例外エントリ(FIB)の表示

カーネルルーティング例外エントリ(FIB)の表示

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詳細な図を見るには。

おすすめ記事