建体彩网|中彩网双色球连号|
?
快捷搜索:  as  test  1111  test aNd 8=8  test++aNd+8=8  as++aNd+8=8  as aNd 8=8

同樂城娛樂注冊送38:Linux環境下基于策略的路由

?

擇要

本文以大年夜量實例為根基先容了基于Linux2.2的強大年夜路由功能,它供給的路由功能是很多路由器產品都是難以匹敵的,假如斟酌到它的免費性,它的機能價格比更是沒有任何產品可以比擬。

今朝在謀略機收集中應用的傳統路由算法都是根據IP包目的地址進行路由選擇.然而在現實利用中常常有這樣的需求:進行路由選擇時不僅僅根據數據報的目的地址,而且根據數據報的其他一些特點如:源地址、IP協議、傳輸層端口,以致是數據包的負載部分內容,這種類型的路由選擇被稱作基于策略的路由。

在Linux中,從2.1版本的內核開始就實現了對基于策略的路由的支持,它是經由過程應用路由策略數據庫(RPDB,routing policy database)替代傳統的、基于目的地址的路由表來實現的。RPDB經由過程包孕的一些規則來選定相宜的IP路由。這些規則可能會包孕很多各類不合類型的健值(key),是以這些規則沒有默認的特定序次,規則查找序次或規則優先級都是由收集或系統治理員設定的。

Linux的RPDB是一個由數字優先級值進行排序的線性規則列表。RPDB能匹配數據報源地址、目的地址、TOS、進入接和fwmark值等。每個路由策略規則由一個選擇器和一個動作唆使組成。RPDB按照優先級遞增的順序被掃描,RPDB包孕的每條規則的選擇器被利用于數據報的源地址、目的地址、進入接口、TOS和fwmark值。若數據報匹配該規則對應于該規則的動作被履行。若動作成功返回,則規則輸出將是一個有效的路由或是路由查找掉敗唆使;否則查找RPDB的下一條規則。

被選擇器和一個數據報匹配成功,會履行哪些動作呢?路由軟件的標準動作一樣平常是選擇下一跳地址和輸出接口,可以稱這種動作為“匹配&設置”類型動作。然而Linux采取了加倍機動的措施,在Linux中有多種動作可供選擇。默認的動作是查詢特定的基于目的地址的路由表。

