在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于路由策略數據庫(RPDB)

OSC開源社區 ? 來源:OSC開源社區 ? 作者:OSC開源社區 ? 2022-10-12 09:50 ? 次閱讀

SIMPLE

Linux策略路由詳解

概述

在Linux中,我們通常使用route 命令來做路由信息的管理。但是該命令僅僅只能用于基本路由信息的管理,面對功能更加強大的基于策略的路由機制,route 命令就顯得捉襟見肘。在傳統路由算法中,只能基于目的地址進行路由選擇。但是如果對路由選擇有更復雜的要求,比如針對不同源地址、傳輸層端口甚至是payload進行更細致的路由控制,傳統的基于目的地址的路由表就無法滿足需求了,需要使用功能更加強大的路由策略數據庫routeing database: RPDB 來處理。

命令安裝:

安裝很簡單,按照如下命令安裝即可。

# 查看iproute是否安裝
# 查看iproute版本
]# ip -V
ip utility, iproute2-ss170501

# 安裝
yum install iproute -y

路由策略數據庫(RPDB):

RPDB是存放策略的數據庫,被策略匹配的數據包會執行相關的操作,可以通過ip rule 來管理。

在系統啟動時,內核會配置三條默認策略:

# 通過ip rule show可以查看當前RPDB中的規則
]# ip rule show
0: from all lookup local # 優先級為0,匹配任意源地址,查詢local路由表轉發
32766: from all lookup main # 優先級為32766,匹配任意源地址,查詢main路由表轉發
32767: from all lookup default # 優先級為32767,匹配任意源地址,查詢default路由表轉發

1. local路由表是一個特殊的路由表,包含本地地址和廣播地址的高優先級控制路由, 例如訪問127.0.0.1就是參考的這條規則。
2. main路由表是一個通用路由表,正常通過route -n命令操作的就是這個路由表。
3. default路由表默認是一個空表,除非有特別的要求,否則保持為空即可。

每條策略路由的規則由一個選擇器 和一個動作 組成,RPDB按照優先級順序進行規則匹配,優先級數字越小越優先。被選擇器 匹配的報文會執行對應的操作,操作如果成功,則根據指定的路由轉發數據,之后終止RPDB匹配,如果執行失敗,則報錯并且終止RPDB匹配。否則RPDB將繼續執行下一條規則。

ip rule命令說明

# 執行ip rule help可以查看幫助信息,如果需要更詳細的幫助信息,可以執行man ip-rule
]# ip rule help
Usage: ip rule { add | del } SELECTOR ACTION
ip rule { flush | save | restore }
ip rule [ list [ SELECTOR ]]
SELECTOR := [ not ] [ from PREFIX ] [ to PREFIX ] [ tos TOS ] [ fwmark FWMARK[/MASK] ]
[ iif STRING ] [ oif STRING ] [ pref NUMBER ] [ l3mdev ]
[ uidrange NUMBER-NUMBER ]
ACTION := [ table TABLE_ID ]
[ nat ADDRESS ]
[ realms [SRCREALM/]DSTREALM ]
[ goto NUMBER ]
SUPPRESSOR
SUPPRESSOR := [ suppress_prefixlength NUMBER ]
[ suppress_ifgroup DEVGROUP ]
TABLE_ID := [ local | main | default | NUMBER ]

選擇器(SELECTOR)

from PREFIX: 根據源地址前綴匹配
to PREFIX: 根據目的地址前綴匹配
tos TOS: 根據ip包頭TOS字段的值進行匹配
fwmark FWMARK[/MASK]: 配合iptables -t mangle 打標記,根據標記進行匹配
iif STRING: 選擇要匹配的數據包的輸入接口
oif STRING: 選擇要匹配的出接口設備。只對來自本地套接字并與設備綁定的報文有效
pref NUMBER: 規則的優先級。這里的pref可以替換成priority或者order,效果是一樣的。

動作(ACTION)

table TABLE_ID: 在規則匹配的時候,指定使用的路由表,被匹配的數據包將按照指定的路由表進行路由。此處的table也可以替換為lookup,效果是一樣的。
blackhole: 丟棄匹配的數據包。
unreachable: 丟棄匹配的數據包,并生成"Network is unreachable"錯誤。
prohibit: 丟棄匹配的數據包,并生成"Communication is administratively prohibited"錯誤。

查看策略:

]# ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default

添加策略:

# 來自192.168.22.3的數據包,都參考id為10的路由表進行轉發
ip rule add from 192.168.22.3 table 10

# 設置規則的優先級為100,發往192.168.23.0/24的數據包,都參考id為100的路由表進行轉發
ip rule add to 192.168.23.0/24 table 20 pref 100

