dns配置詳解大全

火星人 @ 2014-03-05 , reply:0


dns配置詳解大全

DNS配置全文
2003-12-02    leng    fengnet.com    點擊: 1248

DNS配置全文


DNS簡介
在Linux中,域名服務(DNS)是由柏克萊網間名域(Berkeley Internet Name Domain——BIND)軟體實現的。BIND是一個客戶/服務系統,它的客戶方面稱為轉換程序(resolver),它產生域名信息的查詢,將這類信息發送給伺服器,DNS軟體回答轉換程序的查詢。BIND的服務方面是一個稱為named(讀作「name」「d」)的守護進程。

我們將討論三種基本BIND配置任務:

配置BIND轉換程序。

配置BIND域名服務。

建立伺服器資料庫文件,稱為「區文件(zone file)。

前面我們介紹過,術語「區(zone)」往往可以與單詞「域(domain)」互換使用,但這裡卻有一些區別,「區」是指域資料庫文件,而「域」則比較通用。在本書中,域是用域名定義的域結構中的一部分,而區則是域資料庫文件中包含域信息的集合,包含域信息的文件稱為「區文件」。

DNS的作用是把IP地址轉化為代表主機、網路和郵件別名的助記名。它把整個Internet IP地址和名字空間分解為不同的邏輯組來做這項工作。每個組對它所擁有的計算機和其他信息具有控制權。

DNS伺服器的類型
BIND可以配置成以幾種不同的方法運行的DNS,常見的BIND配置是唯轉換程序系統、唯高速緩存系統、主伺服器和輔助伺服器。

轉換程序是一段要求域名伺服器提供域信息的程序,在Linux系統中,它是作為一個庫程序來實現的,不是一個單獨的客戶程序。在唯轉換程序系統中,僅使用轉換程序,並不運行域名伺服器。這種系統是很容易配置的,最多只需要設置/etc/resolv.conf文件。其它三個BIND配置選項都是用於named服務軟體的。

唯高速緩存伺服器 唯高速緩存伺服器(caching-only server)可運行域名伺服器軟體但是沒有域名資料庫軟體。它從某個遠程伺服器取得每次域名伺服器查詢的回答,一旦取得一個答案,就將它放在高速緩存中,以後查詢相同的信息時就用它予以回答。所有的域名伺服器都按這種方式使用高速緩存中的信息,但唯高速緩存伺服器則依賴於這一技術提供所有的域名伺服器信息。唯高速緩存伺服器不是權威性伺服器,因為它提供的所有信息都是間接信息。

對於唯高速緩存伺服器只需要配置一個高速緩存文件,但最常見的配置還包括一個回送文件,這或許是最常見的域名伺服器配置。接著才是唯轉換程序配置,它是最容易配置的。

主伺服器 主伺服器(primary name server)是特定域所有信息的權威性信息源。它從域管理員構造的本地磁碟文件中載入域信息,該文件(區文件)包含著該伺服器具有管理權的一部分域結構的最精確信息。主伺服器是一種權威性伺服器,因為它以絕對的權威去回答對它域的任何查詢。

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

輔助域名伺服器 輔助域名伺服器(secondary name server)可從主伺服器中轉移一整套域信息。區文件是從主伺服器中轉移出來的,並作為本地磁碟文件存儲在輔助伺服器中。這種轉移稱為「區文件轉移」。在輔助域名伺服器中有一個所有域信息的完整拷貝,可以有權威地回答對該域的查詢,因此,輔助域名伺服器也稱作權威性伺服器。

配置輔助域名伺服器不需要生成本地區文件,因為可以從主伺服器中下載該區文件。然而其它的文件是確是需要的,包括引導文件、高速緩存文件和回送文件。

一個域名伺服器可以是這類配置中的任何一種,但經常是將多種配置類型的元素組合在一起。然而所有的系統都要運行轉換程序。

 
DNS常用術語
DNS是一個很複雜的概念,表1列出了常用的DNS術語。

表1 常用DNS術語

術語
說明


代表網路一部分的邏輯實體或組織

域名
主機名的一部分,它代表包含這個主機的域。它可以和域交換使用

主機
網路上的一台計算機

節點
網路上的一台計算機

域名伺服器
提供DNS服務的計算機,它將DNS名字轉化為IP地址

解析
把一個DNS伺服器轉化為與其相映的IP地址的過程

解析器
從域名伺服器中提取DNS信息的程序或庫子程序

反向解析
將給出的IP地址轉化為其相映的DNS名字

欺騙
使網路看上去好象具有不同的IP地址或域名的行為


在概念上可以把DNS分為三個部分:

域名空間 這是標識一組主機並提供他們的有關信息的樹結構的詳細說明。樹上的每一個節點都有它控制下的主機的有關信息的資料庫。查詢命令試圖從這個資料庫中提取適當的信息。簡單地說,這只是所有不同類型信息的列表,這些信息是域名、IP地址、郵件別名和那些在DNS系統中能查到的內容。

域名伺服器 它們是保持並維護域名空間中的數據的程序。每個域名伺服器含有一個域名空間子集的完整信息,並保存其它有關部分的信息。一個域名伺服器擁有它控制範圍的完整信息。控制的信息按區進行劃分,區可以分佈在不同的域名伺服器上,以便為每個區提供服務。每個域名伺服器都知道每個負責其他區的域名伺服器。如果來了一個請求,它請求給定域名伺服器負責的那個區的信息,那麼這個域名伺服器只是簡單地返回信息。但是,如果請求是不同區的信息,那麼這個域名伺服器就要與控制該區的相映伺服器聯繫。

解析器 解析器是簡單的程序或子程序庫,它從伺服器中提取信息以響應對域名空間中主機的查詢。

