[摘要] 本文先介紹了隨電子商務(wù)的發(fā)展,需要提供更高負載的WEB服務(wù),然后介紹了網(wǎng)絡(luò)地址轉(zhuǎn)換的種類和原理,最后給出了一個利用網(wǎng)絡(luò)地址轉(zhuǎn)換達到電子商務(wù)網(wǎng)站W(wǎng)EB服務(wù)負載均衡的實現(xiàn)例子。
[關(guān)鍵詞] 負載均衡 網(wǎng)絡(luò)地址轉(zhuǎn)換 路由器
目前,電子商務(wù)是最為活躍的一種網(wǎng)絡(luò)應(yīng)用,而作為電子商務(wù)的基礎(chǔ)平臺——電子商務(wù)網(wǎng)站的WEB服務(wù)是開展電子商務(wù)的第一步,其負載往往是非常重的。而一般的做法是在建立網(wǎng)站W(wǎng)EB服務(wù)的初期,用于網(wǎng)站的WEB服務(wù)器的配置都是當時夠用即可并且只有一臺。隨著業(yè)務(wù)的發(fā)展,該服務(wù)器的負載就越來越重,甚至到了不能容忍的地步。這時一般的思路是要么投入配置更高的服務(wù)器,原有服務(wù)器不再使用(但如果業(yè)務(wù)繼續(xù)發(fā)展,那這種辦法就會不停的更換高配置的服務(wù)器);要么再投入一臺可以滿足分擔增長負載的服務(wù)器,原有服務(wù)器繼續(xù)使用(兩臺提供同一服務(wù)),但原有服務(wù)器和新的服務(wù)器要提供相同的服務(wù)那必須要購置相應(yīng)的負載均衡的硬件或軟件,購置這種負載均衡的硬件或軟件的成本可能比更換更高配置的服務(wù)器還高。有沒有一種不購置負載均衡的硬件或軟件,但可以達到它的效果呢?筆者經(jīng)過對網(wǎng)絡(luò)設(shè)備功能的研究和分析,得出一種利用網(wǎng)絡(luò)設(shè)備(一般是網(wǎng)絡(luò)中的路由器或防火墻)提供的網(wǎng)絡(luò)地址轉(zhuǎn)換來實現(xiàn)電子商務(wù)網(wǎng)站利用多臺服務(wù)器提供負載均衡的方法。
一、地址轉(zhuǎn)換概述
網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)是用于將一個地址域(如專用Intranet)映射(或翻譯)到另一個地址域(如Internet)的標準方法。NAT技術(shù)使得一個采用保留地址或非注冊地址的網(wǎng)絡(luò)可以通過注冊的地址連接到外部世界,位于內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)中的NAT設(shè)備(一般是路由器或防火墻)在發(fā)送數(shù)據(jù)包之前,負責把內(nèi)部非注冊地址翻譯成注冊地址。
NAT的翻譯可以采取靜態(tài)翻譯和動態(tài)翻譯兩種。靜態(tài)翻譯是將內(nèi)部地址和外部地址一對一對應(yīng)。動態(tài)翻譯是當需要翻譯時,從一個地址池中選擇一個沒有使用的地址來翻譯,如果允許多個地址翻譯為一個地址,就是端口地址轉(zhuǎn)換。地址轉(zhuǎn)換時,轉(zhuǎn)換設(shè)備上接內(nèi)部網(wǎng)絡(luò)的接口稱內(nèi)部接口,接外部網(wǎng)絡(luò)的接口稱外部接口。
網(wǎng)絡(luò)地址轉(zhuǎn)換一般有兩種常用的使用方法:
1.內(nèi)部源地址翻譯
這種方法主要用于提供內(nèi)部非注冊地址訪問外部網(wǎng)絡(luò)的環(huán)境。
工作原理:在內(nèi)部網(wǎng)絡(luò)主機連接到外部網(wǎng)絡(luò)時,當?shù)谝粋€數(shù)據(jù)包到達NAT設(shè)備時,NAT設(shè)備檢查它的NAT表,因為是第一次通過NAT設(shè)備,故NAT表中沒有相應(yīng)的翻譯,然后NAT設(shè)備根據(jù)翻譯的類型將數(shù)據(jù)包的內(nèi)部局部IP(源地址)更換成內(nèi)部全局地址,再從外部轉(zhuǎn)發(fā)出去。外部主機接收到數(shù)據(jù)包用接受到的內(nèi)部全局地址來響應(yīng),NAT設(shè)備接受到外部回來的數(shù)據(jù)包,再根據(jù)NAT表把地址翻譯成內(nèi)部局部IP,從內(nèi)部轉(zhuǎn)發(fā)出去。
2.內(nèi)部目的地址翻譯
這種方法主要用于將內(nèi)部的多個地址映射到一個虛擬地址,讓外部主機可以用一個虛擬地址的方式來訪問內(nèi)部提供的一個服務(wù)的環(huán)境(即負載重分配)。
工作原理:外部主機向內(nèi)部虛擬主機通訊,NAT設(shè)備接受外部主機的請求并依據(jù)NAT表建立與內(nèi)部某臺真實主機的連接,即把內(nèi)部全局地址翻譯成內(nèi)部局部某個地址,并轉(zhuǎn)發(fā)數(shù)據(jù)包到內(nèi)部的該臺主機,內(nèi)部主機接受包并作出響應(yīng)。此時,如果再做第二個連接,NAT設(shè)備將根據(jù)NAT表將建立與另一個內(nèi)部主機的連接,并轉(zhuǎn)發(fā)數(shù)據(jù),依次類推,直到到達內(nèi)部最后一臺主機,然后有從第一臺主機開始,從而達到負載重分配的功能。
二、電子商務(wù)網(wǎng)站利用NAT技術(shù)實現(xiàn)負載均衡的例子
可以在電子商務(wù)網(wǎng)站W(wǎng)EB服務(wù)器所在網(wǎng)絡(luò)的路由器上利用網(wǎng)絡(luò)地址轉(zhuǎn)換的第二種使用方法,來達到多個服務(wù)器負載均衡的目的,如某個電子商務(wù)網(wǎng)站的網(wǎng)絡(luò)拓撲如下圖:
假設(shè)現(xiàn)有三臺(可以更多)服務(wù)器做電子商務(wù)的網(wǎng)站服務(wù)器,提供相同的WEB服務(wù):服務(wù)器1的ip地址為202.115.144.3、服務(wù)器2的ip地址為202.115.144.4、服務(wù)器3的ip地址為202.115.144.5,現(xiàn)用202.115.144.2這個虛擬ip地址對外提供網(wǎng)站服務(wù),路由器的快速以太網(wǎng)0(ip地址為202.115.144.1)連接服務(wù)器所在交換機,快速以太網(wǎng)1連接外部網(wǎng)絡(luò)。外部網(wǎng)絡(luò)的主機訪問202.115.144.2的時候,經(jīng)過路由器的地址轉(zhuǎn)換,就可以達到輪循的使用202.115.144.3、202.115.144.4、202.115.144.5來提供服務(wù),從而達到三臺服務(wù)器負載均衡的目的。
在思科路由器上實現(xiàn)的步驟如下:
1.定義訪問控制列表(即內(nèi)部虛擬的IP地址)
access-list 1 permit 1 host 202.115.144.2
2.定義地址池(即內(nèi)部真實的地址段,并且是循環(huán)的使用)
ip nat pool real-host 202.115.144.3 202.115.144.5 netmask 255.255.255.0 type rotary
3.定義轉(zhuǎn)換規(guī)則(內(nèi)部目的地址的轉(zhuǎn)換)
ip nat inside destination list 1 pool real-host
4.定義內(nèi)部接口
interface f0/0
ip nat inside
5.定義外部接口
interface f0/1
ip nat outside
注意:前三個步驟在全局配置模式完成,后兩個步驟在接口配置子模式完成。
三、結(jié)論
該方法盡管實現(xiàn)了負載均衡,但如果有某臺服務(wù)器出現(xiàn)了故障,該方法還是會將負載分配給該服務(wù)器,結(jié)果會導致這部分負載訪問無效,必須要在地址池中手工將其去掉,才能保證訪問的有效性,這種方法只是提供負載均衡,沒有做到高可靠性。但對于一般中小型的企業(yè)來說,當某臺服務(wù)器出現(xiàn)故障時,手工去修改路由器的配置比購置相應(yīng)的硬件或軟件來說還是更值得。
參考文獻:
[1]石磊:電子商務(wù)的網(wǎng)絡(luò)技術(shù).北京:中國水利水電出版社,2005年
[2]石碩:交換機/路由器及其配置.北京:電子工業(yè)出版社,2007年
[3]http://www.cisco.com