成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

linux9.0 dns配置方法詳細(xì)方法

linux 下dns 配置詳解DNS 的工作原理及過(guò)程分下面幾個(gè)步驟: 第一步:客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器。第二步:當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如

linux 下dns 配置詳解

DNS 的工作原理及過(guò)程分下面幾個(gè)步驟: 第一步:客戶機(jī)提出域名解析請(qǐng)求,并將該請(qǐng)求發(fā)送給本地的域名服務(wù)器。

第二步:當(dāng)本地的域名服務(wù)器收到請(qǐng)求后,就先查詢本地的緩存,如果有該紀(jì)錄項(xiàng),則本地的域名服務(wù)器就直接把查詢的結(jié)果返回。 第三步:如果本地的緩存中沒(méi)有該紀(jì)錄,則本地域名服務(wù)器就直接把請(qǐng)求發(fā)給根域名服務(wù)器,然后根域名服務(wù)器再返回給本地域名服務(wù)器一個(gè)所查詢域(根的子域) 的主域名服務(wù)器的地址。 第四步:本地服務(wù)器再向上一步返回的域名服務(wù)器發(fā)送請(qǐng)求,然后接受請(qǐng)求的服務(wù)器查詢自己的緩存,如果沒(méi)有該紀(jì)錄,則返回相關(guān)的下級(jí)的域名服務(wù)器的地址。

第五步:重復(fù)第四步,直到找到正確的紀(jì)錄。 第六步:本地域名服務(wù)器把返回的結(jié)果保存到緩存,以備下一次使用,同時(shí)還將結(jié)果返回給客戶機(jī)。

讓我們舉一個(gè)例子來(lái)詳細(xì)說(shuō)明解析域名的過(guò)程。假設(shè)我們的客戶機(jī)如果想要訪問(wèn)站點(diǎn): www.element.org , 此客戶本地的域名服務(wù)器是 dns.company.com , 一個(gè)根域名服務(wù)器是 ns.inter.net ,所要訪問(wèn)的網(wǎng)站的域名服務(wù)器是 dns.element.org ,域名解析的過(guò)程如下所示: 客戶機(jī)發(fā)出請(qǐng)求解析域名 www.element.org 的報(bào)文;

本地的域名服務(wù)器收到請(qǐng)求后,查詢本地緩存,假設(shè)沒(méi)有該紀(jì)錄,則本地域名服務(wù)器 dns.company.com 則向根域名服務(wù)器 ns.inter.net 發(fā)出請(qǐng)求解析域名 www.element.org ;

根域名服務(wù)器 ns.inter.net 收到請(qǐng)求后查詢本地記錄得到如下結(jié)果:element.org NS dns.element.org (表示 element.org 域中的域名服務(wù)器為:dns.element.org ),同時(shí)給出 dns.element.org 的地址,并將結(jié)果返回給域名服務(wù)器 dns.company.com ;

域名服務(wù)器 dns.company.com 收到回應(yīng)后,再發(fā)出請(qǐng)求解析域名 www.element.org 的報(bào)文;

域名服務(wù)器 dns.element.org 收到請(qǐng)求后,開始查詢本地的記錄,找到如下一條記錄: www.element.org A 211.120.3.12 (表示 element.org 域中域名服務(wù)器 dns.element.org 的IP 地址為:211.120.3.12),并將結(jié)果返回給客戶本地域名服務(wù)器 dns.company.com ;

客戶本地域名服務(wù)器將返回的結(jié)果保存到本地緩存,同時(shí)將結(jié)果返回給客戶機(jī)。

這樣就完成了一次域名解析過(guò)程。 linux 下dns 配置詳解 dns 配置詳解大全 DNS 簡(jiǎn)介

在Linux 中,域名服務(wù)(DNS )是由柏克萊網(wǎng)間名域(Berkeley Internet Name Domain ——BIND )軟件實(shí)現(xiàn)的。BIND 是一個(gè)客戶/服務(wù)系統(tǒng),它的客戶方面稱為轉(zhuǎn)換程序(resolver ),它產(chǎn)生域名信息的查詢,將這類信息發(fā)送給服務(wù)器,DNS 軟件回答轉(zhuǎn)換程序的查詢。BIND 的服務(wù)方面是一個(gè)稱為named (讀作“name”“d”)的守護(hù)進(jìn)程。 我們將討論三種基本BIND 配置任務(wù): 配置BIND 轉(zhuǎn)換程序。 配置BIND 域名服務(wù)。

建立服務(wù)器數(shù)據(jù)庫(kù)文件,稱為“區(qū)文件(zone file)。 前面我們介紹過(guò),術(shù)語(yǔ)“區(qū)(zone )”往往可以與單詞“域(domain )”互換使用,但這里卻有一些區(qū)別,“區(qū)”是指域數(shù)據(jù)庫(kù)文件,而“域”則比較通用。在本書中,域是用域名定義的域結(jié)構(gòu)中的一部分,而區(qū)則是域數(shù)據(jù)庫(kù)文件中包含域信息的集合,包含域信息的文件稱為“區(qū)文件”。

DNS 的作用是把IP 地址轉(zhuǎn)化為代表主機(jī)、網(wǎng)絡(luò)和郵件別名的助記名。它把整個(gè)Internet IP 地址和名字空間分解為不同的邏輯組來(lái)做這項(xiàng)工作。每個(gè)組對(duì)它所擁有的計(jì)算機(jī)和其他信息具有控制權(quán)。 DNS 服務(wù)器的類型

BIND 可以配置成以幾種不同的方法運(yùn)行的DNS ,常見(jiàn)的BIND 配置是唯轉(zhuǎn)換程序系統(tǒng)、唯高速緩存系統(tǒng)、主服務(wù)器和輔助服務(wù)器。 轉(zhuǎn)換程序是一段要求域名服務(wù)器提供域信息的程序,在Linux 系統(tǒng)中,它是作為一個(gè)庫(kù)程序來(lái)實(shí)現(xiàn)的,不是一個(gè)單獨(dú)的客戶程序。在唯轉(zhuǎn)換程序系統(tǒng)中,僅使用轉(zhuǎn)換程序,并不運(yùn)行域名服務(wù)器。這種系統(tǒng)是很容易配置的,最多只需要設(shè)置/etc/resolv.conf文件。其它三個(gè)BIND 配置選項(xiàng)都是用于named 服務(wù)軟件的。

唯高速緩存服務(wù)器 唯高速緩存服務(wù)器(caching-only server)可運(yùn)行域名服務(wù)器軟件但是沒(méi)有域名數(shù)據(jù)庫(kù)軟件。它從某個(gè)遠(yuǎn)程服務(wù)器取得每次域名服務(wù)器查詢的回答,一旦取得一個(gè)答案,就將它放在高速緩存中,以后查詢相同的信息時(shí)就用它予以回答。所有的域名服務(wù)器都按這種方式使用高速緩存中的信息,但唯高速緩存服務(wù)器則依賴于這一技術(shù)提供所有的域名服務(wù)器信息。唯高速緩存服務(wù)器不是權(quán)威性服務(wù)器,因?yàn)樗峁┑乃行畔⒍际情g接信息。

對(duì)于唯高速緩存服務(wù)器只需要配置一個(gè)高速緩存文件,但最常見(jiàn)的配置還包括一個(gè)回送文件,這或許是最常見(jiàn)的域名服務(wù)器配置。接著才是唯轉(zhuǎn)換程序配置,它是最容易配置的。

主服務(wù)器 主服務(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ì)它域的任何查詢。

配置主服務(wù)器需要一整套配置文件,包括正規(guī)域的區(qū)文件(named.hosts )和反向域的區(qū)文件(named.rev )、引導(dǎo)文件(named.conf )、高速緩存(named.ca )和回送文件(named.local ),其它的配置都不需要這樣一整套文件。

