自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Linux環(huán)境下的DNS管理全攻略

原創(chuàng)
網(wǎng)絡(luò)
DNS服務(wù)器是非常關(guān)鍵的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,高效管理及使用DNS服務(wù)器是網(wǎng)絡(luò)管理員的一個(gè)非常重要的問題。本專題將詳細(xì)介紹如何通過相關(guān)配置和技術(shù)來高效管理Linux下的DNS服務(wù)。

【51CTO.com獨(dú)家特稿】2009年5月19日21:50開始,江蘇、安徽、廣西、海南、甘肅、浙江等六省用戶申告訪問網(wǎng)站速度變慢或無法訪問。5月20日,工業(yè)和信息化部通信保障局召集國家計(jì)算機(jī)應(yīng)急處理協(xié)調(diào)中心、電信研究院、中國電信集團(tuán)、暴風(fēng)影音等參加緊會(huì)議,經(jīng)查明,事故原因是系DNS域名解析故障,網(wǎng)絡(luò)故障造成多家網(wǎng)站受到影響,暴風(fēng)也是受害者之一。

例子中提到的DNS系統(tǒng)用于命名組織到域?qū)哟谓Y(jié)構(gòu)中的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)。它主要應(yīng)用于Internet等TCP/IP網(wǎng)絡(luò)中,通過用戶友好的名稱查找計(jì)算機(jī)和服務(wù)。當(dāng)用戶在應(yīng)用程序中輸入DNS名稱時(shí),DNS服務(wù)可以將此名稱解析為與之相關(guān)的其他信息。從上述實(shí)例我們不難深刻地體會(huì)到,DNS服務(wù)器是非常關(guān)鍵的互聯(lián)網(wǎng)基礎(chǔ)設(shè)施,高效管理及使用DNS服務(wù)器是網(wǎng)絡(luò)管理員的一個(gè)非常重要的問題。本專題將詳細(xì)介紹如何通過相關(guān)配置和技術(shù)來高效管理Linux下的DNS服務(wù)。

一、DNS服務(wù)簡介

1.基本原理

DNS(Domain Name System,域名系統(tǒng))用于命名組織到域?qū)哟谓Y(jié)構(gòu)中的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)。DNS命名用于Internet等TCP/IP網(wǎng)絡(luò)中,通過用戶友好的名稱查找計(jì)算機(jī)和服務(wù)。當(dāng)用戶在應(yīng)用程序中輸入DNS名稱時(shí),DNS服務(wù)可以將此名稱解析為與之相關(guān)的其他信息,如IP地址。因?yàn)?,用戶在上網(wǎng)時(shí)輸入的網(wǎng)址,是通過域名解析系解析找到相對(duì)應(yīng)的IP地址,這樣才能上網(wǎng)。其實(shí),域名的最終指向是IP。

值得一提的是,在引入DNS之前,網(wǎng)絡(luò)中的主機(jī)是將容易記憶的域名映射到IP地址并將它保存在一個(gè)共享的靜態(tài)文件hosts(該文件路徑為/etc/hosts)中,再由hosts文件來實(shí)現(xiàn)網(wǎng)絡(luò)中域名的管理。最初Internet非常小,僅使用這個(gè)集中管理的文件就可以通過FTP為連入Internet的站點(diǎn)和主機(jī)提供域名的發(fā)布和下載。每個(gè)Internet站點(diǎn)將定期地更新其主機(jī)文件的副本,并且發(fā)布主機(jī)文件的更新版本來反映網(wǎng)絡(luò)的變化。但是,當(dāng)Internet上的計(jì)算機(jī)迅速增加時(shí),通過一個(gè)中心授權(quán)機(jī)構(gòu)為所有Internet主機(jī)管理一個(gè)主機(jī)文件的工作將無法進(jìn)行。文件會(huì)隨著時(shí)間的推移而增大,這樣按當(dāng)前和更新的形式維持文件以及將文件分配至所有站點(diǎn)將變得非常困難。

域名系統(tǒng)為一個(gè)分布式數(shù)據(jù)庫,它使本地負(fù)責(zé)控制整個(gè)分布式數(shù)據(jù)庫的部分段,每一段中的數(shù)據(jù)通過客戶,服務(wù)器模式在整個(gè)網(wǎng)絡(luò)上均可存取,通過采用復(fù)制技術(shù)和緩存技術(shù)使得整個(gè)數(shù)據(jù)庫可靠的同時(shí),又擁有良好的性能。域名服務(wù)器包含數(shù)據(jù)庫的部分段的信息,并可提供被稱之為解析器的客戶來訪問。DNS的數(shù)據(jù)庫結(jié)構(gòu)形成一個(gè)倒立的樹狀結(jié)構(gòu),根的名字用空字符串""來表示,但在文本中用“.”來書寫。樹的每一個(gè)節(jié)點(diǎn)都表示整個(gè)分布式數(shù)據(jù)庫中的一個(gè)分區(qū)(域),每個(gè)域可再進(jìn)一步劃分成子分區(qū)(域),每個(gè)域都有一個(gè)標(biāo)簽(label),標(biāo)明了它與父域的關(guān)系。域也有一個(gè)域名(domain name),給出它在整個(gè)分布式數(shù)據(jù)庫中的位置。在DNS中,域名全稱是一個(gè)從該域到根的標(biāo)簽序列,以“.”分隔這些標(biāo)簽。該標(biāo)簽最多可包含63個(gè)字符。樹中每一節(jié)點(diǎn)的完整域名為從該節(jié)點(diǎn)到根之間路徑上的標(biāo)簽序列。如果根域在節(jié)點(diǎn)的域名中出現(xiàn),該名字看起來就象以點(diǎn)結(jié)尾(實(shí)際上是以點(diǎn)和空標(biāo)簽作結(jié)尾)。這些以點(diǎn)結(jié)尾的域名被稱之為絕對(duì)域名(Absolute Domain Name)。不以點(diǎn)結(jié)尾的域名被稱之為相對(duì)域名。域(Domains)即為樹狀域名空間中的一棵子樹,域的域名同該子樹根節(jié)點(diǎn)的域名一樣。也就是說,域的名字就是該域中最高層節(jié)點(diǎn)的名字。圖1給出了DNS分層結(jié)構(gòu)的圖示:  

圖1  DNS域名空間的分層結(jié)構(gòu)

DNS基于C/S(Client/Server,客戶機(jī)/服務(wù)器)模式,因而分為Client和Server兩種角色。Client扮演詢問的角色,也就是向Server詢問一個(gè)Domain Name,而Server必須要回答此Domain Name所對(duì)應(yīng)的真正IP地址。而當(dāng)?shù)氐腄NS先會(huì)查自己的資料庫。如果自己的資料庫沒有,則會(huì)往該DNS上所設(shè)的的其他DNS進(jìn)行求助詢問,依此得到答案之后,將收到的答案存起來,并回答客戶。

