solstice 回復于:2003-06-25 16:21:58 |
第十三章 域名服務
目標 通過本章的學習,你將能夠: l 描述域名服務的目的 l 描述關于DNS名字空間(DNS namespace),一個域名(domain)和一個權限區(a zone of authority)的區別 l 描述名字服務器的概念,包括名字服務器的不同類型,如主名字服務器,次名字服務器,和一個只是名字服務器的緩存(a caching only nameserver) l 描述一個解析器,并理解地址解析和反向地址解析的過程。 l 描述服務器端DNS設置文件的語法,包括文件:/etc/named.boot,緩存文件和區文件(zone) l 描述包括在SOA,NS,A,PTR,HINFO,和WKS資源記錄中的信息 l 對NIS做適當的修改使它能夠轉發請求到DNS l 描述客戶端的DNS設置文件的語法,/etc/resolv.conf l 描述管理員有效的使用DNS排除故障和尋找故障的方式 背景 ——問題 本地文件:/etc/hosts,本地的NIS 主機映射,或本地的NIS+主機表都不可能包含Internet上的所有可能的IP地址。既然在Internet上所有的通訊都需要使用一個已知的IP地址,那么一個工作站是如何與其它工作站在Internet上進行通訊的呢? ——最初的解決方案 在七十年代早期,在Internet上使用一個文件:hosts.txt,這個文件可以通過使用ftp下載到主機。隨著更多網絡加入Internet,每個新網絡的管理員使用ftp 傳輸他們的主機名和IP地址給 hosts.txt文件的管理者。 Internet的成長是不能用尺度來衡量的,保持 hosts.txt 文件最新已經是一個非常困難的任務并且網絡的帶寬被ftp 的傳輸消耗,一個新的更好的解決方案急需出臺。 ——今天的解決方案 當前使用域名服務來允許主機與Internet進行通信。即使每個主機可能沒有適當的IP地址信息有效的通過本地資源。 域名服務 域名服務(DNS)是在Internet內提供IP地址的分布式管理的應用軟件。 l DNS允許管理員維護關于本地主機的信息并同Internet上的其它主機共享這些信息。 l DNS是由位于加利福尼亞的Berkeley大學 Berkeley Internet Name Domain(BIND)開發的常用軟件。Sun使用BIND軟件的一個端口。 DNS 術語 ——域名空間(Domain Namespace) l DNS已知的所有主機包括在DNS的名字空間。 l DNS的名字空間劃分為等級域。名字空間以根域開始,并包括所有的子域。 ——域(Domains) 一個域是DNS名字空間的子樹。每個域被DNS名字空間賦予唯一的名。 域名的組成由“.”分隔開。每一個標簽被限制在63個字符,通常,一個標簽少于8個字符。全部的域名長度不能超過255個字符。 例如: sun.com. 或者: math.ucb.edu. 一個完整的域名以 “.” 來結束,說明這是一個絕對的或是一個有完全資格的域名。那些不以“.”為結束的稱為相對或是一個有部分資格的域名。 個別主機的域名涉及到他們所處的位置。 例如 :ftp host1.math.ucb.edu. mail user@host1.math.ucb.edu. ——頂級域名 頂級域名由網絡信息中心(NIC)管理。低級的域名則代表了Internet的一部分,即多種不同的組織。 頂級域名被組織用來依賴的類型或組織的目的。 l Com ——商業組織 l Edu ——教育組織 l Gov ——政府組織,協會 l Mil ——軍事組織 l Net ——網絡組織 l Org ——非商業組織 一些頂級域名不是一個組織,但是依據地理位置劃分的。這些劃分涉及到國家代碼并 通常是兩個字符。 l cn——中國 l us——美國 l au——澳大利亞 頂級域名的選擇依賴于最適合的你的組織的需求。大的組織試圖使用組織域而小組織 或個別則選擇使用一個國家代碼。 —— 一個特別的頂級域----in-addr.arpa. 域 in-addr.arpa. 是一個特別的頂級域由NIC來管理,目的是把已知的IP地址解析成主機名字。所有其它的頂級域都用來解析一個已知的主機名到未知的IP地址。 當任何一個IP地址遇到的主機名無法識別,DNS必須有一種轉換IP地址到主機名的機制。為了做到這一點,反向IP地址并把它做為一個在頂級域 in-addr.arpa.下的域名?,F在,IP地址被解析成和其它域名一樣了。 例如 : 主機 128.50.1.4的名字信息在域:1.50.128.in-addr.arpa. 中。 ——權限區(Zones of Authority) 域(domains)和權限區(zones of authority)是不一樣的。一個域名是指在名字空間的唯一空間。一個權限區則是指主機數據的存放位置,在域內被管理。 如果在一個給定域的主機信息由域(domain)來管理,那么域和權限區就是相同的了。然而,如果父域管理相關主機的信息在一個子域又是它自己的主機,那么,權限區則跨躍了父域和子域。 頂級域如,com ,edu ,和 org ,由NIC來管理。低級域的權限代表DNS的用戶。 ——名字服務器(Nameserver) DNS名字服務器是一個實際上的守護進程,作為DNS服務器運行在主機的配置中。在SunOS操作系統中執行BIND的守護進程的名字是: /usr/sbin/in.named 如果文件:/etc/named.boot已經被創建,那么守護進程:in.named由腳本 /etc/rc2.d/S72inetsvc 以級別2開始。(文件:named.boot將在后面繼續討論)。如果使用一個不同于 named.boot的文件名,那么,/etc/rc2.d/S72inetsvc 啟動腳本必須修改。 在文件:/etc/rc2.d/S72inetsvc; if [ -f /usr/sbin/in.named –a –f /etc/named.boot];then /usr/sbin/in.named;echo “starting internet domain name server.” fi in.named提供信息給客戶端程序需求關于給定主機名字的IP地址的信息或給定IP地址的主機信息。這個過程稱為解析。 為了提供需求的信息,in.named必須涉及到已經由DNS系統管理員創建的數據文件。這些數據文件包含關于在一個名字服務器中的權限區的主機名和IP地址信息。 實際的名字和一些數據文件的定位經常從一個位置改變到另一個位置,盡管他們的功能和語法由DNS的規則決定。 DNS服務器的類型 ——主DNS服務器 l 對主機的最后的權限驗證和IP地址信息在這里 l 在區內的所有改變信息都被數據文件定位在這個服務器中 l 在它的區內,定期的更新DNS服務器的其它類型 l 能夠代表子網給其它服務器授權 ——輔DNS服務器 l 保留有在主服務器中創建的數據的拷貝 l 在主服務器無效時是有用的 l 為主服務器提供負荷共享 ——緩存DNS服務器 l 只是維持最近使用過的DNS數據在內存緩存中 l 被保存的緩存數據一個相關的生存時間值,來保護過時的信息 l 不提供權限驗證信息,作用與主和輔服務器相同 ——DNS 根服務器(DNS Root Servers) l NIC已經指定了幾個服務器為DNS根域服務器。所有的DNS主服務器都需要配置根服務器的主機名和IP地址來為域名和IP地址解析搜索有一個開始的空間 域名服務客戶端 ——解析器 l 實際上是沒有DNS客戶端守護進程的 l DNS客戶端請求由被稱為是庫的例程生成,在Internet 程序的標準不同時。如使用的:telnet,ftp,和 mail l 這些庫例程只運行在DNS已經配置并且使用的情況下。使用本地主機上的文件和NIS主機的映射時,不需要使用DNS l 庫解析器例程使用文件:/etc/resovl.conf 來決定使用的名字服務器。這個文件將在以后繼續討論 ——解析 解析是使用DNS從一個給定的主機名獲取一個IP地址或是從一個給定的IP地址獲取主機名的過程。 解析過程分為如下幾步: 1. 用戶鍵入包含一個主機名的命令,如: ftp host1@math.ucb.edu. 2. 首先試圖通過 ypserv 執行NIS主機映射或通過 rpc.nisd 執行NIS+主機表將主機名解析為一個IP地址。 3. 如果NIS或NIS+不能解析主機名,那么DNS解析器例程試圖連接到在文件: resolv.conf 中的名字服務器列表。 4. 解析器例程將會發一個遞歸查詢給名字服務器。 遞歸查詢強迫名字服務器去提供所請示的信息并且不能為查詢剛好返回下一個名字服務器的IP地址。 5. 本地的名字服務器將會檢查域名和開始,并通過連接一個根名字服務器來開始搜索。本地的名字服務器將會發送一個重復的查詢給根名字服務器。 重復的查詢(iterative queries)是很有禮貌的,它們允許其它的名字服務器來支持另一個名字服務器的IP 地址并且不是實際的信息請求。 6. 舉個例子來說,根名字服務器用 edu 的名字服務器的IP 地址來應答,并且本地名字服務器給edu 名字服務器發送了重復的請求。 7. Edu 名字服務器應答匹配的域名服務器的IP地址。 8. 本地的名字服務器直接發送另一個重復的請求給匹配的名字服務器。匹配的名字服務器檢查它的數據文件并用host1的IP地址應答本地的名字服務器。 9. 本地的名字服務器接替 host1 的IP 地址給解析器例程,然后 ypserv/rpc.nisd返回它給查詢進程,ftp 連接繼續進行。 ——緩存 每一次一個名字服務器都試圖解析一個客戶請求,它(如果需要的話)必須遍歷DNS名字空間的多個地區。因為名字服務器遍歷名字空間,它必須學習其它域名服務器和他們的IP 地址。 這個信息為了將來能夠參考緩存在內存中,這樣,不是所有的查詢都必須從根名字服務器開始了。所有的緩存域信息對生存時間值來說是個主題,通過對遠程域的管理。 你必須有一個有效的,唯一的IP地址由NIC分配給你的網絡。你必須決定你適合哪一個,哪一個是你的父域,以及你將使用哪一個唯一的標簽。 你的DNS域名和你的NIS/NIS+域名應該一起選擇,以便于他們相互適合。關于sendmail的忠告,默認的,去掉你的NIS/NIS+域名的第一個組件,對外界使用你所剩下的郵件目標??s寫的域名就是剩下的你將使用的域名。 例如: 你的公司是 Foobar.com 你的DNS 域名就是: foobar.com 因此,你的NIS/NIS+域名也就是 sales.foobar.com 你必須連接到你的父域并注冊。父域需要知道你的域名和你至少一個名字服務器的IP地址和名字。這個信息可以從你的網絡管理員或NIC那里得到。 你還必須有你的反向IP地址域名權限代表你,由NIC,所以,IP地址到域名的解析才可能。例如:你的網絡地址是 192.9.200.0,那么,你就必須有對200.9.192.in-addr.arpa域的NIC代表權限。 NIC 的電話服務在周一到周五的早7點到晚7點。NIC也維護一個在線的全天24小時郵箱,以下的郵件地址: l HOSTMASTER@INTERNIC.NET 來為主機,域,網絡的改變和更新服務 l ACTION@INTERNIC.NET 來為計算機操作服務。 SunOS 5.x DNS 安裝概括 l 獲得一個有效的Internet IP 地址 l 選擇一個域名并在父域中進行注冊 l 為主DNS服務器配置數據文件 l 設置并配置最少一個輔DNS服務器的數據文件 l 轉變全部的域到NIS/NIS+中,并配置NIS/NIS+服務器來轉發DNS請求到DNS名字服務器 ——DNS 數據文件 假設為以下的網絡設置數據文件為例。 (.) 根域 根服務器:lettuce IP 地址:128.50.2.3 DNS的域名:veggie.Veggie. 主:tomato.veggie.IP 地址:128.50.2.2Veggie. 輔:potato.veggie.IP 地址:128.50.2.1Veggie.客戶:carrot.veggie.IP 地址:128.50.2.4 DNS的域名:fish.Fish. 主:tomato.fish.IP 地址:128.50.3.6Fish. 輔:potato.fish.IP 地址:128.50.3.7Fish.客戶:carrot.fish.IP 地址:128.50.3.8 DNS 設置過程——主DNS服務器 ——關于文件:/etc/named.boot 創建 in.named 的配置文件:/etc/named.boot。如果這個文件的名字或位置有所不同,那么in.named 守護進程必須在腳本 /etc/init.d/inetsvc 中通報。守護進程 in.named在啟動時讀取named.boot 來允許進程決定DNS數據文件的名字和定位。數據文件包括實際的主機信息。 ; named.boot file for the veggie. Domain ; on the host tomato.veggie. directory /var/named cache Cache primary veggie. Veggie.zone primary 1.50.128.in-addr.arpa veggie.rzone primary 0.0.127.in-addr.arpa loop.back 在所有的DNS數據文件中,跟在一個分號后面的是一個注釋??盏男幸彩强梢越邮艿?。單詞“directory”是一個DNS關鍵詞用來通告守護進程 in.named 哪個目錄包含DNS數據文件。它通常是 /var/named,但,可以被定義在任何地方。 DNS關鍵字:”cache”,指明了在 /var/named 中包含根DNS名字服務器的主機名和IP地址的文件的名字。這些信息是必要的,雖然文件名可能有些不同。在上面的例子中,要找到根(.)名字服務器,檢查文件名 cache。 “primary”這個關鍵字在對數據文件列表時使用,包含了在每行中間段的域名列表信息。這個文件在DNS中沒有任何規定的名字,但是被用來描述他們所包含的數據。 在例子中,為了獲取關于主的有關于在域 veggie 中主機名字到IP地址的解析的權限信息,涉及到文件: veggie.zone 為了在2.50.128.in-addr.arpa 域中獲得關于IP 地址到主要名的解析的主權限信息,涉及到文件 veggie.revzone。 為了獲取關于解析 loopback IP 地址到主機名 localhost的權限信息,涉及到文件loop.back。所有的名字服務器都是有權限的對于他們自身的 loopback IP 地址,并且在他們的named.boot 文件中存在這個入口。 DNS 數據文件 DNS數據文件就是那些實際在他們的權限區描述主機名和IP 地址的文件。這是被名字服務器用來解析一個已知IP 地址到主機名的信息,或從一個已知的主機名到IP地址。 在一個DNS數據文件的每一行都涉及到一個資源記錄,因為它指定一些可以使用的資源。有很多類型的資源記錄。 本章只包含了 NameServer(NS),Address(A),Start of Authority(SOA),Pointer(PTR),Host Information(HINFO),和 Well-Known Services(WKS),等資源記錄。 資源記錄不可以跨躍多個行(除了SOA 和WKS,這將在后面討論)。DNS數據文件是 case-insensitive。 ——文件:/var/named/cache 這個文件包含了根DNS名字服務器的主機名和IP地址。如果在當時沒有其它適當的名字服務器,那么客戶端使用這個文件作為解析信息請求的開始點。 在例子中的緩存文件使用了具體的語法規則,就象是由 named.boot 文件具體了所有所有的DNS數據文件一樣。注意,分號和空格行是可以接受的。 例子: ; ;cache file – initial cache for root servers ; . in ns ns.nic.ddn.mil. in ns sa.isi.edu. in ns terp.umd.edu. in ns c.nyser.net. ns.nic.ddn.mil in a 192.112.36.4 sa.isi.edu in a 26.0.0.73 terp.umd.edu in a 128.8.10.90 c.nyser.net in a 192.33.4.12 l 在這個文件中前四個沒有內容的行被稱為NameServer 的資源記錄,因為在每行的第四段有“ns”。每行描述了DNS的根名字服務器。 l 一個NS資源記錄的第一個字段決定了域。在這個例子中,在第一行的點是指你要為根DNS域描述名字服務器。因為下三行的第一個字段為空,點已經被假定了。 l 第二個字段是一個時間溢出值(99999999)與數據有關。它不再被使用,但,??梢栽诰彺嫖募锌吹剿?。它可以省去。 l 第三個字段(包括“in”)表示網絡的類,是指Internet。有其它的類,但已經不被廣泛使用,所以,就不再討論它了。 l 文件的最后四行是地址資源的記錄,它由在第四個字段中的“a”來決定的。地址資源記錄指定了在NS資源記錄中的從前的名字服務器的IP地址列表。 ——文件:/var/named/veggie.zone 文件:/var/named/veggie.zone 包含了在域 veggie.中的主機和它們的IP地址的關系信息。這個文件還指定了關于域的權限信息和是否被DNS管理者更新等。 這個文件主要用在主機的名字到地址的解析。它也提供了數據的生存值。 在啟動時,這個文件會被自動的拷貝到輔名字服務器中,這允許它們也為解析器提供權限信息。 ; ;veggie.zone file for the primary nameserver tomato.veggie. ; $ORIGIN veggie. Veggie. In soa tomato.veggie. root.tomato.veggie. ( 01.0 ;serial 10800 ;refresh [3 hours] 3600 ;retry [1 hours] 432000 ;expire [5 days] 86400   ![]() in ns tomato.veggie. ;primary in ns potoma.veggie. ;secondary $INCLUDE /var/named/veggie.hosts l 第一行包括了一個起源說明,它設置了$ORIGIN為veggie.這個值追加到一個域名或主機名,不以 . 來結束。 通常$ORIGIN說明不是必須的,因為這個值追加到部分有限制的域,并且主機名由文件:/etc/named.boot域名指定。 l 這個文件的第二個沒有內容的行是一個權限資源記錄的開始,它由在第三個字段中的:soa來決定。這些記錄的狀態是所有這個域中的絕對的權限信息。每個域只有一個SOA記錄。 l SOA記錄的第一個字段指定了域名,如果左邊空白,假定為$ORIGIN。 l 第二個字段所在的網絡類別。(為Internet) l 第四個字段顯示了包含SOA的主機列表。在例子中,是tomato.veggie. l 第五個字段包含了使用者的連接信息或這個域的管理者,在這個例子中,是位于主機tomato.veggie.上的root. l SOA可以包括更多的行,通過把信息包括在圓括號內 在左圓括號下有5個與域數據有關的值。 l 第一個值是001.00,這是由管理者選擇的簡單的連續的數字。如果數據有了任何改變,管理員要手工增加文件中的這個值。輔DNS域名服務器在相關的級別檢查這個值來查看它們的信息是否為最新。 l 第二個值是10800秒,決定了刷新時間。刷新時間就是輔域名服務器檢查數據是否為當前的時間。 l 第三個值是3600秒,決定了重試時間。重試時間就是輔域名服務器在前一次刷新不成功的情況下,經過多長時間后會再次試圖刷新。 l 第四個值是432000秒,決定了終止時間。由輔域名服務器刷新的任何數據將會在這個點終止,第二個域名服務器將不會再對請求進行響應。 l 第五個值是86400秒,設置了由在其它域的其它名字服務器緩存的數據的生存時間值。 l 第四個生存時間值可以由DNS管理員改變,來符合其它域的頻率改變。 l 這個文件包括在veggie.域中的名字服務器列表的兩個NS記錄。注意,第一個字段為空,所以域名是隱含的。 l 最后一行是一個 $INCLUDE說明,列出了追加到這個點的文件。這個文件將會包含在veggie.域中的實際的信息。$INCLUDE狀態是可選的,因為主機的信息可能會在文件:veggie.zone中。 ——文件: /var/named/veggie.hosts 文件:/var/named/veggie.hosts包含了在域 veggie.中解析主機名到IP地址的信息。文件也包含了域中其它類型的主機信息。 這個文件的內容附著在文件:veggie.zone的最后。這個文件也是可選的,因為這些信息可以包含到文件:veggie.zone文件本身是尾部。 ; ;veggie.hosts file ; localhost. in a 127.0.0.1 tomato in a 128.50.2.2 in hinfo Sun4/65 “SunOS 5.5” in wks (sunrpc tftp echo telnet netstat finger discard) potato in a 128.50.2.1 in a 192.9.200.200 in hinfo Sparc10/51 “SunOS 5.5” in wks (sunrpc echo telnet netstat finger discard) carrot in a 128.50.2.4 in hinfo “Sun IPX” “SunOS 5.3” in wks (sunrpc tftp echo netstat finger discard) l 這個文件包含了幾個地址類型的記錄,這已經在先前討論過了。 注意,在這個例子中,主機tomato,potato,和carrot 不能以 . 結束。DNS自動追加到$ORGIN的這些文件名。例如,tomato 變成了tomato.veggie。 l 主機信息的記錄,在這個文件中有其它一些的資源記錄類型,包含了描述一個主機細節的硬件和軟件的數據對。有空格的地方必須引用。如第三個字段中的 hinfo HINFO 記錄可以由DNS命令:nslookup 查詢,這將在后面繼續討論。 l 在這個文件中的另一種類型的資源記錄就是 Well-Known 服務記錄。WKS列出了由一個特殊主機提供的著名的Internet服務,查找WKS在第三個字段中,注意WKS記錄可以通過使用圓括號來跨躍多個行。 WKS記錄也可以使用 nslookup命令來查詢。 ——文件:/var/named/veggie.rzone 文件:veggie.rzone的主要目的是為解析一個已知的IP地址到一個主機名提供信息。 域的權限包括你的IP網絡地址必須適應你的組織。在這個例子中,網絡地址128.50.2被指定由你獨占,所以,你必須對你網絡中的所有主機地址負責。因此,你要對域2.50.128.in-addr.arpa負責。 ; ;veggie.revzone file for the primary nameserver tomato.veggie. ; 2.50.128.in-addr.arpa in soa tomato.veggie. root.tomato.veggie. ( 01.0 ;serial 10800 ;refresh [3 hours] 3600 ;retry [1 hours] 432000 ;expire [5 days] 86400 ;minimum [1 day] in ns tomato.veggie. ;primary in ns potato.veggie. ;secondary 2 in ptr tomato.veggie. 1 in ptr potato.veggie 4 in ptr carrot.veggie 第一個無內容的行是為域:2.50.128.in-addr.arpa 的SOA記錄。這與我們以前使用過的SOA記錄沒有什么區別。 在這個文件中的兩個NS記錄列出了域:2.50.128.in.addr.arpa.的名字服務器。一旦再次出現第一個字段空白,就應用這個域名。 最后三行包含了打印機信息。PTR打印到已經預先定義好的一個主機,通常在另一個DNS數據文件中。 PTR記錄的第一個字段指出了在域中的主機的IP地址的一部分。這些主機的部分地址看成是一個域名,并由在域:2.50.128.in-addr.arpa中的信息解析成一個主機名。 在例子中,如果請求想知道誰的主機號是4在域:2.50.128.in-addr.arpa中,PTR記錄將會打印主機的名為:carrot.veggie. ——文件:/var/named/loop.back loopback數據文件是一個特殊的文件,它安裝在所有的名字服務器中,用來允許解析它們的自己的loopback地址到主機地址:localhost。 所有的名字服務器都對他們的自身的loopback地址授權。 ; ;loop.back file for all nameservers ; @ in soa tomato.veggie. root.tomato.veggie. ( 0001.00 ;version number 10800 ;refresh [3 hours] 3600 ;retry [1 hours] 432000 ; expire [5 days] 86400 ) ;minimum [1 day] in ns tomato.veggie. 1 in ptr localhost. 在這個文件中,只出現了一個新的定義,就是在這個文件的開頭使用了@。一個@是 一個DNS的縮寫,表示在文件:/etc/named.boot的域名列表。 如果你在例子中檢查文件:/etc/named.boot,你將發現 loop.back文件的域名列表在0.0.127.in-addr.arpa域中。因此,SOA記錄和NS記錄應用于那個域中。那個域就是在PTR的記錄中首段追加為1的域,因為它不以一個終止點結束。 DNS設置過程——輔DNS服務器 你可以選擇另一個NIS服務器當成一個輔DNS服務器。 ——文件:/etc/named.boot 創建 in.named的配置文件:/etc/named.boot。另外,如果這個文件的名字或位置有所不同,守護進程:in.named必須在文件:/etc/rc.local 中指出。 ; ;named.boot file for the veggie. Domain ;on the secondary host potato.veggie. directory /var/named cache . cache primary 0.0.127.in-addr.arpa loop.back secondary veggie. 128.50.2.2 veggie.zone secondary 2.50.128.in-addr.arpa 128.50.2.2 veggie.revzone 關鍵字:directory ,再次指出,用來通知守護進程:in.named 哪個目錄下包含DNS的數據文件。 關鍵字:cache ,用來通知守護進程:in.named 根DNS的名字服務器的名字和IP地址。文件:/var/named/cache 由主名字服務器指出了一個應用。 l primary 關鍵字也通知守護進程:in.named 與loopback 地址域的相關的主權限信息可以在文件:loop.back中發現。這個文件與先前討論過的主名字服務器的文件是相同的。 l 最后兩行包含了關鍵字:secondary ,這個關鍵字通知守護進程:in.named 這是一個域的輔名字服務器列表,在這些行的第二個字段。 這兩行的第三個字段包含了這個域的主名字服務器的IP地址。守護進程:in.named 將 會在啟動時自動連接到這個IP 地址并為這個域下載數據。 這兩行的最生一個字段列出了守護進程:in.named將要創建的文件名,并將會用主名字服務器的數據來代替它。這些文件將會在由named.boot文件中的關鍵字“directory”所指定。 DNS設置過程——NIS NIS必須運行在DNS域中的所有主機上,并且NIS服務器必須被配置為可以轉發不識別的主機名或IP地址到通常的DNS解析器。在所有的NIS服務器上,由創建一個文件:/etc/resolv.conf 來配置NIS使用通常的DNS解析器。 ; ;/etc/resolv.conf file for tomato.veggie domain veggie nameserver 128.50.2.2 nameserver 128.50.2.1 前兩行由分號開頭。 Domain 這個詞是一個DNS的關鍵字,定義了可追加的域名可以為任何主機名在命令行使用,不能以一個點來結束。 注意:在這行是不允許有結尾的空間的。 單詞 nameserver 是一個DNS關鍵字,定義了用來查詢的名字服務器的IP地址。在這里最多可能顯示3個名字服務器。他們將會按順序被查詢直到有一個進行響應。重試的次數和溢出時間值依賴于名字服務器的數量和DNS運行的版本。 在你的域上的NIS主服務器,修改 /var/yp/Makefie 來通知NIS 使用 DNS。 # set the following variable to “-b” to have NIS # server use the domain name resolver for hosts # not in the current domain. B=-b # B= l 重制 NIS 主機映射。 Nisserver# touch /etc/hosts Nisserver# cd /var/yp ; make ——文件:/etc/nsswitch.conf 的修改 dns 關鍵字必須包含在文件:/etc/nsswitch.conf 中的主機行中。執行以下步驟來修改文件:nsswitch.conf 。涉及到文件:nsswitch.conf 的NIS+ 章的描述。 1. 修改文件:/etc/nsswitch.conf # vi /etc/nsswitch.conf 2. 增加關鍵字:dns 到主機行。這配置了系統去使用DNS解析器程序來查找主機信息。以下是一個主機行的信息,在文件:nsswitch.conf 被修改之后。 Hosts: nisplus dns [NOTFOUND=return] files DNS設置過程——客戶端主機 如果客戶端的用戶想使用命令:nslookup 時,在客戶端的設置過程才是必須的。如果用戶想使用這個debug 工具,客戶端的主機必須有一個已經配置的文件:/etc/resolv.conf。指向DNS名字服務器。 Debugging DNS Debugging DNS包括交互和非交互兩種方式。 ——轉儲數據庫:in.named 非交互方式是轉儲數據庫in.named 的全部內容到一個文件。這個方式可以讓管理員對比什么是他們所想的和什么是實際運行的。 為了轉儲數據庫:in.named 到一個文件,需要用命令:kill 發送一個INT級別信號給守護進程:in.named。這自動創建文件:/var/tmp/named_dump.db 并用它來代替當前的數據庫的內容。 Nameserver# kill –INT ‘cat /etc/named.pid’ Nameserver# more /var/tmp/named_dump.db 注意:DNS的一個很方便的功能就是當前 in.named的PID總是保存在文件:/etc/name.pid下。 ——Debugging DNS 舉個例子在主機:grouper.fish上的 /var/tmp/named_dump.db,注意其它域中的信息緩存中的生存時間值。 ;Dumped at Fri Feb 11 10:10:36 1994 ;- - - Cache & Date - - - $ORIGIN . . 86225 IN NS lettuce. Veggie 86392 IN NS tomto.veggie. Fish IN SOA grouper.fish. root.grouper.fish. ( 10000000 10800 3600 432000 86400 ) IN NS grouper.fish. Localhost IN A 127.0.0.1 Lettuce 86225 IN A 128.50.2.3 $ORIGIN 50.128.IN-ADDR.ARPA. 3 IN .SOA grouper.fish. root.grouper.fish. ( 0 10800 3600 432000 86400 ) $ORIGIN 3.50.128.IN-ADDR.ARPA 6 IN PTR grouper.fish. 7 IN PTR angel.fish. 8 IN PTR salmon.fish. $ORIGIN 0.127.IN-ADDR.ARPA. 0 IN SOA grouper.fish. root.grouper.fish. ( 0 10800 3600 432000 86400 ) IN NS grouper.fish. $ORIGIN 0.0.127.IN0ADDR.ARPA. 1 IN PTR localhost. $ORIGIN veggie. Potato 86392 IN A 128.50.2.1 IN HINFO “Sparc10/51” “SunOS 5.5” Carrot 86392 IN A 128.50.2.4 IN HINFO “Sun IPX” “SunOS 4.1.3” $ORIGIN fish. Angel IN A 128.50.3.7 Wolf IN A 128.50.3.8 IN HINFO “SUN-4/65” “SunOS 5.4” Grouper IN A 128.50.3.6 ;- - - Hints - - - $ORIGIN . . 86225 IN NS lettuce. Lettuce 86225 IN A 128.50.2.3 運行 in.named 在Debug方式下 守護進程:in.named可以運行在11種不同的debug級別下。每一個級別在報告中會越來越羅嗦,每一個級別會在從前的級別中積累越來越多的信息。 有兩種運行in.named的debug方式。 l 開始進程 in.named 使用參數 –d 可以使守護進程 in.named 運行在debug方式下,和想要運行的debug級別的數。 Nameserver# in.named –d 3 l 也可以通過 kill 命令來發送一個USR1級別的信號給正在運行的in.named守護進程,來開始debug。隨后的USR1信號將會增加debug的1個級別。一個信號USR2將會關閉debugging。 Nameserver# kill –USR1 ‘cat /etc/named.pid’ (level 1) Nameserver# kill –USR1 ‘cat /etc/named.pid’ (level 2) Nameserver# kill –USR1 ‘cat /etc/named.pid’ (level 3) Nameserver# kill –USR2 ‘cat /etc/named.pid’ (level 0) 當在debug模式下運行 in.named時,輸出將被捕獲在文件:/var/tmp/named.run中。Nameserver# more /var/tmp/named.run ——命令:/usr/sbin/nslookup 命令:nslookup主要允許用戶可以交互式的查詢DNS名字服務器,有關于IP地址,或者顯示其它資源的記錄信息。 Nslookup也可以使用非交互式,在本章中將不做討論。 當使用nslookup命令時,文件:/etc/resolv.conf涉及到第一個名字服務器的列表。如果第一個列表名字服務器不響應,那么按順序,其它的名字服務器會被試用。 為了調用nslookup命令,鍵入命令名。名字和當前名字服務器的IP地址會被打印到屏幕上,并出現一個”>”提示符。Nslookup 等待一個命令。 Carrot# nslookup Default server: tomato.veggie Address: 128.50.2.2 > potato server: tomato.veggie Address: 128.50.2.2 Name: potato.veggie Address: 128.50.2.1 >^D 在上面的例子中,在提示符”>”后,鍵入主機名 potato,被請求的名字服務器響應主機 potato的IP地址。默認的對 nslookup主機名字查詢的響應是IP地址。如果主機在本地域——也就是說是:potato,而不是 potato.veggie,時,域名是不需要的。 如果在nslookup命令中退出,鍵入Ctrl-d(或exit)在>提示符后,如在上例中顯示的那樣。 如果鍵入Ctrl-c 是不好使的。 通過使用nslookup可以重新獲得主機名的信息。如果查詢的類型為PTR記錄,就象是在下面的例子中一樣: carrot# nslookup Default server: tomato.veggie Address:128.50.2.2 > set q=ptr > 4.2.50.128.in-addr.arpa Server:tomato.veggie. Address:128.50.2.2 4.2.50.128.in-addr.arpa holst name = carrot.veggie > set q=a > exit 域的主機名和IP地址可以通過命令:nslookup在屏幕上列表顯示。域名必須是完全資格域。 Carrot# nslookup Default Server:tomato.veggie Address:128.50.2.2 > ls veggie. [tomato.veggie] Host or domain name Internet address Veggie server=tomato.veggie Tomato 128.50.2.2 Potato 128.50.2.1 Carrot 128.50.2.4 > 你可以通過使用命令 server選擇其它域的名字服務器來顯示其它域的主機名和IP地址列表。當完成時,你將返回到查詢的本地名字服務器。 Carrot# nslookup Default Server : tomato.veggie Address : 128.50.2.2 > server grouper.fish Default Server : grouper.fish Address : 128.50.3.6 >ls fish. [grouper.fish] Host or domain name Internet address Fish server=grouper.fish Grouper 128.50.3.6 Angel 128.50.3.7 Salmon 128.50.3.8 > server tomato.veggie Default Server : tomato.veggie Address : 128.50.2.2 > 其它類型的資源記錄可以通過使用nslookup來查詢他們的值。以下是一個查詢hinfo的主機資源記錄的一個例子。 Tomato# nslookup Default Server : tomato.veggie Address : 128.50.2.2 > set q=hinfo > potato server : tomato.veggie Address : 128.50.2.2 Potato.veggie Sparc10/51 SunOS 5.5 > exit 如果要獲得更多關于命令 nslookup的信息,去在線幫助網頁(nslookup(1M))。 |
UNIX盲 回復于:2003-06-25 18:18:23 |
人民感謝你!做了一件大好事。
干掉小日本!我有同感! |
xingkong555 回復于:2003-06-26 09:47:04 |
[quote:f7d5c7efe6="solstice"]今天好熱,心情也不錯!
第十二章 性能調整的指導方針 目標 通過本章學習,你將能夠掌握: l 回顧一下導致系統性能低劣的原因 l 使用性能監視命令來發現性能瓶頸 l 描述提高性能的辦法 介紹 本章大體的..........[/quote:f7d5c7efe6] up |
heineken 回復于:2003-06-26 11:32:20 |
幾天沒來,一來就看到好貼,up 一哈 |
中原一片紅 回復于:2003-06-26 16:08:53 |
good
3x |
moocher 回復于:2003-06-26 22:10:45 |
抵制日貨,UPyou,日本鬼子從骨子里壞,而且是普遍性的壞,唯有dead才能讓人放心! |
moocher 回復于:2003-06-26 22:11:55 |
老大,總共多少章啊,還有沒有! |