輔助域名服務(wù)器 輔助域名服務(wù)器(secondary name server)可從主服務(wù)器中轉(zhuǎn)移一整套域信息。區(qū)文件是從主服務(wù)器中轉(zhuǎn)移出來(lái)的,并作為本地磁盤文件存儲(chǔ)在輔助服務(wù)器中。這種轉(zhuǎn)移稱為“區(qū)文件轉(zhuǎn)移”。在輔助域名服務(wù)器中有一個(gè)所有域信息的完整拷貝,可以有權(quán)威地回答對(duì)該域的查詢,因此,輔助域名服務(wù)器也稱作權(quán)威性服務(wù)器。 配置輔助域名服務(wù)器不需要生成本地區(qū)文件,因?yàn)榭梢詮闹鞣?wù)器中下載該區(qū)文件。然而其它的文件是確是需要的,包括引導(dǎo)文件、高速緩存文件和回送文件。

一個(gè)域名服務(wù)器可以是這類配置中的任何一種,但經(jīng)常是將多種配置類型的元素組合在一起。然而所有的系統(tǒng)都要運(yùn)行轉(zhuǎn)換程序。 DNS 常用術(shù)語(yǔ)

DNS 是一個(gè)很復(fù)雜的概念,表1列出了常用的DNS 術(shù)語(yǔ)。 表1 常用DNS 術(shù)語(yǔ) 術(shù)語(yǔ) 說(shuō)明 域

代表網(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è)DNS 服務(wù)器轉(zhuǎn)化為與其相映的IP 地址的過(guò)程 解析器

從域名服務(wù)器中提取DNS 信息的程序或庫(kù)子程序 反向解析

將給出的IP 地址轉(zhuǎn)化為其相映的DNS 名字 欺騙

使網(wǎng)絡(luò)看上去好象具有不同的IP 地址或域名的行為 在概念上可以把DNS 分為三個(gè)部分:

域名空間 這是標(biāo)識(shí)一組主機(jī)并提供他們的有關(guān)信息的樹結(jié)構(gòu)的詳細(xì)說(shuō)明。樹上的每一個(gè)節(jié)點(diǎn)都有它控制下的主機(jī)的有關(guān)信息的數(shù)據(jù)庫(kù)。查詢命令試圖從這個(gè)數(shù)據(jù)庫(kù)中提取適當(dāng)?shù)男畔?。?jiǎn)單地說(shuō),這只是所有不同類型信息的列表,這些信息是域名、IP 地址、郵件別名和那些在DNS 系統(tǒng)中能查到的內(nèi)容。

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

使用DNS 的第一步是在用戶的計(jì)算機(jī)上配置轉(zhuǎn)換程序,即讓機(jī)器能夠能夠從DNS 服務(wù)器中獲取域名解析/反解析服務(wù)。轉(zhuǎn)換程序不是一個(gè)單獨(dú)而明確的處理進(jìn)程,而是網(wǎng)絡(luò)進(jìn)程調(diào)用的一個(gè)標(biāo)準(zhǔn)C 程序庫(kù)。如果本地系統(tǒng)不運(yùn)行named ,就必須配置本地轉(zhuǎn)換程序。 轉(zhuǎn)換程序控制文件/etc/host.conf

/etc/host.conf是用來(lái)控制本地轉(zhuǎn)換程序的文件的設(shè)置。該文件告訴轉(zhuǎn)換程序使用哪些服務(wù)、按照什么順序進(jìn)行。該文件的字段可以用空格或制表符分隔。字符“#”表示注釋行。表2是可在host.conf 中指定的選項(xiàng)。

表2 /etc/host.conf文件的配置選項(xiàng) 選項(xiàng) 說(shuō)明 order

指定按照哪種順序來(lái)嘗試不同的名字解析機(jī)制。按列出的順序來(lái)進(jìn)行指定的解析服務(wù)。支持下面的名字解析機(jī)制: hosts 試圖通過(guò)查找本地/etc/hosts文件來(lái)解析名字 bind 使用DNS 域名服務(wù)器來(lái)解析名字

nis 使用網(wǎng)絡(luò)信息服務(wù)(NIS )協(xié)議來(lái)解析主機(jī)名字 multi

以off 和on 為參數(shù)。與host 查詢一起使用,用來(lái)確定一臺(tái)主機(jī)是否在/etc/hosts文件中指定了多個(gè)IP 地址 nospoof

如果用逆向解析找出與指定的地址匹配的主機(jī)名,對(duì)返回的地址進(jìn)行解析以確認(rèn)它確實(shí)與您查詢的地址相配。為了防止“騙取”IP地址,通過(guò)指定nospoof on來(lái)允許這種功能 alert

以off 和on 為參數(shù)。如果打開,任何試圖騙取IP 地址的行為都通過(guò)syslog 工具進(jìn)行記錄 trim

以域名為參數(shù)。在/etc/hosts中查找名字前,trim 刪除這個(gè)域名。著使你只把基本主機(jī)名放在/etc/host.conf中而不指定域名 下面這個(gè)例子是主機(jī)vlager 上的/etc/host.conf文件: # /etc/host.conf

# We have named running, but no NIS (yet) order bind hosts

# Allow multiple addrs multi on

# Guard against spoof attempts nospoof on

# Trim local domain (not really necessary). trim vbrew.com.

這個(gè)例子給出了域vbrew.com 的通用解析程序配置。該解析程序首先使用DNS 然后使用/etc/hosts文件查找主機(jī)名。在解析查找中指定本地/etc/hosts文件是一個(gè)好主意。如果由于某種原因不能使用域名服務(wù)器了,我們還可以使用主機(jī)文件中列出的那些主機(jī)名。該機(jī)器上允許使

,

用多個(gè)IP 地址,主機(jī)通過(guò)重新解析主機(jī)名字(從IP 地址逆向查找返回的主機(jī)名字)來(lái)檢查IP 欺騙。 轉(zhuǎn)換程序/配置文件/etc/resolv.conf

當(dāng)配置轉(zhuǎn)換程序使用BIND 域名服務(wù)查詢主機(jī)時(shí),我們必須告訴轉(zhuǎn)換程序使用哪一個(gè)域名服務(wù)器。用來(lái)完成這項(xiàng)任務(wù)的工具就是/etc/resolv.conf文件。/etc/resolv.conf控制轉(zhuǎn)換程序使用DNS 解析主機(jī)名使用的方式,它可以明確地定義系統(tǒng)的配置,允許我們命名由于缺省服務(wù)器不響應(yīng)而使用的備份服務(wù)器。因此,盡管會(huì)增加系統(tǒng)負(fù)荷,但在某些場(chǎng)合使用resolv.conf 是很受歡迎的。

/etc/resolv.conf是一個(gè)簡(jiǎn)單而易讀的文件。在/etc/resov.conf中使用的命令,具有系統(tǒng)專用的形式,但一般都支持domain 和nameserver 兩項(xiàng)命令。

nameserver 項(xiàng)利用IP 地址去識(shí)別讓轉(zhuǎn)換程序去識(shí)別查詢域信息的那些服務(wù)器。我們可以多次使用nameserver 選項(xiàng),可以使用多達(dá)三個(gè)域名服務(wù)器。這些名服務(wù)器是按照它們?cè)谖募械捻樞蜻M(jìn)行查詢的,如果沒(méi)有接收到一個(gè)服務(wù)器的響應(yīng),就去試表中的下一個(gè)服務(wù)器,直到所有服務(wù)器試完為止(如果在/etc/resolv.conf文件中設(shè)置了三個(gè)以上的域名服務(wù)器,那么,即使前三個(gè)服務(wù)器都沒(méi)有響應(yīng)查詢請(qǐng)求,Linux 也不會(huì)去請(qǐng)求后面的服務(wù)器)。我們應(yīng)該將最可靠的域名服務(wù)器列在最前面,以便在查詢時(shí)不會(huì)超時(shí)。如果resolv.conf 文件中不包含nameserver 項(xiàng),或者不存在resolv.conf 文件,就將所有名服務(wù)器查詢發(fā)送給本地主機(jī)。然而,如果有一個(gè)resolv.conf 文件,它包含nameserver 項(xiàng),除非有一項(xiàng)指向本地主機(jī),否則就不查詢本地主機(jī)。在配置唯轉(zhuǎn)換程序的主機(jī)中,resolv.conf 文件包含nameserver 項(xiàng),但沒(méi)有一個(gè)項(xiàng)指向本地主機(jī)。

