策略路由基礎命令 Linux 分享

2021-06-29 09:21:15 字數 2937 閱讀 5773

策略路由

策略性是指對於ip包的路由是以網路管理員根據需要定下的一些策略為主要依據進行路由的。例如我們可以有這樣的策略:"所有來直自網a的包,選擇x路徑;其他選擇y路徑",或者是"所有tos為a的包選擇路徑f;其他選者路徑k"

linux最多可以支援255張路由表,其中有3張表是內建的:

存在檔案/etc/iproute2/rt_tables中

表255 本地路由表(local table)本地介面位址,廣播位址,已及nat位址都放在這個表。該路由表由系統自動維護,管理員不能直接修改。

表254 主路由表(main table)如果沒有指明路由所屬的表,所有的路由都預設都放在這個表裡,一般來說,舊的路由工具(如route)所新增的路由都會加到這個表。一般是普通的路由。

表253 預設路由表(default table)一般來說預設的路由都放在這張表,但是如果特別指明放的也可以是所有的閘道器路由。

表0 保留

路由配置命令的格式如下:

usage: ip route list selector

如果想檢視路由表的內容,可以通過命令:

ip route list table table_number

ip -6 route list table table_number(對於ipv6)

router># ip route add 0/0 via 192.168.0.4 table main

router># ip route add 192.168.3.0/24 via192.168.0.3 table 1

第一條命令是向主路由表(main table)即表254新增一條路由,路由的內容是設定192.168.0.4成為閘道器。

第二條命令代表向路由表1新增一條路由,子網192.168.3.0(子網掩碼是255.255.255.0)的閘道器是192.168.0.3.

在多路由表的路由體系裡,所有的路由的操作,例如網路由表新增路由,或者在路由表裡尋找特定的路由,需要指明要操作的路由表,所有沒有指明路由表,預設是對主路由表(表254)進行操作。而在單錶體系裡,路由的操作是不用指明路由表的。

規則的配置 ip rule

在linux裡,總共可以定義232個優先順序的規則,乙個優先級別只能有一條規則,即理論上總共可以有條規則。其中有3個規則是預設的。命令用法如下:

usage: ip rule [ list | add | del ] selectoraction

selector := [ from prefix ] [ to prefix ] [tos tos ]

[ dev string ] [ pref number ]

action := [ table table_id ] [ nat address ]

[ prohibit | reject | unreachable ]

[ flowid classid ]

table_id := [ local | main | default | new |number

首先我們可以看看路由表預設的所有規則:

root@netmonster# ip rule list

0: from all lookup local

32766: from all lookup main

32767: from all lookup default

注:數字越小,優先順序越高

規則0,它是優先級別最高的規則,規則規定,所有的包,都必須首先使用local表(254)進行路由。本規則不能被更改和刪除。

規則32766,規定所有的包,使用表main進行路由。本規則可以被更改和刪除。

規則32767,規定所有的包,使用表default進行路由。本規則可以被更改和刪除。

在預設情況下進行路由時,首先會根據規則0在本地路由表裡尋找路由,如果目的位址是本網路,或是廣播位址的話,在這裡就可以找到合適的路由;如果路由失敗,就會匹配下乙個不空的規則,在這裡只有32766規則,在這裡將會在主路由表裡尋找路由;如果失敗,就會匹配32767規則,即尋找預設路由表。如果失敗,路由將失敗。重這裡可以看出,策略性路由是往前相容的。

還可以新增規則:

router># ip rule add [from 0/0] table 1 pref 32800

router >#ip rule add from 192.168.3.112/32 [tos 0x10] table 2 pref 1500 prohibit

第一條命令將向規則鏈增加一條規則,規則匹配的物件是所有的資料報,動作是選用路由表1的路由,這條規則的優先順序是32800.

第二條命令將向規則鏈增加一條規則,規則匹配的物件是ip為192.168.3.112,tos等於0x10的包,使用路由表2,這條規則的優先順序是1500,動作是。新增以後,我們可以看看系統規則的變化。

router># ip rule

0: from all lookup local

1500 from 192.168.3.112/32 [tos 0x10] lookup 2

32766: from all lookup main

32767: from all lookup default

32800: from all lookup 1

上面的規則是以源位址為關鍵字,作為是否匹配的依據的。除了源位址外,還可以用以下的資訊:

from -- 源位址

to -- 目的位址(這裡是選擇規則時使用,查詢路由表時也使用)

tos -- ip包頭的tos(type of sevice)域

dev -- 物理介面

fwmark -- 防火牆引數

採取的動作除了指定表,還可以指定下面的動作:

table 指明所使用的表

nat 透明閘道器

action prohibit 丟棄該包,並傳送 comm.adm.prohiited的icmp資訊

reject 單純丟棄該包

unreachable丟棄該包,並傳送 net unreachable的icmp資訊

策略路由基礎命令 Linux

策略路由是一種比基於目標網路進行路由更加靈活的資料報路由 機制。我們主要講解了策略路由配置的相關命令,希望讓您對策略路由有乙個更加深刻的理解.策略路由 策略性是指對於ip包的路由是以網路管理員根據需要定下的一些策略為主要依據進行路由的。例如我們可以有這樣的策略 所有來直自網a的包,選擇x路徑 其他選...

Linux 路由 策略路由

目錄二 ip策略 刪除ip策略規則 三 永久生效,寫入配置檔案 etc sysconfig network scripts rule ethx 注意 本文中使用 隔開的命令等價 從linux 2.2開始,核心把路由歸納到許多路由表中,這些表都進行了編號,編號數字的範圍是1到255。可以在路由表配置檔...

Linux策略路由

前面講的路由規則都是基於目標ip位址為匹配依據設定的路由規則,策略路由則更加靈活,它可以根據多個引數來配置路由。假設如下的使用場景 在192.168.10.0子網中,除了主機192.168.10.123要訪問網際網路時是通過電信運營商 192.168.20.0 24 之外,其他主機都使用移動運營商 ...