宋偉奇等
【摘 要】分析當前西部農村地區(qū)遠程教學網絡的現狀及寬帶合并的基本模型和思路,提出了一種基于Linux環(huán)境下,使用策略路由方式實現的帶寬合并方案,并簡述了其配置思路。
【關鍵詞】教學網 帶寬合并 Linux 策略路由 負載均衡
【中圖分類號】 G 【文獻標識碼】 A
【文章編號】0450-9889(2015)07C-0181-02
當前,遠程網絡教學的方式越來越多地受到農村地區(qū)學員的歡迎,特別是在西部山區(qū),當地農民接受繼續(xù)教育的主要方式都是通過遠程網絡。但網絡速度問題一直困擾著基層教學點,由于地處偏遠,以專線接入的方式成本很高,一般教學點無法實現,出于網絡可靠性和成本的考慮往往需要接入兩家甚至更多家電信運營商ISP的ADSL線路,有時為了增加網絡訪問速度,甚至會從一家ISP購買幾條帶寬。這些ISP寬帶往往是獨立的,運營商并不負責使用者獲得多個寬帶的疊加的網絡效果,這個問題需要用戶自己通過帶寬合并來解決。帶寬合并是指多條等速或者不等速的外網帶寬,合并成一個邏輯上更大的帶寬來使用,給用戶更好的網速體驗。市場上目前出現所謂解決帶寬合并問題的負載均衡器,一般是基于會話(Session)的輪詢來處理的,效果不是很理想,而且價格也比較高,我們針對這一情況,提出了一種基于Linux系統(tǒng)下的策略路由機制來解決寬帶合并問題的方案,簡單易行而且經濟。
一、帶寬合并模型
網絡帶寬合并的模型一般如圖1所示,這里統(tǒng)一用ADSL帶寬為例來說明,每條帶寬是8M/1M(下行帶寬為8M,上行為1M),如果兩條帶寬合并使用,其效果應該和16M/2M相差不大。
圖1 帶寬合并模型
二、負載均衡器的弊端
因為負載均衡器的工作沒有得到電信運營商ISP的支持,我們只能在本地通過對TCP/IP協議中的會話(Session)層進行改變來解決流量分攤的問題。其工作機制是局域網內部主機對Internet產生第一條鏈接會話時,負載均衡器會將該會話導入第一條線路;當主機產生第二條鏈接會話時,負載均衡器會將其導入第二條線路;產生第三條鏈接,又會把該會話導入第一條線路上,以此類推進行輪詢訪問,達到帶寬合并。這種合并解決了線路帶寬利用的問題,也解決了負載均衡的問題,但是單一鏈路的會話的帶寬上限很明顯都無法達到16M/2M的效果。由于負載均衡器是一款網絡設備,需要另外投入資金,這對農村地區(qū)來說比較困難,性能好的價格也不便宜;另外如果發(fā)生問題,從購買設備到重新部署需要不少時間和人力維護。
三、Linux下基于策略路由的帶寬合并方案
Linux對硬件的要求很小,我們可以利用學校里多余的主機甚至是實驗室、機房等淘汰了的主機來自己架設一款網絡帶寬合并主機。
首先我們需要一臺主機,主機上有三塊網卡。本方案測試的設備配置是(奔騰2.4G CPU,512M內存,RealTek100M網卡三塊)。
(一) NAT介紹
在日常網絡部署中,應用比較多的一對一的NAT和利用端口復用機制的一對多的NAT。如圖2,則是一對多的機制。當192.168.1.0/24的主機網段想通過NAT裝置上網時,NAT的POSTRTOUTING機制會把數據包內來源端IP換成202.103.224.65,然后再交給路由,通過查表轉發(fā)。
圖2 NAT基本原理
(二)Linux下寬帶合并方案設計
常用的思路是對于內部網絡進行分類,各設置兩個不同的固定網關,以實現負載均衡的能力,但是對于某一個內部主機,它只能通過一條固定的ISP進出,這種方式當然不能實現帶寬合并的功能。因此,需要讓主機的網關不斷地改變,才能使對外的鏈接平均分配在兩條實際的線路上。接下來以圖3為例來示范網絡帶寬合并。
圖3
為了實現這個目標,在Linux下進行以下的配置:
[root@localhost ~]# ip rule show
0: from all lookup local
32766: from all lookup local
32767: from all lookup local
[root@localhost ~]# ip rule add from 192.168.10.1 46 table 10 ①
[root@localhost ~]# ip rule add from 192.168.11.1 46 table 20
[root@localhost ~]#
[root@localhost ~]# ip route add 192.168.10.0/24 dev eth0 table 10
[root@localhost ~]# ip route rule add default via 192.168.10.254 table 10
[root@localhost ~]#
[root@localhost ~]# ip route add 192.168.11.0/24 dev eth1 table 20
[root@localhost ~]# ip route rule add default via 192.168.1.254 table 20
[root@localhost ~]# ip route replace default \ ②
nexthop via 192.168.10.254 dev eth0 weight 1 \
nexthop via 192.168.11.254 dev eth1 weight 1
[root@localhost ~]#
[root@localhost ~]# iptables –t nat –a POSTROUTING \ ③
–s 192.168.122.0/24 –j MASQUERAD
[root@localhost ~]# traceroute
首先采用 ①建立基本的路由信息表,使用③命令來實現“一對多的NAT”任務,可以確保內網的主機轉化為多個不同的網關。這里,把網關設置為192.168.10.254和192.168.11.254,如果設置網關為192.168.10.254時,通過NAT轉換后IP就是192.168.10.1;如果設置網關為192.168.112.54時,通過NAT轉換后IP就是192.168.11.1 。
如何讓主機的網關不斷地改變,使對外的連接分攤到兩條線路上去,這個目標用②的命令行解決,其中replace default參數是指添加或者取代目前的網關地址。最后用weight 1來標明每個網關的使用率,因為實驗環(huán)境中,兩線路帶寬一致,所以使用率設置為1:1。通過上述配置以后,Linux主機可以讓由內到外的連接經過NAT,平均地轉換到兩條不同的實體線路上。例如,第一條連接會轉換到第一條實體線路的IP,第二條連接會轉換到第二條線路上,而第三條連接又會轉換到第一條線路上,如此反復不斷循環(huán)。
(三)測試結果
通過上述的配置搭建環(huán)境后,在本機做了路由測試,可以看到主機兩個連接采用了不同的網關,實現兩條線路的合并使用。同時基于篇幅限制,中間的十幾條路由信息并未列出。
表1 本地主機測試結果(一)
[root@localhost ~]# traceroute –n 8.8.8.8
Traceroute to 8.8.8.8(8.8.8.8),30 hops,60byte packets
1 192.168.10.254 0.652 ms 0.736 ms 0.975 ms
2 192.168.100.1 1.112 ms 2.426 ms 4.537 ms
3 125.71.230.173 2.228 ms 4.360 ms 3.854 ms
4 125.71.230.29 1.667 ms 5.223 ms 1.668ms
5 125.71.230.1 1.775 ms 2 .582ms 1.562 ms
……
18 8.8.8.8 76.892 ms 65.355 ms 65.224 ms
表2 本地主機測試結果(二)
[root@localhost ~]# traceroute –n 8.8.8.8
Traceroute to 8.8.8.8(8.8.8.8),30 hops,60byte packets
1 192.168.11.254 0.336 ms 0.432 ms 0.415 ms
2 192.168.120.1 0.662ms 0.714 ms 0.754 ms
3 125.71.230.173 3.167ms 4.112ms 4.320 ms
4 125.71.230.29 4.127 ms 5.228 ms 4.872ms
5 125.71.230.1 2.372 ms 3 .560ms 2.431ms
……
18 8.8.8.8 86.116 ms 78.288 ms 77.554ms
四、結論
實踐證明通過Linux的策略路由機制,可以有效解決偏遠農村地區(qū)校園網絡帶寬不足的問題,實現兩條出口線路的網絡寬帶合并的功能。這樣的方式無需額外購買添置新的網絡設備,這對于農村遠程教學點或中小學校來說是一個不錯的借鑒。同時,也為網絡管理和部署提供了一個新的思路,顯示出Linux系統(tǒng)在計算機網絡領域中解決多種問題的強大功能。
【參考文獻】
[1]陳勇勛.Linux網絡安全技術與實現(第2版)[M]. 北京:清華大學出版社,2012
【基金項目】柳州市科學研究與技術開發(fā)計劃課題(2013G020403)
【作者簡介】宋偉奇(1976- ),男,河北張家口人,柳州城市職業(yè)學院副教授,研究方向:計算機網絡及應用。覃妮妮(1983- ),女,廣西河池市人,柳州鐵道職業(yè)技術學院講師,研究方向:信息工程管理與應用,計算機教學改革與管理。
(責編 丁 夢)