一、處理流量分割的問題;二、解決雙線負載均衡的問題。原文如下:
1、流量分割
首先是如何保證:回應來自某乙個isp的資料報時,仍然使用相同的isp。
讓我們先定義一些符號。令第一塊網絡卡的名字叫eth1,而第二塊網絡卡叫做eth2;然後設定網絡卡1的ip位址為221.200.0.2(cnc分配**),網絡卡2 的ip位址為58.56.0.2(ctc分配**);isp1(聯通)閘道器位址為221.200.0.1,isp2(電信)閘道器位址為58.56.0.1;最後,isp1(聯通)的網路位址為211.200.0.0/30,isp2(電信)的網路位址為58.56.0.0/30。
額外建立兩個路由表,t1 和t2 ,加入到/etc//iproute2/rt_tables中。然後如下設定兩個路由表中的路由:
ip route add 211.200.0.0/30 dev eth1 src 221.200.0.2 table t1
ip route add default via 221.200.0.1 table t1
ip route add 58.56.0.0/30 dev eth2 src 58.56.0.2 table t2
ip route add default via 58.56.0.1 table t2
沒什麼大不了的,不過是建立了通向該閘道器的一台路由,並使之成為預設閘道器,分別負責乙個單獨的上行流,並且為這兩個isp都作這樣的配置。要指出的是,那條網路路由是必要條件,因為它能讓我們找到那個子網內的主機,也包括上述的那台閘道器。
下一步,我們設定「main」路由表,把包通過網絡卡直接路由到與網絡卡相連的區域網上不失為乙個好辦法。要注意「src」引數,他們能夠保證選擇正確的出口ip位址。
ip route add 211.200.0.0/30 dev eth1 src 221.200.0.2 table main
ip route add 58.56.0.0/30 dev eth2 src 58.56.0.2 table main
然後,設定你的預設路由:
ip route add default via 221.200.0.1
ip rule add from 221.200.0.2 table t1
ip rule add from 58.56.0.2 table t2
以上命令保證了所有的回應資料都會從他們來的那塊網絡卡原路返回。
現在,完成了非常基本的配置。這將對於所有執行在路由器上的所有程序起作用,實現ip偽裝後,對本地區域網也將起作用。如果不進行偽裝,那麼你要麼擁有兩個isp的位址空間,要麼你想對兩個isp中的乙個進行偽裝。無論哪種情況,你都要新增規則,基於發包的主機在區域網內的ip位址,選擇從哪個isp路由出去。
2、負載均衡
第二個問題就是如何對通過兩個isp流出的資料進行負責均衡。如果你已經成功地實現了流量分割。這件事不難。
與選擇兩個isp中的乙個作為預設路由不同,這次是設定預設路由為多線路路由。在預設核心中,這會均衡兩個isp的路由。像下面這樣做(基於前面的流量分割實驗):
ip route add default scope global nexthop via 221.200.0.1 dev eth1 weight 30 /
nexthop via 58.56.0.1 dev eth2 weight 70
(注意:與上面為同一行命令)
這樣可以均衡兩個isp的路由。通過調整「weight」引數我們可以指定其中的乙個isp的優先權高於另乙個。(具體:線路1的流量約佔30%,線路1佔70%)
應該指出,由於均衡是基於路由進行的,而路由是經過緩衝的,所以這樣的均衡並不是100%精確。也就是說,對於乙個經常訪問的站點,總是會使用同乙個isp。
中國的現狀這樣設定是有缺陷的:因為網通和電信等的線路在溝通上存在問題,就是說從網通線路訪問電信的**不如直接從電信訪問快,從電信訪問網通也是如此。因此對於擁有不同種線路的路由器我們需要做基於目標位址的策略路由,同種線路的可以做上面的策略路由。如果你擁有多個isp且某個isp有多條線路,則可以把負載均衡與基於目標的策略路由結合起來。
做這樣的策略路由來自於《qel4.1 網咖版》,其相關說明部分如下:
從qel4.1 版本開始,我們增加了多線路策略路由的功能。使用者只需要簡單地填寫幾個配置檔案即可完成。
策略路由功能由qlcm 程式實現。這個程式在qel4.0 上為1.0,包含了核心智慧型優化、抗ddos、syn 洪水攻擊等功能。在4.1 版上,qlcm 版本為2.0,增加了arp 繫結,多線路策略路由功能。
qlcm 服務是qel 伺服器的核心服務,您可以restart qlcm 服務,但在任何情況下您都不應該停止它。關閉它會造成無法預料的後果,比如出現大量丟包,某些服務停止等。這樣的故障不在我們技術支援的範圍內。
qlcm 2.0 支援最大8 路外網線路,根據使用者定義的配置檔案自動判斷工作模式,可以為每個外網出口單獨定義路由表,也可以實現實現多條線路的負載均衡(即多鏈路頻寬**)。一般的硬體路由器只能支援23路外網線路,而且**不菲。硬體路由器使用嵌入式cpu 和少量記憶體,處理效能有限,在處理過多路由時會超出處理能力。而使用pc 做路由則不受此限制。
qel4.1 核心最大可以支援到255 路外線,我們隨時可以修改qlcm,支援32 路或者更多的外線。
我們再來看乙個具體例子的實現:
3.我們有三條固定ip 線路,一條是eth0(電信),閘道器為202.102.14.1,一條eth1(網通),閘道器為60.12.5.1,一條是教育網線路,閘道器為125.216.44.1,將etho(電信線路)作為預設閘道器,訪問網通的資料走eth1,訪問教育網的走eth2,
配置如下:
wan1.conf:
inte***ce=eth0
gateway=202.102.14.1
defaultgw=yes
wan2.conf:
inte***ce=eth1
gateway= 60.12.5.1
routefile=/etc/quick/ip_cnc.list
wan3.conf:
inte***ce=eth2
gateway=125.216.44.1
routefile=/etc/quick/ip_edu.list
這樣就ok 了。新建乙個ip_edu.list 文字檔案,其中定義了教育網的ip 段。
在這樣的環境下,defaultgw=yes 只設定在某個網絡卡介面上。當訪問已定義的路由時,走指定的網絡卡出去,否則走預設閘道器。
routefile= 後面填該線路對應的路由表檔案。在安裝時我們已經為您預設安裝了兩個檔案:ip_cnc.list 和ip_ctc.list,這兩個檔案都在/etc/quick 目錄下,其中ip_cnc.list 檔案是網通路由表檔案,ip_ctc.list 為電信路由表檔案。
這兩個檔案的格式也很簡單,每行乙個ip 段,示例如下:
58.16.0.0/16
58.17.0.0/17
58.17.128.0/17
qlcm只能執行在《qel4.1 網咖版》上,如果移植到其它linux下會因為版本的不同而造成系統的崩潰。在不想更換系統的前提下,我們可以自己用ip命令來實現qlcm的功能模擬。
我們仍然以文章開始的例項來進行說明基於目的的策略路由設定。
1、首先建立通向不同isp的路由表
ip route add 211.200.0.0/30 dev eth1 src 221.200.0.2 table 50
ip route add default via 221.200.0.1 table 50
ip route add 58.56.0.0/30 dev eth2 src 58.56.0.2 table 51
ip route add default via 58.56.0.1 table 51
沒什麼可說的,與前面相同,只是僅用數字表示路由表。
2、針對我們要訪問的目標位址,選擇不同的路由表,進行路由
因為有大量的網路位址需要設定不同的規則,採用命令模式不便於修改,所以做了乙個簡單的指令碼檔案,配置檔案與qlcm採用相同的結構。
網通電信DNS位址
網通電信dns位址 219.141.136.10 北京市電信 y202.96.199.133 上海電信 y202.96.209.5 上海市電信adsl y202.96.209.133 上海市電信adsl y202.96.128.110 廣東省廣州市電信idc機房 y202.98.96.68 四川省成...
網通電信網域名稱劫持怎麼辦
網通的劫持 讓你輸入乙個錯誤的網域名稱,機器會自動跳到 顯示中國聯通 然後過一會還會彈出乙個無恥的廣告。一般是乙個遊戲。這種一般是dns劫持,需要清理dns快取或者切一下adsl的ip。這是當地通訊局 網通等 幹的壞事,主要是劫持刷流量。可能是你的路遊器或者是你的電腦部簡融 不讓你說怎麼能顯示網通的...
自動選擇網通電信伺服器
選擇最快點進入站點 電信 網通 var cookietest tel var urlnew var urltop var k 1 var topall var tourlcnc var tourltel var tophref top.location.href urlnew tophref.spl...