配置轉換程序
使用DNS的第一步是在用戶的計算機上配置轉換程序,即讓機器能夠能夠從DNS伺服器中獲取域名解析/反解析服務。轉換程序不是一個單獨而明確的處理進程,而是網路進程調用的一個標準C程序庫。如果本地系統不運行named,就必須配置本地轉換程序。

轉換程序控制文件/etc/host.conf
/etc/host.conf是用來控制本地轉換程序的文件的設置。該文件告訴轉換程序使用哪些服務、按照什麼順序進行。該文件的欄位可以用空格或製表符分隔。字元「#」表示註釋行。表2是可在host.conf中指定的選項。


表2 /etc/host.conf文件的配置選項

選項
說明

order
指定按照哪種順序來嘗試不同的名字解析機制。按列出的順序來進行指定的解析服務。支持下面的名字解析機制:

hosts 試圖通過查找本地/etc/hosts文件來解析名字

bind 使用DNS域名伺服器來解析名字

nis 使用網路信息服務(NIS)協議來解析主機名字

multi
以off和on為參數。與host查詢一起使用,用來確定一台主機是否在/etc/hosts文件中指定了多個IP地址

nospoof
如果用逆向解析找出與指定的地址匹配的主機名,對返回的地址進行解析以確認它確實與您查詢的地址相配。為了防止「騙取」IP地址,通過指定nospoof on來允許這種功能

alert
以off和on為參數。如果打開,任何試圖騙取IP地址的行為都通過syslog工具進行記錄

trim
以域名為參數。在/etc/hosts中查找名字前,trim刪除這個域名。著使你只把基本主機名放在/etc/host.conf中而不指定域名


下面這個例子是主機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.

這個例子給出了域vbrew.com的通用解析程序配置。該解析程序首先使用DNS然後使用/etc/hosts文件查找主機名。在解析查找中指定本地/etc/hosts文件是一個好主意。如果由於某種原因不能使用域名伺服器了,我們還可以使用主機文件中列出的那些主機名。該機器上允許使用多個IP地址,主機通過重新解析主機名字(從IP地址逆向查找返回的主機名字)來檢查IP欺騙。

轉換程序/配置文件/etc/resolv.conf
當配置轉換程序使用BIND域名服務查詢主機時,我們必須告訴轉換程序使用哪一個域名伺服器。用來完成這項任務的工具就是/etc/resolv.conf文件。/etc/resolv.conf控制轉換程序使用DNS解析主機名使用的方式,它可以明確地定義系統的配置,允許我們命名由於預設伺服器不響應而使用的備份伺服器。因此,儘管會增加系統負荷,但在某些場合使用resolv.conf是很受歡迎的。

/etc/resolv.conf是一個簡單而易讀的文件。在/etc/resov.conf中使用的命令,具有系統專用的形式,但一般都支持domain和nameserver兩項命令。

nameserver項利用IP地址去識別讓轉換程序去識別查詢域信息的那些伺服器。我們可以多次使用nameserver選項,可以使用多達三個域名伺服器。這些名伺服器是按照它們在文件中的順序進行查詢的,如果沒有接收到一個伺服器的響應,就去試表中的下一個伺服器,直到所有伺服器試完為止(如果在/etc/resolv.conf文件中設置了三個以上的域名伺服器,那麼,即使前三個伺服器都沒有響應查詢請求,Linux也不會去請求後面的伺服器)。我們應該將最可靠的域名伺服器列在最前面,以便在查詢時不會超時。如果resolv.conf文件中不包含nameserver項,或者不存在resolv.conf文件,就將所有名伺服器查詢發送給本地主機。然而,如果有一個resolv.conf文件,它包含nameserver項,除非有一項指向本地主機,否則就不查詢本地主機。在配置唯轉換程序的主機中,resolv.conf文件包含nameserver項,但沒有一個項指向本地主機。

domain項用來定義預設域名(主機的本地域名)。轉換程序會將預設域名掛在任何不含點的主機名後面。例如,轉換程序接收到主機名vale(它不含點),就將其預設域名掛接在vale後面,構成對它的查詢。如果domian域中的name值是vbrew.com,那麼轉換程序就將查詢vale.vbrew.com。如果沒有出它,則轉換程序就試圖通過getdomainname()系統調用來獲得本地域名。

如果聽起來讓人迷惑不解的話,我們可以看看下面這個例子,這是Virtual Brewery中的resolv.conf文件:

# /etc/resolv.conf

# Our domain

domain vbrew.com

#

# We use vlager as central nameserver:

nameserver 191.72.1.1

在該例中,通過domain指定預設域名,並列出一個用於解析主機名的域名伺服器。在這個例子中沒有指定查尋順序(使用search選項),因此如果要查詢一台機器的地址(如vale),解析器則首先試圖查找vale,如果沒找到,則查找vale.vbrew.com,然後再查找vbrew.com。

唯轉換程序配置
配置唯轉換程序是非常簡單的,下面是一個唯轉換程序的/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

該配置文件告訴轉換程序將所有的查詢發送給主域名伺服器vlager,如果失敗,就試vale。這些查詢是永遠不能在本地轉換的。這一個簡單的resolv.conf文件就可以滿足唯轉換程序配置的全部要求。

設置域名伺服器
在Linux上的域名服務是由named守護進程來執行的,named最早是為BSD向客戶機提供域名服務而開發的。named守護進程通常在系統啟動時開始工作,並一直工作到系統關閉。該進程從被稱作/etc/named.boot的配置文件中獲取有關信息和將主機名映射為IP地址的各種文件。

為了運行named,只要在命令行中輸入:

# /etc/rc.d/init.d/named start