domain 項(xiàng)用來(lái)定義缺省域名(主機(jī)的本地域名)。轉(zhuǎn)換程序會(huì)將缺省域名掛在任何不含點(diǎn)的主機(jī)名后面。例如,轉(zhuǎn)換程序接收到主機(jī)名vale (它不含點(diǎn)),就將其缺省域名掛接在vale 后面,構(gòu)成對(duì)它的查詢。如果domian 域中的name 值是vbrew.com ,那么轉(zhuǎn)換程序就將查詢vale.vbrew.com 。如果沒(méi)有出它,則轉(zhuǎn)換程序就試圖通過(guò)getdomainname()系統(tǒng)調(diào)用來(lái)獲得本地域名。

如果聽起來(lái)讓人迷惑不解的話,我們可以看看下面這個(gè)例子,這是Virtual Brewery中的resolv.conf 文件: # /etc/resolv.conf # Our domain

domain vbrew.com #

# We use vlager as central nameserver: nameserver 191.72.1.1

在該例中,通過(guò)domain 指定缺省域名,并列出一個(gè)用于解析主機(jī)名的域名服務(wù)器。在這個(gè)例子中沒(méi)有指定查尋順序(使用search 選項(xiàng)),因此如果要查詢一臺(tái)機(jī)器的地址(如vale ),解析器則首先試圖查找vale ,如果沒(méi)找到,則查找vale.vbrew.com ,然后再查找vbrew.com 。 唯轉(zhuǎn)換程序配置

配置唯轉(zhuǎn)換程序是非常簡(jiǎn)單的,下面是一個(gè)唯轉(zhuǎn)換程序的/etc/resolv.conf文件的例子: # /etc/resolv.conf # Our domain

domain vbrew.com #

# We use vlager as central nameserver: nameserver 191.72.1.1 # netx try vale

namesever 191.72.1.3

該配置文件告訴轉(zhuǎn)換程序?qū)⑺械牟樵儼l(fā)送給主域名服務(wù)器vlager ,如果失敗,就試vale 。這些查詢是永遠(yuǎn)不能在本地轉(zhuǎn)換的。這一個(gè)簡(jiǎn)單的resolv.conf 文件就可以滿足唯轉(zhuǎn)換程序配置的全部要求。 設(shè)置域名服務(wù)器

在Linux 上的域名服務(wù)是由named 守護(hù)進(jìn)程來(lái)執(zhí)行的,named 最早是為BSD 向客戶機(jī)提供域名服務(wù)而開發(fā)的。named 守護(hù)進(jìn)程通常在系統(tǒng)啟動(dòng)時(shí)開始工作,并一直工作到系統(tǒng)關(guān)閉。該進(jìn)程從被稱作/etc/named.boot的配置文件中獲取有關(guān)信息和將主機(jī)名映射為IP 地址的各種文件。

為了運(yùn)行named ,只要在命令行中輸入: # /etc/rc.d/init.d/named start

named 就會(huì)開始運(yùn)行,讀取named.boot 文件及其定義的任何區(qū)文件并將它的進(jìn)程ID 以ASCII 碼的形式寫入/var/run/named.pid中,下載任何來(lái)自主服務(wù)器的區(qū)文件,如果有必要的話在端口53等待DNS 請(qǐng)求。 雖然轉(zhuǎn)換程序的配置只需要一個(gè)配置文件, 但是在配置named 時(shí)卻要使用多個(gè)文件, 一整套named 配置文件如表3所示。 表3 named配置文件 配置文件 說(shuō)明

named.conf

設(shè)置一般的named 參數(shù),指向該服務(wù)器使用的域數(shù)據(jù)庫(kù)信息的源, 這類源可以是本地磁盤文件或遠(yuǎn)程服務(wù)器 named.ca

指向根域名服務(wù)器 named.local

用于在本地轉(zhuǎn)換回送地址 named.hosts

將主機(jī)名映射為IP 地址 named.rev

用于反向域的、將IP 地址映射到主機(jī)名的區(qū)文件

在下面各節(jié)中我們將探討如何利用其中的每一個(gè)文件去配置named 。 /etc/named.conf文件

named.conf 文件通常很小,只包括一些指向DNS 信息源的信息。其中某些源是本地文件,其他則是遠(yuǎn)程服務(wù)器。下面我們將看到一個(gè)需要生成的每種文件類型的例子。 表4概括了named.conf 文件中使用的各種配置語(yǔ)句,它提供的信息能幫助我們了解這一些例子:

表4 named.boot文件的配置選項(xiàng) 選項(xiàng) 說(shuō)明 Directory

指定DNS 文件所在的目錄。您可以重復(fù)此選項(xiàng)以指定幾個(gè)不同的目錄??梢越o出這些目錄相關(guān)的文件路徑名 Master

以一個(gè)域名和一個(gè)文件名為參數(shù)。此選項(xiàng)聲明named 對(duì)指定的域具有控制權(quán),并使named 從指定的區(qū)域加載信息 Hint

為named 建立高速緩存信息。以一個(gè)域名和一個(gè)文件名為參數(shù)。域名通常用“.”指定。指定的文件包括一組稱為服務(wù)器提示的記錄,這些記錄列出了根域名服務(wù)器的信息 Forwarders

以一個(gè)域名服務(wù)器的列表作為參數(shù)。告訴本地域名服務(wù)器:如果它不能從它的本地信息中解析出地址,那么就與該列表中的服務(wù)器聯(lián)系 Slave

把本地域名服務(wù)器變成一個(gè)從屬服務(wù)器。如果給出了此選項(xiàng),那么本地服務(wù)器就試著通過(guò)遞歸查詢來(lái)解析DNS 名字。它只把請(qǐng)求傳遞給forwarders 選項(xiàng)行列出的服務(wù)器中的一個(gè)

配置named.conf 文件所使用的方法,是用來(lái)控制將域名服務(wù)器作為主服務(wù)器、輔助服務(wù)器還是唯高速緩存服務(wù)器的。理解不同配置的最佳方法是討論各種named.conf 的示例文件。 1. 唯高速緩存服務(wù)器

配置唯高速緩存域名服務(wù)器是很簡(jiǎn)單的。必須有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 語(yǔ)句就能使它成為唯高速緩存配置,幾乎每一種服務(wù)器的配置都要用到cache 語(yǔ)句,而是因?yàn)闆](méi)有master 和slave 語(yǔ)句才使它成為一個(gè)唯高速緩存配置。 但是,在我們這個(gè)例子中卻有一個(gè)master 語(yǔ)句。事實(shí)上,幾乎在每一個(gè)唯高速緩存的配置文件中都有這一個(gè)語(yǔ)句,它將本地服務(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 語(yǔ)句是唯一使用的語(yǔ)句,但也可以增加其他的語(yǔ)句,forwarders 和slave 等語(yǔ)句都可以使用。

2. 主服務(wù)器和輔助服務(wù)器的配置

我們虛構(gòu)的vbrew.com 是舉例說(shuō)明主服務(wù)器和輔助服務(wù)器的基礎(chǔ),下面是將vlager 定義為vbrew.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 "vbrew.com"{ type master;

file "named.hosts"; };

zone "0.0.127.in-addr.arpa" { type master;

file "named.local"; };

zone "72.191.in-addr.arpa"{ type master; file "named.rev"; };

上例中第一個(gè)master 告訴我們這是vbrew.com 域的主服務(wù)器。該域的數(shù)據(jù)是從named.hosts 文件中加載的。在我們這個(gè)例子中,我們將文件名named.hosts 作為區(qū)文件名,但也可以使用更有說(shuō)明性的文字,例如,vbrew.com 區(qū)文件的名字使用vbrew.com.hosts 則較好。

第三個(gè)master 語(yǔ)句指向能將IP 地址191.72.0.0映射為主機(jī)名的文件。它假定本地服務(wù)器是反向域72.191.in-addr.arpa 的主服務(wù)器,該域的數(shù)據(jù)從文件named.rev 中加載。

在上例配置中的hint 語(yǔ)句和第二個(gè)用于回送域的primary 語(yǔ)句我們前面在唯高速緩存配置中已經(jīng)討論過(guò)。在這些配置中,它們的作用是相同的,而且?guī)缀踉谌魏闻渲弥卸家褂盟鼈儭?/p>

