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