DNS服務(wù)器會(huì)根據(jù)不同的授權(quán)區(qū)(Zone),記錄所屬該網(wǎng)域下的各名稱資料,這個(gè)資料包括網(wǎng)域下的次網(wǎng)域名稱及主機(jī)名稱。在每一個(gè)名稱服務(wù)器中都有一個(gè)高速緩存區(qū)(Cache),這個(gè)高速緩存區(qū)的主要目的是將該名稱服務(wù)器所查詢出來的名稱及相對(duì)的IP地址記錄在高速緩存區(qū)中,這樣當(dāng)下一次還有另外一個(gè)客戶端到次服務(wù)器上去查詢相同的名稱時(shí),服務(wù)器就不用在到別臺(tái)主機(jī)上去尋找,而直接可以從緩存區(qū)中找到該名稱記錄資料,傳回給客戶端,以加速客戶端對(duì)名稱查詢的速度。

舉個(gè)例子,當(dāng)DNS客戶端向指定的DNS服務(wù)器查詢網(wǎng)Internet上的某一臺(tái)主機(jī)名稱時(shí),DNS服務(wù)器會(huì)在該資料庫中找尋用戶所指定的名稱。如果沒有,該服務(wù)器會(huì)先在自己的高速緩存區(qū)中查詢有無該條紀(jì)錄,如果找到該條名稱記錄后,會(huì)從DNS服務(wù)器直接將所對(duì)應(yīng)到的IP地址傳回給客戶端;如果DNS務(wù)器在資料記錄查不到且高速緩存區(qū)中也沒有時(shí),服務(wù)器才會(huì)向別的DNS服務(wù)器查詢所要的名稱。例如,本地的DNS服務(wù)器會(huì)向最接近(比如屬于同一個(gè)IP地址段或者同一個(gè)ISP)的DNS服務(wù)器去要求幫忙找尋該名稱的IP地址.在另一臺(tái)服務(wù)器上也有相同的動(dòng)作的查詢,當(dāng)查詢到后會(huì)回復(fù)原本要求查詢的服務(wù)器,該DNS服務(wù)器在接收到另一臺(tái)DNS服務(wù)器查詢的結(jié)果后,先將所查詢到的主機(jī)名稱及對(duì)應(yīng)IP地址記錄到高速緩存區(qū)中,最后在將所查詢到的結(jié)果回復(fù)給客戶端。這樣就成功地完成了一次標(biāo)準(zhǔn)的DNS查詢-應(yīng)答過程。

2.DNS系統(tǒng)的組成

DNS系統(tǒng)基于客戶機(jī)/服務(wù)器模式,從概念上說他主要由三個(gè)部分組成:

(1)域名空間:域名空間中的記錄標(biāo)識(shí)一組主機(jī)并提供他們的有關(guān)信息。域中的每一個(gè)節(jié)點(diǎn)都有它的有關(guān)信息的數(shù)據(jù)庫。查詢命令試圖從這個(gè)數(shù)據(jù)庫中提取適當(dāng)?shù)男畔ⅰ:唵蔚卣f,域名空間是所有不同類型信息的列表,這些信息是域名、IP地址、郵件別名和那些在DNS系統(tǒng)中能查到的內(nèi)容。

(2)域名服務(wù)器:保持并維護(hù)域名空間中的數(shù)據(jù)的程序。每個(gè)域名服務(wù)器含有一個(gè)域名空間子集的完整信息,并保存其它有關(guān)部分的信息。一個(gè)域名服務(wù)器擁有它控制范圍的完整信息??刂频男畔磪^(qū)進(jìn)行劃分,區(qū)可以分布在不同的域名服務(wù)器上,以便為每個(gè)區(qū)提供服務(wù)。每個(gè)域名服務(wù)器都知道所有負(fù)責(zé)其他區(qū)的域名服務(wù)器。如果來了一個(gè)請(qǐng)求,它請(qǐng)求給定域名服務(wù)器負(fù)責(zé)的那個(gè)區(qū)的信息,那么這個(gè)域名服務(wù)器只是簡單地返回信息。但是,如果請(qǐng)求是不同區(qū)的信息,那么這個(gè)域名服務(wù)器就要與控制該區(qū)的相應(yīng)服務(wù)器聯(lián)系。

(3)解析器:解析器是簡單的程序或子程序庫,它從服務(wù)器中提取信息以響應(yīng)對(duì)域名空間內(nèi)主機(jī)的查詢。

DNS是一個(gè)很復(fù)雜的概念,下表列出了常用的DNS術(shù)語。? 

◆域:代表網(wǎng)絡(luò)一部分的邏輯實(shí)體或組織。? 

◆域名:主機(jī)名的一部分,它代表包含這個(gè)主機(jī)的域。它可以和域交換使用。? 

◆主機(jī):網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī)。? 

◆節(jié)點(diǎn):網(wǎng)絡(luò)上的一臺(tái)計(jì)算機(jī)。? 

◆域名服務(wù)器:提供DNS服務(wù)的計(jì)算機(jī),它將DNS名字轉(zhuǎn)化為IP地址。? 

◆解析:把一個(gè)域名轉(zhuǎn)化為與其相應(yīng)的IP地址的過程。? 

◆解析器:從域名服務(wù)器中提取DNS信息的程序或庫子程序。? 

◆反向解析:將給出的IP地址轉(zhuǎn)化為其相應(yīng)的DNS名字。? 

◆欺騙:使網(wǎng)絡(luò)看上去好象具有不同的IP地址或域名的行為。

3.DNS服務(wù)器的類型

DNS域名服務(wù)器是用來存儲(chǔ)主機(jī)-域名映射信息的,這些服務(wù)器具體又可以分為3類:

(1)主DNS服務(wù)器(primary name server):它是特定域所有信息的權(quán)威性信息源。它從域管理員構(gòu)造的本地磁盤文件中加載域信息,該文件(區(qū)文件)包含著該服務(wù)器具有管理權(quán)的一部分域結(jié)構(gòu)的最精確信息。主服務(wù)器是一種權(quán)威性服務(wù)器,因?yàn)樗越^對(duì)的權(quán)威去回答對(duì)其管轄域的任何查詢。

