重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
Net-策略路由
創新互聯建站主營民權網站建設的網絡公司,主營網站建設方案,重慶APP軟件開發,民權h5小程序開發搭建,民權網站營銷推廣歡迎民權等地區企業咨詢
1.策略路由
策略性是指對于IP包的路由是以網絡管理員根據需要定下的一些策略為主要依據進行路由的。
例如我們可以有這樣的策略:“所有來直自網A的包,選擇X路徑;其他選擇Y路徑”,或者是“所有TOS為A的包選擇路徑X;其他選者路徑Y”。
Cisco 的網絡操作系統 (Cisco IOS) 從11.0開始就采用新的策略性路由機制。而Linux是在內核2.1開始采用策略性路由機制的。策略性路由機制與傳統的路由算法相比主要是引入了多路由表以及規則的概念。
2.linux方式
2.1 多路由表(multiple Routing Tables)
傳統的路由算法是僅使用一張路由表的。但是在有些情形底下,我們是需要使用多路由表的。例如一個子網通過一個路由器與外界相連,路由器與外界有兩條線路相連,其中一條的速度比較快,一條的速度比較慢。對于子網內的大多數用戶來說對速度并沒有特殊的要求,所以可以讓他們用比較慢的路由;但是子網內有一些特殊的用戶卻是對速度的要求比較苛刻,所以他們需要使用速度比較快的路由。如果使用一張路由表上述要求是無法實現的,而如果根據源地址或其它參數,對不同的用戶使用不同的路由表,這樣就可以大大提高路由器的性能。
2.2 規則 (rule)
規則是策略性的關鍵性的新的概念。我們可以用自然語言這樣描述規則,例如我門可以指定這樣的規則:
規則一:“所有來自192.16.152.24的IP包,使用路由表10,本規則的優先級別是1500”
規則二:“所有的包,使用路由表253,本規則的優先級別是32767”
我們可以看到,規則包含3個要素:
什么樣的包,將應用本規則(所謂的SELECTOR,可能是filter更能反映其作用);
符合本規則的包將對其采取什么動作(ACTION),例如用那個表;
本規則的優先級別。優先級別越高的規則越先匹配(數值越小優先級別越高)。
3. linux策略路由配置方式
傳統的linux下配置路由的工具是route,而實現策略性路由配置的工具是iproute2工具包。
Linux最多可以支持255張路由表,其中有3張表是內置的:
表255 本地路由表(Local table)本地接口地址,廣播地址,已及NAT地址都放在這個表。該路由表由系統自動維護,管理員不能直接修改。
表254 主路由表(Main table)如果沒有指明路由所屬的表,所有的路由都默認都放在這個表里,一般來說,舊的路由工具(如route)所添加的路由都會加到這個表。一般是普通的路由。
表253 默認路由表(Default table)一般來說默認的路由都放在這張表,但是如果特別指明放的也可以是所有的網關路由。
表 0 保留
路由配置命令的格式如下:Usage: ip route listSELECTOR
首先我們可以看看路由表默認的所有規則:
#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規則,即尋找默認路由表。如果失敗,路由將失敗。重這里可以看出,策略性路由是往前兼容的。
4.策略路由的應用
●基于源地址選路( Source-Sensitive Routing)
如果一個網絡通過兩條線路接入互聯網,一條是比較快的ADSL,另外一條是比較慢的普通的調制解調器。這樣的話,網絡管理員既可以提供無差別的路由服務,也可以根據源地址的不同,使一些特定的地址使用較快的線路,而普通用戶則使用較慢的線路,即基于源址的選路。
●根據服務級別選路( Quality of Service)
網絡管理員可以根據IP報頭的服務級別域,對于不同的服務要求可以分別對待對于傳送速率、吞吐量以及可靠性的有不同要求的數據報根據網絡的狀況進行不同的路由。
●節省費用的應用
網絡管理員可以根據通信的狀況,讓一些比較大的陣發性通信使用一些帶寬比較高但是比較貴的路徑一段短的時間,然后讓基本的通信繼續使用原來比較便宜的基本線路。例如,管理員知道,某一臺主機與一個特定的地址通信通常是伴隨著大量的陣發性通信的,那么網絡管理員可以安排一些策略,使得這些主機使用特別的路由,這些路由是按需撥號,帶寬比較高的線路,通信完成以后就停止使用,而普通的通信則不受影響。這樣既提高網絡的性能,又能節省費用。
●負載平衡(Load Sharing)
根據網絡交通的特征,網絡管理員可以在不同的路徑之間分配負荷實現負載平衡。
5.linux下策略路由的實現
基于源地址選路 192.168.122.10/24
Client --------------->
Linux GW eth0 192.168.122.20/24-----------------〉 eth2 2.2.2.1/24 10M
------------------〉 eth3 3.3.3.1/24 2M
Client:
# ip route add 0/0 via 192.168.122.20
Linux GW:
自定義2個路由表,分別為test1,test2
# vim /etc/iproute2/rt_tables
255 local
254 main
253 default
200 test2
100 test1
0 unspec
# ip route add default via 2.2.2.1 tabletest1
# ip route add default via 3.3.3.1 tabletest2
# ip route list table test1
default via 2.2.2.1 dev eth2
# ip route list table test2
default via 3.3.3.1 dev eth2
使用防火墻的mangle表對不同的源地址數據包打標記區分
# iptables -t mangle -A PREROUTING -miprange --src-range 192.168.122.1-192.168.122.100 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -miprange --src-range 192.168.122.101-192.168.122.200 -j MARK --set-mark 2
在ip命令中調用防火墻的標記,不同的標記使用不同的路由表
# ip rule add fwmark 1 table test1
# ip rule add fwmark 2 table test2
負載平衡
/
Client ---------------------------> Linux GW -------------------------〉 eth2 2.2.2.1/24 10M
192.168.122.10/24 eth0 192.168.122.254/24 ------------〉eth3 3.3.3.1/24 2M
Client:
# ip route add 0/0 via 1.1.1.2
Linux GW:
# ip route add default nexthop via 2.2.2.1dev eth2 nexthop via 3.3.3.1 dev eth3