輔助服務(wù)器的配置與主服務(wù)器的配置不同,它使用slave 語(yǔ)句代替master 語(yǔ)句。slave 語(yǔ)句指向用作域信息源的遠(yuǎn)程服務(wù)器,以替代本地磁盤文件。下面的named.conf 文件可以將vale 配置成為vbrew.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 "vbrew.com"{ type slave;

file "named.hosts"; masters { 191.72.1.3; }; };

zone "72.191.in-addr.arpa"{ type slave;

file "named.rev";

masters {191.72.1.3;}; };

cache . named.ca

secondary vbrew.com 191.72.1.3 named.hosts

secondary 72.191.in-addr.arpa 191.72.1.3 named.rev primary 0.0.127.in-addr.arpa named.local

第一個(gè)slave 語(yǔ)句是使這個(gè)服務(wù)器成為vbrew.com 的輔助服務(wù)器。它告訴named 從IP 地址為191.72.1.3的服務(wù)器中下載vbrew.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ù)沒(méi)有變化,named 就加載磁盤文件的內(nèi)容,不必做麻煩的區(qū)轉(zhuǎn)移工作。

將一個(gè)數(shù)據(jù)庫(kù)拷貝到本地磁盤文件中,就不必每次引導(dǎo)主機(jī)時(shí)都要轉(zhuǎn)移區(qū)文件;只有當(dāng)數(shù)據(jù)修改時(shí),才進(jìn)行這種區(qū)文件的轉(zhuǎn)移工作。 該配置文件中的下一行表示該本地服務(wù)器也是反向域72.191.in-addr.arpa 的一個(gè)輔助服務(wù)器,而且該域的數(shù)據(jù)也從191.72.1.3中下載。該反向域的數(shù)據(jù)存儲(chǔ)在named.rev 中。 DNS 數(shù)據(jù)庫(kù)文件和資源記錄

配置named 所需的所有文件(named.hosts 、named.rev 、named.local 和named.ca )中的信息是以稱為資源記錄的形式存在的。每個(gè)資源記錄都有一個(gè)類型,這個(gè)類型說(shuō)明記錄的功能。這些記錄都是標(biāo)準(zhǔn)資源記錄,稱為RR (resource records)。表5列出了最常見(jiàn)的資源記錄類型,其余的類型很少用到,如果感興趣的話。請(qǐng)參考相應(yīng)的RFC 和man page 。

表5 常見(jiàn)標(biāo)準(zhǔn)資源記錄 資源記錄名 記錄類型 功能說(shuō)明 地址 A

將主機(jī)名轉(zhuǎn)換為地址。這個(gè)字段保存以點(diǎn)分隔的十進(jìn)制形式的IP 地址。任何給定的主機(jī)都只能有一個(gè)A 記錄,因?yàn)檫@個(gè)記錄被認(rèn)為是授權(quán)信息。這個(gè)主機(jī)的任何附加地址名或地址映射必須用CNAME 類型給出 規(guī)范名 CNAME

給定一個(gè)主機(jī)的別名,主機(jī)的規(guī)范名字是在這個(gè)主機(jī)的A 記錄中指定的

主機(jī)信息 HINFO

描述主機(jī)的硬件和操作系統(tǒng) 郵件交換 MX

建立郵件交換器記錄。MX 記錄告訴郵件傳送進(jìn)程把郵件送到另一個(gè)系統(tǒng),這個(gè)系統(tǒng)知道如何將它遞送到它的最終目的地 名服務(wù)器 NS

標(biāo)識(shí)一個(gè)域的域名服務(wù)器。NS 資源記錄的數(shù)據(jù)字段包括這個(gè)域名服務(wù)器的DNS 名。我們還需要指定這個(gè)名字名字服務(wù)器的地址與主機(jī)名相匹配的A 記錄 指針 PTR

將地址變換成主機(jī)名。主機(jī)名必須是規(guī)范主機(jī)名 管理開始 SOA

告訴域名服務(wù)器它后面跟著的所有所有資源記錄是控制這個(gè)域的(SOA )表示授與控制權(quán))。其數(shù)據(jù)字段用()括起來(lái)并且通常是多行字段。SOA 記錄的數(shù)據(jù)字段包含下面的項(xiàng): origin

這個(gè)域的主域名服務(wù)器的規(guī)范主機(jī)名。用點(diǎn)“.” 結(jié)尾的絕對(duì)主機(jī)名,因此,它不能被named 守護(hù)進(jìn)程修改 contact

負(fù)責(zé)維護(hù)這個(gè)域的人的電子郵件聯(lián)系地址。因?yàn)锧在資源記錄中有特殊的意義,所以用點(diǎn)“.”代替這個(gè)符號(hào)。如果負(fù)責(zé)維護(hù)vbrew.com 的人是clfls ,那么聯(lián)系地址就是clfls.vbrew.com serial

這個(gè)區(qū)信息文件的版本號(hào),它是一個(gè)整數(shù)。輔助域名服務(wù)器用它來(lái)確定這個(gè)區(qū)信息的文件是何時(shí)改變的。每次改變信息文件時(shí)都應(yīng)該使這個(gè)數(shù)加一 refresh

輔助域名服務(wù)器在試圖檢查主域名服務(wù)器的SOA 記錄之前應(yīng)等待的秒數(shù)。SOA 記錄不經(jīng)常改變,因此可以把這個(gè)值設(shè)置為一天 retry

輔助服務(wù)器在主服務(wù)器不能使用時(shí),重試對(duì)主服務(wù)器的請(qǐng)求應(yīng)等待的秒數(shù)。通常,它應(yīng)該按分進(jìn)行設(shè)置 expire

這是輔助服務(wù)器在不能與主服務(wù)器取得聯(lián)系的情況下丟掉區(qū)信息之前應(yīng)等待的秒數(shù),一般應(yīng)該設(shè)置成30天左右 minimum

當(dāng)沒(méi)有指定ttl 資源記錄時(shí)默認(rèn)的ttl 值。如果網(wǎng)絡(luò)沒(méi)有太大的變化,那么這個(gè)數(shù)可以設(shè)得很大??梢栽谫Y源記錄中指定一個(gè)ttl 值來(lái)代替它 為了能看懂本章中使用的配置示例文件,有必要稍微介紹以下資源記錄的結(jié)構(gòu)。DNS 資源記錄的格式是: [domain] [ttl] [class] type rdate

各個(gè)字段之間有空格或指標(biāo)符分隔。表6討論了這些字段的含義。 表6 資源記錄格式中的字段 字段 說(shuō)明 domain

資源記錄引用的域?qū)ο竺?。它可以是單臺(tái)主機(jī),也可以是整個(gè)域。作為domain 輸入的字串除非不是以一個(gè)點(diǎn)結(jié)束,否則就與當(dāng)前域有關(guān)系。如果該domain 字段是空的,那么該記錄適用于最后一個(gè)帶名字的域?qū)ο? ttl

生存時(shí)間記錄字段。它以秒為單位定義該資源記錄中的信息存放在高速緩存中的時(shí)間長(zhǎng)度。通常該字段是空字段,這表示使用SOA 記錄中為整個(gè)區(qū)域設(shè)置的缺省ttl class

指定網(wǎng)絡(luò)的地址類。對(duì)于TCP/IP網(wǎng)絡(luò)使用IN 。如果沒(méi)有給出類,就使用前一個(gè)資源記錄的類 type

標(biāo)識(shí)這是哪一類資源記錄 rdata

