Linuxカーネル内のルーティングテーブルはどこに保存されていますか?

Linuxカーネル内のルーティングテーブルはどこに保存されていますか?

実行時にroute -n表示される情報は正確にどこで検索されますか?struct

実行しようとしましたが、保存されstrace route -nた正確な場所を見つけるのに役立ちませんでした。

答え1

routeまたは、ユーティリティはip名前付き擬似ファイルシステムから情報を取得しますprocfs。通常はにインストールされます。カーネルのIPルーティングテーブルを表示できる/procファイルがあります。/proc/net/route代わりに、ルーティングテーブルを印刷できますが、catIPアドレスは16進数で保存されるため、ルーティングユーティリティは人間が読める出力形式を指定します。

このファイルは単純なファイルではありません。 proc ファイルシステム内のすべてのファイルのように、ファイルを開いて読み取ろうとすると常に生成されます。

このファイルがどのように作成されるかを知りたい場合は、カーネルのソースコードを見てください。機能出力ルーティングテーブル。あなたはで見る2510号線、ルーティングテーブルのタイトルを印刷します。ルーティングテーブルは、主にfib_infoヘッダファイルで定義された構造にあるようです。ip_fib.h、98行

関連情報