named就會開始運行,讀取named.boot文件及其定義的任何區文件並將它的進程ID以ASCII碼的形式寫入/var/run/named.pid中,下載任何來自主伺服器的區文件,如果有必要的話在埠53等待DNS請求。

雖然轉換程序的配置只需要一個配置文件,但是在配置named時卻要使用多個文件,一整套named配置文件如表3所示。

表3 named配置文件

配置文件
說明

named.conf
設置一般的named參數,指向該伺服器使用的域資料庫信息的源,這類源可以是本地磁碟文件或遠程伺服器

named.ca
指向根域名伺服器

named.local
用於在本地轉換回送地址

named.hosts
將主機名映射為IP地址

named.rev
用於反向域的、將IP地址映射到主機名的區文件


在下面各節中我們將探討如何利用其中的每一個文件去配置named。

/etc/named.conf文件
named.conf文件通常很小,只包括一些指向DNS信息源的信息。其中某些源是本地文件,其他則是遠程伺服器。下面我們將看到一個需要生成的每種文件類型的例子。

表4概括了named.conf文件中使用的各種配置語句,它提供的信息能幫助我們了解這一些例子:

表4 named.boot文件的配置選項

選項
說明

Directory
指定DNS文件所在的目錄。您可以重複此選項以指定幾個不同的目錄。可以給出這些目錄相關的文件路徑名

Master
以一個域名和一個文件名為參數。此選項聲明named對指定的域具有控制權,並使named從指定的區域載入信息

Hint
為named建立高速緩存信息。以一個域名和一個文件名為參數。域名通常用「.」指定。指定的文件包括一組稱為伺服器提示的記錄,這些記錄列出了根域名伺服器的信息

Forwarders
以一個域名伺服器的列表作為參數。告訴本地域名伺服器:如果它不能從它的本地信息中解析出地址,那麼就與該列表中的伺服器聯繫

Slave
把本地域名伺服器變成一個從屬伺服器。如果給出了此選項,那麼本地伺服器就試著通過遞歸查詢來解析DNS名字。它只把請求傳遞給forwarders選項行列出的伺服器中的一個


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

1.唯高速緩存伺服器
配置唯高速緩存域名伺服器是很簡單的。必須有named.conf和named.ca文件,通常也要用到named.local文件。下面是用於唯高速緩存伺服器的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到哪裡去找尋文件。所有其後命名的文件都將是相對於此目錄的。該文件告訴named去維持一個域名伺服器響應的高速緩存,並利用named.ca文件的內容去初始化該高速緩存。該高速緩存初始化文件的名字可以是任何名字,但一般使用/var/named/named.ca。並不是在該文件中使用一個hint語句就能使它成為唯高速緩存配置,幾乎每一種伺服器的配置都要用到cache語句,而是因為沒有master和slave語句才使它成為一個唯高速緩存配置。

但是,在我們這個例子中卻有一個master語句。事實上,幾乎在每一個唯高速緩存的配置文件中都有這一個語句,它將本地伺服器定義為它自己的回送域的主伺服器,並假定該域的信息存儲在named.local文件中。這個回送域是一個in-addr.arpa域(in-addr.arpa域用於指定逆向解析,或IP地址到DNS名字解析),它將地址127.0.0.1映射為名字localhost。轉換自己的回送地址對於大多數人都是有意義的,因為大多數的named.conf文件都包含這一項。

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

2.主伺服器和輔助伺服器的配置
我們虛構的vbrew.com是舉例說明主伺服器和輔助伺服器的基礎,下面是將vlager定義為vbrew.com域的主伺服器的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";

};

上例中第一個master告訴我們這是vbrew.com域的主伺服器。該域的數據是從named.hosts文件中載入的。在我們這個例子中,我們將文件名named.hosts作為區文件名,但也可以使用更有說明性的文字,例如,vbrew.com區文件的名字使用vbrew.com.hosts則較好。

第三個master語句指向能將IP地址191.72.0.0映射為主機名的文件。它假定本地伺服器是反向域72.191.in-addr.arpa的主伺服器,該域的數據從文件named.rev中載入。

在上例配置中的hint語句和第二個用於回送域的primary語句我們前面在唯高速緩存配置中已經討論過。在這些配置中,它們的作用是相同的,而且幾乎在任何配置中都要使用它們。

輔助伺服器的配置與主伺服器的配置不同,它使用slave語句代替master語句。slave語句指向用作域信息源的遠程伺服器,以替代本地磁碟文件。下面的named.conf文件可以將vale配置成為vbrew.com域的輔助伺服器:

// 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

第一個slave語句是使這個伺服器成為vbrew.com的輔助伺服器。它告訴named從IP地址為191.72.1.3的伺服器中下載vbrew.com的信息,並將其數據保存在/var/named/named.hosts文件中。如果該文件不存在,named就創造一個,並從遠程伺服器中取得區數據,然後將這些數據寫入新創建的文件中。如果存在該文件,named就要檢查遠程伺服器,以了解該遠程伺服器的數據是否不同於該文件中的數據,如果數據有變化,它就下載更新后的數據,用新數據覆蓋該文件的內容;如果數據沒有變化,named就載入磁碟文件的內容,不必做麻煩的區轉移工作。

將一個資料庫拷貝到本地磁碟文件中,就不必每次引導主機時都要轉移區文件;只有當數據修改時,才進行這種區文件的轉移工作。

該配置文件中的下一行表示該本地伺服器也是反向域72.191.in-addr.arpa的一個輔助伺服器,而且該域的數據也從191.72.1.3中下載。該反向域的數據存儲在named.rev中。

DNS資料庫文件和資源記錄
配置named所需的所有文件(named.hosts、named.rev、named.local和named.ca)中的信息是以稱為資源記錄的形式存在的。每個資源記錄都有一個類型,這個類型說明記錄的功能。這些記錄都是標準資源記錄,稱為RR(resource records)。表5列出了最常見的資源記錄類型,其餘的類型很少用到,如果感興趣的話。請參考相應的RFC和man page。

