Linux内核路由表介绍及相关函数
?
內核對路由表的操作
-
更新
-
插入
-
刪除
-
查找
?
路由表種類
-
網絡路由表:ip_fib_main_table
-
本地路由表:ip_fib_local_table
-
路由緩存:rt_hash_table
-
策略路由:根據策略支持多張路由表
?
表項
-
路由緩存表項:rtable, 一般使用dst_entry,rtable是對dst_entry的包裹,另外rtable中還有協議相關的信息。
-
dst_entry:對一條路由緩存存儲協議無關的信息
?
更新:
1. 路由緩存
rt_cache_flush()? ? 安排刷新路由緩存
2. 路由表
fib_sync_down()? ? ?當一個設備被關閉或刪除一個本地地址時更新路由表
fib_flush()?? ?? ? ?掃描路由表,刪除路由項
?
?
插入:
1. 路由緩存
rt_intern_hash()? ? 向路由緩存添加一條表項
2. 路由表,分為用戶空間插入方法和內核方法,用戶空間最終是通過調用內核方法實現。
?
?
刪除:
1. 路由緩存
rt_free()?? ??? ?? ?刪除路由緩存中的一條表項
dst_free()?? ??? ?? 刪除dst_entry
2. 路由表,分為用戶空間插入方法和內核方法,用戶空間最終是通過調用內核方法實現。
fib_del_ifaddr()? ? 標記一個需要刪除的路由項,然后調用fib_sync_down()或fib_flush()來清理路由表
?
?
查找:
1. 路由緩存
入口流量:ip_route_input()
出口流量:ip_route_output_key()
2. 路由表
入口流量:ip_route_input_slow()
出口流量:ip_route_output_slow()
?
?
?
?
?
總結
以上是生活随笔為你收集整理的Linux内核路由表介绍及相关函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 婴儿睡袋品牌前十名(25款婴幼儿睡袋测评
- 下一篇: 小猪短租平台(短租平台小猪进军乡村民宿市