宋偉奇等
【摘 要】分析當(dāng)前西部農(nóng)村地區(qū)遠(yuǎn)程教學(xué)網(wǎng)絡(luò)的現(xiàn)狀及寬帶合并的基本模型和思路,提出了一種基于Linux環(huán)境下,使用策略路由方式實(shí)現(xiàn)的帶寬合并方案,并簡述了其配置思路。
【關(guān)鍵詞】教學(xué)網(wǎng) 帶寬合并 Linux 策略路由 負(fù)載均衡
【中圖分類號(hào)】 G 【文獻(xiàn)標(biāo)識(shí)碼】 A
【文章編號(hào)】0450-9889(2015)07C-0181-02
當(dāng)前,遠(yuǎn)程網(wǎng)絡(luò)教學(xué)的方式越來越多地受到農(nóng)村地區(qū)學(xué)員的歡迎,特別是在西部山區(qū),當(dāng)?shù)剞r(nóng)民接受繼續(xù)教育的主要方式都是通過遠(yuǎn)程網(wǎng)絡(luò)。但網(wǎng)絡(luò)速度問題一直困擾著基層教學(xué)點(diǎn),由于地處偏遠(yuǎn),以專線接入的方式成本很高,一般教學(xué)點(diǎn)無法實(shí)現(xiàn),出于網(wǎng)絡(luò)可靠性和成本的考慮往往需要接入兩家甚至更多家電信運(yùn)營商ISP的ADSL線路,有時(shí)為了增加網(wǎng)絡(luò)訪問速度,甚至?xí)囊患襂SP購買幾條帶寬。這些ISP寬帶往往是獨(dú)立的,運(yùn)營商并不負(fù)責(zé)使用者獲得多個(gè)寬帶的疊加的網(wǎng)絡(luò)效果,這個(gè)問題需要用戶自己通過帶寬合并來解決。帶寬合并是指多條等速或者不等速的外網(wǎng)帶寬,合并成一個(gè)邏輯上更大的帶寬來使用,給用戶更好的網(wǎng)速體驗(yàn)。市場上目前出現(xiàn)所謂解決帶寬合并問題的負(fù)載均衡器,一般是基于會(huì)話(Session)的輪詢來處理的,效果不是很理想,而且價(jià)格也比較高,我們針對這一情況,提出了一種基于Linux系統(tǒng)下的策略路由機(jī)制來解決寬帶合并問題的方案,簡單易行而且經(jīng)濟(jì)。
一、帶寬合并模型
網(wǎng)絡(luò)帶寬合并的模型一般如圖1所示,這里統(tǒng)一用ADSL帶寬為例來說明,每條帶寬是8M/1M(下行帶寬為8M,上行為1M),如果兩條帶寬合并使用,其效果應(yīng)該和16M/2M相差不大。
圖1 帶寬合并模型
二、負(fù)載均衡器的弊端
因?yàn)樨?fù)載均衡器的工作沒有得到電信運(yùn)營商ISP的支持,我們只能在本地通過對TCP/IP協(xié)議中的會(huì)話(Session)層進(jìn)行改變來解決流量分?jǐn)偟膯栴}。其工作機(jī)制是局域網(wǎng)內(nèi)部主機(jī)對Internet產(chǎn)生第一條鏈接會(huì)話時(shí),負(fù)載均衡器會(huì)將該會(huì)話導(dǎo)入第一條線路;當(dāng)主機(jī)產(chǎn)生第二條鏈接會(huì)話時(shí),負(fù)載均衡器會(huì)將其導(dǎo)入第二條線路;產(chǎn)生第三條鏈接,又會(huì)把該會(huì)話導(dǎo)入第一條線路上,以此類推進(jìn)行輪詢訪問,達(dá)到帶寬合并。這種合并解決了線路帶寬利用的問題,也解決了負(fù)載均衡的問題,但是單一鏈路的會(huì)話的帶寬上限很明顯都無法達(dá)到16M/2M的效果。由于負(fù)載均衡器是一款網(wǎng)絡(luò)設(shè)備,需要另外投入資金,這對農(nóng)村地區(qū)來說比較困難,性能好的價(jià)格也不便宜;另外如果發(fā)生問題,從購買設(shè)備到重新部署需要不少時(shí)間和人力維護(hù)。
三、Linux下基于策略路由的帶寬合并方案
Linux對硬件的要求很小,我們可以利用學(xué)校里多余的主機(jī)甚至是實(shí)驗(yàn)室、機(jī)房等淘汰了的主機(jī)來自己架設(shè)一款網(wǎng)絡(luò)帶寬合并主機(jī)。
首先我們需要一臺(tái)主機(jī),主機(jī)上有三塊網(wǎng)卡。本方案測試的設(shè)備配置是(奔騰2.4G CPU,512M內(nèi)存,RealTek100M網(wǎng)卡三塊)。
(一) NAT介紹
在日常網(wǎng)絡(luò)部署中,應(yīng)用比較多的一對一的NAT和利用端口復(fù)用機(jī)制的一對多的NAT。如圖2,則是一對多的機(jī)制。當(dāng)192.168.1.0/24的主機(jī)網(wǎng)段想通過NAT裝置上網(wǎng)時(shí),NAT的POSTRTOUTING機(jī)制會(huì)把數(shù)據(jù)包內(nèi)來源端IP換成202.103.224.65,然后再交給路由,通過查表轉(zhuǎn)發(fā)。
圖2 NAT基本原理
(二)Linux下寬帶合并方案設(shè)計(jì)
常用的思路是對于內(nèi)部網(wǎng)絡(luò)進(jìn)行分類,各設(shè)置兩個(gè)不同的固定網(wǎng)關(guān),以實(shí)現(xiàn)負(fù)載均衡的能力,但是對于某一個(gè)內(nèi)部主機(jī),它只能通過一條固定的ISP進(jìn)出,這種方式當(dāng)然不能實(shí)現(xiàn)帶寬合并的功能。因此,需要讓主機(jī)的網(wǎng)關(guān)不斷地改變,才能使對外的鏈接平均分配在兩條實(shí)際的線路上。接下來以圖3為例來示范網(wǎng)絡(luò)帶寬合并。
圖3
為了實(shí)現(xiàn)這個(gè)目標(biāo),在Linux下進(jìn)行以下的配置:
[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
首先采用 ①建立基本的路由信息表,使用③命令來實(shí)現(xiàn)“一對多的NAT”任務(wù),可以確保內(nèi)網(wǎng)的主機(jī)轉(zhuǎn)化為多個(gè)不同的網(wǎng)關(guān)。這里,把網(wǎng)關(guān)設(shè)置為192.168.10.254和192.168.11.254,如果設(shè)置網(wǎng)關(guān)為192.168.10.254時(shí),通過NAT轉(zhuǎn)換后IP就是192.168.10.1;如果設(shè)置網(wǎng)關(guān)為192.168.112.54時(shí),通過NAT轉(zhuǎn)換后IP就是192.168.11.1 。
如何讓主機(jī)的網(wǎng)關(guān)不斷地改變,使對外的連接分?jǐn)偟絻蓷l線路上去,這個(gè)目標(biāo)用②的命令行解決,其中replace default參數(shù)是指添加或者取代目前的網(wǎng)關(guān)地址。最后用weight 1來標(biāo)明每個(gè)網(wǎng)關(guān)的使用率,因?yàn)閷?shí)驗(yàn)環(huán)境中,兩線路帶寬一致,所以使用率設(shè)置為1:1。通過上述配置以后,Linux主機(jī)可以讓由內(nèi)到外的連接經(jīng)過NAT,平均地轉(zhuǎn)換到兩條不同的實(shí)體線路上。例如,第一條連接會(huì)轉(zhuǎn)換到第一條實(shí)體線路的IP,第二條連接會(huì)轉(zhuǎn)換到第二條線路上,而第三條連接又會(huì)轉(zhuǎn)換到第一條線路上,如此反復(fù)不斷循環(huán)。
(三)測試結(jié)果
通過上述的配置搭建環(huán)境后,在本機(jī)做了路由測試,可以看到主機(jī)兩個(gè)連接采用了不同的網(wǎng)關(guān),實(shí)現(xiàn)兩條線路的合并使用。同時(shí)基于篇幅限制,中間的十幾條路由信息并未列出。
表1 本地主機(jī)測試結(jié)果(一)
[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 本地主機(jī)測試結(jié)果(二)
[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
四、結(jié)論
實(shí)踐證明通過Linux的策略路由機(jī)制,可以有效解決偏遠(yuǎn)農(nóng)村地區(qū)校園網(wǎng)絡(luò)帶寬不足的問題,實(shí)現(xiàn)兩條出口線路的網(wǎng)絡(luò)寬帶合并的功能。這樣的方式無需額外購買添置新的網(wǎng)絡(luò)設(shè)備,這對于農(nóng)村遠(yuǎn)程教學(xué)點(diǎn)或中小學(xué)校來說是一個(gè)不錯(cuò)的借鑒。同時(shí),也為網(wǎng)絡(luò)管理和部署提供了一個(gè)新的思路,顯示出Linux系統(tǒng)在計(jì)算機(jī)網(wǎng)絡(luò)領(lǐng)域中解決多種問題的強(qiáng)大功能。
【參考文獻(xiàn)】
[1]陳勇勛.Linux網(wǎng)絡(luò)安全技術(shù)與實(shí)現(xiàn)(第2版)[M]. 北京:清華大學(xué)出版社,2012
【基金項(xiàng)目】柳州市科學(xué)研究與技術(shù)開發(fā)計(jì)劃課題(2013G020403)
【作者簡介】宋偉奇(1976- ),男,河北張家口人,柳州城市職業(yè)學(xué)院副教授,研究方向:計(jì)算機(jī)網(wǎng)絡(luò)及應(yīng)用。覃妮妮(1983- ),女,廣西河池市人,柳州鐵道職業(yè)技術(shù)學(xué)院講師,研究方向:信息工程管理與應(yīng)用,計(jì)算機(jī)教學(xué)改革與管理。
(責(zé)編 丁 夢)