(2)輔助DNS服務(wù)器(secondary name server):它可從主服務(wù)器中復(fù)制一整套域信息。區(qū)文件是從主服務(wù)器中復(fù)制出來的,并作為本地磁盤文件存儲(chǔ)在輔助服務(wù)器中。這種復(fù)制稱為“區(qū)文件復(fù)制”。在輔助域名服務(wù)器中有一個(gè)所有域信息的完整拷貝,可以有權(quán)威地回答對(duì)該域的查詢。因此,輔助域名服務(wù)器也稱作權(quán)威性服務(wù)器。配置輔助域名服務(wù)器不需要生成本地區(qū)文件,因?yàn)榭梢詮闹鞣?wù)器中下載該區(qū)文件。

(3)高速緩存服務(wù)器(caching-only server):可運(yùn)行域名服務(wù)器軟件,但是沒有域名數(shù)據(jù)庫軟件。它從某個(gè)遠(yuǎn)程服務(wù)器取得每次域名服務(wù)器查詢的結(jié)果,一旦取得一個(gè),就將它放在高速緩存中,以后查詢相同的信息時(shí)就用它予以回答。高速緩存服務(wù)器不是權(quán)威性服務(wù)器,因?yàn)樗峁┑乃行畔⒍际情g接信息。對(duì)于高速緩存服務(wù)器只需要配置一個(gè)高速緩存文件,但最常見的配置還包括一個(gè)回送文件,這或許是最常見的域名服務(wù)器配置。 #p#

二、DNS服務(wù)管理中存在的問題和面臨的威脅

1.DNS設(shè)計(jì)中存在的問題

在系統(tǒng)設(shè)計(jì)方面,DNS的設(shè)計(jì)受到當(dāng)時(shí)條件限制,因而存在許多設(shè)計(jì)缺陷問題。

(1)單點(diǎn)故障。DNS采用層次化的樹形結(jié)構(gòu),由樹葉走向樹根就可以形成—個(gè)全域名(Fully Qualified Domain Name,F(xiàn)QDN),DNS服務(wù)器作為該FQDN唯一對(duì)外的域名數(shù)據(jù)庫和對(duì)內(nèi)部提供遞歸域名查詢的系統(tǒng),因而其安全和穩(wěn)定就存在單點(diǎn)故障風(fēng)險(xiǎn)。

(2)無認(rèn)證機(jī)制。DNS沒有提供認(rèn)證機(jī)制,查詢者在收到應(yīng)答時(shí)無法確認(rèn)應(yīng)答信息的真假,就容易導(dǎo)致DNS欺騙。假設(shè)當(dāng)提交給某個(gè)域名服務(wù)器的域名解析請(qǐng)求的數(shù)據(jù)包被黑客截獲,然后黑客將一個(gè)虛假的IP地址作為應(yīng)答信息返回給請(qǐng)求者,那么原始請(qǐng)求者就會(huì)把這個(gè)虛假的IP地址作為它所要請(qǐng)求的域名而進(jìn)行連接,顯然它被欺騙到了別處而連接不上原本想要連接的那個(gè)域名,這樣就導(dǎo)致了DNS欺騙。如圖2所示。  

圖2  DNS欺騙原理示意

(4)訪問量和維護(hù)量巨大以及遠(yuǎn)距離集中式數(shù)據(jù)庫。單個(gè)名字服務(wù)器不得不處理所有DNS查詢消息,并保存所有因特網(wǎng)主機(jī)的記錄,數(shù)據(jù)庫會(huì)相當(dāng)巨大,需要為每臺(tái)新增的主機(jī)頻繁更新,而且單臺(tái)名字服務(wù)器主機(jī)不可能在所有請(qǐng)求查詢的客戶主機(jī)附近,就可能導(dǎo)致相當(dāng)大的延遲。

(5)BIND(Berkeley Intemet Name Domain)的漏洞:BIND是域名軟件,它在提供高效服務(wù)的同時(shí)也存在許多的安全性漏洞?,F(xiàn)已證明在BIND版本4和8上存在缺陷,攻擊者利用這些缺陷能成功地進(jìn)行DNs欺騙攻擊,這些漏洞可以被利用取得系統(tǒng)最高權(quán)限。構(gòu)成嚴(yán)重威脅的漏洞主要有兩種:一種是緩沖區(qū)溢出漏洞,嚴(yán)重的可以使攻擊者在DNS服務(wù)器上執(zhí)行任意指令,如BIND SIG Cached RR Ovemow DoS(CAN.2002-1219)在BIND 4和BIND 8中存在一個(gè)遠(yuǎn)程緩沖溢出缺陷,該缺陷使得攻擊者可以在DNS服務(wù)器上運(yùn)行任意指令。另一種是DoS漏洞,受攻擊后DNS服務(wù)器不能提供正常服務(wù),而且其所轄的子網(wǎng)無法正常工作。

2.DNS面臨的網(wǎng)絡(luò)威脅

(1)內(nèi)部攻擊:攻擊者在非法或合法地控制一臺(tái)DNS服務(wù)器后,可以直接操作域名數(shù)據(jù)庫,修改指定域名所對(duì)應(yīng)的IP為自己所控制的主機(jī)IP,當(dāng)客戶發(fā)出對(duì)指定域名的查詢請(qǐng)求后,將得到偽造的IP地址。

(2)序列號(hào)攻擊:DNS協(xié)議格式中定義了用來匹配請(qǐng)求數(shù)據(jù)包和響應(yīng)數(shù)據(jù)報(bào)序列ID,欺騙者利用序列號(hào)偽裝成DNS服務(wù)器向客戶端發(fā)送DNS響應(yīng)數(shù)據(jù)包,在DNS服務(wù)器發(fā)送的真實(shí)DNS響應(yīng)數(shù)據(jù)報(bào)之前到達(dá)客戶端,從而將客戶端帶到攻擊者所希望的網(wǎng)站,進(jìn)行DNS欺騙。

(3)信息插入攻擊:攻擊者可以在DNS應(yīng)答報(bào)文中隨意添加某些信息,指示權(quán)威域名服務(wù)器的域名及IP,那么在被影響的域名服務(wù)器上查詢?cè)撚虻恼?qǐng)求都會(huì)被轉(zhuǎn)向攻擊者所指定的域名服務(wù)器上去,從而威脅到網(wǎng)絡(luò)數(shù)據(jù)的完整性。

(4)緩存(cache)中毒:DNS使用超高速緩存,即當(dāng)一個(gè)名字服務(wù)器收到有關(guān)域名和IP的映射信息時(shí),它會(huì)將該信息存放在高速緩存中。當(dāng)再次遇到相同的映射請(qǐng)求,能直接使用緩存中的結(jié)果,這種映射表是動(dòng)態(tài)更新的,刷新也是有時(shí)限的,這樣假冒者如果在下次更新之前成功地修改了DNS服務(wù)器上的映射緩存,就可以進(jìn)行DNS欺騙或者DoS(Denial of Service)拒絕服務(wù)攻擊了。