指定與這個(gè)資源記錄有關(guān)的數(shù)據(jù)。這個(gè)值是必要的。數(shù)據(jù)字段的格式取決于類型字段的內(nèi)容 named.ca 文件

named.boot 文件中的cache 語(yǔ)句指向一個(gè)高速緩存初始化文件,具有高速緩存的服務(wù)器都有這樣一個(gè)文件。它包含著域名服務(wù)器啟動(dòng)時(shí)開始創(chuàng)造一個(gè)域數(shù)據(jù)高速緩存所需的信息。在cache 語(yǔ)句中,用一個(gè)指點(diǎn)其根域,在named.ca 文件中至少包含根服務(wù)器的名字和地址。named 的高速緩存操作是很重要的。幸運(yùn)的是,建立高速緩存的named.ca 文件通常是最簡(jiǎn)單的named 配置文件。

基本的named.ca 文件包含根服務(wù)器的NS 記錄和提供根服務(wù)器地址的A 記錄。下面就是基本的named.ca 文件:

,

; named.ca file

; servers for the root domain

. 99999999 IN NS NS.NIC.DDN.MIL. 99999999 IN NS NS.NASA.GOV.

99999999 IN NS KAVA.NISC.SRI.COM. 99999999 IN NS TERP.UMD.EDU. 99999999 IN NS C.NYSER.NET. 99999999 IN NS NS.INTERNIC.NET. ;

; root servers by address ;

NS.NIC.DDN.MIL. 99999999 IN A 199.112.36.4 NS.NASA.GOV. 99999999 IN A 128.102.16.10

KAVA.NISC.SRI.COM. 99999999 IN A 192.33.33.24 TERP.UMD.EDU. 99999999 IN A 128.8.10.90 C.NYSER.NET. 99999999 IN A 192.33.4.12 NS.INTERNIC.NET. 99999999 IN A 198.41.0.4

該記錄只包含各服務(wù)器記錄和地址記錄。首先是一組標(biāo)識(shí)根(. )域的各服務(wù)器的NS 記錄,在NS 記錄之后,是一組為每個(gè)根服務(wù)器提供地址的A 記錄。雖然不需要ttl ,但習(xí)慣上每個(gè)記錄的ttl 是99999999(可能的最大值)。因?yàn)楦?wù)器是永遠(yuǎn)不會(huì)從高速緩存中刪除的。 named.local 文件

named.local 文件可以將回送地址127.0.0.1轉(zhuǎn)換成本地主機(jī)名,它是反向域0.0.127.IN-ADDR.ARPA 使用的區(qū)文件. 由于所有系統(tǒng)都將127.0.0.1作為回送地址,該文件實(shí)際上對(duì)于每一個(gè)系統(tǒng)都是相同的。下面是從vlager 上獲取的一個(gè)典型的named.local 文件: ;

; /var/named/named.local Reverse mapping of 127.0.0 ; Origin is 0.0.127.in-addr.arpa. ;

@ IN SOA vlager.vbrew.com. ( joe.vbrew.com. 1 ; serial

360000 ; refresh: 100 hrs 3600 ; retry: one hour 3600000 ; expire: 42 days 360000 ; minimum: 100 hrs )

IN NS vlager.vbrew.com. 1 IN PTR localhost.

其中的SOA 記錄的數(shù)據(jù)字段和包含主機(jī)名的NS 記錄是隨系統(tǒng)不同而不同的。本例中SOA 記錄將vlager.vbrew.com 標(biāo)識(shí)為開創(chuàng)該區(qū)的服務(wù)器,將電子郵件地址joe.vbrew.com 標(biāo)識(shí)為解決該區(qū)問(wèn)題的聯(lián)系地點(diǎn)(在SOA 記錄中,通常將電子郵件地址中用來(lái)分隔接收者名字和主機(jī)名的@修改成一個(gè)點(diǎn),其它字段則保持不變)。很多系統(tǒng)甚至不包含NS 記錄,若要用它,就包含計(jì)算機(jī)的主機(jī)名。修改這三個(gè)字段我們就可以在任何主機(jī)中使用這個(gè)文件。

到目前為止我們討論的文件named.boot 、named.ca 和named.local 都是配置唯高速緩存服務(wù)器和輔助服務(wù)器時(shí)所需要的文件。大多數(shù)服務(wù)器將只需要這些文件,而且使用的這些文件在,每一個(gè)服務(wù)器上幾乎都包含相同的信息。

其它的named 配置文件比較復(fù)雜,但是使用這些文件的服務(wù)器數(shù)量比較少,只有主服務(wù)器需要所有的配置文件,而每個(gè)域只有一個(gè)主服務(wù)器。

反向域文件named.rev

named.rev 與named.host 文件非常類似,都包含有PTR 記錄,只是named.rev 將地址映射為主機(jī)名。下面是named.rev 的一個(gè)例子。 ;

; /var/named/named.rev Reverse mapping of our IP addresses ; Origin is 72.191.in-addr.arpa. ;

@ IN SOA vlager.vbrew.com. ( joe.vbrew.com. 16 ; serial

86400 ; refresh: once per day 3600 ; retry: one hour 3600000 ; expire: 42 days 604800 ; minimum: 1 week )

IN NS vlager.vbrew.com. ; brewery

1.1 IN PTR vlager.vbrew.com. 2.1 IN PTR vstout.vbrew.com. 3.1 IN PTR vale.vbrew.com. ; winery

1.2 IN PTR vlager-if1.vbrew.com. 2.2 IN PTR vbardolino.vbrew.com. 3.2 IN PTR vchianti.vbrew.com. 4.2 IN PTR vbeaujolais.vbrew.com.

在這個(gè)例子中,包含了在named.hosts 文件中見(jiàn)到的相同的SOA 記錄。它只是為域建立控制信息。該SOA 記錄的名字字段中的@是指向當(dāng)前域,本例是由named.boot 示例文件中的primary 定義的: primary 72.191.in-addr.arpa named.rev

該SOA 記錄中的@允許primary 語(yǔ)句去定義區(qū)文件域,vlager 中每個(gè)區(qū)文件都使用相同一個(gè)SOA 記錄;它總是引用正確的域名,因?yàn)樗玫亩际莕amed.boot 為特定區(qū)文件定義的域。幾乎在每個(gè)區(qū)文件的開頭,我們都可以看到相同的SOA 格式。請(qǐng)修改主機(jī)名vlager.vbrew.com 和管理員電子郵件地址joe.vbrew.com ,并在我們?nèi)魏我粋€(gè)區(qū)文件中使用該SOA 記錄。 在SOA 記錄后面的NS 記錄可以該域的服務(wù)器,一般在其它任何記錄有機(jī)會(huì)去修改域名之前,將立即在SOA 之后列出各域名服務(wù)器。請(qǐng)注意,一個(gè)空的名字字段意味著上一個(gè)域名仍然起作用,SOA 的域應(yīng)用仍然有效,因?yàn)楹竺娴腘S 記錄中的名字段是空的。 PTR 記錄在named.rev 文件中占有重要地位,因?yàn)樗鼈兛梢詫⒌刂忿D(zhuǎn)換為主機(jī)名。在我們的例子中,PTR 記錄為網(wǎng)絡(luò)191.72中的主機(jī)1.1、1.2、1.3、2.1、2.2、2.3和2.4提供地址到名字的轉(zhuǎn)換,由于它們不是以點(diǎn)結(jié)束,所以這些PTR 記錄中名字字段的值都與當(dāng)前域有關(guān)。例如,值3.1可以看作是3.1.72.191.in-addr.arpa 。PTR 記錄的數(shù)據(jù)數(shù)據(jù)字段中的主機(jī)名是全部限定的,以防止它和當(dāng)前域名相關(guān)。利用PTR 中的信息,named 就將3.1.72.191.in-addr.arpa 轉(zhuǎn)換成vale.vbrew.com 。 named.hosts 文件