表5 常見標準資源記錄

資源記錄名
記錄類型
功能說明

地址
A
將主機名轉換為地址。這個欄位保存以點分隔的十進位形式的IP地址。任何給定的主機都只能有一個A記錄,因為這個記錄被認為是授權信息。這個主機的任何附加地址名或地址映射必須用CNAME類型給出

規範名
CNAME
給定一個主機的別名,主機的規範名字是在這個主機的A記錄中指定的

主機信息
HINFO
描述主機的硬體和操作系統

郵件交換
MX
建立郵件交換器記錄。MX記錄告訴郵件傳送進程把郵件送到另一個系統,這個系統知道如何將它遞送到它的最終目的地

名伺服器
NS
標識一個域的域名伺服器。NS資源記錄的數據欄位包括這個域名伺服器的DNS名。我們還需要指定這個名字名字伺服器的地址與主機名相匹配的A記錄

指針
PTR
將地址變換成主機名。主機名必須是規範主機名

管理開始


SOA


告訴域名伺服器它後面跟著的所有所有資源記錄是控制這個域的(SOA)表示授與控制權)。其數據欄位用()括起來並且通常是多行欄位。SOA記錄的數據欄位包含下面的項:

origin
這個域的主域名伺服器的規範主機名。用點「.」 結尾的絕對主機名,因此,它不能被named守護進程修改

contact
負責維護這個域的人的電子郵件聯繫地址。因為@在資源記錄中有特殊的意義,所以用點「.」代替這個符號。如果負責維護vbrew.com的人是clfls,那麼聯繫地址就是clfls.vbrew.com

serial
這個區信息文件的版本號,它是一個整數。輔助域名伺服器用它來確定這個區信息的文件是何時改變的。每次改變信息文件時都應該使這個數加一

refresh
輔助域名伺服器在試圖檢查主域名伺服器的SOA記錄之前應等待的秒數。SOA記錄不經常改變,因此可以把這個值設置為一天

retry
輔助伺服器在主伺服器不能使用時,重試對主伺服器的請求應等待的秒數。通常,它應該按分進行設置

expire
這是輔助伺服器在不能與主伺服器取得聯繫的情況下丟掉區信息之前應等待的秒數,一般應該設置成30天左右

minimum
當沒有指定ttl資源記錄時默認的ttl值。如果網路沒有太大的變化,那麼這個數可以設得很大。可以在資源記錄中指定一個ttl值來代替它


為了能看懂本章中使用的配置示例文件,有必要稍微介紹以下資源記錄的結構。DNS資源記錄的格式是:

type rdate

各個欄位之間有空格或指標符分隔。表6討論了這些欄位的含義。

表6 資源記錄格式中的欄位

欄位
說明

domain
資源記錄引用的域對象名。它可以是單台主機,也可以是整個域。作為domain輸入的字串除非不是以一個點結束,否則就與當前域有關係。如果該domain欄位是空的,那麼該記錄適用於最後一個帶名字的域對象

ttl
生存時間記錄欄位。它以秒為單位定義該資源記錄中的信息存放在高速緩存中的時間長度。通常該欄位是空欄位,這表示使用SOA記錄中為整個區域設置的預設ttl

class
指定網路的地址類。對於TCP/IP網路使用IN。如果沒有給出類,就使用前一個資源記錄的類

type
標識這是哪一類資源記錄

rdata
指定與這個資源記錄有關的數據。這個值是必要的。數據欄位的格式取決於類型欄位的內容


named.ca文件
named.boot文件中的cache語句指向一個高速緩存初始化文件,具有高速緩存的伺服器都有這樣一個文件。它包含著域名伺服器啟動時開始創造一個域數據高速緩存所需的信息。在cache語句中,用一個指點其根域,在named.ca文件中至少包含根伺服器的名字和地址。named的高速緩存操作是很重要的。幸運的是,建立高速緩存的named.ca文件通常是最簡單的named配置文件。

基本的named.ca文件包含根伺服器的NS記錄和提供根伺服器地址的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

該記錄只包含各伺服器記錄和地址記錄。首先是一組標識根(.)域的各伺服器的NS記錄,在NS記錄之後,是一組為每個根伺服器提供地址的A記錄。雖然不需要ttl,但習慣上每個記錄的ttl是99999999(可能的最大值)。因為根伺服器是永遠不會從高速緩存中刪除的。

named.local文件
named.local文件可以將回送地址127.0.0.1轉換成本地主機名,它是反向域0.0.127.IN-ADDR.ARPA使用的區文件.由於所有系統都將127.0.0.1作為回送地址,該文件實際上對於每一個系統都是相同的。下面是從vlager上獲取的一個典型的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記錄的數據欄位和包含主機名的NS記錄是隨系統不同而不同的。本例中SOA記錄將vlager.vbrew.com標識為開創該區的伺服器,將電子郵件地址joe.vbrew.com標識為解決該區問題的聯繫地點(在SOA記錄中,通常將電子郵件地址中用來分隔接收者名字和主機名的@修改成一個點,其它欄位則保持不變)。很多系統甚至不包含NS記錄,若要用它,就包含計算機的主機名。修改這三個欄位我們就可以在任何主機中使用這個文件。

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

其它的named配置文件比較複雜,但是使用這些文件的伺服器數量比較少,只有主伺服器需要所有的配置文件,而每個域只有一個主伺服器。

反向域文件named.rev
named.rev與named.host文件非常類似,都包含有PTR記錄,只是named.rev將地址映射為主機名。下面是named.rev的一個例子。

;

; /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.

