Linux

Linux核心內部儲存的路由表在哪裡?

  • May 19, 2015

當我執行route -n時,從哪裡(從哪個structs)檢索顯示的資訊?

我嘗試執行strace route -n,但沒有幫助我找到正確的儲存位置。

route或實用程序從ip名為procfs. 它通常安裝在/proc. 有一個名為 的文件/proc/net/route,您可以在其中看到核心的 IP 路由表。您可以改為列印路由表cat,但路由實用程序格式化輸出人類可讀,因為 IP 地址以十六進制儲存。

該文件不僅僅是一個普通文件。它總是在打開它並嘗試讀取的那一刻生成,就像 proc 文件系統中的所有文件一樣。

如果您對該文件的編寫方式感興趣,那麼您需要查看核心原始碼:該函式輸出路由表。您在第 2510 行看到,列印了路由表的標題。路由表似乎主要位於標頭檔ip_fib.h 第 98 行fib_info中定義的結構中。

引用自:https://unix.stackexchange.com/questions/204260