DNS負載均衡技術是在DNS伺服器中為同一個主機名配置多個IP位址,在應答DNS查詢時,DNS伺服器對每個查詢将以DNS檔案中主機記錄的IP位址按順序傳回不同的解析結果,将用戶端的通路引導到不同的機器上去,使得不同的用戶端通路不同的伺服器,進而達到負載均衡的目的。
DNS負載均衡的優點是經濟簡單易行,并且伺服器可以位于internet上任意的位置。但它也存在不少缺點:
為了使本DNS伺服器和其他DNS伺服器及時互動,保證DNS資料及時更新,使位址能随機配置設定,一般都要将DNS的重新整理時間設定的較小,但太小将會使DNS流量大增造成額外的網絡問題。
一旦某個伺服器出現故障,即使及時修改了DNS設定,還是要等待足夠的時間(重新整理時間)才能發揮作用,在此期間,儲存了故障伺服器位址的客戶計算機将不能正常通路伺服器。
DNS負載均衡采用的是簡單的輪循負載算法,不能區分伺服器的差異,不能反映伺服器的目前運作狀态,不能做到為性能較好的伺服器多配置設定請求,甚至會出現客戶請求集中在某一台伺服器上的情況。
要給每台伺服器配置設定一個internet上的IP位址,這勢必會占用過多的IP位址。
判斷一個站點是否采用了DNS負載均衡的最簡單方式就是連續的ping這個域名,如果多次解析傳回的IP位址不相同的話,那麼這個站點就很可能采用的就是較為普遍的DNS負載均衡。但也不一定,因為如果采用的是DNS響應均衡,多次解析傳回的IP位址也可能會不相同。不妨試試Ping一下www.yesky.com,www.sohu.com,www.yahoo.com。
現假設有三台伺服器來應對www.test.com的請求。
在NT下的實作也很簡單,下面詳細介紹在win2000 server下實作DNS負載均衡的過程,NT4.0類似:
打開“管理工具”下的“DNS”,進入DNS服務配置控制台。
打開相應DNS 伺服器的“屬性”,在“進階”頁籤的“伺服器選項”中,選中“啟用循環”複選框。此步相當于在系統資料庫記錄HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/DNS/Parameters中添加一個雙位元組制值(dword值)RoundRobin,值為1。
打開正向搜尋區域的相應區域(如test.com),建立主機添加主機 (A) 資源記錄,記錄如下:
www IN A 192.1.1.1
www IN A 192.1.1.2
www IN A 192.1.1.3
在這裡可以看到的差別是在NT下一個主機名對應多個IP位址記錄,但在unix下,是先添加多個不同的主機名分别對應個自的IP位址,然後再把這些主機賦同一個别名(CNAME)來實作的。
在此需要注意的是,NT下本地子網優先級會取代多宿主名稱的循環複用,是以在測試時,如果做測試用的客戶機IP位址與主機資源記錄的IP在同一有類掩碼範圍内,就需要清除在“進階”頁籤“伺服器選項”中的“啟用netmask排序”。