在named.boot 文件中,把named.hosts 文件作為包含本地域信息的文件列出。可以在named.boot 中的primary 行上為這個(gè)文件起用戶想要的名字。named.hosts 文件包含大部分的域信息,它可以將主機(jī)名轉(zhuǎn)換成IP 地址,因而A 記錄占有重要的地位,而且它還包含MX 、CNAME 和其它的記錄。該named.hosts 文件和named.rev 文件一樣,只有主服務(wù)器才有,其它所有的服務(wù)器可從主服務(wù)器取得信息。下面給出了一個(gè)使用多資源記錄類型的named.hosts 文件的例子: ;

; /var/named/named.hosts Local hosts at the brewery ; Origin is vbrew.com ;

@ IN SOA vlager.vbrew.com. ( janet.vbrew.com. 16 ; serial

86400 ; refresh: once per day 3600 ; retry: one hour 3600000 ; expire: 42 days 604800 ; minimum: 1 week )

IN NS vlager.vbrew.com. ;

; local mail is distributed on vlager IN MX 10 vlager ;

; loopback address

localhost. IN A 127.0.0.1 ; brewery Ethernet vlager IN A 191.72.1.1

vlager-if1 IN CNAME vlager ; vlager is also news server news IN CNAME vlager vstout IN A 191.72.1.2 vale IN A 191.72.1.3 ; winery Ethernet

vlager-if2 IN A 191.72.2.1 vbardolino IN A 191.72.2.2 vchianti IN A 191.72.2.3 vbeaujolais IN A 191.72.2.4

和named.rev 文件一樣,該文件以一個(gè)SOA 記錄和定義域及服務(wù)器的NS 記錄開頭。但named.hosts 文件包括的資源記錄品種多于named.rev 。我們根據(jù)這些記錄在示例文件中的順序來(lái)討論每一種記錄。

該文件的第一個(gè)記錄是域的SOA (授予控制權(quán))記錄。該記錄的第一行以@字符開始,@字符表示這是當(dāng)前原點(diǎn)或域。原點(diǎn)由 named.boot 文件中相應(yīng)的primary 行上列出的域定義給出。此后是代碼IN 和SOA ,它告訴named 這個(gè)資源記錄使用Internet (TCP/IP)編址并且是授予控制權(quán)記錄。

這行接下來(lái)的兩項(xiàng)是這個(gè)域的主域名服務(wù)器的規(guī)范名字,和用點(diǎn)代替@的電子郵件聯(lián)系人的地址。然后列出SOA 記錄要求的各種數(shù)據(jù)段,一行一個(gè)。

在SOA 記錄后,下一行是域名服務(wù)器資源記錄。它列出vlager.vbrew.com 作為這個(gè)域的域名服務(wù)器。因?yàn)樵谟蜃侄沃袥](méi)有列出任何域,所以假設(shè)是最后一個(gè)指定的域,也就是在SOA 記錄中列出的@。而且@字符確實(shí)是本地域。這是比較容易理解的。

MX 記錄為整個(gè)域定義一個(gè)郵件服務(wù)器,該記錄假定vlager 是vbrew.com 域的郵件服務(wù)器,其優(yōu)先值是10。送給 user@vbrew.com

的郵件被重定向到vlager ,以便進(jìn)行傳送。當(dāng)然,為了使vlager 能夠成功地傳送郵件,就必須將它配置成郵件服務(wù)器。MX 記錄只是整個(gè)事件中的一部分,我們將在第十一章中研究如何使用sendmail 配置郵件服務(wù)器。

該例中第一個(gè)A 記錄定義本地主機(jī)地址,這恰好和named.rev 文件中的PTR 記錄相反,它允許vbrew.com 域中的用戶輸入本地主機(jī)名(localhost )并由本地服務(wù)器將它轉(zhuǎn)換為地址127.0.0.1。

接下來(lái)是定義子網(wǎng)brewery 中的主機(jī)。第一個(gè)A 記錄為網(wǎng)關(guān)vlager 定義了IP 地址,然后使用CNAME 定義了vlager 的別名vlager-if1,接下來(lái)又說(shuō)明vlager 還是新聞服務(wù)器(news )。之后為這個(gè)域的另外兩臺(tái)主機(jī):vstout 和vale 建立地址記錄。

然后四個(gè)A 記錄定義了子網(wǎng)winery 中的四臺(tái)主機(jī)的IP 地址:vlager-if2、vbardolino 、vchianti 和vbeaujilias 。 錯(cuò)誤查找

在配置好named.boot 文件和所需的區(qū)文件之后,我們就可以啟動(dòng)named 了。Named 通常是在系統(tǒng)引導(dǎo)時(shí)啟動(dòng)的,但是也可以使用下面命令啟動(dòng):

# /etc/rc.d/init.d/named/restart 或:

# ndc restart

在第一次運(yùn)行這些命令時(shí),請(qǐng)留意出錯(cuò)信息。DNS 是一個(gè)很復(fù)雜的系

,

統(tǒng)。用戶可能會(huì)做錯(cuò)很多事,并且會(huì)使系統(tǒng)不能正常運(yùn)行。伴隨DNS 建立出現(xiàn)的許多問(wèn)題都會(huì)引起相同的結(jié)果,但起因卻不同。但大多數(shù)問(wèn)題是由于配置文件中的語(yǔ)法錯(cuò)誤而導(dǎo)致的。

確保用戶的DNS 配置文件中正確地指定了主機(jī)名。如果它是一個(gè)絕對(duì)主機(jī)名,要確保它以一個(gè)原點(diǎn)結(jié)尾。對(duì)在SOA 和CNAME 記錄中使用的名字要尤其小心。如果在這里弄錯(cuò)了,這些資源記錄會(huì)把主機(jī)名查詢重定向到不存在的計(jì)算機(jī)。 要確保在改變配置文件后增加配置文件中的版本號(hào)。如果忘了,那么DNS 將不能再讀取這些文件。確保為A 記錄輸入了正確的IP 地址,并檢查這個(gè)地址是否與您的/etc/hosts文件匹配。另外,確保DNS 名字和IP 地址與named.rev 中的相應(yīng)的逆向解析信息匹配。

查找錯(cuò)誤的最好工具是nslookup 命令。使用該命令徹底檢查用戶的DNS 服務(wù)器。對(duì)用戶的DNS 數(shù)據(jù)庫(kù)中的每個(gè)地址都進(jìn)行定期逆向解析,以確保所有的地址和名字都正確。 nslookup 命令的使用

nslookup 是檢查我們的域名服務(wù)器配置的最好工具,它是由BIND 軟件包提供的。它允許任何人直接查詢域名服務(wù)器,對(duì)于確定服務(wù)器是否正確地運(yùn)行和是否配置得和合適是很有幫助的。

nslookup 命令可以交互式的從命令行進(jìn)行查詢,在命令行中它可以用來(lái)查詢IP 地址,例如: $ nslookup hostname

這條命令要求定義在resolv.conf 中的域名服務(wù)器查詢給定主機(jī)名的IP 地址(如果有不止一個(gè)服務(wù)器,nslookup 將按列在/etc/resolv.conf文件中的順序選取一個(gè)作為查詢對(duì)象)。當(dāng)不帶任何參數(shù)時(shí),nslookup 將顯示所使用的域名服務(wù)器的信息。在“>;”提示符下,我們可以輸入所要請(qǐng)求的查詢的域名;在提示符下輸入exit 命令將會(huì)終止一次查詢會(huì)話。默認(rèn)情況下,nslookup 查詢A 記錄。例如: $ nslookup

Default Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 >; sunsite.unc.edu

Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: Name: sunsite.unc.edu Address: 152.2.22.81 >;exit

但我們可以使用set type命令修改去查詢另一種資源記錄類型,下面的例子將會(huì)可檢查SOA 記錄。請(qǐng)注意,如果將查詢類型設(shè)置成SOA 。它將保持SOA 不變,不會(huì)返回默認(rèn)的A 型查詢。如果我們需要查詢A 記錄,則還需要使用一次set type命令。 $ nslookup