# 給協議是tcp,源地址是192.168.24.0/24,目的端口是80的數據包,在路由前打上1的標記
iptables -t mangle -A PREROUTING -p tcp -m multiport --dports 80 -s 192.168.24.0/24 -j MARK --set-mark 1
# 將標記為1的數據包,參考id為iptables_table的路由表進行轉發
ip rule add fwmark 1 table iptables_table

# 來自192.168.25.0/24的數據包都將丟棄
ip rule add from 192.168.25.0/24 blackhole
ip rule add from 192.168.26.0/24 unreachable
ip rule add from 192.168.27.0/24 prohibit

注意,添加動作是table TABLE_ID時,默認情況下,只能添加數字,如果添加的是字符的話,會有如下報錯。

]# ip rule add from 192.168.22.3 table iptables_table
Error: argument "iptables_table" is wrong: invalid table ID

這就帶來一個問題,如果時間久了,就不知道自己當時添加的這個路由表是啥意思了。所以需要有一個數字和字符的對應關系。這個對應關系,就保存在/etc/iproute2/rt_tables 這個文件里。

#編輯/etc/iproute2/rt_tables,添加iptables_table表的id為100
]# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#自定義路由表
100 iptables_table
#
# local
#
#1 inr.ruhep

添加之后,就可以正常執行ip rule add from 192.168.22.3 table iptables_table 了。并且執行ip rule show的時候,路由表也是按照定義的字符顯示。

刪除策略:

# 根據路由表刪除
ip rule del table iptables_table

# 根據來源地址刪除
ip rule del from 192.168.22.0/24

# 根據優先級刪除
ip rule del pref 100

# 根據標記刪除
ip rule del fwmark 100

路由表管理:

目前看,通過ip rule命令,可以根據不同的規則,選擇不同的路由表來轉發數據。那么如何對不同的路由表做管理呢? 很簡單,只要在正常執行的命令之后,加上table TABLE_ID 即可。

查看路由表路由條目:

# ip route show等價于ip route show table main,也就是查的是默認的main路由表
ip route show

#查看指定目標的路由
ip route show 192.168.22.0/24

#查看指定路由表iptables_table中的路由
ip route show table iptables_table
ip route show table 100


添加路由:

# 向iptables_table中添加默認路由
ip route add default via 192.168.22.1 dev eth1 src 192.168.22.3 table iptables_table

]# ip route show table 100
default via 192.168.22.1 dev eth1 src 192.168.22.3


刪除路由:

# 刪除iptables_table路由表中的路由
ip route del default via 192.168.22.1 dev eth1 src 192.168.22.3 table iptables_tabl

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11479

    瀏覽量

    213026
  • 數據庫
    +關注

    關注

    7

    文章

    3905

    瀏覽量

    65869
  • 路由
    +關注

    關注

    0

    文章

    279

    瀏覽量

    42383

原文標題:Linux策略路由詳解

文章出處:【微信號:OSC開源社區,微信公眾號:OSC開源社區】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    基于SQL Server 2000數據庫的安全性策略的研究

    基于SQL Server 2000數據庫的安全性策略的研究
    發表于 10-10 15:07

    求助關于labview查詢access數據庫的問題

    初學者,想學習鏈接數據庫方面的知識,遇到不少問題,下面求助各位大神,關于查詢數據庫的問題問題:如何通過“零部件名稱”“故障模式”查詢數據庫,現在能實現兩個輸入控件都賦值查找
    發表于 03-14 21:18

    數據庫管理

    如題:用labview操作access數據庫做公司測試流程管控。因測試數據量大,數據生成多,現在accdb文件已經有50M了,現在發現數據庫在本地操作都很快,但是放在遠端服務器后操作就
    發表于 11-08 16:58

    數據庫教程之如何進行數據庫設計

    本文檔的主要內容詳細介紹的是數據庫教程之如何進行數據庫設計內容包括了:1 數據庫設計概述 ,2 數據庫需求分析 ,3 數據庫結構設計 ,4
    發表于 10-19 10:41 ?21次下載
    <b class='flag-5'>數據庫</b>教程之如何進行<b class='flag-5'>數據庫</b>設計

    關于數據庫安全技術的概述

    數據庫安全,是指以保護數據庫系統、數據庫服務器和數據庫中的數據、應用、存儲,以及相關網絡連接為目的,是防止
    發表于 06-24 17:23 ?1936次閱讀

    海量空間數據庫應該如何進行實施策略

    本文檔的主要內容詳細介紹的是海量空間數據庫應該如何進行實施策略包括了:序言,空間數據庫設計,矢量數據實施策略,柵格
    發表于 09-24 11:54 ?4次下載
    海量空間<b class='flag-5'>數據庫</b>應該如何進行實施<b class='flag-5'>策略</b>

    數據庫和自建數據庫的區別及應用

    數據庫是指優化和部署在云端的數據庫,阿里云和騰訊云都提供云數據庫,云數據庫和自己搭建的數據庫有什么區別?有必要使用云
    的頭像 發表于 11-20 16:26 ?4893次閱讀
    云<b class='flag-5'>數據庫</b>和自建<b class='flag-5'>數據庫</b>的區別及應用

    ACS數據庫與RSC數據庫比較研究

    ACS數據庫與RSC數據庫比較研究(開關電源技術與設計pdf百度云)-ACS數據庫與RSC數據庫比較研究? ? ? ? ? ? ? ? ?
    發表于 09-15 11:35 ?5次下載
    ACS<b class='flag-5'>數據庫</b>與RSC<b class='flag-5'>數據庫</b>比較研究

    數據庫索引使用策略及優化

    的內容完全基于上文的理論基礎,實際上一旦理解了索引背后的機制,那么選擇高性能的策略就變成了純粹的推理,并且可以理解這些策略背后的邏輯。 示例數據庫 為了討論索引策略,需要一個
    的頭像 發表于 11-02 15:13 ?1939次閱讀
    <b class='flag-5'>數據庫</b>索引使用<b class='flag-5'>策略</b>及優化

    數據庫建立|數據庫創建的方法?

    數據庫是一個存儲關鍵數據的文件系統。利用數據庫管理系統建立每個人的數據庫可以更好地提供安全。 數據庫建立|
    的頭像 發表于 07-14 11:15 ?1568次閱讀

    python讀取數據庫數據 python查詢數據庫 python數據庫連接

    python讀取數據庫數據 python查詢數據庫 python數據庫連接 Python是一門高級編程語言,廣泛應用于各種領域。其中,Python在
    的頭像 發表于 08-28 17:09 ?2160次閱讀

    什么是JSON數據庫

    數據庫的顯著優勢關于JSON數據庫的Q&A一、什么是JSON?首先,我們得明確“JSON”的含義。開發人員在創建業務邏輯、用戶界面、數據庫或后端系統時,需要一種描述
    的頭像 發表于 12-02 08:04 ?1217次閱讀
    什么是JSON<b class='flag-5'>數據庫</b>

    關于JSON數據庫

    如何理解JSON數據庫?作為NoSQL數據庫的一種類型,JSON數據庫有哪些優勢呢?JSON數據庫如何運作,它為應用程序開發者帶來了哪些價值呢?
    的頭像 發表于 12-06 13:46 ?1143次閱讀
    <b class='flag-5'>關于</b>JSON<b class='flag-5'>數據庫</b>

    數據庫數據恢復—通過拼接數據庫碎片恢復SQLserver數據庫

    一個運行在存儲上的SQLServer數據庫,有1000多個文件,大小幾十TB。數據庫每10天生成一個NDF文件,每個NDF幾百GB大小。數據庫包含兩個LDF文件。 存儲損壞,數據庫
    的頭像 發表于 10-31 13:21 ?636次閱讀
    <b class='flag-5'>數據庫</b><b class='flag-5'>數據</b>恢復—通過拼接<b class='flag-5'>數據庫</b>碎片恢復SQLserver<b class='flag-5'>數據庫</b>

    數據庫是哪種數據庫類型?

    數據庫是一種部署在虛擬計算環境中的數據庫,它融合了云計算的彈性和可擴展性,為用戶提供高效、靈活的數據庫服務。云數據庫主要分為兩大類:關系型數據庫
    的頭像 發表于 01-07 10:22 ?428次閱讀
    主站蜘蛛池模板: 黑人性xx | 免费人成在线观看视频播放 | 日本丰满毛茸茸熟妇 | 国内夫妇交换性经过实录 | 九七婷婷狠狠成人免费视频 | 色综合久久久久久久久五月 | 天天操夜夜草 | 美女扒开尿口给男人爽免费视频 | 成人免费看黄网站无遮挡 | 青草青视频在线观看 | 久草色香蕉 | 免费观看视频高清www | 丁香六月啪啪 | 操狠狠| 亚洲成人免费网站 | 69久久夜色精品国产69小说 | 国产高清不卡一区二区 | 国模私拍大尺度视频在线播放 | 五月婷婷综合网 | 老师我好爽再深一点好大 | 欧美美女被日 | 亚洲黄色第一页 | 午夜免费体验 | 人人草人人射 | 国内黄色录像 | 亚洲春色在线 | xxxx性xx另类| 丁香花五月婷婷开心 | 亚洲五月六月丁香激情 | 亚洲国产成人久久99精品 | 久久电影福利 | 国产精品久久免费观看 | 香蕉久久夜色精品国产2020 | 你懂得视频在线 | 狠狠插天天干 | 国产一级特黄 | 免费操人视频 | 成人欧美精品久久久久影院 | 好大好紧好爽好湿润视频 | 天堂最新版在线www在线 | 最新欧美精品一区二区三区 |