カーネル3.2.0-23-genericを備えたLinuxマシンを持っています また、RPDBで優先度220のルールがあり、「220」という名前のルーティングテーブルを指します。
T42:~# ip rule show
0: from all lookup local
220: from all lookup 220
220: from all lookup 220
32766: from all lookup main
32767: from all lookup default
T42:~# ip route show table 220
T42:~#
このルールがどこから来たのかを知ることは可能ですか?空のルーティングテーブルのポイントは何ですか?最後になりましたが、同じ優先度を持つ複数のルールがどのように存在するのでしょうか?
承認された回答:
このルールがどこから来たのかを知ることは可能ですか?
「このルールのソースをどこで検索できるか」という意味ではありません。
問題を調査する方法はいくつかあります。最も明白なのはgrep
です。 システム上のすべての起動スクリプトで、ip rule
を使用しているものを確認します まったく、そしてそれらを読み始めます。または、システムをシングルユーザーモードで起動し、strace
を使用して、コマンドラインからサービスを1つずつ起動することもできます。 。または、bash
でシステムを起動することもできます as init(カーネルコマンドライン:init=/bin/bash
)、次に、実際の/sbin/init
を実行できます。 strace
を使用 。これらは起動アクティビティを追跡するためのかなり高度な方法であり、実行するスクリプトを知ることは簡単ではないかもしれません…
特定のルールが管理者であるかハッカーが手動で入力したものであり、システムに存在するスクリプトではない場合、特定のルールがどこから来たのかを知る方法はありません。
空のルーティングテーブルのポイントは何ですか?
何もありません–誰かがそのテーブルにデータを入力し始めるまで。これはデーモンである可能性があり、最初に独自のテーブルのルールを入力し、次に独自のルーティングテーブルの内容を動的に変更します。
同じ優先度のルールが複数あるのはどうしてですか?
IPROUTE2ユーティリティスイートのハウツー
priority PREFERENCE —このルールの優先度。各ルールには、明示的に設定された一意の優先度の値が必要です。優先度は符号なし32ビット数であるため、4294967296の可能なルールがあります。
警告!
歴史的な理由から、ip rule addは優先度の値を必要とせず、優先度の値を非一意にすることができます。ユーザーが優先度の値を指定しなかった場合、カーネルによって割り当てられました。ユーザーがすでに存在する優先度の値でルールの作成を要求した場合、カーネルは要求を拒否せず、のすべての古いルールの前に新しいルールを追加しました。同じ優先順位。これは現在の設計の間違いであり、それ以上のものではありません。これを読むまでに修正されるはずなので、この機能に依存しないでください。ルールを作成するときは、常に明示的な優先順位を使用する必要があります。