linux 多網卡多路由表實現策略路由

linux kernel 2.2 開始支持多個路由表。
routing policy database (RPDB)。

傳統路由表,基於目標地址做路由選擇。通過多個路由表,kernel支持實施策略路由,這樣就可以基於源IP地址等信息做路由選擇。

傳統的查看路由表命令 route
linux 多網卡多路由表實現策略路由
新的路由表查看命令 ip route
linux 多網卡多路由表實現策略路由
Kernel 可以定義0到255標識路由表。
The file /etc/iproute2/rt_tables need not exist, as the iproute2 tools have a hard-coded entry for the main table. 直接用route或者ip route 查看的就是main這張路由表。

linux 多網卡多路由表實現策略路由

The local routing table這張路由表由kernel自動生成和維護,不應該去改動它。路由表中包含的是本地接口路由和廣播路由,以及nat路由。
linux 多網卡多路由表實現策略路由
The main routing table這張路由表也是由kernel自動生成和維護。
linux 多網卡多路由表實現策略路由
Routing Policy database
路由策略數據庫控制了kernel搜素多個路由表之間的順序。每一條rule規則都可以定義一個0到32767之間的優先級,數字越小,優先級越高。
當路由表cache爲空,新的數據包到達尋找路由時,kernel開始查找最高優先級的rule0。Kernel重複查找匹配路由規則rule。如果kernel沒有在rule中找到路由,那麼它會嘗試查找剩下的其他rule.
查看路由規則ip rule show
linux 多網卡多路由表實現策略路由
Ip rule add unicast iif eth7 prio 32766 table

刪除某條路由規則rule
Ip rule del prio 32766

Ip route flush 10.38.0.0/16 或者某張路由表中所有路由ip route flush table main

ip route show cache
ip route flush cache

 可在 /etc/sysconfig/network-scripts/route-interface 文件中爲每個接口保存其靜態路由配置。命令提示符後使用 ip 設定的靜態路由會在系統關機或重啓後丟失。要配置靜態路由以便在系統重啓後仍可保留,則必須將其放在 /etc/sysconfig/network-scripts/ 目錄中。該文件名的格式應爲 route-ifname。
route-ifname只是爲接口保存的路由配置文件。真正的路由表在rt_tables中定義,定義的路由表各個條目就分散在route-ifname文件中。

Ip rule 也是同樣的原理,文件名的格式爲rule-XX。

/etc/sysconfig/network-scripts/rule-eth0
/etc/sysconfig/network-scripts/route-eth0

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章