DNS負載均衡的介紹
對于負載均衡的一個典型應用就是DNS負載均衡。龐大的網(wǎng)絡(luò)地址和網(wǎng)絡(luò)域名絕對是負載均衡體現(xiàn)優(yōu)勢的地方。那么它的具體原理是如何的呢?本文就將為大家詳細介紹一下相關(guān)內(nèi)容。
DNS負載均衡
DNS負載均衡技術(shù)是在DNS服務器中為同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的。
DNS負載均衡的優(yōu)點是經(jīng)濟簡單易行,并且服務器可以位于internet上任意的位置。但它也存在不少缺點:
為了使本DNS服務器和其他DNS服務器及時交互,保證DNS數(shù)據(jù)及時更新,使地址能隨機分配,一般都要將DNS的刷新時間設(shè)置的較小,但太小將會使DNS流量大增造成額外的網(wǎng)絡(luò)問題。
一旦某個服務器出現(xiàn)故障,即使及時修改了DNS設(shè)置,還是要等待足夠的時間(刷新時間)才能發(fā)揮作用,在此期間,保存了故障服務器地址的客戶計算機將不能正常訪問服務器。
DNS負載均衡采用的是簡單的輪循負載算法,不能區(qū)分服務器的差異,不能反映服務器的當前運行狀態(tài),不能做到為性能較好的服務器多分配請求,甚至會出現(xiàn)客戶請求集中在某一臺服務器上的情況。
要給每臺服務器分配一個internet上的IP地址,這勢必會占用過多的IP地址。
判斷一個站點是否采用了DNS負載均衡的最簡單方式就是連續(xù)的ping這個域名,如果多次解析返回的IP地址不相同的話,那么這個站點就很可能采用的就是較為普遍的DNS負載均衡。但也不一定,因為如果采用的是DNS響應均衡,多次解析返回的IP地址也可能會不相同。不妨試試Ping一下www.sohu.com,www.yahoo.com
現(xiàn)假設(shè)有三臺服務器來應對www.test.com的請求。在采用BIND 8.x DNS服務器的unix系統(tǒng)上實現(xiàn)起來比較簡單,只需在該域的數(shù)據(jù)記錄中添加類似下面的結(jié)果:
www1 IN A 192.1.1.1
www2 IN A 192.1.1.2
www3 IN A 192.1.1.3
www IN CNAME www1
www IN CNAME www2
www IN CNAME www3
在NT下的實現(xiàn)也很簡單,下面詳細介紹在win2000 server下實現(xiàn)DNS負載均衡的過程,NT4.0類似:
打開“管理工具”下的“DNS”,進入DNS服務配置控制臺。
打開相應DNS 服務器的“屬性”,在“高級”選項卡的“服務器選項”中,選中“啟用循環(huán)”復選框。此步相當于在注冊表記錄HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNS\Parameters中添加一個雙字節(jié)制值(dword值)RoundRobin,值為1。
打開正向搜索區(qū)域的相應區(qū)域(如test.com),新建主機添加主機 (A) 資源記錄,記錄如下:
www IN A 192.1.1.1
www IN A 192.1.1.2
www IN A 192.1.1.3
在這里可以看到的區(qū)別是在NT下一個主機名對應多個IP地址記錄,但在unix下,是先添加多個不同的主機名分別對應個自的IP地址,然后再把這些主機賦同一個別名(CNAME)來實現(xiàn)的。
在此需要注意的是,NT下本地子網(wǎng)優(yōu)先級會取代多宿主名稱的循環(huán)復用,所以在測試時,如果做測試用的客戶機IP地址與主機資源記錄的IP在同一有類掩碼范圍內(nèi),就需要清除在“高級”選項卡“服務器選項”中的“啟用netmask排序”。