在這個例子中,包含了在named.hosts文件中見到的相同的SOA記錄。它只是為域建立控制信息。該SOA記錄的名字欄位中的@是指向當前域,本例是由named.boot示例文件中的primary定義的:

primary 72.191.in-addr.arpa named.rev

該SOA記錄中的@允許primary語句去定義區文件域,vlager中每個區文件都使用相同一個SOA記錄;它總是引用正確的域名,因為所引用的都是named.boot為特定區文件定義的域。幾乎在每個區文件的開頭,我們都可以看到相同的SOA格式。請修改主機名vlager.vbrew.com和管理員電子郵件地址joe.vbrew.com,並在我們任何一個區文件中使用該SOA記錄。

在SOA記錄後面的NS記錄可以該域的伺服器,一般在其它任何記錄有機會去修改域名之前,將立即在SOA之後列出各域名伺服器。請注意,一個空的名字欄位意味著上一個域名仍然起作用,SOA的域應用仍然有效,因為後面的NS記錄中的名欄位是空的。

PTR記錄在named.rev文件中佔有重要地位,因為它們可以將地址轉換為主機名。在我們的例子中,PTR記錄為網路191.72中的主機1.1、1.2、1.3、2.1、2.2、2.3和2.4提供地址到名字的轉換,由於它們不是以點結束,所以這些PTR記錄中名字欄位的值都與當前域有關。例如,值3.1可以看作是3.1.72.191.in-addr.arpa。PTR記錄的數據數據欄位中的主機名是全部限定的,以防止它和當前域名相關。利用PTR中的信息,named就將3.1.72.191.in-addr.arpa轉換成vale.vbrew.com。

named.hosts文件
在named.boot文件中,把named.hosts文件作為包含本地域信息的文件列出。可以在named.boot中的primary行上為這個文件起用戶想要的名字。named.hosts文件包含大部分的域信息,它可以將主機名轉換成IP地址,因而A記錄佔有重要的地位,而且它還包含MX、CNAME和其它的記錄。該named.hosts文件和named.rev文件一樣,只有主伺服器才有,其它所有的伺服器可從主伺服器取得信息。下面給出了一個使用多資源記錄類型的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文件一樣,該文件以一個SOA記錄和定義域及伺服器的NS記錄開頭。但named.hosts文件包括的資源記錄品種多於named.rev。我們根據這些記錄在示例文件中的順序來討論每一種記錄。

該文件的第一個記錄是域的SOA(授予控制權)記錄。該記錄的第一行以@字元開始,@字元表示這是當前原點或域。原點由 named.boot文件中相應的primary行上列出的域定義給出。此後是代碼IN和SOA,它告訴named這個資源記錄使用Internet(TCP/IP)編址並且是授予控制權記錄。

這行接下來的兩項是這個域的主域名伺服器的規範名字,和用點代替@的電子郵件聯繫人的地址。然後列出SOA記錄要求的各種數據段,一行一個。

在SOA記錄后,下一行是域名伺服器資源記錄。它列出vlager.vbrew.com作為這個域的域名伺服器。因為在域欄位中沒有列出任何域,所以假設是最後一個指定的域,也就是在SOA記錄中列出的@。而且@字元確實是本地域。這是比較容易理解的。

MX記錄為整個域定義一個郵件伺服器,該記錄假定vlager是vbrew.com域的郵件伺服器,其優先值是10。送給user@vbrew.com的郵件被重定向到vlager,以便進行傳送。當然,為了使vlager能夠成功地傳送郵件,就必須將它配置成郵件伺服器。MX記錄只是整個事件中的一部分,我們將在第十一章中研究如何使用sendmail配置郵件伺服器。

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

接下來是定義子網brewery中的主機。第一個A記錄為網關vlager定義了IP地址,然後使用CNAME定義了vlager 的別名vlager-if1,接下來又說明vlager還是新聞伺服器(news)。之後為這個域的另外兩台主機:vstout和vale建立地址記錄。

然後四個A記錄定義了子網winery中的四台主機的IP地址:vlager-if2、vbardolino、vchianti和vbeaujilias。

錯誤查找
在配置好named.boot文件和所需的區文件之後,我們就可以啟動named了。Named通常是在系統引導時啟動的,但是也可以使用下面命令啟動:

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

或:

# ndc restart

在第一次運行這些命令時,請留意出錯信息。DNS是一個很複雜的系統。用戶可能會做錯很多事,並且會使系統不能正常運行。伴隨DNS建立出現的許多問題都會引起相同的結果,但起因卻不同。但大多數問題是由於配置文件中的語法錯誤而導致的。

確保用戶的DNS配置文件中正確地指定了主機名。如果它是一個絕對主機名,要確保它以一個原點結尾。對在SOA和CNAME記錄中使用的名字要尤其小心。如果在這裡弄錯了,這些資源記錄會把主機名查詢重定向到不存在的計算機。 要確保在改變配置文件后增加配置文件中的版本號。如果忘了,那麼DNS將不能再讀取這些文件。確保為A記錄輸入了正確的IP地址,並檢查這個地址是否與您的/etc/hosts文件匹配。另外,確保DNS名字和IP地址與named.rev中的相應的逆向解析信息匹配。

查找錯誤的最好工具是nslookup命令。使用該命令徹底檢查用戶的DNS伺服器。對用戶的DNS資料庫中的每個地址都進行定期逆向解析,以確保所有的地址和名字都正確。

nslookup命令的使用
nslookup是檢查我們的域名伺服器配置的最好工具,它是由BIND軟體包提供的。它允許任何人直接查詢域名伺服器,對於確定伺服器是否正確地運行和是否配置得和合適是很有幫助的。

nslookup命令可以互動式的從命令行進行查詢,在命令行中它可以用來查詢IP地址,例如:

$ nslookup hostname

這條命令要求定義在resolv.conf中的域名伺服器查詢給定主機名的IP地址(如果有不止一個伺服器,nslookup將按列在/etc/resolv.conf文件中的順序選取一個作為查詢對象)。當不帶任何參數時,nslookup將顯示所使用的域名伺服器的信息。在「>;」提示符下,我們可以輸入所要請求的查詢的域名;在提示符下輸入exit命令將會終止一次查詢會話。默認情況下,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命令修改去查詢另一種資源記錄類型,下面的例子將會可檢查SOA記錄。請注意,如果將查詢類型設置成SOA。它將保持SOA不變,不會返回默認的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可以用來取得指定主機的所有可用資源記錄。

>; 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命令的另一個應用為named.ca文件是獲取當前根伺服器的列表。我們可以使用set type=NS來查詢所有的根域名伺服器:

$ 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

debug - print debugging information

d2 - print exhaustive debugging information

defname - append domain name to each query

recurse - ask for recursive answer to query

vc - always use a virtual circuit

domain=NAME - set default domain name to NAME

srchlist=N1 - 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

recurse - ask for recursive answer to query

vc - always use a virtual circuit

domain=NAME - set default domain name to NAME

srchlist=N1 - 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 - finger the optional USER at the current default host

root - set current default server to the root

ls 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

當我們使用nslookup這一工具時,我們將會發現很多有幫助的功能。
《解決方案》

dns配置詳解大全

DNS Server配置示例:
版權聲明:
    本文內容為大連理工大學LINUX選修課講義,歡迎大家轉載,但禁止使用本材料進行
    任何商業性或贏利性活動。轉載時請保留本版權聲明。

    作者:何斌武,hbwork@dlut.edu.cn,大連理工大學網路中心,April 1999.

    URL: ftp://ftp.dlut.edu.cn/pub/PEOPLE/albin/
------------------------------------------------------------------------------

DNS Server配置示例:

注: 以上示例文件僅作演示用,於實際內容有所出入,會與實際測試有出入
    DNS基礎知識請參考本人製作的PowerPoint幻燈片文件,URL同上,
    文件名為dns.ppt.

1. 首先應確認你的上級域名伺服器已正確指向你的DNS Server, 如我設置的
   子域為net.dlut.edu.cn,則應在dlut.edu.cn的域名伺服器上有到作
   net.dlut.edu.cn子域名伺服器的LINUX機器的的NS記錄,以下是在
   dlut.edu.cn域名伺服器相應文件內容:
(1)BIND 4.9.x的配置文件
--------------------------/etc/named.boot----------------------
directory       /etc/namedb
;
primary         dlut.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           .                       named.root  

(2)Bind-8.x 配置文件 /etc/named.conf
// generated by named-bootconf.pl

options {
        directory "/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.  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;
};

// type    domain               source host/file                backup file
zone "." {
        type hint;
        file "named.root";
};

zone "0.0.127.IN-ADDR.ARPA" {
        type master;
        file "localhost.rev";
};

zone "66.118.202.IN-ADDR.ARPA" {
        type master;
        file "db.202.118.66";
};

zone "dlut.edu.cn" {
        type master;
        file "db.dlut";
};

zone "net.dlut.edu.cn" {
        type slave;
        file "db.net.dlut";
        masters {
                202.118.65.1;
        }
};

zone "65.118.202.IN-ADDR.ARPA" {
        type slave;
        file "db.202.118.65";
        masters {
                202.118.65.1;
        }
};
-------------------------/etc/namedb/db.dlut-------------------
@       IN      SOA     cedrus.dlut.edu.cn. hbwork.dlut.edu.cn.
                99060205 10800 4800 604800 432000 )
                IN      NS      cedrus.dlut.edu.cn.
                IN      NS      gingko.dlut.edu.cn.
                IN      NS      olive.dlut.edu.cn.
                IN      MX      1 gingko.dlut.edu.cn.

localhost       IN      A       127.0.0.1
cedrus          IN      MX      1 gingko.dlut.edu.cn.
                IN      A       202.118.66.6

linden          IN      A       202.118.66.88
                IN      MX      1 linden.dlut.edu.cn.
ftp             IN      CNAME   linden.dlut.edu.cn.
banyan          IN      CNAME   linden.dlut.edu.cn.

gingko          IN      MX      10 gingko.dlut.edu.cn.
                IN      A       202.118.66.8
mail            IN      CNAME   gingko.dlut.edu.cn.

rose            IN      MX      1 rose.dlut.edu.cn.
                IN      A       202.118.66.5
                IN      A       202.118.69.6
bbs             IN      CNAME   rose.dlut.edu.cn.
bbs1            IN      A       202.118.69.6

lib     604800  IN      NS      ns.lib.dlut.edu.cn.
ns.lib  604800  IN      A       202.118.68.241

net     26000   IN      NS      dns.net.dlut.edu.cn.
                IN      NS      cedrus.dlut.edu.cn.
dns.net         IN      A       202.118.65.1
                IN      A       202.118.66.13

olive           IN      A       202.118.70.1
                IN      A       202.118.71.1
                IN      A       202.118.66.16
                IN      A       202.118.68.1
                IN      A       202.118.69.1
                IN      MX      1 olive.dlut.edu.cn.

peony           IN      A       202.118.66.18
www             IN      CNAME   peony.dlut.edu.cn.
mirror          IN      CNAME   peony.dlut.edu.cn.
         

可通過nslookup 確認是否已正確設定,如下:
>; net.dlut.edu.cn
Server:  cedrus.dlut.edu.cn
Address:  202.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     internet address = 202.118.65.1
dns.net.dlut.edu.cn     internet address = 202.118.66.13
cedrus.dlut.edu.cn      internet address = 202.118.66.6

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