Default Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 >; unc.edu

*** No address (A) records available for unc.edu Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 >; set type=SOA >; unc.edu

Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 Non-authoritative answer: unc.edu

origin = ns.unc.edu

mail addr = shava.ns.unc.edu serial = 930408

refresh = 28800 (8 hours) retry = 3600 (1 hour)

expire = 1209600 (14 days) minimum ttl = 86400 (1 day)

Authoritative answers can be found from:

UNC.EDU nameserver = SAMBA.ACS.UNC.EDU

SAMBA.ACS.UNC.EDU internet address = 128.109.157.30 >;exit

同樣,可以使用set type查詢MX 記錄,或修改成專用查詢類型ANY ,ANY 可以用來(lái)取得指定主機(jī)的所有可用資源記錄。 >; set type=MX >; unc.edu

Non-authoritative answer:

unc.edu preference = 10, mail exchanger = lambada.oit.unc.edu lambada.oit.unc.edu internet address = 152.2.22.80 Authoritative answers can be found from:

UNC.EDU nameserver = SAMBA.ACS.UNC.EDU

SAMBA.ACS.UNC.EDU internet address = 128.109.157.30 >;exit

nslookup 命令的另一個(gè)應(yīng)用為named.ca 文件是獲取當(dāng)前根服務(wù)器的列表。我們可以使用set type=NS來(lái)查詢所有的根域名服務(wù)器: $ nslookup

Default Name Server: rs10.hrz.th-darmstadt.de Address: 130.83.56.60 >; set typ=NS >; .

Name Server: fb0430.mathematik.th-darmstadt.de Address: 130.83.2.30 Non-authoritative answer:

(root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET (root) nameserver = NS.NIC.DDN.MIL Authoritative answers can be found from: (root) nameserver = NS.INTERNIC.NET (root) nameserver = AOS.ARL.ARMY.MIL (root) nameserver = C.NYSER.NET (root) nameserver = TERP.UMD.EDU (root) nameserver = NS.NASA.GOV (root) nameserver = NIC.NORDU.NET (root) nameserver = NS.NIC.DDN.MIL

NS.INTERNIC.NET internet address = 198.41.0.4 AOS.ARL.ARMY.MIL internet address = 128.63.4.82 AOS.ARL.ARMY.MIL internet address = 192.5.25.82 AOS.ARL.ARMY.MIL internet address = 26.3.0.29 C.NYSER.NET internet address = 192.33.4.12 TERP.UMD.EDU internet address = 128.8.10.90 NS.NASA.GOV internet address = 128.102.16.10 NS.NASA.GOV internet address = 192.52.195.10 NS.NASA.GOV internet address = 45.13.10.121 NIC.NORDU.NET internet address = 192.36.148.17 NS.NIC.DDN.MIL internet address = 192.112.36.4 >;exit

利用nslookup 的help 命令或?,我們可以得到nslookup 的完整命令列表。例如: >;help

Commands: (identifiers are shown in uppercase, [ ] means optional) NAME - print info about the host/domain NAME using default server NAME1 NAME2 - as above, but use NAME2 as server

help or ? - print info on common commands; see nslookup(1) for details set OPTION - set an option

all - print options, current server and host [no]debug - print debugging information

[no]d2 - print exhaustive debugging information [no]defname - append domain name to each query [no]recurse - ask for recursive answer to query [no]vc - always use a virtual circuit

domain=NAME - set default domain name to NAME

srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2,etc. root=NAME - set root server to NAME retry=X - set number of retries to X

timeout=X - set initial time-out interval to X seconds

querytype=X - set query type, e.g., A, ANY, CNAME, HINFO, MX, PX, NS, PTR, SOA, TXT, WKS, SRV, NAPTR port=X - set port number to send query on type=X - synonym for querytype

class=X - set query class to one of IN(Internet), CHAOS, HESIOD or ANY [no]recurse - ask for recursive answer to query [no]vc - always use a virtual circuit

domain=NAME - set default domain name to NAME

srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2,etc. root=NAME - set root server to NAME retry=X - set number of retries to X

timeout=X - set initial time-out interval to X seconds

querytype=X - set query type, e.g., A, ANY, CNAME, HINFO, MX, PX, NS, PTR, SOA, TXT, WKS, SRV, NAPTR port=X - set port number to send query on type=X - synonym for querytype

class=X - set query class to one of IN(Internet), CHAOS, HESIOD or ANY server NAME - set default server to NAME, using current default server lserver NAME - set default server to NAME, using initial server finger [USER] - finger the optional USER at the current default host root - set current default server to the root

ls [opt] DOMAIN [>; FILE] - list addresses in DOMAIN (optional: output to FILE)

-a - list canonical names and aliases

-h - list HINFO (CPU type and operating system) -s - list well-known services -d - list all records

-t TYPE - list records of the given type(e.g.,A,CNAME,MX,etc.) view FILE - sort an ls output file and view it with more exit - exit the program, ^D also exits

當(dāng)我們使用nslookup 這一工具時(shí),我們將會(huì)發(fā)現(xiàn)很多有幫助的功能。 DNS Server配置示例: 版權(quán)聲明:

本文內(nèi)容為大連理工大學(xué)LINUX 選修課講義,歡迎大家轉(zhuǎn)載,但禁止使用本材料進(jìn)行

任何商業(yè)性或贏利性活動(dòng)。轉(zhuǎn)載時(shí)請(qǐng)保留本版權(quán)聲明。 作者:何斌武,

------------------------------------------------------------------------------ DNS Server配置示例:

注: 以上示例文件僅作演示用,于實(shí)際內(nèi)容有所出入,會(huì)與實(shí)際測(cè)試有出入

DNS 基礎(chǔ)知識(shí)請(qǐng)參考本人制作的PowerPoint 幻燈片文件,URL 同上, 文件名為dns.ppt.

1. 首先應(yīng)確認(rèn)你的上級(jí)域名服務(wù)器已正確指向你的DNS Server, 如我設(shè)置的 子域?yàn)閚et.dlut.edu.cn, 則應(yīng)在dlut.edu.cn 的域名服務(wù)器上有到作

,

n et.dlut.edu.cn 子域名服務(wù)器的LINUX 機(jī)器的的NS 記錄,以下是在 IN A 202.118.71.1

d lut.edu.cn 域名服務(wù)器相應(yīng)文件內(nèi)容: (1)BIND 4.9.x的配置文件

--------------------------/etc/named.boot---------------------- directory /etc/namedb ;

primary d lut.edu.cn db.dlut primary 66.118.202.in-addr.arpa db.202.118.66 ; ;

primary 0.0.127.in-addr.arpa localhost.rev secondary net.dlut.edu.cn 202.118.65.1 db.net.dlut secondary 65.118.202.in-addr.arpa 202.118.65.1 db.202.118.65 ;

; load the cache data last cache . n amed.root

(2)Bind-8.x 配置文件 /etc/named.conf // generated by named-bootconf.pl options { d irectory "/etc/namedb"; /* * If there is a firewall between you and nameservers you want * to talk to, you might need to uncomment the query-source * directive below. P revious versions of BIND always asked * questions using port 53, but BIND 8.1 uses an unprivileged * port by default. */ // query-source address * port 53; }; // type domain s ource host/file backup file zone "." { t ype hint; f ile "named.root"; };

zone "0.0.127.IN-ADDR.ARPA" { t ype master; f ile "localhost.rev"; };

zone "66.118.202.IN-ADDR.ARPA" { t ype master; f ile "db.202.118.66"; };

zone "dlut.edu.cn" { t ype master; f ile "db.dlut"; };

zone "net.dlut.edu.cn" { t ype slave; f ile "db.net.dlut"; m asters {

202.118.65.1; } };

zone "65.118.202.IN-ADDR.ARPA" { t ype slave; f ile "db.202.118.65"; m asters {

202.118.65.1; } };