是以“匹配&設置”動作就成為Linux路由選擇的最簡單環境。Linux支持多個路由表,每個路由表都包孕多條路由信息。也便是Linux的每個路由表都相稱于其他操作系統的系統路由表。Linux支持多達255個路由表。(Linux 2.2.12 支持255個路由表,255個匯聚域和232個策略規則優先級。

對付Linux2.1/2.2,啟動時內核將包孕一個由三條策略規則組成的默認的RPDB,不雅察這些默認規則的一個措施是應用敕令來列出系統的所有規則:

[email protected] ip rule list

0:   from all lookup local

32766: from all lookup main

32767: from all lookup default

下面的默認規則在對付理解啟動繁雜路由系統是異常緊張的。

首先是最高檔其余優先級規則,規則策略0:

規則0: 優先級 0 選擇器 = 匹配任何數據報

動作=不雅察本地路由表(routing table local),ID為255。

local表是保留路由表,包孕了到本地和廣播地址的路由。規則0是特殊的規則,弗成被刪除或改動。

規則 32766: 優先級 32766 選擇器 = 匹配所稀有據報

動作 = 不雅察主路由表(ro同樂城娛樂注冊送38uting table main), ID為254。

main路由表是默認的標準路由表,其包孕所有非策略路由,main表是寄放舊的路由敕令(route敕令)創建的路由。而且任何由ip route敕令創建的沒有明確指定路由表的路由都被加入到該路由表中。該規則不能被刪除和被其他規則覆蓋。

規則 32767: 優先級 32767 選擇器 = 匹配所稀有據報

動作 = 不雅察默認路由表(routing table default),ID為253。

default路由表是空的,為著末處置懲罰(post-processing)所預留,若前面的默認規則沒有選擇該數據報時保留用作著末的處置懲罰。該規則可以被刪除。

該敕令將添加IP地址192.168.2.2/24到eth0網卡上.

下面看看ip route敕令:

[email protected]# ip route help

Usage: ip route { list | flush } SELECTOR

ip route get ADDRESS [ from ADDRESS iif STRING ]

[ oif STRING ] [ tos TOS ]

ip route { add | del | replace | change | append | replace |

monitor} ROUTE

SELECTOR := [ root PREFIX ] [ match PREFIX ] [ exact PREFIX ]

[ table TABLE_ID ] [ proto RTPROTO ]

[ type TYPE ] [ scope SCOPE ]

ROUTE := NODE_SPEC [ INFO_SPEC ]

NODE_同樂城娛樂注冊送38SPEC := [ TYPE ] PREFIX [ tos TOS ]

[ table TABLE_ID ] [ proto RTPROTO ]

[ scope SCOPE ] [ metric METRIC ]

INFO_SPEC := NH OPTIONS FLAGS [ nexthop NH ]...

NH := [ via ADDRESS ] [ dev STRING ] [ weight NUMBER ] NHFLAGS

OPTIONS := FLAGS [ mtu NUMBER ] [ advmss NUMBER ]

[ rtt NUMBER ] [ rttvar NUMBER ]

[ window NUMBER] [ cwnd NUMBER ] [ ssthresh REALM ]

[ realms REALM ]

TYPE := [ unica同樂城娛樂注冊送38st | local | broadcast | multicast | throw |

unreachable | prohibit | blackhole | nat ]

TABLE_ID := [ local | main | default | all | NUMBER ]

SCOPE := [ host | link | global | NUMBER ]

FLAGS := [ equalize ]

NHFLAGS := [ onlink | pervasive ]

RTPROTO := [ kernel | boot | static | NUMBER ]

Example - ip route add 192.168.2.0/24 via 192.168.1.254

應該留意的是,在運行任何這些敕令都必要發送“ip route flush cache"敕令來刷新路由緩沖,否則敕令在一段光陰今后才會生效,這段光陰的是非依附于路由表布局的大年夜小和負載。

將上面的例子必要的敕令放在一路就如下所示:

ip rule del priority 5000

ip rule add from 192.168.2.0/24 priority 5000 prohibit

ip route flush cache

這個敕令流暢過首先刪除5000號規則來確保當前系統沒有該規則然后再添加新的5000號規則。假如系統原先不存在5000號的規則則會返回一個差錯信息。然后添加5000號規則并經由過程清空運行時的路由緩存來重置RPDB,則新規則將頓時孕育發生感化。

多路由表和IP地址

為了完全理解基于策略路由的應用,就必要學會應用Linux多路由表和IP地址,這包括多個方面的常識,下面經由過程示例來加以闡明。

當得到ip對象,你可能會留意到在宣布中有一個名為etc的子目錄,此中有一個名為iproute2的子目錄。應該拷貝該子目錄到/etc目錄下或在/etc目錄下創建iproute2子目錄。該目錄包孕用來命名路同樂城娛樂注冊送38由表及策略路由布局的其他方面的文件。在該目錄中創建rt_tables文件,此中示例文件一樣平常已經包孕了某些內容,并為路由表1供給了示例名。

下面首先編輯該文件來創建多少鄙人面的示例中應用的表:

# reserved values

#

255   local

254   main

253   default

0    unspec

#

# local

#

1    goodnet1

2    goodnet2

3    badnet1

4    badnet2

5    internet

可以看到經由過程為路由表命名,就可以應用表數字ID或表名來引用路由表。例如下面兩個敕令將對同一個路由表進行操作:

為接口設置如下地址:

192.168.1.1

192.168.1.128

192.168.3.1

在添加192.168.1.0/24的兩個地址時必要關閉自動路由添加,而容許對192.168.3.0/24時容許自動路由添加功能。

ip addr add 192.168.1.1/32 dev eth0

ip addr add 192.168.1.128/32 dev eth0

ip addr add 192.168.3.1/24 dev eth0

這時刻假如不雅察主路由表則會發明內核只為收集192.168.3.0/24添加了路由表,而沒有為收集192.168.1.0/24添加路由。

經由過程ip addr敕令可以不雅察系統的所有IP地址信息:

[email protected]# ip addr

1: lo:mtu 3924 qdisc noqueue

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 brd 127.255.255.255 scope host lo

2: eth0:

mtu 1500 qdisc pfifo_fast qlen 100

link/ether 00:00:49:61:32:bc brd ff:ff:ff:ff:ff:ff

inet 192.168.1.1/32 scope global eth0

inet 192.168.1.128/32 scope global eth0

inet 192.168.3.1/24 scope global eth0

下面我們將評論爭論幾個加倍繁雜的例子。

例 4:多路由表和IP地址

Linux內核路由代碼最強大年夜的特色便是基于策略的路由和應用多地址、多路由表的結合應用。下面的示例評論爭論的是一個充當路由器的連接三個不合的收集的系統。

參考文章開首的圖片,可以看到核心系統的外部接口連接了三個外部收集。每個收集都有自己的路由器和自己的IP地址空間。然則此中的兩個地址空間是重疊的,是以增添了環境的繁雜性。這里我們設置如下規則的路由表來實現互聯:

假如有三個路由表,則必要添加一條規則來不雅察數據報目的。而反省數據報目的地址是標準路由的功能。為什么要對每種源、目的的組合都必要一個規則呢?經由過程應用路由表,可以實現定義只管即便少的規則來達到目的。當然 系統的機動性容許經由過程多條措施來實現這樣的路由。可以根據在自己的喜愛來抉擇那種規劃最得當:

ip rule add from 192.168.1.32/27 to 172.18.0.0/16 pref 15000 table goodnet1

ip rule add from 192.168.2.64/28 to 10.10.0.0/16 pref 15001 table goodnet2

ip rule add from 192.168.1.0/24 pref 15002 table goodnet1

ip rule add from 192.168.2.0/24 pref 15003 table goodnet2

上面的例子中應用了優先級參數設定來定義數據報匹配規則的順序。現在來看看當一個數據報從內部收集顛末路由系統時會發生什么環境。首先,它會經由過程優先級為0的規則反省;隨后會碰到優先級為15000的規則,若匹配則會被goodnet1這個路由表進行操作,否則將會分手顛末15001、15002、15003的規則。它肯定會被15000-15003幾個規則中的一個所匹配。

下面為了闡明定義路由布局的機動性,我們將從別的一個角度來辦同樂城娛樂注冊送38理這個問題。Linux路由器的具體環境如下:

eth0 - DMZ ethernet - addresses: 10.254.254.2/30, 172.17.1.128/24

eth1 - Internal A - addresses: 192.168.1.254/24

eth2 - Internal B - addresses: 192.168.2.254/24

首先假設從新開始,將從新定義路由和規則,首先編輯/etc/iproute2/rt_tables:

# reserved values

#

255   local

254   main

253   default

0    unspec

#

# Local Tables

#

1    int1

2    int2

免責聲明:以上內容源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

您可能還會對下面的文章感興趣:

建体彩网
秒速飞艇 3d彩报 浙江体彩6加1开奖查询 极速快3开奖视频 手机雪缘园比分 ag捕鱼王3d版网页版技巧 中国福利彩票3d走势图 今晚出哪个平特肖 内蒙古十一选五 追书神器是真的赚钱吗-章豪手赚网