基本概念
- 負(fù)載均衡
將流量均攤到多個(gè)服務(wù)器上 - A記錄
DNS系統(tǒng)中的主機(jī)記錄
DNS查詢過(guò)程
DNS系統(tǒng)是一個(gè)樹(shù)狀結(jié)構(gòu),當(dāng)我們?cè)L問(wèn)一個(gè)域名www.a.com,計(jì)算機(jī)會(huì)首先去查詢localDNS(本機(jī)網(wǎng)卡設(shè)置的dns服務(wù)器的dns緩存)理疙。如果找得到則返回祝迂,找不到就會(huì)遞歸向上查詢直到根DNS。
根部DNS會(huì)給出負(fù)責(zé)解析這個(gè)域名的域名解析服務(wù)器的地址喷楣,然后域名解析服務(wù)器會(huì)去響應(yīng)請(qǐng)求返回www.a.com的地址給客戶端。整個(gè)解析路勁如下:
本機(jī)->localDNS->根DNS->隸屬DNS服務(wù)器->IP地址->本機(jī)
智能DNS
智能DNS解析過(guò)程:
本機(jī)->localDNS->根DNS->智能DNS解析->返回IP地址->本機(jī)
智能DNS解析體現(xiàn)就是,如果請(qǐng)求解析的PC機(jī)是電信線路的蜒谤,則返回電信機(jī)房的服務(wù)器地址。如果是網(wǎng)通機(jī)房的至扰,則返回網(wǎng)通機(jī)房服務(wù)器的地址鳍徽。
那么如何判斷請(qǐng)求解析的客戶端是哪種類型的?
方法1:將所有電信和網(wǎng)通的所有IP段放在一張表中敢课,每次請(qǐng)求都去查詢這張表阶祭。
這種方法最簡(jiǎn)單最笨,但是穩(wěn)定性最高直秆”裟迹基本上銀行.證券.金融.這些重要部門(mén),都是使用的這種笨的方法.
方法2:在接收到解析請(qǐng)求時(shí)切厘,分別往電信和網(wǎng)通的兩條線路發(fā)送一個(gè)探測(cè)包萨咳。發(fā)送目標(biāo)可以是目標(biāo)IP地址,也可以是localDNS疫稿。包可以是IGMP ping包培他,也可以是反向查詢DNS包鹃两。當(dāng)兩個(gè)包都有響應(yīng)時(shí)舀凛,比較回包的時(shí)間戳俊扳,取比較小的時(shí)間戳包的服務(wù)器地址返回即可。
DNS負(fù)載均衡
一個(gè)域名訪問(wèn)多個(gè)IP地址猛遍。當(dāng)客戶端請(qǐng)求解析域名時(shí),DNS服務(wù)器查詢文件中的記錄按順序返回不同的解析結(jié)果懊烤,從而將客戶訪問(wèn)引導(dǎo)到不同的服務(wù)器上去梯醒,從而實(shí)現(xiàn)負(fù)載均衡。
優(yōu)點(diǎn)
- 實(shí)現(xiàn)簡(jiǎn)單腌紧,服務(wù)器不需要修改任何代碼茸习。
- 服務(wù)器可以位于互聯(lián)網(wǎng)上任何位置
- 省去運(yùn)維麻煩
缺點(diǎn)
- DNS是多級(jí)解析的,每一級(jí)都可能緩存A記錄壁肋。當(dāng)某臺(tái)服務(wù)器下線号胚,需要較長(zhǎng)的時(shí)間才能生效。這段時(shí)間內(nèi)浸遗,用戶仍然會(huì)訪問(wèn)到下線的服務(wù)器猫胁,導(dǎo)致訪問(wèn)失敗。
- 為保證本地DNS跟上級(jí)的DNS保持記錄跛锌,需要設(shè)置比較短的刷新時(shí)間弃秆,這樣會(huì)消耗很大的DNS流量。
實(shí)際應(yīng)用
大型網(wǎng)站實(shí)際上一般會(huì)把DNS解析作為第一級(jí)負(fù)載均衡手段察净,域名解析得到的地址一般不會(huì)是實(shí)際提供服務(wù)的服務(wù)器地址驾茴,而是一個(gè)內(nèi)部的同樣提供負(fù)載均衡的服務(wù)器。這個(gè)服務(wù)器再把請(qǐng)求轉(zhuǎn)發(fā)到實(shí)際提供服務(wù)的服務(wù)器上氢卡。