博客專欄

EEPW首頁(yè) > 博客 > linux: ip rule 用法詳解

linux: ip rule 用法詳解

發(fā)布人:電子禪石 時(shí)間:2024-11-12 來(lái)源:工程師 發(fā)布文章

策略路由

我們不僅要根據(jù)目的地地址,還要根據(jù)其他數(shù)據(jù)包字段(源地址、IP 協(xié)議、傳輸協(xié)議端口甚至

數(shù)據(jù)包有效負(fù)載)來(lái)不同地路由數(shù)據(jù)包。此任務(wù)稱為策略路由。Linux 策略路由是一種基于

策略的路由機(jī)制,相對(duì)于傳統(tǒng)的基于目的地址的路由機(jī)制,它可以提供更靈活和強(qiáng)大的路由

控制能力。


在 Linux 中,策略路由通過(guò)使用路由策略數(shù)據(jù)庫(kù)(RPDB)來(lái)實(shí)現(xiàn),它可以根據(jù)不同的源地址、

傳輸層端口和 payload 等條件進(jìn)行更細(xì)致的路由控制。


每條策略路由的規(guī)則由一個(gè)選擇器和一個(gè)動(dòng)作組成,RPDB 按照優(yōu)先級(jí)順序進(jìn)行規(guī)則匹配,

優(yōu)先級(jí)數(shù)字越小越優(yōu)先。被選擇器匹配的報(bào)文會(huì)執(zhí)行對(duì)應(yīng)的操作,操作如果成功,

則根據(jù)指定的路由轉(zhuǎn)發(fā)數(shù)據(jù),之后終止 RPDB 匹配;如果執(zhí)行失敗,則報(bào)錯(cuò)并且終止 

RPDB 匹配。否則 RPDB 將繼續(xù)執(zhí)行下一條規(guī)則。


在啟動(dòng)時(shí),內(nèi)核配置默認(rèn)的 RPDB,包括三個(gè)規(guī)則:


優(yōu)先級(jí):0,選擇器:匹配任何內(nèi)容,操作:查找路由表本地(ID 255)。

本地表是一種特殊的路由表,包含本地和廣播地址的高優(yōu)先級(jí)控制路由

優(yōu)先級(jí):32766,選擇器:匹配任何內(nèi)容,操作:查找路由表main(ID 254)。

主表是包含所有非策略路由的常規(guī)路由表。此規(guī)則可以被刪除和/或由其他規(guī)則覆蓋管理員

優(yōu)先級(jí):32767,選擇器:匹配任何內(nèi)容,操作:查找路由表default(ID 253)。

默認(rèn)表為空。如果沒(méi)有先前的默認(rèn)規(guī)則選擇數(shù)據(jù)包,則它將保留用于某些后處理。

這條規(guī)則也可能將被刪除

**注:**不要混淆路由表和策略:規(guī)則指向路由表,多個(gè)規(guī)則可以引用一個(gè)路由表,

而且某些路由表可以策略指向它。如果系統(tǒng)管理員刪除了指向某個(gè)路由表的所有規(guī)則,

這個(gè)表沒(méi)有用了,但是仍然存在,直到里面的所有路由都被刪除,它才會(huì)消失。


linux 系統(tǒng)中,可以自定義從 1-252個(gè)路由表,其中,linux 系統(tǒng)維護(hù)了4個(gè)路由表:


0#表: 系統(tǒng)保留表


253#表: default table 沒(méi)特別指定的默認(rèn)路由都放在該表


254#表: main table 沒(méi)指明路由表的所有路由放在該表


255#表: local table 保存本地接口地址,廣播地址、NAT地址 由系統(tǒng)維護(hù),

用戶不得更改

每個(gè) RPDB 條目都有附加屬性。每個(gè)規(guī)則都有一個(gè)指向某個(gè)路由表的指針。

NAT 和偽裝規(guī)則有一個(gè)屬性來(lái)選擇要翻譯/偽裝的新 IP 地址。除此之外,

規(guī)則還有一些可選的路由擁有的屬性,即領(lǐng)域。這些值不會(huì)覆蓋路由表中包含的值。

它們僅在路由未選擇任何屬性時(shí)使用。


RPDB 可能包含以下類型的規(guī)則:


unicast:規(guī)則規(guī)定返回在規(guī)則引用的路由表中找到的路由

blackhole:規(guī)則規(guī)定悄悄地丟棄數(shù)據(jù)包

unreachable:規(guī)則規(guī)定生成“網(wǎng)絡(luò)不可達(dá)”錯(cuò)誤

prohibit:規(guī)則規(guī)定生成“管理禁止通信”錯(cuò)誤

nat:規(guī)則規(guī)定將IP數(shù)據(jù)包的源地址轉(zhuǎn)換為其他值

————————————————


                        




                        

                        

原文鏈接:https://blog.csdn.net/qq_36803941/article/details/135534711


*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。



關(guān)鍵詞: linux

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