網絡技術是從1990年代中期發展起來的新技術,它把互聯網上分散的資源融為有機整體,實現資源的全面共享和有機協作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計算機、存儲資源、數據資源、信息資源、知識資源、專家資源、大型數據庫、網絡、傳感器等。 當前的互聯網只限于信息共享,網絡則被認為是互聯網發展的第三階段。 了解一些關于雙線策略路由的知識還是很用的,這里我們主要講解了雙線策略路由的三種實現方式,參考了下論壇中關于電信+網通雙線策略路由的帖子,并結合實際環境,將實現雙線策略路由的幾種方式總結如下,希望對有需要的朋友有所幫助,雙線比單線要復雜多了,但把雙線策略路由的原理弄明白了,就會發現其實并不難。
雙線路由策略的實現
1.靜態路由方式(這種方式是最簡單的)
1)設置默認路由,比如電信
iproutereplacedefaultvia電信網關deveth1
2)設置雙線策略路由,對另外一條線路
iprouteadd網通路由表1via網通網關deveth2metric1
iprouteadd網通路由表2via網通網關deveth2metric1
....
3)添加原路返回路由
雙線策略路由規則設置完后,還要為每條線路加入相應的“原路返回路由”(從哪條線進來的數據,最終還是從這條線出去),不然就會出現這樣的問題:電信用戶通過網通的IP訪問不到服務器,網通用戶也不能通過電信IP訪問到服務器。
iprouteflushtable100
iprouteadddefaultvia電信網關deveth1src電信IPtable100prio50
ipruleaddfrom電信IPtable100
iprouteflushtable200
iprouteadddefaultvia網通網關deveth2src網通IPtable200prio50
ipruleaddfrom網通IPtable200
iprouteadd192.168.0.0/24deveth0scopelinksrc192.168.0.1table100
iprouteadd192.168.0.0/24deveth0scopelinksrc192.168.0.1table200
2.雙線策略路由方式
為了方便,我們增加2個雙線策略路由表,電信=>100,網通=>200,這樣再添加規則時,就可以直接用自定義的名稱來替代數字
echo"100ctc" >>/etc/iproute2/rt_tables
echo"200cnc">> /etc/iproute2/rt_tables
1)設置默認路由(電信)
iproutereplacedefaultvia電信網關deveth1
2)對網通進行基于目的地址的雙線策略路由
ipruleaddto網通路由表1tablecncprio100
ipruleaddto網通路由表2tablecncprio100
....
3)添加原路返回路由
prouteflushtablectc
iprouteadddefaultvia電信網關deveth1src電信IPtablectc
iprouteadd192.168.0.0/24deveth0scopelinksrc192.168.0.1tablectc
ipruleaddfrom電信IPtablectc
iprouteflushtablecnc
iprouteadddefaultvia網通網關deveth2src網通IPtablecnc
iprouteadd192.168.0.0/24deveth0scopelinksrc192.168.0.1tablectc
ipruleaddfrom網通IPtablecnc
3.iptables打標記+iproute2fwmark
1)使用CONNMARK對連接進行標記
外網進來數據
iptables-tmangle-APREROUTING-ieth1-mconntrack--ctstateNEW-jCONNMARK--set-mark0x100
iptables-tmangle-APREROUTING-ieth2-mconntrack--ctstateNEW-jCONNMARK--set-mark0x200
轉發出去的數據
iptables-tmangle-APOSTROUTING-oeth1-mconntrack--ctstateNEW-jCONNMARK--set-mark0x100
iptables-tmangle-APOSTROUTING-oeth2-mconntrack--ctstateNEW-jCONNMARK--set-mark0x200
局域網進來數據
iptables-tmangle-APREROUTING-ieth0-mconntrack--ctstateESTABLISHED,RELATED-jCONNMARK--restore-mark
本地出去數據
iptables-tmangle-AOUTPUT-mconntrack--ctstateESTABLISHED,RELATED-jCONNMARK--restore-mark
2)在IPROUTE2中做基于fwmark的雙線策略路由
ipruleaddfwmark0x100tablectcprio40
ipruleaddfwmark0x200tablecncprio40
3)添加原路返回路由
iprouteaddtablectcto$CTC_NETdeveth1scopelink
iprouteaddtablectcto$CNC_NETdeveth2scopelink
iprouteaddtablectcto192.168.0.0/24deveth0scopelink
iprouteadddefaultvia電信網關deveth1tablectc
iprouteaddtablecncto$CTC_NETdeveth1scopelink
iprouteaddtablecncto$CNC_NETdeveth2scopelink
iprouteaddtablecncto192.168.0.0/24deveth0scopelink
iprouteadddefaultvia網通網關deveth2tablecnc
Iptables/NAT規則
sbin/iptables-tnat-APOSTROUTING-oeth1-s局域網網段-jSNAT--to-source電信外網IP
sbin/iptables-tnat-APOSTROUTING-oeth2-s局域網網段-jSNAT--to-source網通外網IP
如果外網IP是動態的,可以用MASQUERADE
sbin/iptables-tnat-APOSTROUTING-oeth1-s局域網網段-jMASQUERADE
sbin/iptables-tnat-APOSTROUTING-oeth2-s局域網網段-jMASQUERADE
網絡的神奇作用吸引著越來越多的用戶加入其中,正因如此,網絡的承受能力也面臨著越來越嚴峻的考驗―從硬件上、軟件上、所用標準上......,各項技術都需要適時應勢,對應發展,這正是網絡迅速走向進步的催化劑。
|