策略路由/路由表/ip rule/ ip route --全網最清晰解釋

策略路由的由來: 

    最初,路由僅依據目的地址,採用最長匹配原則來決定下一跳。 後來 人們還希望通過其他項來選擇下一跳, 比如源地址, 傳輸協議, 端口等。。因此策略路由應運而生。 根據不同的條件(源地址, 傳輸協議, 端口)選擇路由表, 然後在路由表中根據目的地址選擇下一跳。 

 

策略路由樣貌:

它是由三部分組層,

part1:  優先級,也就是上圖中的0, 32766, 32767, 數字越小優先級越高。 新增路由策略的時候,如果不通過pref指定優先級會在找個除零以外最小的優先級。 如下所示:

[root]# ip rule del from 135.105.115.149 lookup 231
[root]# ip rule
0:      from all lookup local
32765:  from 135.105.115.149 lookup 231
32766:  from all lookup main
32767:  from all lookup default

part2: 條件, 比如from  all, from 135.105.115.149.   

part3: 操作, 比如lookup main 、 lookup 231。

綜上:

32765:  from 135.105.115.149 lookup 231 代表的含義是, 源地址是135.105.115.149的IP包,根據231號路由表進行路由。 

 

路由策略工作原理:

會根據優先級依次遍歷,直到決策出下一跳。

例如:一個IP報文源地址是135.105.115.180, 目的地址是155.18.49.20

1)判斷路由策略0, 符合條件from all, 去查找local 路由表(本地路由表,存有本地接口地址,廣播地址,以及NAT地址)。 local表中根據目的地址,最長匹配原則找不到路由。2)進而判斷路由策略路由32765, 該策略源地址是135.105.115.149的, 去查找231號表。 不滿足。 3)進而判斷32766, 該路由策略的條件是from all滿足。去查找路由表main(主路由表,傳統路由表,ip route若沒指定表即操作表254), 其中可以找到下一跳, 進而轉發IP包。 到此結束。 

 

路由表:

只能根據目的路由

系統初始,給創建了4張路由表:

0表                      系統保留表
255                       local 本地路由表,存有本地接口地址,廣播地址,以及NAT地址。
                           local表由系統自動維護,管理員不能操作此表。
254                       main 主路由表,傳統路由表,ip route若沒指定表即操作表254。
                           注:平時用route查看的亦是此表設置的路由。
253                        default  默認路由表一般存放默認路由。
                           注:rt_tables文件中表以數字來區分表,保留最多支持255張表。

路由表查看的方法:

 ip route list table [table_id/table_name]

例如查看main 路由表:ip route list table 254、 ip route list table main

注:平常我們用的netstat -rn 或者route 查看的都是主路由表(254號表)

       route  [add|del] [-net|-host] target [netmask Nm] [gw Gw] [[dev] If]增加的路由也是在254號表。 

 

增加/刪除路由策略:

可以參考https://blog.csdn.net/bytxl/article/details/9850803

需要執行ip route flush cache, 讓路由策略立馬生效。 

 

其他學習鏈接:

https://segmentfault.com/a/1190000000638244

最長匹配原則:

https://www.juniper.net/documentation/en_US/junos/topics/reference/configuration-statement/longest-match-next-hop-edit-static-routing-options.html

pref字段使用:

https://unix.stackexchange.com/questions/424314/changing-default-ip-rule-priority-for-main-table

 

 

 

 

 

發佈了66 篇原創文章 · 獲贊 15 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章