(5)信息泄漏:BIND的缺省設(shè)置允許任何人進(jìn)行區(qū)傳送,區(qū)傳送可能會(huì)造成信息泄漏,區(qū)傳送一般用于主服務(wù)器和輔服務(wù)器之間的數(shù)據(jù)同步,輔服務(wù)器可以從主服務(wù)器獲取最新區(qū)數(shù)據(jù)文件的副本,也就可以獲得整個(gè)授權(quán)區(qū)域內(nèi)的所有主機(jī)信息。一旦這些信息泄漏,攻擊者就可以根據(jù)它輕松地推測主服務(wù)器的網(wǎng)絡(luò)結(jié)構(gòu),并從這些信息中判斷其功能或發(fā)現(xiàn)那些防范措施較弱的機(jī)器。

(6)不安全的動(dòng)態(tài)更新:隨著動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)的出現(xiàn),客戶計(jì)算機(jī)由DHCP服務(wù)器動(dòng)態(tài)分配IP地址,使原來手工更新其A記錄和PTR記錄變得很難管理。因此在RFC2136中提出了DNS動(dòng)態(tài)更新,使得DNS客戶端在IP地址或名稱出現(xiàn)更改的任何時(shí)候都可利用DNS服務(wù)器來注冊(cè)和動(dòng)態(tài)更新其資源記錄。盡管DNS動(dòng)態(tài)更新協(xié)議規(guī)定只有經(jīng)過授權(quán)的主機(jī)才能動(dòng)態(tài)更新服務(wù)器的zone file,但是攻擊者還是可以利用IP欺騙偽裝成DNS服務(wù)器信任的主機(jī)對(duì)區(qū)數(shù)據(jù)進(jìn)行添加、刪除和替換。 #p#

三、安裝DNS的最新版本

Linux下架設(shè)DNS服務(wù)器通常是使用BIND程序來實(shí)現(xiàn)的。BIND是Berkeley Internet Name Domain Service的簡寫,它是一款實(shí)現(xiàn)DNS服務(wù)器的開放源碼軟件。BIND原本是美國DARPA資助伯克里大學(xué)(Berkeley)開設(shè)的一個(gè)研究生課題,后來經(jīng)過多年的變化發(fā)展,已經(jīng)成為世界上使用最為廣泛的DNS服務(wù)器軟件,目前Internet上絕大多數(shù)的DNS服務(wù)器都是用BIND來架設(shè)的。

BIND經(jīng)歷了第4版、第8版和最新的第9版,第9版修正了以前版本的許多錯(cuò)誤,并提升了執(zhí)行時(shí)的效能。BIND能夠運(yùn)行在當(dāng)前大多數(shù)的操作系統(tǒng)系統(tǒng)平臺(tái)之上。目前BIND軟件由因特網(wǎng)軟件聯(lián)合會(huì)(Internet Software Consortium,ISC)這個(gè)非贏利性機(jī)構(gòu)負(fù)責(zé)開發(fā)和維護(hù)。ISC的官方網(wǎng)站(http://www.isc.org/,如圖3所示)包含了最新的錯(cuò)誤修復(fù)和更新,目前BIND的最新版本為9.6。

圖3  BIND下載網(wǎng)站主頁

為了保證DNS的安全,強(qiáng)烈建議采用BIND的最新版本進(jìn)行安裝使用,因?yàn)樽钚碌陌姹臼窃谝郧鞍姹镜幕A(chǔ)上進(jìn)行修改和完善,能從根本上解決一些安全隱患。從上述網(wǎng)站上下載Linux下的最新版本為bind-9.6.1b1.tar.gz,該安裝程序?yàn)樵创a安裝方式。安裝步驟如下所示:

(1)解壓縮下載的源碼安裝包

#tar zxvf bind-9.6.1b1.tar.gz 

(2)切換到解壓目錄,使用configure命令生成Makefile文件

#cd bind-9.6.1b1

#./configure --prefix=/usr/local/bind

--sysconfdir=/etc/bind --localstatedir=/var

--with-libtool --enable-threads

命令中的configure是編譯前對(duì)源代碼進(jìn)行針對(duì)具體操作系統(tǒng)的編譯參數(shù)配置,有很多選項(xiàng)可以選擇:? 

◆--prefix:指定安裝目錄;? 

◆--sysconfdir:設(shè)置named.conf配置文件放置的目錄;? 

◆--localstatdir:設(shè)置run/named.pid放置的目錄;? 

◆--with-libtool:將BIND的庫文件編譯為動(dòng)態(tài)共享庫文件,這個(gè)選項(xiàng)默認(rèn)是未選擇的;? 

◆--enable-threads:如果用戶系統(tǒng)有多個(gè)CPU,那么可以使用這個(gè)選項(xiàng)

(3)編譯和安裝相關(guān)模塊。需要注意:下面的編譯和安裝,安裝時(shí)需要有root權(quán)限

#make

#make install

#p#

四、正確配置DNS相關(guān)文件

(1)幾個(gè)重要的DNS服務(wù)器配置文件類型

在使用DNS服務(wù)器之前,需要對(duì)與之相關(guān)的配置文件進(jìn)行安全配置,因而首先需要了解這些基本文件,表1詳細(xì)給出了幾種主要的與DNS有關(guān)的文件以及詳細(xì)描述:

表1  DNS相關(guān)配置文件介紹

(2)named.conf主配置文件

在使用named.conf進(jìn)行配置時(shí),需要了解如下常用的配置語句,如表2所示。

表2  named.conf主配文件配置語句說明

根據(jù)在實(shí)際應(yīng)用中的廣泛程度和重要性,下面我們著重對(duì)option語句和zone聲明的使用進(jìn)行介紹。

1.使用option語句

option語句的使用語法為:

option語句的使用語法為:

option {
  
配置子句1;  
 

配置子句2;

};

在上述語法中,其配置子句常用的主要有如下兩類:? 

◆directory:該子句后接目錄路徑,主要用于定義服務(wù)器區(qū)配置文件的工作目錄,如/home等;? 

◆forwarders:該子句后接IP地址,定義轉(zhuǎn)發(fā)器;

2.使用zone聲明

區(qū)聲明是主配置文件中非常常用而且是最重要的部分,它一般要說明域名、服務(wù)器類型以及域信息源三個(gè)重要部分。它的語法為:

zone “zone_name” IN {
  
type 子句;  
 

file  子句;
  
其他子句;

};

那么,圍繞上述三個(gè)重要部分,區(qū)聲明語句有如下兩類子句:? 

◆type:其主要有如下三種,master(說明一個(gè)區(qū)為主域名服務(wù)器)、slave(說明一個(gè)區(qū)為輔助域名服務(wù)器)和hint(說明一個(gè)區(qū)為啟動(dòng)時(shí)初始化高速緩存的域名服務(wù)器)。? 

◆file:后接文件路徑,主要說明一個(gè)區(qū)的域信息源的路徑。

3.使用ACL(訪問控制列表)

訪問控制列表(ACL,Access Control List)就是一個(gè)被命名的地址匹配列表。使用訪問控制列表可以使配置簡單而清晰,一次定義之后可以在多處使用,不會(huì)使配置文件因?yàn)榇罅康腎P地址而變得混亂。

要定義訪問控制列表,可以在BIND的主配置文件/etc/named.conf中使用acl語句來實(shí)現(xiàn)。acl語句的語法為:

acl  acl_name { 

address_match_list;

};

BIND里默認(rèn)預(yù)定義了4個(gè)名稱的地址匹配列表,他們可以直接使用,分別為:?   

◆Any:表示所有主機(jī);? 

◆Localhost:表示本機(jī);? 

◆Localnets:表示本地網(wǎng)絡(luò)上的所有主機(jī);? 

◆None:表示不匹配任何主機(jī)。

需要注意的是:acl是named.conf中的頂級(jí)語句,不能將其嵌入其他的語句。要使用用戶自己定義的訪問控制列表,必須在使用之前定義。因?yàn)榭梢栽趏ptions語句里使用訪問控制列表,所以定義訪問控制列表的acl語句應(yīng)該位于options語句之前。

另外,為了便于維護(hù)管理員定義的訪問控制列表,可以將所有定義acl的語句存放在單獨(dú)的文件/etc/named.conf.acls中,然后在主配置文件/etc /named.conf中如下語句:

include "/etc/named.conf.options";

之前添加如下的配置行

include "/etc/named.conf.acls"; 

定義了ACL之后,可以在如下的子句中使用:? 

◆allow-query  options,zone:指定哪主機(jī)或網(wǎng)絡(luò)可以查詢本服務(wù)器或區(qū),默認(rèn)的是允許所有主機(jī)進(jìn)行查詢。 

◆allow-transfer  options,zone:指定哪些主機(jī)允許和本地服務(wù)器進(jìn)行域傳輸,默認(rèn)值是允許和所有主機(jī)進(jìn)行域傳輸。  ? 

◆allow-recursion  options:指定哪些主機(jī)可以進(jìn)行遞歸查詢。如果沒有設(shè)定,缺省是允許所有主機(jī)進(jìn)行遞歸查詢的。注意禁止一臺(tái)主機(jī)的遞歸查詢,并不能阻止這臺(tái)主機(jī)查詢已經(jīng)存在于服務(wù)器緩存中的數(shù)據(jù)。 ? 

◆allow-update  zone:指定哪些主機(jī)允許為主域名服務(wù)器提交動(dòng)態(tài)DNS更新。默認(rèn)為拒絕任何主機(jī)進(jìn)行更新。 ? 

◆blackhole  options:指定不接收來自哪些主機(jī)的查詢請(qǐng)求和地址解析。默認(rèn)值是none。

上面列出的一些配置子句既可以出現(xiàn)在全局配置options語句里,又可以出現(xiàn)在zone聲明語句里,當(dāng)在兩處同時(shí)出現(xiàn)時(shí),zone聲明語句中的配置將會(huì)覆蓋全局配置options語句中的配置。

(3)區(qū)文件

區(qū)文件定義了一個(gè)區(qū)的域名信息,通常也稱域名數(shù)據(jù)庫文件。每個(gè)區(qū)文件都是由若干個(gè)資源記錄(RR,resource records)和區(qū)文件指令所組成。

1.資源記錄

每個(gè)區(qū)域文件都是由SOA RR開始,同時(shí)包括NS RR。對(duì)于正向解析文件還包括A RR、MX RR、CNAME RR等等;而對(duì)于反向解析文件還包括PTR RR。

RR具有基本的格式。標(biāo)準(zhǔn)資源記錄的基本格式是:

[name]      [ttl]     IN     type     redata

各個(gè)自字節(jié)之間由空格或制表符分隔。表3描述了這些字段的含義:

 

 

表3  標(biāo)準(zhǔn)資源紀(jì)錄中的字段

2.區(qū)文件指令

表4列出了可以在區(qū)文件中使用的4個(gè)區(qū)文件指令。

表4   區(qū)文件指令

為了方便讀者對(duì)DNS服務(wù)器配置文件的使用有個(gè)詳細(xì)的了解,本節(jié)將針對(duì)一個(gè)實(shí)際的配置文件例子來進(jìn)行講解。該配置文件如下所示。我們虛構(gòu)了一個(gè)域cmpbook.com來舉例說明主服務(wù)器的配置,下面是定義cmpbook.com域的主服務(wù)器的named.conf文件:

// generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

// a caching only nameserver config

//

zone "." {

type hint;

file "named.ca";

};

zone "cmpbook.com"{

type master;

file "cmpbook.com";

};

zone "0.0.127.in-addr.arpa" {

type master;

file "named.local";

};

zone "132.211.in-addr.arpa"{

type master;

file "named.rev";

};

上例中第一個(gè)master告訴我們這是cmpbook.com域的主服務(wù)器。該域的數(shù)據(jù)是從named.hosts文件中加載的。在我們這個(gè)例子中,我們將文件名named.hosts作為區(qū)文件名。第三個(gè)master語句指向能將IP地址211.132.0.0映射為主機(jī)名的文件。它假定本地服務(wù)器是反向域132.211.in-addr.arpa的主服務(wù)器,該域的數(shù)據(jù)從文件named.rev中加載。

除了定義上述的主文件外,還需要定義如下的區(qū)文件(/var/named/cmpbook.com):

$TTL 86400

$ORIGIN cmpbook.com.

@   

1D IN SOA @ root (     42  ; serial (d. adams)     

3H  ; refresh     15M  ; retry     1W  ; expiry
 

 

 

 

 

1D )  ; minimum

@ IN NS @   @ IN A  127.0.0.1   

www IN A 211.132.211.80
 

 

 

 

 

 

 

ftp IN A 211.132.211.68
 

 

 

 

web IN CNAME www

(5)使用Dlint工具進(jìn)行DNS配置文件檢查

Dlint是一個(gè)專門檢查DNS配置文件開放源代碼的軟件,用戶可以從網(wǎng)站http://www.domtools.com上自行下載安裝,目前該網(wǎng)站上的最新版本為Dlint1.4.1。需要注意:使用該軟件前要求系統(tǒng)安裝支持Perl語言和Dig命令(BIND中一個(gè)軟件包)的相關(guān)軟件包。

Dlint軟件的安裝步驟如下所示,系統(tǒng)會(huì)將Dlint安裝在/usr/bin/目錄下:

(1)解壓縮軟件包

#tar dlint1.4.1.tar.gz

(2)切換到解壓縮的目錄下,執(zhí)行安裝命令

#cd dlint1.4.1

#make

Dlint主要針對(duì)DNS配置文件進(jìn)行如下檢查:? 

◆檢查配置文件是否存在拼寫錯(cuò)誤;? 

◆檢查配置文件中是否有A(Address)記錄的主機(jī)名稱都有配套的PTR(反向解析記錄的簡稱)記錄。如果有A記錄的主機(jī)名稱沒有PTR,則配置文件不能通過。另外,Dlint可以在用戶配置文件中為A記錄查找丟失的PTR記錄;? 

◆記錄in-addr.arpa區(qū)的每一條PTR記錄是否有對(duì)應(yīng)的A記錄存在,并以遞歸的方式檢查子區(qū),查找它們的配置問題;

如下顯示了使用Dlint工具進(jìn)行DNS配置文件檢查的運(yùn)行結(jié)果:

#dlint localhost.localhost

;; dlint version 1.4.1, Copyright (C) 1998 Paul A. Balyoz <pab@domtools.com>

;;     Dlint comes with ABSOLUTELY NO WARRANTY.;

;;    This is free software, and you are welcome to redistribute it

;;     under certain conditions.  Type 'man dlint' for details.

;; command line: /usr/local/bin/dlint localhost.localhost

;; flags: normal-domain recursive.

;; using dig version 9.2.1

;; run starting: 涓? 4鏈?15 07:08:18 CST 2009

;; ============================================================

;; Now linting localhost.localhost

ERROR: no name servers found for domain localhost.localhost       

That domain is probably not a zone.  Remove the leftmost portion of the name and try again.

;; ============================================================

;; dlint of localhost.localhost run ending with errors.

;; run ending: 涓? 4鏈?15 07:08:18 CST 2009

(6)使用命令檢驗(yàn)DNS功能

1.nslookup命令

nslookup命令是用來驗(yàn)證DNS功能以及故障的一種非常簡便有效的工具,通過該命令可以對(duì)用戶搭建的DNS服務(wù)器或者是公用的服務(wù)器的功能進(jìn)行有效驗(yàn)證。該命令不但可以在Linux下使用,而且也可以在Windows系列操作系統(tǒng)中使用。如果該命令能夠成功返回信息,也就是能夠通過域名從DNS服務(wù)器得到需要解析的IP地址信息,或者通過提供IP地址信息得到域名信息。那么,就表明該DNS是正常運(yùn)行的。

如下例子給出使用nslookup命令向DNS查詢www.sohu.com域名IP地址的應(yīng)用場景,驗(yàn)證表明DNS功能正常:

//正向查詢

#nslookup www.google.com

Note:  nslookup is deprecated and may be removed from future releases.

Consider using the `dig' or `host' programs instead.  Run nslookup with

the `-sil[ent]' option to prevent this message from appearing.

Server:         10.2.13.18

Address:        10.2.13.18#53   Non-authoritative answer: www.google.com  canonical name = www.l.google.com www.l.google.com        canonical name = www-china.l.google.com.

Name:   www-china.l.google.com

Address: 72.14.235.99

Name:   www-china.l.google.com

Address: 72.14.235.104

Name:   www-china.l.google.com

Address: 72.14.235.147

//反向查詢

#nslookup 72.14.235.99

Note:  nslookup is deprecated and may be removed from future releases.

Consider using the `dig' or `host' programs instead.  Run nslookup with

the `-sil[ent]' option to prevent this message from appearing.

Server:         10.2.13.18

Address:        10.2.13.18#53   Non-authoritative answer:

99.235.14.72.in-addr.arpa       name = tw-in-f99.google.com.   Authoritative answers can be found from:

235.14.72.in-addr.arpa  nameserver = ns3.google.com.

235.14.72.in-addr.arpa  nameserver = ns1.google.com.

235.14.72.in-addr.arpa  nameserver = ns4.google.com.

235.14.72.in-addr.arpa  nameserver =

ns2.google.com.

ns1.google.com  internet address = 216.239.32.10

ns2.google.com  internet address = 216.239.34.10

ns3.google.com  internet address = 216.239.36.10

ns4.google.com  internet address = 216.239.38.10

 2.dig命令

dig(域信息搜索器)命令是一個(gè)用于詢問DNS域名服務(wù)器的靈活的工具。它執(zhí)行DNS搜索,顯示從受請(qǐng)求的域名服務(wù)器返回的答復(fù)。多數(shù)DNS管理員利用dig作為DNS問題的故障診斷,因?yàn)樗`活性好、易用、輸出清晰。雖然通常情況下dig使用命令行參數(shù),但它也可以按批處理模式從文件讀取搜索請(qǐng)求。不同于早期版本,dig的BIND9實(shí)現(xiàn)允許從命令行發(fā)出多個(gè)查詢。除非被告知請(qǐng)求特定域名服務(wù)器,dig將嘗試/etc/resolv.conf中列舉的所有服務(wù)器。當(dāng)未指定任何命令行參數(shù)或選項(xiàng)時(shí),dig將對(duì)“.”(根)執(zhí)行NS查詢。

值得一提的是:dig命令比nslookup命令獲取的信息更加詳細(xì)和全面,因此在Linux下建議用戶采用該命令替代nslookup命令進(jìn)行查詢和驗(yàn)證DNS的功能(nslookup命令運(yùn)行中也提供了“Note: nslookup is deprecated and may be removed from future releases.Consider using the `dig' or `host' programs instead.”字樣進(jìn)行提示)。

另外,鑒于dig命令的強(qiáng)大功能,它提供了幾十個(gè)參數(shù)選項(xiàng)供用戶使用,具體情況可以使用man命令進(jìn)行查閱,這不是本專題的重點(diǎn)內(nèi)容,下面僅僅給出2個(gè)例子來進(jìn)行簡單演示和說明:

(1)運(yùn)行dig命令獲得根DNS信息

#dig
 ; <<>> DiG 9.2.1 <<>>

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 41868

;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14
 
;; QUESTION SECTION:

;.                              IN      NS
 ;; ANSWER SECTION:

.                       290515  IN      NS      K.ROOT-SERVERS.NET.

.                       290515  IN      NS      J.ROOT-SERVERS.NET.

.                       290515  IN      NS      D.ROOT-SERVERS.NET.

.                       290515  IN      NS      M.ROOT-SERVERS.NET.

.                       290515  IN      NS      C.ROOT-SERVERS.NET.

.                       290515  IN      NS      G.ROOT-SERVERS.NET.

.                       290515  IN      NS      A.ROOT-SERVERS.NET.

.                       290515  IN      NS      E.ROOT-SERVERS.NET.

.                       290515  IN      NS      H.ROOT-SERVERS.NET.

.                       290515  IN      NS      F.ROOT-SERVERS.NET.

.                       290515  IN      NS      L.ROOT-SERVERS.NET.

.                       290515  IN      NS      B.ROOT-SERVERS.NET.

.                       290515  IN      NS      I.ROOT-SERVERS.NET. 

;; ADDITIONAL SECTION:

D.ROOT-SERVERS.NET.     109756  IN      A       128.8.10.90

E.ROOT-SERVERS.NET.     109756  IN      A       192.203.230.10

F.ROOT-SERVERS.NET.     282557  IN      A       192.5.5.241

F.ROOT-SERVERS.NET.     282557  IN      AAAA    2001:500:2f::f

G.ROOT-SERVERS.NET.     109756  IN      A       192.112.36.4

H.ROOT-SERVERS.NET.     539017  IN      A       128.63.2.53

H.ROOT-SERVERS.NET.     541758  IN      AAAA    2001:500:1::803f:235

I.ROOT-SERVERS.NET.     109756  IN      A       192.36.148.17

J.ROOT-SERVERS.NET.     452944  IN      A       192.58.128.30

J.ROOT-SERVERS.NET.     455358  IN      AAAA    2001:503:c27::2:30

K.ROOT-SERVERS.NET.     103767  IN      A       193.0.14.129

L.ROOT-SERVERS.NET.     103467  IN      A       199.7.83.42

L.ROOT-SERVERS.NET.     103467  IN      AAAA    2001:500:3::42

M.ROOT-SERVERS.NET.     109072  IN      A       202.12.27.33
 
;; Query time: 50 msec

;; SERVER: 10.2.13.18#53(10.2.13.18)

;; WHEN: Wed Apr 15 06:39:20 2009

;; MSG SIZE  rcvd: 500

(2)正向解析域名www.google.com

#dig www.google.com
 
; <<>> DiG 9.2.1 <<>> www.google.com

;; global options:  printcmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53325

;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 7, ADDITIONAL: 7
 ;; QUESTION SECTION:

;www.google.com.                        IN      A ;; ANSWER SECTION:

www.google.com.         600893  IN      CNAME   www.l.google.com.

www.l.google.com.       292     IN      CNAME   www-china.l.google.com.

www-china.l.google.com. 81      IN      A       72.14.235.99

www-china.l.google.com. 81      IN      A       72.14.235.104

www-china.l.google.com. 81      IN      A       72.14.235.147 ;; AUTHORITY SECTION:

l.google.com.           78559   IN      NS      a.l.google.com.

l.google.com.           78559   IN      NS      b.l.google.com.

l.google.com.           78559   IN      NS      d.l.google.com.

l.google.com.           78559   IN      NS      f.l.google.com.

l.google.com.           78559   IN      NS      c.l.google.com.

l.google.com.           78559   IN      NS      e.l.google.com.

l.google.com.           78559   IN      NS      g.l.google.com. ;; ADDITIONAL SECTION:

g.l.google.com.         66906   IN      A       74.125.95.9

a.l.google.com.         559     IN      A       209.85.139.9

b.l.google.com.         79061   IN      A       74.125.45.9

c.l.google.com.         64857   IN      A       64.233.161.9

d.l.google.com.         72926   IN      A       74.125.77.9

e.l.google.com.         65021   IN      A       209.85.137.9

f.l.google.com.         64805   IN      A       72.14.235.9
 
;; Query time: 21 msec

;; SERVER: 10.2.13.18#53(10.2.13.18)

;; WHEN: Wed Apr 15 06:28:57 2009

;; MSG SIZE  rcvd: 348

#p#

五、配置輔助域名服務(wù)器進(jìn)行冗余備份

輔助服務(wù)器可從主服務(wù)器中復(fù)制一整套域信息。區(qū)文件是從主服務(wù)器中復(fù)制出來的,并作為本地磁盤文件存儲(chǔ)在輔助服務(wù)器中。這種復(fù)制稱為“區(qū)文件復(fù)制”。在輔助域名服務(wù)器中有一個(gè)所有域信息的完整拷貝,可以有權(quán)威地回答對(duì)該域的查詢。因此,輔助域名服務(wù)器也稱作權(quán)威性服務(wù)器。配置輔助域名服務(wù)器不需要生成本地區(qū)文件,因?yàn)榭梢詮闹鞣?wù)器中下載該區(qū)文件。

輔助服務(wù)器的配置與主服務(wù)器的配置不同,它使用slave語句代替master語句。slave語句指向用作域信息源的遠(yuǎn)程服務(wù)器,以替代本地磁盤文件。下面的named.conf文件可以配置cmpbook.com域的輔助服務(wù)器:

// generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

//

// a caching only nameserver config

//

zone "." {

type hint;

file "named.ca";

};

zone "0.0.127.in-addr.arpa" {

type master;

file "named.local";

};

zone "cmpbook.com"{

type slave;

file "named.hosts";

masters {211.132.10.3;};

};

zone "132.211.in-addr.arpa"{

type slave;

file "named.rev";

masters {211.132.10.3;};

};

cache . named.ca

secondary vbrew.com 211.132.10.3 named.hosts

secondary 132.211.in-addr.arpa 211.132.10.3 named.rev

primary 0.0.127.in-addr.arpa named.local

第一個(gè)slave語句是使這個(gè)服務(wù)器成為vbrew.com的輔助服務(wù)器。它告訴named從IP地址為211.132.10.3的服務(wù)器中下載cmpbook.com的信息,并將其數(shù)據(jù)保存在/var/named/named.hosts文件中。如果該文件不存在,named就創(chuàng)造一個(gè),并從遠(yuǎn)程服務(wù)器中取得區(qū)數(shù)據(jù),然后將這些數(shù)據(jù)寫入新創(chuàng)建的文件中。如果存在該文件,named就要檢查遠(yuǎn)程服務(wù)器,以了解該遠(yuǎn)程服務(wù)器的數(shù)據(jù)是否不同于該文件中的數(shù)據(jù),如果數(shù)據(jù)有變化,它就下載更新后的數(shù)據(jù),用新數(shù)據(jù)覆蓋該文件的內(nèi)容;如果數(shù)據(jù)沒有變化,named就加載磁盤文件的內(nèi)容,不必做麻煩的區(qū)轉(zhuǎn)移工作。將一個(gè)數(shù)據(jù)庫拷貝到本地磁盤文件中,就不必每次引導(dǎo)主機(jī)時(shí)都要轉(zhuǎn)移區(qū)文件;只有當(dāng)數(shù)據(jù)修改時(shí),才進(jìn)行這種區(qū)文件的轉(zhuǎn)移工作。該配置文件中的下一行表示該本地服務(wù)器也是反向域132.211.in-addr.arpa的一個(gè)輔助服務(wù)器,而且該域的數(shù)據(jù)也從211.132.10.3中下載。該反向域的數(shù)據(jù)存儲(chǔ)在named.rev中。 #p#

