?? dns-howto.txt
字號:
DNS HOWTO 中譯版 作者: Nicolai Langfeldt [1]janl@math.uio.no譯者: [2]Asd L. Chen & [3]C.W.Huang v1.4.2, 1 January 1998 翻譯日期: 8 January 1998 _________________________________________________________________ 如何成為一個稱職的小型 DNS 管理者. _________________________________________________________________ 1. 前言 * 1.1 版權宣告 * 1.2 感謝與求助 * 1.3 題獻辭 2. 簡介3. 暫存專用名稱伺服器 * 3.1 起始 named 4. 一個簡單的領域 * 4.1 先來一點純理論 * 4.2 我們自己的領域 * 4.3 繼續深入 5. 真實領域的例子 * 5.1 /etc/named.boot (或 /var/named/named.boot) * 5.2 /var/named/root.cache * 5.3 /var/named/zone/127.0.0 * 5.4 /var/named/zone/land-5.com * 5.5 /var/named/zone/206.6.177 6. 維護工作7. Bind version 88. 撥接連線的自動設定9. 常見問題解答10. 如何成為一個大型的 DNS 管理者 _________________________________________________________________ 1. 前言 關鍵字: DNS, bind, named, dialup, ppp, slip, Internet, domain, name, hosts, resolving 1.1 版權宣告 (C)opyright 1995 Nicolai Langfeldt. Do not modify without amending copyright, distribute freely but retain copyright message. 沒有修訂版權者請勿修改,可自由散布但必須保留版權訊息. 1.2 感謝與求助 我要向無數次閱讀這份文件的草稿并提供許多有用建議的 Arnt Gulbrandsen 表 達感謝之意. 我也要感謝那些將建議寄給我的人. 這份文件將永遠不會有完成的一天,請把你的問題以及成功的經驗寄給我, 這可 以使它成為一份更好的說明文件.所以請把錢,評論以及/或是問題寄給 [4]janl@ifi.uio.no. 如果你寄信給我并希望得到回答請表現基本的禮貌,確定 回信地址是正確而且可以運作的. 還有,寫信給我前請先閱讀 [5]FAQ 一節. 如果你想翻譯這篇 HOWTO 請與我聯絡,這樣我才知道我的文章被變成何種語言 :-). 1.3 題獻辭 謹以這份說明文件獻給 Anne Line Norheim Langfeldt.雖然她可能永遠都不會 閱讀這份文件,因為她不是這類型的女孩. 2. 簡介 這是什麼以及這不是什麼 首先,DNS 就是領域名稱系統(Domain Name System). 為機器命名的規則以及將 這些名稱轉換為 IP 數字的軟體. 這份 HOWTO 文件說明了如何用 Linux 定義這 樣的對應. 對應指的是這兩件事的聯系,機器名稱,像 ftp.linux.org, 以及 機器的 IP 數字,像是 199.249.150.4. DNS,對新手(你;-)而言,是網路管理中比較晦暗不明的地方之一. 這份說明 文件將會試著讓幾件事情能清楚一點.它描述如何設立一個簡單的 DNS 名稱伺服 器. 開始先說明暫存專用(caching only)伺服器,然後是為一領域設立主 要(primary)名稱伺服器. 至於更復雜的設定你可以參考這份文件的 [6]FAQ 一 節. 不用說你將得閱讀真正的文件. 我將會在 [7]最後一章 回過頭來說明這里 所謂真正的文件包含有哪些. 在你可以開始進行這項工作之前你應該要先配置好你的機器以便可以從遠端簽入 它以及由它對其它機器作遠端簽入, 并且使所有各種對網路的連線都能成功地進 行,尤其你應該要能夠對 127.0.0.1 進行遠端簽入并且進入你自己的這臺機器( 現在就試試!). 同時你也需要一份運作良好的 /etc/host.conf, /etc/resolv.conf 以及 /etc/hosts 檔案作為開始. 因為我將不會在這里解釋 它們的功能.如果你還沒有完成所有這些設定并使其運作那麼 the networking/NET-2 HOWTO 會解釋如何設立它們.閱讀之. 如果你使用 SLIP 或者是 PPP 那麼你得要能讓它運作.若是它還不能運作的話閱 讀 [8]PPP HOWTO. 當我說‘你的機器’時我的意思是你正要嘗試在上面設立 DNS 的那臺機器. 不 是任何可能在你網路環境里的其它機器. 我假設你并不是處於任何會阻礙名稱查詢的防火墻後面.如果你是那麼你將會需 要特別的設定, 參見 [9]FAQ 一節. 在 Unix 上的名稱服務是藉由一支稱為 named 的程式來執行的. 這是屬於 bind 套件的一部份,這個套件是由 Paul Vixie 為網際網路軟體集團(Internet Software Consortium)所協調發展的. 大部分的 Linux 發行套件都包含有 named,而且通常安裝於 /usr/sbin/named. 如果你的系統有個 named 那麼你大 概可以直接使用它;如果沒有的話那麼你可以從某個 Linux ftp 站取回一份二進 位執行檔,或是從 [10]ftp.isc.org:/isc/bind/src/cur/ 目錄里取得最新最棒 的原始程式碼. 本文件是說明 bind version 4 的.如果你安裝 version 8 你 要自己想辦法.稍後有一節可能會對你有些幫助. DNS 是個以整個網路為□圍的(net-wide)資料庫.要小心你放進里面的資料. 如 果你放些廢物進去,你,以及其它人都將會從中取出些廢物. 保持你 DNS 的整 齊一致那麼你將能從中取得良好的服務. 學習去使用它,管理它,追查它的錯誤 那麼你將會是另一個保持網路免於因為管理不善而效率低落的好管理者. 在這份文件里我斷然地敘述幾件并不完全是真實的事情(雖然它們至少有一半是真 的). 這全都是為了簡化.如果你相信我所說的那麼這些大概就能運作. 要訣: 如果你已經擁有我要你去改變的檔案,那麼所有這些檔案都要先做備份, 這樣一來如果經歷這些改變之後沒有東西會動的話你可以回復到你舊的,可以運 作的情形. 3. 暫存專用名稱伺服器 DNS 配置的首種嘗試,對撥接使用者非常有用. 一臺暫存專用名稱伺服器將會為名稱查詢找出答案并且在下一次你需要那個名稱 的時候記得答案. 首先你需要一個稱為 /etc/named.boot 的檔案.當 named 啟動時會讀取這個檔 案. 目前它應該單純地包含: _________________________________________________________________ ; Boot file for nicolais caching name server;directory /var/named;; type domain source file or hostcache . root.cacheprimary 0.0.127.in-addr.arpa pz/127.0.0 _________________________________________________________________ 非常重要: 在這文件的某些版本中這個檔案的這份列表會在第一個非空白字元前 包含一些空格或 tab 鍵. 這些不應該出現在檔案中.如果你從這份 HOWTO 剪貼 下來,記得刪除任何前面的空白. `directory' 這一行告訴 named 到哪里去找尋檔案.所有其後命名的檔案都將是 相對於此目錄的. 根據 Linux 檔案系統標準正確的目錄應該是在 /var/named. 因此 pz 是位於 /var/named 之下的,也就是,/var/named/pz. 稱為 /var/named/root.cache 的這個檔案是在此命名的. 這個 /var/named/root.cache 應該包含: _________________________________________________________________ . 518400 NS D.ROOT-SERVERS.NET. . 518400 NS E.ROOT-SERVERS.NET. . 518400 NS I.ROOT-SERVERS.NET. . 518400 NS F.ROOT-SERVERS.NET. . 518400 NS G.ROOT-SERVERS.NET. . 518400 NS A.ROOT-SERVERS.NET. . 518400 NS H.ROOT-SERVERS.NET. . 518400 NS B.ROOT-SERVERS.NET. . 518400 NS C.ROOT-SERVERS.NET.;D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 _________________________________________________________________ 記住我說過要去掉空白字元! 這個檔案描述了在這個世界上的根名稱伺服器.這會隨時間而改變并且必須加以 維護. 如何能保持它隨時更新請參見 [11]維護篇. 在 named 的線上使用手冊 里有這個檔案的描述,但是這,以我看來,最適合那些已經了解 named 的人們. 在 named.boot 里的下一行是 primary 這一行. 我將會在稍後的章節里解釋它 的用法,目前只要把它設為在 pz 子目錄下一個稱為 127.0.0 的檔案: _________________________________________________________________ @ IN SOA linux.bogus. hostmaster.linux.bogus. ( 1 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL NS ns.linux.bogus.1 PTR localhost. _________________________________________________________________ 接下來,你需要一份看起來像這樣的 /etc/resolv.conf 檔案: _________________________________________________________________ search subdomain.your-domain.edu your-domain.edunameserver 127.0.0.1 _________________________________________________________________ `search' 這一行指出對於任何你想連往的主機名稱應該搜尋的領域. `nameserver' 這一行指出你的機器可以在哪個位址上找到一臺名稱伺服器, 在 這個例子中是你自己的這臺機器,因為你在它上面執行 named. 如果你想列出好 幾個名稱伺服器把它們都放在一行 `nameserver' 里,用空格隔開. (注意: named 從不讀取這個檔案,而是使用 named 的名稱解答器會讀取.) 來說明一下這個檔案有什麼作用: 如果某個客戶端嘗試要找尋 foo 的話, 那麼 首先嘗試的是 foo.subdomain.your-domain.edu 這個名稱, 然後接下來是 foo.your-fomain.edu 這個名稱,最後則是 foo 這個名稱. 如果有某個客戶端 嘗試要找尋 sunsite.unc.edu 的話, 那首先嘗試的是 sunsite.unc.edu.subdomain.your-domain.edu 這個名稱(沒錯,它真笨! 不過它 就是這麼做), 然後接下來是 sunsite.unc.edu.your-domain.edu 這個名稱,最 後則會是 sunsite.unc.edu 這個名稱. 你可能不會想放太多領域到 search 該 行里去,搜尋它們會多花時間. 這個□例假設你屬於 subdomain.your-domain.edu 這個領域, 那麼你的機器, 可能會稱為 your-machine.subdomain.your-domain.edu. 在 search 這行里不 應該包含你的 TLD (頂層領域 Top Level Domain,在這個例子中是 edu 這個領 域). 如果你經常需要連線到在另外一個領域里的主機你麼你可以把該領域像這 樣地加進 search 這行里: _________________________________________________________________ search subdomain.your-domain.edu your-domain.edu other-domain.com _________________________________________________________________ 依此類推.很明顯的是你得放入真實的領域名稱來取代這些名稱.請注意在領域 名稱的最後面并沒有句號 '.'. 接下來,根據你 libc 版本的不同需要修正 /etc/nsswitch.conf 或者是 /etc/host.conf 檔案. /etc/nsswitch.conf 這是一個很長的檔案,它指出到何處去取得各種不同的資料型態,從什麼檔案或 是資料庫取得. 它的頂端經常會包含一些有用的注解.找出以 `hosts:' 作為開 頭的那一行,它應該是這樣: _________________________________________________________________ hosts: files dns _________________________________________________________________ 如果檔案里沒有以 `hosts:' 作為開頭的行那麼把上面這一行加上去. 它是說程 式應該先在 /etc/hosts 檔案里找尋,然後根據 resolv.conf 詢問 DNS. /etc/host.conf 它可能包含有數行,其中應該有一行以 order 作為開始而且它看起來會像這樣: _________________________________________________________________ order hosts,bind _________________________________________________________________ 如果檔案里沒有 `order' 這一行的話那麼你應該貼一份上去. 它告訴主機名稱 解析函式先在 /etc/hosts 里找尋,然後查問名稱伺服器 (在 resolv.conf 里你 說在 127.0.0.1 這個地方). 在大部分 Linux 發行套件中最後這兩個檔案的文 件在 resolv(8) 的線上使用手冊中(執行 `man 8 resolv' 即可). 這份線上用 手冊我覺得可看,而且每個人,特別是 DNS 管理者,都應該要閱讀它. 現在就 做,如果你對你自己說"我稍後將會去做",你將永遠不會去接近它. 3.1 起始 named 這些全部完成後就可以起始 named 了.如果你使用撥接連線的話那麼請先連上網 路. 鍵入 `ndc start' 并且按下 RETURN 鍵,沒有選項. 如果它不行的話那麼 試著使用 `/usr/sbin/ndc start' 來取代. 再不行的話請參考 [12]FAQ 一節. 現在你可以測試你的設定.當你在起始 named 的時候如果你觀察一下 (使用 tail -f /var/adm/messages 指令)系統記錄訊息檔案 (通常是稱為 /var/adm/messages 的檔案,但也可能在 /var/log 下,或是叫 syslog 的檔 案) 那麼你應該會看見像樣的一些東西: Jun 30 21:50:55 roke named[2258]: starting. named 4.9.4-REL Sun Jun 30 21:29:03 MET DST 1996 janl@roke.slip.ifi.uio.no:/var/tmp/bind/namedJun 30 21:50:55 roke named[2258]: cache zone "" loaded (serial 0)Jun 30 21:50:55 roke named[2258]: primary zone "0.0.127.in-addr.arpa" loaded (serial 1)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -