2.6 DNS的客戶端
在Linux中,DNS是由BIND(Berkeley Internet Name Domain,伯克萊網(wǎng)間域名)軟件實(shí)現(xiàn)的。BIND是一個(gè)c/s系統(tǒng)。
1.客戶端產(chǎn)生對(duì)IP與主機(jī)名解析的需求
DNS的客戶端部分被叫作轉(zhuǎn)換程序(resolver),負(fù)責(zé)產(chǎn)生域名查詢信息,即向域名服務(wù)器獲得域名解析/反解析服務(wù),將這類信息發(fā)送給服務(wù)器端。轉(zhuǎn)換程序的功能是內(nèi)嵌一些程序,需要通過(guò)它調(diào)用解析庫(kù)。轉(zhuǎn)換程序在功能上是在標(biāo)準(zhǔn)的C語(yǔ)言庫(kù)中執(zhí)行。
2.客戶端將無(wú)法自行解釋的需求,通過(guò)53端口送給指定的DNS服務(wù)器
DNS客戶端和服務(wù)器端在大多數(shù)情況中使用UDP包通信。UDP通信是迅速的,但包的大小不能比512bytes大。希望DNS查詢或者服務(wù)器響應(yīng)超過(guò)512bytes,包必須使用減慢的Tcp協(xié)議發(fā)送。
3.DNS客戶端功能上內(nèi)嵌一些程序
轉(zhuǎn)換程序庫(kù)使用兩個(gè)配置文件:/etc/host.conf和/etc/resolv.conf。 host.conf被主要用于指出DNS和hosts文件的原始信息。/etc/resole.conf用于配置搜索行為,指出使用什么名稱的服務(wù)器并且不管任何一個(gè)域被假設(shè)為非完全合格域名。
4.返回來(lái)的數(shù)據(jù)也許并不權(quán)威
如果域名服務(wù)器響應(yīng)一個(gè)查詢是有查詢執(zhí)行權(quán)威的,那么數(shù)據(jù)返回的是權(quán)威的,也有可能,詢問(wèn)可能從域名服務(wù)器的響應(yīng)緩存而來(lái),這種情況中響應(yīng)是非權(quán)威的。DNS客戶端可以或者不可以選擇去訪問(wèn)非權(quán)威信息。
BIND版本9介紹一個(gè)選擇的名稱解析新方法使用lwresd,輕量級(jí)的解析域。這也不太廣泛使用和在這兒不詳述。
在Linux系統(tǒng)上,客戶端一般先檢索本地文件/etc/hosts,如果無(wú)法得到解析,則根據(jù)/etc/resolv.conf決定查詢域名服務(wù)器。然后送出請(qǐng)求。這個(gè)順序可以在/etc/nsswitch.conf文件設(shè)置中更改。