2。編輯net.dlut.edu.cn DNS伺服器的相應文件,
(1)Bind 4.9.x /etc/named.boot內容如下,其中以引號開始的內容為註釋:

directory   /etc/namedb      ;指定named初始化文件目錄,
                             ;最好為一單獨文件系統,如
                             ;/var/namedb /usr/local/namedb

;cache 指向頂級域名伺服器列表
cache      .                          root.cache

;primary 表明是子域net.dlut.edu.cn和反向域65.118.202.IN-ADDR.ARPA
;的主域名伺服器,其初始化文件分別為/etc/namedb/db.net.dlut和
;/etc/namedb/db.202.118.65
primary    net.dlut.edu.cn            db.net.dlut
primary    65.118.202.IN-ADDR.ARPA    db.202.118.65

;本地迴環域0.0.127.IN-ADDR.ARPA的主域名伺服器
primary    0.0.127.IN-ADDR.ARPA       localhost.rev

;子域dlut.edu.cn的備份域名伺服器,從域名伺服器202.118.66.6(primary
; server for domain dlut.edu.cn)和202.118.66.8(secondary server for
; domain dlut.edu.cn)申請相關數據,備份文件名為dlut.bak
; 如不做備份域名伺服器則無須下列行
secondary  dlut.edu.cn 202.118.66.6 202.118.66.8 dlut.bak
secondary  66.118.202.IN-ADDR.ARPA 202.118.66.6 202.118.66.8 dlut.rev.bak

(2) bind-8.x,可用其提供的namedboot-conf.pl將上面的文件內容
      轉換為bind8所需的named.conf, 其中namedboot-conf.pl在redhat上可以在
      /usr/doc/bind*/下找到,也可從bind8的代碼包中拿到,其用法如下:

      $namedboot-conf.pl named.boot >; named.conf

      將生成的named.conf文件複製到/etc目錄下即可。
      
3.創建文件/etc/namedb/db.net.dlut,可從bind軟體包攜帶的示例文件進行修改
  而成,文件內容如下:
-----------------------------------------------------------------------
;
; Data file of hostnames in this zone.
;
@       IN      SOA     dns.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
        IN      NS      ns.net.dlut.edu.cn.
        IN      NS      cedrus.dlut.edu.cn.
;   Define localhost
;
localhost               IN      A               127.0.0.1

ns                      IN      A               202.118.65.1
                        IN      A               202.118.66.13
www                     IN      A               202.118.65.8

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

  其中在SOA (Start of Authority)記錄中的ns.net.dlut.edu.cn. 為此文件
所在主機名(切記:完整的主機名最後應以點結束),hbwork.dlut.edu.cn
為管理員Email地址hbwork@dlut.edu.cn的變通形式,因@號在此文件
中代表當前授權域名,即/etc/named.boot相應記錄中指定的域名net.dlut.edu.cn
960072601為序列好,每更改一次此值應增加,備份域名伺服器根據此值決定是否
應從主域名伺服器請求新的數據;NS記錄指定此域(net.dlut.edu.cn)的兩個域名
伺服器,其中net.dlut.edu.cn.的IP地址在下面由 A (address)記錄給出,
cedrus.dlut.edu.cn. 的IP地址由resolver從dlut.edu.cn.域名伺服器獲得。

  在其後的A記錄指明了相應主機的IP地址,如主機ns有兩個IP地址。請注意主機
gw的完整名稱為gw.net.dlut.edu.cn. ,因為此名稱不是以點結束,因此其主機名
將追加域名net.dlut.edu.cn構成完整的主機名(fully qualified domain names)
當然在此文件中還有其他記錄類型,如CNAME MX 等,具體請參考named文檔,以下
僅給出簡單示例:
   設定別名:如linux.dlut.edu.cn 為主機ns.net.dlut.edu.cn之別名,主機
gingko.dlut.edu.cn有別名ftp.dlut.edu.cn www.dlut.edu.cn mail.dlut.edu.cn
則在域dlut.edu.cn的域名伺服器的數據文件中使用如下記錄:

    gingko                IN   A  202.118.66.8
    ftp                   IN   CNAME gingko.dlut.edu.cn.
    www                   IN   CNAME gingko.dlut.edu.cn.
    mail                  IN   CNAME gingko.dlut.edu.cn.
    linux.dlut.edu.cn.    IN   CNAME  ns.net.dlut.edu.cn.

   設定郵件交換MX(Mail Exchange)記錄,如指定user@net.dlut.edu.cn的郵件由主機
ns.net.dlut.edu.cn接收,相應備份郵件伺服器為gingko.dlut.edu.cn,可使用如下記錄
(當然相應主機的sendmail.cf應做適當調整):

   @       IN      SOA     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
        IN      NS      ns.net.dlut.edu.cn.
        IN      NS      cedrus.dlut.edu.cn.
        IN      MX      1 ns.net.dlute.du.cn.   
        IN      MX      10 gingko.dlut.edu.cn.   

    MX之變通形式,如在此域名伺服器上指定user@net.dlut.edu.cn的郵件由
    ns.net.dlut.edu.cn. 接收,也可使用如下形式之一:
   
    (1)
        net.dlut.edu.cn.   IN   A  202.118.65.1

    (2)
        net.dlut.edcu.cn.  IN   CNAME gw.net.dlut.edu.cn.
     
    但不建議使用上面兩種方式。


4. 建立文件/etc/namedb/db.202.118.65,本文件為進行反向查詢(由IP查找域名)初始化
文件,文件內容列表如下:
   