六、配置高速緩存服務(wù)器緩解DNS訪問壓力

高速緩存服務(wù)器可運(yùn)行域名服務(wù)器軟件,但是沒有域名數(shù)據(jù)庫軟件。它從某個(gè)遠(yuǎn)程服務(wù)器取得每次域名服務(wù)器查詢的結(jié)果,一旦取得一個(gè),就將它放在高速緩存中,以后查詢相同的信息時(shí)就用它予以回答。高速緩存服務(wù)器不是權(quán)威性服務(wù)器,因?yàn)樗峁┑乃行畔⒍际情g接信息。對(duì)于高速緩存服務(wù)器只需要配置一個(gè)高速緩存文件,但最常見的配置還包括一個(gè)回送文件,這或許是最常見的域名服務(wù)器配置。

配置高速緩存域名服務(wù)器是很簡單的。必須有named.conf和named.ca文件,通常也要用到named.local文件。下面是用于高速緩存服務(wù)器的named.conf文件的例子:

// generated by named-bootconf.pl

options {

directory "/var/named";

/*

* If there is a firewall between you and nameservers you want

* to talk to, you might need to uncomment the query-source

* directive below. Previous versions of BIND always asked

* questions using port 53, but BIND 8.1 uses an unprivileged

* port by default.

*/

// query-source address * port 53;

};

// a caching only nameserver config

//

// a caching only nameserver config

//

zone "." {

type hint;

file "named.ca";

};

zone "0.0.127.in-addr.arpa" {

type master;

file "named.local";

directory這一行告訴named到哪里去找尋文件。所有其后命名的文件都將是相對(duì)于此目錄的。該文件告訴named去維持一個(gè)域名服務(wù)器響應(yīng)的高速緩存,并利用named.ca文件的內(nèi)容去初始化該高速緩存。該高速緩存初始化文件的名字可以是任何名字,但一般使用/var/named/named.ca。值得注意的是:如上的示例并不是表明在該文件中僅僅使用一個(gè)hint語句就能完成高速緩存配置,事實(shí)上是幾乎每一種服務(wù)器的配置都要用到cache語句。在一些個(gè)別情況下,如果在配置中沒有出現(xiàn)master和slave語句,則可以認(rèn)為它就是一個(gè)高速緩存配置。

但是,在我們這個(gè)例子中卻有一個(gè)master語句。事實(shí)上,幾乎在每一個(gè)高速緩存的配置文件中都有這一個(gè)語句,它將本地服務(wù)器定義為它自己的回送域的主服務(wù)器,并假定該域的信息存儲(chǔ)在named.local文件中。這個(gè)回送域是一個(gè)in-addr.arpa域(in-addr.arpa域用于指定逆向解析,或IP地址到DNS名字解析),它將地址127.0.0.1映射為名字localhost。轉(zhuǎn)換自己的回送地址對(duì)于大多數(shù)人都是有意義的,因?yàn)榇蠖鄶?shù)的named.conf文件都包含這一項(xiàng)。

在大多數(shù)高速緩存服務(wù)器的配置文件中,這種directory、master和hint語句是唯一使用的語句,但也可以增加其他的語句,forwarders和slave等語句都可以使用。

七、配置DNS負(fù)載均衡

DNS負(fù)載均衡技術(shù)是在DNS服務(wù)器中為同一個(gè)主機(jī)名配置多個(gè)IP地址,在應(yīng)答DNS查詢時(shí),DNS服務(wù)器對(duì)每個(gè)查詢將以DNS文件中主機(jī)記錄的IP地址按順序返回不同的解析結(jié)果,將客戶端的訪問引導(dǎo)到不同的機(jī)器上去,使得不同的客戶端訪問不同的服務(wù)器,從而達(dá)到負(fù)載均衡的目的。

根據(jù)我們?cè)谏厦娼榻B的區(qū)文件的相關(guān)知識(shí)可以滿足DNS負(fù)載均衡的要求,我們通過下面的例子來進(jìn)行介紹。

現(xiàn)假設(shè)有三臺(tái)服務(wù)器來應(yīng)對(duì)www.cmpbook.com的請(qǐng)求。在采用Linux系統(tǒng)上實(shí)現(xiàn)起來比較簡單,只需在該域區(qū)文件的數(shù)據(jù)記錄中添加類似下面的資源記錄即可:

www1  IN  A  210.113.1.1

www2  IN  A  210.113.1.2

www3  IN  A  210.113.1.3

www   IN  CNAME  www1

www   IN  CNAME  www2

www   IN  CNAME  www3

上述六條資源記錄的具體含義為:在DNS服務(wù)器中為www.cmpbook.com設(shè)定了三臺(tái)服務(wù)器響應(yīng)客戶的訪問請(qǐng)求。這三臺(tái)服務(wù)器分別為www1、www2和www3,而他們均為www服務(wù)器的別名。因此,在訪問www服務(wù)器時(shí),DNS服務(wù)器將依次循環(huán)地將訪問請(qǐng)求均衡到三臺(tái)服務(wù)器中去,以達(dá)到負(fù)載均衡的目的。

【51CTO.COM 獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明出處及作者!】

責(zé)任編輯:許鳳麗 來源: 51CTO.com
相關(guān)推薦

2020-11-23 15:21:12

Linux環(huán)境變量

2020-12-28 10:50:09

Linux環(huán)境變量命令

2009-11-20 15:02:06

2024-10-25 15:25:42

2011-01-11 14:30:29

企業(yè)內(nèi)網(wǎng)開發(fā)環(huán)境

2020-11-30 13:07:20

Linux環(huán)境變量命令

2013-04-15 10:48:16

Xcode ARC詳解iOS ARC使用

2024-05-07 09:01:21

Queue 模塊Python線程安全隊(duì)列

2013-06-08 11:13:00

Android開發(fā)XML解析

2010-04-23 14:04:23

Oracle日期操作

2014-03-19 17:22:33

2009-10-19 15:20:01

家庭綜合布線

2009-12-14 14:32:38

動(dòng)態(tài)路由配置

2009-02-20 11:43:22

UNIXfish全攻略

2010-05-26 11:22:08

2010-03-12 15:00:52

Python中

2013-05-22 10:00:30

iOSWeb Appicon

2009-02-12 10:12:00

NAT配置

2009-07-17 17:43:49

Jruby開發(fā)Web

2009-11-10 12:08:15

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)