-------------------------/etc/namedb/db.dlut------------------- @ IN S OA c edrus.dlut.edu.cn. hbwork.dlut.edu.cn. 99060205 10800 4800 604800 432000 ) IN N S c edrus.dlut.edu.cn. IN N S g ingko.dlut.edu.cn. IN N S o live.dlut.edu.cn. IN M X 1 gingko.dlut.edu.cn. localhost IN A 127.0.0.1 cedrus IN M X 1 gingko.dlut.edu.cn. IN A 202.118.66.6 linden IN A 202.118.66.88 IN M X 1 linden.dlut.edu.cn. ftp IN C NAME l inden.dlut.edu.cn. banyan IN C NAME l inden.dlut.edu.cn. gingko IN M X 10 gingko.dlut.edu.cn. IN A 202.118.66.8 mail I N C NAME g ingko.dlut.edu.cn. rose I N M X 1 rose.dlut.edu.cn. IN A 202.118.66.5 IN A 202.118.69.6 bbs IN C NAME r ose.dlut.edu.cn. bbs1 I N A 202.118.69.6 lib 604800 I N N S n s.lib.dlut.edu.cn. ns.lib 6 04800 I N A 202.118.68.241 net 26000 I N N S d ns.net.dlut.edu.cn. IN N S c edrus.dlut.edu.cn. dns.net I N A 202.118.65.1 IN A 202.118.66.13 olive I N A 202.118.70.1 IN A 202.118.66.16 IN A 202.118.68.1 IN A 202.118.69.1 IN M X 1 olive.dlut.edu.cn. peony I N A 202.118.66.18 www IN C NAME p eony.dlut.edu.cn. mirror IN C NAME p eony.dlut.edu.cn.

可通過(guò)nslookup 確認(rèn)是否已正確設(shè)定,如下: >; net.dlut.edu.cn Server: c edrus.dlut.edu.cn Address: 2

02.118.66.6 Non-authoritative answer:

net.dlut.edu.cn nameserver = dns.net.dlut.edu.cn net.dlut.edu.cn nameserver = cedrus.dlut.edu.cn Authoritative answers can be found from: dns.net.dlut.edu.cn i nternet address = 202.118.65.1 dns.net.dlut.edu.cn i nternet address = 202.118.66.13 cedrus.dlut.edu.cn i nternet address = 202.118.66.6

** 如果只想作本地的DNS Server或者你與Internet 沒(méi)有連接,可以忽略此步。

2。編輯net.dlut.edu.cn DNS服務(wù)器的相應(yīng)文件,

(1)Bind 4.9.x /etc/named.boot內(nèi)容如下,其中以引號(hào)開始的內(nèi)容為注釋: directory /etc/namedb ; 指定named 初始化文件目錄, ; 最好為一單獨(dú)文件系統(tǒng),如 ; /var/namedb /usr/local/namedb ;cache 指向頂級(jí)域名服務(wù)器列表 cache . r oot.cache

;primary 表明是子域net.dlut.edu.cn 和反向域65.118.202.IN-ADDR.ARPA ; 的主域名服務(wù)器,其初始化文件分別為/etc/namedb/db.net.dlut和 ;/etc/namedb/db.202.118.65 primary net.dlut.edu.cn d b.net.dlut primary 65.118.202.IN-ADDR.ARPA db.202.118.65 ; 本地回環(huán)域0.0.127.IN-ADDR.ARPA 的主域名服務(wù)器 primary 0.0.127.IN-ADDR.ARPA localhost.rev ;子域dlut.edu.cn 的備份域名服務(wù)器,從域名服務(wù)器202.118.66.6(primary ; server for domain dlut.edu.cn)和202.118.66.8(secondary server for ; domain dlut.edu.cn)申請(qǐng)相關(guān)數(shù)據(jù),備份文件名為dlut.bak ; 如不做備份域名服務(wù)器則無(wú)須下列行 secondary d lut.edu.cn 202.118.66.6 202.118.66.8 dlut.bak secondary 6 6.118.202.IN-ADDR.ARPA 202.118.66.6 202.118.66.8 dlut.rev.bak

(2) bind-8.x,可用其提供的namedboot-conf.pl 將上面的文件內(nèi)容 轉(zhuǎn)換為bind8所需的named.conf, 其中namedboot-conf.pl 在redhat 上可以在 /usr/doc/bind*/下找到,也可從bind8的代碼包中拿到,其用法如下: $namedboot-conf.pl named.boot >; named.conf 將生成的named.conf 文件復(fù)制到/etc目錄下即可。

3. 創(chuàng)建文件/etc/namedb/db.net.dlut,可從bind 軟件包攜帶的示例文件進(jìn)行修改

成,文件內(nèi)容如下: ----------------------------------------------------------------------- ;

; Data file of hostnames in this zone. ; @ IN S OA d ns.net.dlut.edu.cn. hbwork.dlut.edu.cn. ( 960072601 ; Serial 300 ; Refresh - 5 minutes 60 ; Retry - 1 minute 38400 ; Expire - 2 weeks 43200 ) ; Minimum - 12 hours I N N S n s.net.dlut.edu.cn. I N N S c edrus.dlut.edu.cn. ; D efine localhost ;

localhost I N A 127.0.0.1 ns IN A 202.118.65.1 I N A 202.118.66.13 www I N A 202.118.65.8

-----------------------------------------------------------------

中在SOA (Start of Authority)記錄中的ns.net.dlut.edu.cn. 為此文件 所在主機(jī)名(切記:完整的主機(jī)名最后應(yīng)以點(diǎn)結(jié)束),hbwork.dlut.edu.cn 為管理員Email 地址 hbwork@dlut.edu.cn

的變通形式,因@號(hào)在此文件

中代表當(dāng)前授權(quán)域名,即/etc/named.boot相應(yīng)記錄中指定的域名net.dlut.edu.cn

960072601為序列好,每更改一次此值應(yīng)增加,備份域名服務(wù)器根據(jù)此值決定是否

應(yīng)從主域名服務(wù)器請(qǐng)求新的數(shù)據(jù);NS 記錄指定此域(net.dlut.edu.cn)的兩個(gè)域名

服務(wù)器,其中net.dlut.edu.cn. 的IP 地址在下面由 A (address)記錄給出, cedrus.dlut.edu.cn. 的IP 地址由resolver 從dlut.edu.cn. 域名服務(wù)器獲得。 在 其后的A 記錄指明了相應(yīng)主機(jī)的IP 地址,如主機(jī)ns 有兩個(gè)IP 地址。請(qǐng)注意主機(jī)

gw 的完整名稱為gw.net.dlut.edu.cn. ,因?yàn)榇嗣Q不是以點(diǎn)結(jié)束,因此其主機(jī)名

,

將追加域名net.dlut.edu.cn 構(gòu)成完整的主機(jī)名(fully qualified domain names)

當(dāng)然在此文件中還有其他記錄類型,如CNAME MX 等,具體請(qǐng)參考named 文檔,以下 僅給出簡(jiǎn)單示例: 設(shè)定別名:如linux.dlut.edu.cn 為主機(jī)ns.net.dlut.edu.cn 之別名,主機(jī) H.ROOT-SERVERS.NET. 99999999 A 128.63.2.53

B.ROOT-SERVERS.NET. 99999999 A 128.9.0.107 C.ROOT-SERVERS.NET. 99999999 A 192.33.4.12 D.ROOT-SERVERS.NET. 99999999 A 128.8.10.90 E.ROOT-SERVERS.NET. 99999999 A 192.203.230.10

此文件不做任何改動(dòng)既可使用,當(dāng)然也可用實(shí)用程序dig 取得最新頂 gingko.dlut.edu.cn 有別名 ftp.dlut.edu.cn

www.dlut.edu.cn mail.dlut.edu.cn

則在域dlut.edu.cn 的域名服務(wù)器的數(shù)據(jù)文件中使用如下記錄: gingko IN A 202.118.66.8 ftp IN C NAME gingko.dlut.edu.cn. www IN C NAME gingko.dlut.edu.cn. mail I N C NAME gingko.dlut.edu.cn. linux.dlut.edu.cn. IN

標(biāo)簽: