Linux
Linux核心內部儲存的路由表在哪裡?
當我執行
route -n
時,從哪裡(從哪個struct
s)檢索顯示的資訊?我嘗試執行
strace route -n
,但沒有幫助我找到正確的儲存位置。
route
或實用程序從ip
名為procfs
. 它通常安裝在/proc
. 有一個名為 的文件/proc/net/route
,您可以在其中看到核心的 IP 路由表。您可以改為列印路由表cat
,但路由實用程序格式化輸出人類可讀,因為 IP 地址以十六進制儲存。該文件不僅僅是一個普通文件。它總是在打開它並嘗試讀取的那一刻生成,就像 proc 文件系統中的所有文件一樣。
如果您對該文件的編寫方式感興趣,那麼您需要查看核心原始碼:該函式輸出路由表。您在第 2510 行看到,列印了路由表的標題。路由表似乎主要位於標頭檔ip_fib.h 第 98 行
fib_info
中定義的結構中。