LINUX下配置DNS全文
?
作者: hew? 發(fā)布日期: 2006-5-30??? 查看數(shù): 231?? 出自: http://www.linuxsky.net
@ ----這個符號意味著SOA與域是一樣的
IN -----IN是提供IP地址的域名類當(dāng),與A,PTR或CNAME記錄一起使用時(shí)可將域名映射為IP地址,反之一樣
NS -----域名服務(wù)器指定的區(qū)域DNS服務(wù)器的域名或IP地址
MX ----MX記錄定義何種機(jī)器來為域或單個主機(jī)傳送電子郵件,為域定義就是告訴每個人將郵件發(fā)送給該域中要與之通信的人或機(jī)器
SOA-----Start Of Authority 指明其后的域名定義了主域名服務(wù)器及該域的聯(lián)系點(diǎn)的電子郵件地址。
PTR---將IP地址映射為主機(jī)名,PTR記錄執(zhí)行與A及記錄相反的過程
A----將主機(jī)名映射為其IP地址
DNS簡介
在Linux 中,域名服務(wù)(DNS)是由柏克萊網(wǎng)間名域(Berkeley Internet Name Domain——BIND)軟件實(shí)現(xiàn)的。BIND是一個客戶/服務(wù)系統(tǒng),它的客戶方面稱為轉(zhuǎn)換程序(resolver),它產(chǎn)生域名信息的查詢,將這類信息發(fā)送給服務(wù)器,DNS軟件回答轉(zhuǎn)換程序的查詢。BIND的服務(wù)方面是一個稱為named(讀作“name”“d”)的守護(hù)進(jìn)程。
我們將討論三種基本BIND配置任務(wù):
配置BIND轉(zhuǎn)換程序。
配置BIND域名服務(wù)。
建立服務(wù)器數(shù)據(jù)庫文件,稱為“區(qū)文件(zone file)。
術(shù)語“區(qū)(zone)”往往可以與單詞“域(domain)”互換使用,但這里卻有一些區(qū)別,“區(qū)”是指域數(shù)據(jù)庫文件,而“域”則比較通用。在本書中,域是用域名定義的域結(jié)構(gòu)中的一部分,而區(qū)則是域數(shù)據(jù)庫文件中包含域信息的集合,包含域信息的文件稱為“區(qū)文件”。
DNS的作用是把IP地址轉(zhuǎn)化為代表主機(jī)、網(wǎng)絡(luò)和郵件別名的助記名。它把整個Internet IP地址和名字空間分解為不同的邏輯組來做這項(xiàng)工作。每個組對它所擁有的計(jì)算機(jī)和其他信息具有控制權(quán)。
DNS服務(wù)器的類型
BIND可以配置成以幾種不同的方法運(yùn)行的DNS,常見的BIND配置是唯轉(zhuǎn)換程序系統(tǒng)、唯高速緩存系統(tǒng)、主服務(wù)器和輔助服務(wù)器。
轉(zhuǎn)換程序是一段要求域名服務(wù)器提供域信息的程序,在Linux系統(tǒng)中,它是作為一個庫程序來實(shí)現(xiàn)的,不是一個單獨(dú)的客戶程序。在唯轉(zhuǎn)換程序系統(tǒng)中,僅使用轉(zhuǎn)換程序,并不運(yùn)行域名服務(wù)器。這種系統(tǒng)是很容易配置的,最多只需要設(shè)置/etc/resolv.conf文件。其它三個BIND配置選項(xiàng)都是用于 named服務(wù)軟件的。
唯高速緩存服務(wù)器 唯高速緩存服務(wù)器(caching-only server)可運(yùn)行域名服務(wù)器軟件但是沒有域名數(shù)據(jù)庫軟件。它從某個遠(yuǎn)程服務(wù)器取得每次域名服務(wù)器查詢的回答,一旦取得一個答案,就將它放在高速緩存中,以后查詢相同的信息時(shí)就用它予以回答。所有的域名服務(wù)器都按這種方式使用高速緩存中的信息,但唯高速緩存服務(wù)器則依賴于這一技術(shù)提供所有的域名服務(wù)器信息。唯高速緩存服務(wù)器不是權(quán)威性服務(wù)器,因?yàn)樗峁┑乃行畔⒍际情g接信息。
對于唯高速緩存服務(wù)器只需要配置一個高速緩存文件,但最常見的配置還包括一個回送文件,這或許是最常見的域名服務(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)樗越^對的權(quán)威去回答對它域的任何查詢。
配置主服務(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)移出來的,并作為本地磁盤文件存儲在輔助服務(wù)器中。這種轉(zhuǎn)移稱為“區(qū)文件轉(zhuǎn)移”。在輔助域名服務(wù)器中有一個所有域信息的完整拷貝,可以有權(quán)威地回答對該域的查詢,因此,輔助域名服務(wù)器也稱作權(quán)威性服務(wù)器。
配置輔助域名服務(wù)器不需要生成本地區(qū)文件,因?yàn)榭梢詮闹鞣?wù)器中下載該區(qū)文件。然而其它的文件是確是需要的,包括引導(dǎo)文件、高速緩存文件和回送文件。
一個域名服務(wù)器可以是這類配置中的任何一種,但經(jīng)常是將多種配置類型的元素組合在一起。然而所有的系統(tǒng)都要運(yùn)行轉(zhuǎn)換程序。
DNS常用術(shù)語
DNS是一個很復(fù)雜的概念,表1列出了常用的DNS術(shù)語。
表1 常用DNS術(shù)語
術(shù)語
說明
域
代表網(wǎng)絡(luò)一部分的邏輯實(shí)體或組織
域名
主機(jī)名的一部分,它代表包含這個主機(jī)的域。它可以和域交換使用
主機(jī)
網(wǎng)絡(luò)上的一臺計(jì)算機(jī)
節(jié)點(diǎn)
網(wǎng)絡(luò)上的一臺計(jì)算機(jī)
域名服務(wù)器
提供DNS服務(wù)的計(jì)算機(jī),它將DNS名字轉(zhuǎn)化為IP地址
解析
把一個DNS服務(wù)器轉(zhuǎn)化為與其相映的IP地址的過程
解析器
從域名服務(wù)器中提取DNS信息的程序或庫子程序
反向解析
將給出的IP地址轉(zhuǎn)化為其相映的DNS名字
欺騙
使網(wǎng)絡(luò)看上去好象具有不同的IP地址或域名的行為
在概念上可以把DNS分為三個部分:
域名空間這是標(biāo)識一組主機(jī)并提供他們的有關(guān)信息的樹結(jié)構(gòu)的詳細(xì)說明。樹上的每一個節(jié)點(diǎn)都有它控制下的主機(jī)的有關(guān)信息的數(shù)據(jù)庫。查詢命令試圖從這個數(shù)據(jù)庫中提取適當(dāng)?shù)男畔ⅰ:唵蔚卣f,這只是所有不同類型信息的列表,這些信息是域名、IP地址、郵件別名和那些在DNS系統(tǒng)中能查到的內(nèi)容。
域名服務(wù)器它們是保持并維護(hù)域名空間中的數(shù)據(jù)的程序。每個域名服務(wù)器含有一個域名空間子集的完整信息,并保存其它有關(guān)部分的信息。一個域名服務(wù)器擁有它控制范圍的完整信息。控制的信息按區(qū)進(jìn)行劃分,區(qū)可以分布在不同的域名服務(wù)器上,以便為每個區(qū)提供服務(wù)。每個域名服務(wù)器都知道每個負(fù)責(zé)其他區(qū)的域名服務(wù)器。如果來了一個請求,它請求給定域名服務(wù)器負(fù)責(zé)的那個區(qū)的信息,那么這個域名服務(wù)器只是簡單地返回信息。但是,如果請求是不同區(qū)的信息,那么這個域名服務(wù)器就要與控制該區(qū)的相映服務(wù)器聯(lián)系。
解析器 解析器是簡單的程序或子程序庫,它從服務(wù)器中提取信息以響應(yīng)對域名空間中主機(jī)的查詢。
配置轉(zhuǎn)換程序
使用DNS的第一步是在用戶的計(jì)算機(jī)上配置轉(zhuǎn)換程序,即讓機(jī)器能夠能夠從DNS服務(wù)器中獲取域名解析/反解析服務(wù)。轉(zhuǎn)換程序不是一個單獨(dú)而明確的處理進(jìn)程,而是網(wǎng)絡(luò)進(jìn)程調(diào)用的一個標(biāo)準(zhǔn)C程序庫。如果本地系統(tǒng)不運(yùn)行named,就必須配置本地轉(zhuǎn)換程序。
轉(zhuǎn)換程序控制文件/etc/host.conf
/etc/host.conf是用來控制本地轉(zhuǎn)換程序的文件的設(shè)置。該文件告訴轉(zhuǎn)換程序使用哪些服務(wù)、按照什么順序進(jìn)行。該文件的字段可以用空格或制表符分隔。字符“#”表示注釋行。表2是可在host.conf中指定的選項(xiàng)。
?
表2 /etc/host.conf文件的配置選項(xiàng)
選項(xiàng)
說明
order
指定按照哪種順序來嘗試不同的名字解析機(jī)制。按列出的順序來進(jìn)行指定的解析服務(wù)。支持下面的名字解析機(jī)制:
hosts 試圖通過查找本地/etc/hosts文件來解析名字
bind 使用DNS域名服務(wù)器來解析名字
nis 使用網(wǎng)絡(luò)信息服務(wù)(NIS)協(xié)議來解析主機(jī)名字
multi
以off和on為參數(shù)。與host查詢一起使用,用來確定一臺主機(jī)是否在/etc/hosts文件中指定了多個IP地址
nospoof
如果用逆向解析找出與指定的地址匹配的主機(jī)名,對返回的地址進(jìn)行解析以確認(rèn)它確實(shí)與您查詢的地址相配。為了防止“騙取”IP地址,通過指定nospoof on來允許這種功能
alert
以off和on為參數(shù)。如果打開,任何試圖騙取IP地址的行為都通過syslog工具進(jìn)行記錄
trim
以域名為參數(shù)。在/etc/hosts中查找名字前,trim刪除這個域名。著使你只把基本主機(jī)名放在/etc/host.conf中而不指定域名
下面這個例子是主機(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.
這個例子給出了域vbrew.com的通用解析程序配置。該解析程序首先使用DNS然后使用/etc/hosts文件查找主機(jī)名。在解析查找中指定本地 /etc/hosts文件是一個好主意。如果由于某種原因不能使用域名服務(wù)器了,我們還可以使用主機(jī)文件中列出的那些主機(jī)名。該機(jī)器上允許使用多個IP地址,主機(jī)通過重新解析主機(jī)名字(從IP地址逆向查找返回的主機(jī)名字)來檢查IP欺騙。
轉(zhuǎn)換程序/配置文件/etc/resolv.conf
當(dāng)配置轉(zhuǎn)換程序使用BIND域名服務(wù)查詢主機(jī)時(shí),我們必須告訴轉(zhuǎn)換程序使用哪一個域名服務(wù)器。用來完成這項(xiàng)任務(wù)的工具就是/etc/resolv.conf 文件。/etc/resolv.conf控制轉(zhuǎn)換程序使用DNS解析主機(jī)名使用的方式,它可以明確地定義系統(tǒng)的配置,允許我們命名由于缺省服務(wù)器不響應(yīng)而使用的備份服務(wù)器。因此,盡管會增加系統(tǒng)負(fù)荷,但在某些場合使用resolv.conf是很受歡迎的。
/etc/resolv.conf是一個簡單而易讀的文件。在/etc/resov.conf中使用的命令,具有系統(tǒng)專用的形式,但一般都支持domain和nameserver兩項(xiàng)命令。
nameserver 項(xiàng)利用IP地址去識別讓轉(zhuǎn)換程序去識別查詢域信息的那些服務(wù)器。我們可以多次使用nameserver選項(xiàng),可以使用多達(dá)三個域名服務(wù)器。這些名服務(wù)器是按照它們在文件中的順序進(jìn)行查詢的,如果沒有接收到一個服務(wù)器的響應(yīng),就去試表中的下一個服務(wù)器,直到所有服務(wù)器試完為止(如果在 /etc/resolv.conf文件中設(shè)置了三個以上的域名服務(wù)器,那么,即使前三個服務(wù)器都沒有響應(yīng)查詢請求,Linux也不會去請求后面的服務(wù)器)。我們應(yīng)該將最可靠的域名服務(wù)器列在最前面,以便在查詢時(shí)不會超時(shí)。如果resolv.conf文件中不包含nameserver項(xiàng),或者不存在 resolv.conf文件,就將所有名服務(wù)器查詢發(fā)送給本地主機(jī)。然而,如果有一個resolv.conf文件,它包含nameserver項(xiàng),除非有一項(xiàng)指向本地主機(jī),否則就不查詢本地主機(jī)。在配置唯轉(zhuǎn)換程序的主機(jī)中,resolv.conf文件包含nameserver項(xiàng),但沒有一個項(xiàng)指向本地主機(jī)。
domain項(xiàng)用來定義缺省域名(主機(jī)的本地域名)。轉(zhuǎn)換程序會將缺省域名掛在任何不含點(diǎn)的主機(jī)名后面。例如,轉(zhuǎn)換程序接收到主機(jī)名 vale(它不含點(diǎn)),就將其缺省域名掛接在vale后面,構(gòu)成對它的查詢。如果domian域中的name值是vbrew.com,那么轉(zhuǎn)換程序就將查詢vale.vbrew.com。如果沒有出它,則轉(zhuǎn)換程序就試圖通過getdomainname()系統(tǒng)調(diào)用來獲得本地域名。
如果聽起來讓人迷惑不解的話,我們可以看看下面這個例子,這是Virtual Brewery中的resolv.conf文件:
# /etc/resolv.conf
# Our domain
domain vbrew.com
#
# We use vlager as central nameserver:
nameserver 191.72.1.1
在該例中,通過domain指定缺省域名,并列出一個用于解析主機(jī)名的域名服務(wù)器。在這個例子中沒有指定查尋順序(使用search選項(xiàng)),因此如果要查詢一臺機(jī)器的地址(如vale),解析器則首先試圖查找vale,如果沒找到,則查找vale.vbrew.com,然后再查找vbrew.com。
唯轉(zhuǎn)換程序配置
配置唯轉(zhuǎn)換程序是非常簡單的,下面是一個唯轉(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)換的。這一個簡單的resolv.conf文件就可以滿足唯轉(zhuǎn)換程序配置的全部要求。
設(shè)置域名服務(wù)器
在Linux 上的域名服務(wù)是由named守護(hù)進(jìn)程來執(zhí)行的,named最早是為BSD向客戶機(jī)提供域名服務(wù)而開發(fā)的。named守護(hù)進(jìn)程通常在系統(tǒ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就會開始運(yùn)行,讀取named.boot文件及其定義的任何區(qū)文件并將它的進(jìn)程ID以ASCII碼的形式寫入/var/run/named.pid中,下載任何來自主服務(wù)器的區(qū)文件,如果有必要的話在端口53等待DNS請求。
雖然轉(zhuǎn)換程序的配置只需要一個配置文件,但是在配置named時(shí)卻要使用多個文件,一整套named配置文件如表3所示。
表3 named配置文件
配置文件
說明
named.conf
設(shè)置一般的named參數(shù),指向該服務(wù)器使用的域數(shù)據(jù)庫信息的源,這類源可以是本地磁盤文件或遠(yuǎn)程服務(wù)器
named.ca
指向根域名服務(wù)器
named.local
用于在本地轉(zhuǎn)換回送地址
named.hosts
將主機(jī)名映射為IP地址
named.rev
用于反向域的、將IP地址映射到主機(jī)名的區(qū)文件
在下面各節(jié)中我們將探討如何利用其中的每一個文件去配置named。
/etc/named.conf文件
named.conf文件通常很小,只包括一些指向DNS信息源的信息。其中某些源是本地文件,其他則是遠(yuǎn)程服務(wù)器。下面我們將看到一個需要生成的每種文件類型的例子。
表4概括了named.conf文件中使用的各種配置語句,它提供的信息能幫助我們了解這一些例子:
表4 named.boot文件的配置選項(xiàng)
選項(xiàng)
說明
Directory
指定DNS文件所在的目錄。您可以重復(fù)此選項(xiàng)以指定幾個不同的目錄。可以給出這些目錄相關(guān)的文件路徑名
Master
以一個域名和一個文件名為參數(shù)。此選項(xiàng)聲明named對指定的域具有控制權(quán),并使named從指定的區(qū)域加載信息
Hint
為named建立高速緩存信息。以一個域名和一個文件名為參數(shù)。域名通常用“.”指定。指定的文件包括一組稱為服務(wù)器提示的記錄,這些記錄列出了根域名服務(wù)器的信息
Forwarders
以一個域名服務(wù)器的列表作為參數(shù)。告訴本地域名服務(wù)器:如果它不能從它的本地信息中解析出地址,那么就與該列表中的服務(wù)器聯(lián)系
Slave
把本地域名服務(wù)器變成一個從屬服務(wù)器。如果給出了此選項(xiàng),那么本地服務(wù)器就試著通過遞歸查詢來解析DNS名字。它只把請求傳遞給forwarders選項(xiàng)行列出的服務(wù)器中的一個
配置named.conf文件所使用的方法,是用來控制將域名服務(wù)器作為主服務(wù)器、輔助服務(wù)器還是唯高速緩存服務(wù)器的。理解不同配置的最佳方法是討論各種named.conf的示例文件。
1.唯高速緩存服務(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到哪里去找尋文件。所有其后命名的文件都將是相對于此目錄的。該文件告訴named去維持一個域名服務(wù)器響應(yīng)的高速緩存,并利用 named.ca文件的內(nèi)容去初始化該高速緩存。該高速緩存初始化文件的名字可以是任何名字,但一般使用/var/named/named.ca。并不是在該文件中使用一個hint語句就能使它成為唯高速緩存配置,幾乎每一種服務(wù)器的配置都要用到cache語句,而是因?yàn)闆]有master和slave語句才使它成為一個唯高速緩存配置。
但是,在我們這個例子中卻有一個master語句。事實(shí)上,幾乎在每一個唯高速緩存的配置文件中都有這一個語句,它將本地服務(wù)器定義為它自己的回送域的主服務(wù)器,并假定該域的信息存儲在named.local文件中。這個回送域是一個in- addr.arpa域(in-addr.arpa域用于指定逆向解析,或IP地址到DNS名字解析),它將地址127.0.0.1映射為名字 localhost。轉(zhuǎn)換自己的回送地址對于大多數(shù)人都是有意義的,因?yàn)榇蠖鄶?shù)的named.conf文件都包含這一項(xiàng)。
在大多數(shù)唯高速緩存服務(wù)器的配置文件中,這種directory、master和hint語句是唯一使用的語句,但也可以增加其他的語句,forwarders和slave等語句都可以使用。
2.主服務(wù)器和輔助服務(wù)器的配置
我們虛構(gòu)的vbrew.com是舉例說明主服務(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";
};
上例中第一個master告訴我們這是vbrew.com域的主服務(wù)器。該域的數(shù)據(jù)是從named.hosts文件中加載的。在我們這個例子中,我們將文件名named.hosts作為區(qū)文件名,但也可以使用更有說明性的文字,例如,vbrew.com區(qū)文件的名字使用vbrew.com.hosts則較好。
第三個master語句指向能將IP地址191.72.0.0映射為主機(jī)名的文件。它假定本地服務(wù)器是反向域72.191.in-addr.arpa的主服務(wù)器,該域的數(shù)據(jù)從文件named.rev中加載。
在上例配置中的hint語句和第二個用于回送域的primary語句我們前面在唯高速緩存配置中已經(jīng)討論過。在這些配置中,它們的作用是相同的,而且?guī)缀踉谌魏闻渲弥卸家褂盟鼈儭?/p>
輔助服務(wù)器的配置與主服務(wù)器的配置不同,它使用slave語句代替master語句。slave語句指向用作域信息源的遠(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
第一個slave語句是使這個服務(wù)器成為vbrew.com的輔助服務(wù)器。它告訴named從IP地址為191.72.1.3的服務(wù)器中下載 vbrew.com的信息,并將其數(shù)據(jù)保存在/var/named/named.hosts文件中。如果該文件不存在,named就創(chuàng)造一個,并從遠(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)移工作。
將一個數(shù)據(jù)庫拷貝到本地磁盤文件中,就不必每次引導(dǎo)主機(jī)時(shí)都要轉(zhuǎn)移區(qū)文件;只有當(dāng)數(shù)據(jù)修改時(shí),才進(jìn)行這種區(qū)文件的轉(zhuǎn)移工作。
該配置文件中的下一行表示該本地服務(wù)器也是反向域72.191.in-addr.arpa的一個輔助服務(wù)器,而且該域的數(shù)據(jù)也從191.72.1.3中下載。該反向域的數(shù)據(jù)存儲在named.rev中。
DNS數(shù)據(jù)庫文件和資源記錄
配置named所需的所有文件(named.hosts、named.rev、named.local和named.ca)中的信息是以稱為資源記錄的形式存在的。每個資源記錄都有一個類型,這個類型說明記錄的功能。這些記錄都是標(biāo)準(zhǔn)資源記錄,稱為RR(resource records)。表5列出了最常見的資源記錄類型,其余的類型很少用到,如果感興趣的話。請參考相應(yīng)的RFC和man page。
表5 常見標(biāo)準(zhǔn)資源記錄
資源記錄名
記錄類型
功能說明
地址
A
將主機(jī)名轉(zhuǎn)換為地址。這個字段保存以點(diǎn)分隔的十進(jìn)制形式的IP地址。任何給定的主機(jī)都只能有一個A記錄,因?yàn)檫@個記錄被認(rèn)為是授權(quán)信息。這個主機(jī)的任何附加地址名或地址映射必須用CNAME類型給出
規(guī)范名
CNAME
給定一個主機(jī)的別名,主機(jī)的規(guī)范名字是在這個主機(jī)的A記錄中指定的
主機(jī)信息
HINFO
描述主機(jī)的硬件和操作系統(tǒng)
郵件交換
MX
建立郵件交換器記錄。MX記錄告訴郵件傳送進(jìn)程把郵件送到另一個系統(tǒng),這個系統(tǒng)知道如何將它遞送到它的最終目的地
名服務(wù)器
NS
標(biāo)識一個域的域名服務(wù)器。NS資源記錄的數(shù)據(jù)字段包括這個域名服務(wù)器的DNS名。我們還需要指定這個名字名字服務(wù)器的地址與主機(jī)名相匹配的A記錄
指針
PTR
將地址變換成主機(jī)名。主機(jī)名必須是規(guī)范主機(jī)名
管理開始
?
SOA
?
告訴域名服務(wù)器它后面跟著的所有所有資源記錄是控制這個域的(SOA)表示授與控制權(quán))。其數(shù)據(jù)字段用()括起來并且通常是多行字段。SOA記錄的數(shù)據(jù)字段包含下面的項(xiàng):
origin
這個域的主域名服務(wù)器的規(guī)范主機(jī)名。用點(diǎn)“.” 結(jié)尾的絕對主機(jī)名,因此,它不能被named守護(hù)進(jìn)程修改
contact
負(fù)責(zé)維護(hù)這個域的人的電子郵件聯(lián)系地址。因?yàn)?#64;在資源記錄中有特殊的意義,所以用點(diǎn)“.”代替這個符號。如果負(fù)責(zé)維護(hù)vbrew.com的人是clfls,那么聯(lián)系地址就是clfls.vbrew.com
serial
這個區(qū)信息文件的版本號,它是一個整數(shù)。輔助域名服務(wù)器用它來確定這個區(qū)信息的文件是何時(shí)改變的。每次改變信息文件時(shí)都應(yīng)該使這個數(shù)加一
refresh
輔助域名服務(wù)器在試圖檢查主域名服務(wù)器的SOA記錄之前應(yīng)等待的秒數(shù)。SOA記錄不經(jīng)常改變,因此可以把這個值設(shè)置為一天
retry
輔助服務(wù)器在主服務(wù)器不能使用時(shí),重試對主服務(wù)器的請求應(yīng)等待的秒數(shù)。通常,它應(yīng)該按分進(jìn)行設(shè)置
expire
這是輔助服務(wù)器在不能與主服務(wù)器取得聯(lián)系的情況下丟掉區(qū)信息之前應(yīng)等待的秒數(shù),一般應(yīng)該設(shè)置成30天左右
minimum
當(dāng)沒有指定ttl資源記錄時(shí)默認(rèn)的ttl值。如果網(wǎng)絡(luò)沒有太大的變化,那么這個數(shù)可以設(shè)得很大。可以在資源記錄中指定一個ttl值來代替它
為了能看懂本章中使用的配置示例文件,有必要稍微介紹以下資源記錄的結(jié)構(gòu)。DNS資源記錄的格式是:
[domain] [ttl] [class] type rdate
各個字段之間有空格或指標(biāo)符分隔。表6討論了這些字段的含義。
表6 資源記錄格式中的字段
字段
說明
domain
資源記錄引用的域?qū)ο竺K梢允菃闻_主機(jī),也可以是整個域。作為domain輸入的字串除非不是以一個點(diǎn)結(jié)束,否則就與當(dāng)前域有關(guān)系。如果該domain字段是空的,那么該記錄適用于最后一個帶名字的域?qū)ο?/p>
ttl
生存時(shí)間記錄字段。它以秒為單位定義該資源記錄中的信息存放在高速緩存中的時(shí)間長度。通常該字段是空字段,這表示使用SOA記錄中為整個區(qū)域設(shè)置的缺省ttl
class
指定網(wǎng)絡(luò)的地址類。對于TCP/IP網(wǎng)絡(luò)使用IN。如果沒有給出類,就使用前一個資源記錄的類
type
標(biāo)識這是哪一類資源記錄
rdata
指定與這個資源記錄有關(guān)的數(shù)據(jù)。這個值是必要的。數(shù)據(jù)字段的格式取決于類型字段的內(nèi)容
named.ca文件
named.boot 文件中的cache語句指向一個高速緩存初始化文件,具有高速緩存的服務(wù)器都有這樣一個文件。它包含著域名服務(wù)器啟動時(shí)開始創(chuàng)造一個域數(shù)據(jù)高速緩存所需的信息。在cache語句中,用一個指點(diǎn)其根域,在named.ca文件中至少包含根服務(wù)器的名字和地址。named的高速緩存操作是很重要的。幸運(yùn)的是,建立高速緩存的named.ca文件通常是最簡單的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)識根(.)域的各服務(wù)器的NS記錄,在NS記錄之后,是一組為每個根服務(wù)器提供地址的A記錄。雖然不需要ttl,但習(xí)慣上每個記錄的ttl是99999999(可能的最大值)。因?yàn)楦?wù)器是永遠(yuǎn)不會從高速緩存中刪除的。
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í)際上對于每一個系統(tǒng)都是相同的。下面是從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記錄的數(shù)據(jù)字段和包含主機(jī)名的NS記錄是隨系統(tǒng)不同而不同的。本例中SOA記錄將vlager.vbrew.com標(biāo)識為開創(chuàng)該區(qū)的服務(wù)器,將電子郵件地址joe.vbrew.com標(biāo)識為解決該區(qū)問題的聯(lián)系地點(diǎn)(在SOA記錄中,通常將電子郵件地址中用來分隔接收者名字和主機(jī)名的@修改成一個點(diǎn),其它字段則保持不變)。很多系統(tǒng)甚至不包含NS記錄,若要用它,就包含計(jì)算機(jī)的主機(jī)名。修改這三個字段我們就可以在任何主機(jī)中使用這個文件。
到目前為止我們討論的文件named.boot、named.ca和named.local都是配置唯高速緩存服務(wù)器和輔助服務(wù)器時(shí)所需要的文件。大多數(shù)服務(wù)器將只需要這些文件,而且使用的這些文件在,每一個服務(wù)器上幾乎都包含相同的信息。
其它的named配置文件比較復(fù)雜,但是使用這些文件的服務(wù)器數(shù)量比較少,只有主服務(wù)器需要所有的配置文件,而每個域只有一個主服務(wù)器。
反向域文件named.rev
named.rev與named.host文件非常類似,都包含有PTR記錄,只是named.rev將地址映射為主機(jī)名。下面是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記錄的名字字段中的@是指向當(dāng)前域,本例是由named.boot示例文件中的primary定義的:
primary 72.191.in-addr.arpa named.rev
該SOA 記錄中的@允許primary語句去定義區(qū)文件域,vlager中每個區(qū)文件都使用相同一個SOA記錄;它總是引用正確的域名,因?yàn)樗玫亩际?named.boot為特定區(qū)文件定義的域。幾乎在每個區(qū)文件的開頭,我們都可以看到相同的SOA格式。請修改主機(jī)名vlager.vbrew.com和管理員電子郵件地址joe.vbrew.com,并在我們?nèi)魏我粋€區(qū)文件中使用該SOA記錄。
在SOA記錄后面的NS記錄可以該域的服務(wù)器,一般在其它任何記錄有機(jī)會去修改域名之前,將立即在SOA之后列出各域名服務(wù)器。請注意,一個空的名字字段意味著上一個域名仍然起作用,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行上為這個文件起用戶想要的名字。 named.hosts文件包含大部分的域信息,它可以將主機(jī)名轉(zhuǎn)換成IP地址,因而A記錄占有重要的地位,而且它還包含MX、CNAME和其它的記錄。該named.hosts文件和named.rev文件一樣,只有主服務(wù)器才有,其它所有的服務(wù)器可從主服務(wù)器取得信息。下面給出了一個使用多資源記錄類型的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記錄和定義域及服務(wù)器的NS記錄開頭。但named.hosts文件包括的資源記錄品種多于named.rev。我們根據(jù)這些記錄在示例文件中的順序來討論每一種記錄。
該文件的第一個記錄是域的SOA(授予控制權(quán))記錄。該記錄的第一行以@字符開始,@字符表示這是當(dāng)前原點(diǎn)或域。原點(diǎn)由 named.boot文件中相應(yīng)的primary行上列出的域定義給出。此后是代碼IN和SOA,它告訴named這個資源記錄使用Internet (TCP/IP)編址并且是授予控制權(quán)記錄。
這行接下來的兩項(xiàng)是這個域的主域名服務(wù)器的規(guī)范名字,和用點(diǎn)代替@的電子郵件聯(lián)系人的地址。然后列出SOA記錄要求的各種數(shù)據(jù)段,一行一個。
在SOA記錄后,下一行是域名服務(wù)器資源記錄。它列出vlager.vbrew.com作為這個域的域名服務(wù)器。因?yàn)樵谟蜃侄沃袥]有列出任何域,所以假設(shè)是最后一個指定的域,也就是在SOA記錄中列出的@。而且@字符確實(shí)是本地域。這是比較容易理解的。
MX 記錄為整個域定義一個郵件服務(wù)器,該記錄假定vlager是vbrew.com域的郵件服務(wù)器,其優(yōu)先值是10。送給user@vbrew.com的郵件被重定向到vlager,以便進(jìn)行傳送。當(dāng)然,為了使vlager能夠成功地傳送郵件,就必須將它配置成郵件服務(wù)器。MX記錄只是整個事件中的一部分,我們將在第十一章中研究如何使用sendmail配置郵件服務(wù)器。
該例中第一個A記錄定義本地主機(jī)地址,這恰好和named.rev文件中的PTR記錄相反,它允許vbrew.com域中的用戶輸入本地主機(jī)名(localhost)并由本地服務(wù)器將它轉(zhuǎn)換為地址127.0.0.1。
接下來是定義子網(wǎng)brewery中的主機(jī)。第一個A記錄為網(wǎng)關(guān)vlager定義了IP地址,然后使用CNAME定義了vlager 的別名vlager-if1,接下來又說明vlager還是新聞服務(wù)器(news)。之后為這個域的另外兩臺主機(jī):vstout和vale建立地址記錄。
然后四個A記錄定義了子網(wǎng)winery中的四臺主機(jī)的IP地址:vlager-if2、vbardolino、vchianti和vbeaujilias。
錯誤查找
在配置好named.boot文件和所需的區(qū)文件之后,我們就可以啟動named了。Named通常是在系統(tǒng)引導(dǎo)時(shí)啟動的,但是也可以使用下面命令啟動:
# /etc/rc.d/init.d/named/restart
或:
# ndc restart
在第一次運(yùn)行這些命令時(shí),請留意出錯信息。DNS是一個很復(fù)雜的系統(tǒng)。用戶可能會做錯很多事,并且會使系統(tǒng)不能正常運(yùn)行。伴隨DNS建立出現(xiàn)的許多問題都會引起相同的結(jié)果,但起因卻不同。但大多數(shù)問題是由于配置文件中的語法錯誤而導(dǎo)致的。
確保用戶的DNS配置文件中正確地指定了主機(jī)名。如果它是一個絕對主機(jī)名,要確保它以一個原點(diǎn)結(jié)尾。對在SOA和CNAME記錄中使用的名字要尤其小心。如果在這里弄錯了,這些資源記錄會把主機(jī)名查詢重定向到不存在的計(jì)算機(jī)。要確保在改變配置文件后增加配置文件中的版本號。如果忘了,那么DNS將不能再讀取這些文件。確保為A記錄輸入了正確的IP地址,并檢查這個地址是否與您的/etc/hosts文件匹配。另外,確保DNS名字和IP地址與named.rev中的相應(yīng)的逆向解析信息匹配。
查找錯誤的最好工具是nslookup命令。使用該命令徹底檢查用戶的DNS服務(wù)器。對用戶的DNS數(shù)據(jù)庫中的每個地址都進(jìn)行定期逆向解析,以確保所有的地址和名字都正確。
nslookup命令的使用
nslookup是檢查我們的域名服務(wù)器配置的最好工具,它是由BIND軟件包提供的。它允許任何人直接查詢域名服務(wù)器,對于確定服務(wù)器是否正確地運(yùn)行和是否配置得和合適是很有幫助的。
nslookup命令可以交互式的從命令行進(jìn)行查詢,在命令行中它可以用來查詢IP地址,例如:
$ nslookup hostname
這條命令要求定義在resolv.conf中的域名服務(wù)器查詢給定主機(jī)名的IP地址(如果有不止一個服務(wù)器,nslookup將按列在 /etc/resolv.conf文件中的順序選取一個作為查詢對象)。當(dāng)不帶任何參數(shù)時(shí),nslookup將顯示所使用的域名服務(wù)器的信息。在 “>”提示符下,我們可以輸入所要請求的查詢的域名;在提示符下輸入exit命令將會終止一次查詢會話。默認(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命令修改去查詢另一種資源記錄類型,下面的例子將會可檢查SOA記錄。請注意,如果將查詢類型設(shè)置成SOA。它將保持SOA不變,不會返回默認(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可以用來取得指定主機(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命令的另一個應(yīng)用為named.ca文件是獲取當(dāng)前根服務(wù)器的列表。我們可以使用set type=NS來查詢所有的根域名服務(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í),我們將會發(fā)現(xiàn)很多有幫助的功能。
?