;
; Data file for reverse address to hostname.
;
@       IN      SOA     ns.net.dlut.edu.cn. hbwork.dlut.edu.cn. (
                        960072601       ; Serial
                        300     ; Refresh - 5 minutes
                        60      ; Retry - 1 minute
                        1209600 ; Expire - 2 weeks
                        43200 ) ; Minimum - 12 hours
        IN      NS      ns.net.dlut.edu.cn.
        IN      NS      cedrus.dlut.edu.cn.
1.65.118.202.in-addr.arpa.      IN      PTR     ns.net.dlut.edu.cn.


5.建立文件/etc/namedb/localhost.rev,內容如下:

;
; BIND data file for local loopback interface.
;
@       IN      SOA     ns.net.dlut.edu.cn. hbwork.dlut.edu.cn. (
                        96072601        ; Serial
                        3600    ; Refresh
                        300     ; Retry
                        3600000 ; Expire
                        3600 )  ; Minimum
        IN      NS      ns.net.dlut.edu.cn.
1       IN      PTR     localhost.

   更改ns.net.dlut.edu.cn.為你的主機名,hbwork.dlut.edu.cn.為你的
Email 地址。

6.創建文件/etc/namedb/root.cache,列出頂級域名伺服器,內容如下:

.       99999999  NS      I.ROOT-SERVERS.NET.
.       99999999  NS      F.ROOT-SERVERS.NET.
.       99999999  NS      G.ROOT-SERVERS.NET.
.       99999999  NS      A.ROOT-SERVERS.NET.
.       99999999  NS      H.ROOT-SERVERS.NET.
.       99999999  NS      B.ROOT-SERVERS.NET.
.       99999999  NS      C.ROOT-SERVERS.NET.
.       99999999  NS      D.ROOT-SERVERS.NET.
.       99999999  NS      E.ROOT-SERVERS.NET.

;; ADDITIONAL RECORDS:
I.ROOT-SERVERS.NET.     99999999 A       192.36.148.17
F.ROOT-SERVERS.NET.     99999999 A       192.5.5.241
G.ROOT-SERVERS.NET.     99999999 A       192.112.36.4
A.ROOT-SERVERS.NET.     99999999 A       198.41.0.4
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

  此文件不做任何改動既可使用,當然也可用實用程序dig取得最新頂級
域名伺服器列表,方法如下:
   dig @ns.internic.net . ns


7.
(1) Slackware 3.x
    修改系統啟動文件 /etc/rc.d/rc.inet2,去掉named部分的註釋
(2) Redhat 5.x/6.x
    看一下系統中是否有如下文件:
    /etc/rc.d/init.d/named以及/etc/rc.d/rc3.d/S*named
    如果沒有建立文件/etc/rc.d/init.d/named, 文件內容如下:
     
#!/bin/sh
#
# named           This shell script takes care of starting and stopping
#                 named (BIND DNS server).
#
# chkconfig: 345 55 45
# description: named (BIND) is a Domain Name Server (DNS) \
# that is used to resolve host names to IP addresses.

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

[ -f /usr/sbin/named ] || exit 0

[ -f /etc/named.conf ] || exit 0

# See how we were called.
case "$1" in
  start)
        # Start daemons.
        echo -n "Starting named: "
        daemon named
        echo
        touch /var/lock/subsys/named
        ;;
  stop)
        # Stop daemons.
        echo -n "Shutting down named: "
        killproc named
        echo "done"
        rm -f /var/lock/subsys/named
        ;;
  status)
        status named
        exit $?
        ;;
  restart)
        /usr/sbin/ndc restart
        exit $?
        ;;
  *)
        echo "Usage: named {start|stop|status|restart}"
        exit 1
esac

exit 0

#End of /etc/rc.d/init.d/named

在/etc/rc.d/rc3.d/下建立相應的連接(確認沒有文件S*named?)
#cd /etc/rc.d/rc3.d
#ln -s ../init.d/named S98named

(3)Debian 2.x
   如果你用的是Debian 2.x, 我想你肯定能修改相關的系統啟動文件:)

8.確認文件/etc/host.conf文件host行內容如下:
   
   order hosts,bind

9.創建或編輯文件/etc/resolv.conf,指向新的域名伺服器,內容如下:

  domain net.dlut.edu.cn
  nameserver 202.118.65.1

  其中domain一行為你的域名,nameserver為你的域名伺服器的IP地址。

  如在運行named或系統重新啟動后域名不好用,可執行/sbin/netconfig,在域名
伺服器配置部分輸入新的域名及域名伺服器IP地址,再重新啟動機器。

10. DNS Client的配置
  (1) Unix 操作系統
      編輯/etc/resolv.conf,參見伺服器/etc/resolv.conf
  (2) Windows 95  
      更改網路中TCP/IP的DNS設置
  (3) Novell Lan Workplace  
      Sun PC-NFS
      FTP TCP/IP

      更改響應resolv.cfg 文件即可。
《解決方案》

dns配置詳解大全

好文 沒人頂,,,,,,,, :em02:
《解決方案》

dns配置詳解大全

嘿嘿, 正好最近要去裝個DNS試試手,
怎麼會沒人頂哩!
《解決方案》

dns配置詳解大全

就是,,,,,, :em02:



應該有的都有介紹了,,,,,
《解決方案》

dns配置詳解大全

一年前,我為了搞定DNS花了很多時間,
你早貼出來我也就沒那麼辛苦了,
嘻嘻。。。。
《解決方案》

dns配置詳解大全

up
《解決方案》

dns配置詳解大全

:) 謝謝,貼子不錯
《解決方案》

支持

這樣的好人已經很少有拉,,不能不頂
《解決方案》

好資料啊,收藏了,感謝LZ咯!!




[火星人 via ] dns配置詳解大全已經有478次圍觀

http://www.coctec.com/docs/service/show-post-37864.html