你得要特別留意類型是 slave 之外,那個主機來源 (masters) 是有加 \喔! 這點很容易忘記啊!至於資料庫檔案裡面,必須要存在的有: named.root
? named.localhost ? named.127.0.0
?
在 slave DNS 當中,這三個 zone 的類型分別是 hint 與 master ,所以當然要預設存在, 至於那個 named.vbird.tsai 及 named.192.168.1 就不要存在啦! 因為這兩個 zone file 是由 master DNS 主機傳送過來的!只是你要注意 /var/named/chroot/var/named 這個目錄的權限必須要是 named 這個使用者可以寫入的狀態!這很重要喔! [root@slave ~]# ls -l /var/named/chroot/var/named -rw-r--r-- 1 root root 229 Oct 18 14:44 named.127.0.0 -rw-r--r-- 1 root root 675 Oct 18 13:44 named.localhost -rw-r--r-- 1 root root 2517 Oct 18 00:34 named.root # 注意,只要三個檔案即可,其他兩個 named.vbird.tsai 與 # named.192.168.1 不可以存在!否則會有問題啊! [root@slave ~]# ls -ld /var/named/chroot/var/named drwxr-x--- 4 named named 4096 Oct 19 01:17 /var/named/chroot/var/named # 注意到,這個目錄的使用者必須要是 named ,然後分數至少得 750 才行! 在這個最重要的權限問題處理完畢之後,接下來你可以在 slave DNS 這部伺服器上面啟動 DNS 啦! [root@slave ~]# /etc/init.d/named start [root@slave ~]# tail -n 20 /var/log/messages zone 1.168.192.in-addr.arpa/IN: transferred serial 2006102001 transfer of '1.168.192.in-addr.arpa/IN' from 192.168.1.254#53: end of transfer zone 1.168.192.in-addr.arpa/IN: sending notifies (serial 2006102001) zone vbird.tsai/IN: transferred serial 2006102001 transfer of 'vbird.tsai/IN' from 192.168.1.254#53: end of transfer zone vbird.tsai/IN: sending notifies (serial 2006102001) # 理論上,你應該會看到如上的輸出資訊才對!系統會告知 zone file 的傳輸結果 [root@slave ~]# ls -l /var/named/chroot/var/named -rw-r--r-- 1 root root 229 Oct 18 14:44 named.127.0.0 -rw------- 1 named named 472 Oct 19 01:29 named.192.168.1 -rw-r--r-- 1 root root 675 Oct 18 13:44 named.localhost -rw-r--r-- 1 root root 2517 Oct 18 00:34 named.root -rw------- 1 named named 580 Oct 19 01:29 named.vbird.tsai 您瞧!如此一來您的 zone file 就會主動的被建立起來喔!未來如果你的
master DNS 要更新資料庫時, 只要修改過序號,並重新啟動 named 後,這部 slave DNS 就會跟著更新啦!啊!真是『福氣啦!』!!
不過,如果你發現到啟動 slave DNS 時,你的登錄資訊竟然是這樣: 1 dumping master file: tmp-XXXXEnDd9D: open: permission denied 2 transfer of 'vbird.tsai/IN' from 192.168.1.254#53: failed while receiving responses: permission denied 3 transfer of 'vbird.tsai/IN' from 192.168.1.254#53: end of transfer 如果出現類似這樣的三行時,不必懷疑啦!肯定是權限錯誤啦! 請再次檢查你的資料庫檔案所放置的目錄權限是否可以讓 named 寫入啊!處理處理就好了! 至於上述的相關檔案可以在這裡下載:
?
http://linux.vbird.org/linux_server/0350dns/slave_dns.tar.gz
Client 端的設定: 說完了在 DNS Server 端的設定,接下來,我們再來聊一聊關於 Client 端的設定與測試吧!
相關設定檔
從前面的說明裡面,我們曉得主機名稱對應到 IP 有兩種方法,早期的方法是直接寫在檔案裡面來對應, 後來比較新的方法則是透過 DNS 架構!那麼這兩種方法分別使用什麼設定檔?可不可以同時存在? 若同時存在時,那個方法優先?嗯!我們先來談一談幾個設定檔吧!
/etc/hosts :剛剛上面就提過了,這個是最早的 hostname 對應 IP 的檔案;
? /etc/resolv.conf :這個重要!就是 DNS 主機的 IP;
? /etc/nsswitch.conf:這個檔案則是在『決定』先要使用 /etc/hosts 還是 /etc/resolv.conf 的設定!
?
一般而言, Linux 的預設主機名稱與 IP 的對應搜尋都以 /etc/hosts 為優先, 為什麼呢?您可以查看一下 /etc/nsswitch.conf ,並找到 hosts 的項目: [root@linux ~]# vi /etc/nsswitch.conf hosts: files dns 上面那個 files 就是使用 /etc/hosts 而最後的 dns 則是使用 /etc/resolv.conf 的 DNS 主機 IP 搜尋啦!因此,您可以先以 /etc/hosts 來設定 IP 對應ㄋㄟ! 當然啦,您也可以將他調換過來,不過,總是 /etc/hosts
比較簡單,所以將他擺在前面比較好啦!
好啦,既然我們是要進行 DNS 測試的,那麼 /etc/resolv.conf 的內容,自然就要填寫我們自己的 IP 囉!所以您應該這樣寫: [root@linux ~]# vi /etc/resolv.conf nameserver 192.168.1.254 nameserver 168.95.1.1 nameserver 139.175.10.20 DNS 主機的 IP 可以設定多個,這可以讓您的個人電腦有備援的功能!舉例來說, 我上面共設定了三部主機作為我的 DNS 查詢,當 192.168.1.254 那部主機掛點時, 我的 Client 電腦會立刻以第二部主機作為 DNS 查詢的主要主機。所以, 通常我們都會建議人家在這個檔案內可以設定三個左右的 DNS 主機名稱!以保不時之需啊~
另外,上面三個 DNS 的 IP 那個會先被使用?當然是照順序來的~ 所以會先以 192.168.1.254 那部主機來查詢,若 192.168.1.254 掛了,才會使用 168.95.1.1 那部來查詢。
Tips:
盡量不要超過三部以上的 DNS IP ,因為 DNS 的查詢也是要時間的,假設現在你無法連接到 DNS 主機是因為你自己的網路問題,而你設定了 10 部 DNS IP 在
/etc/resolv.conf 當中,那麼你的 Linux 就會花費 10 倍的時間去進行每一次無法成功的主機名稱與 IP 的對應喔!
Tips:
在自家設的沒有經過合法授權的 DNS 最好不要以 Internet 上面已經存在的領域名稱來練習架設! 舉例來說,假設今天你以 192.168.1.254 那部機器來架設 *.yahoo.com 的領域, 因為我將 192.168.1.254 放置在第一位,導致每次的查詢其實 yahoo.com 這個領域的資料都是直接由 192.168.1.254 所提供,這很不好~因為可能會造成您的用戶端的不便~
好了,我們要測試我們的 DNS 主機設定是否正確囉!
DNS 的查詢指令: host, nslookup, dig
測試 DNS 的程式有很多,我們先來使用最簡單的 host 吧!然後還有 nslookup
及 dig 哩!
? host 語法: [root@linux ~]# host [-a] [FQDN] [server] [root@linux ~]# host -l [domain] [server] 參數說明: -a :代表列出該主機所有的相關資訊,包括 IP、TTL 等等 -l :若後面接的那個 domain 設定允許 allow-transfer 時,則列出該 domain 所管理的所有主機名稱對應資料! server:這個參數可有可無,當想要利用非 /etc/resolv.conf 內的 DNS 主機 來查詢主機名稱與 IP 的對應時,就可以利用這個參數了! 範例一:強制以 192.168.1.254 這部 DNS 主機來查詢 [root@linux ~]# host www.vbird.tsai 192.168.1.254 Using domain server: Name: 192.168.1.254 Address: 192.168.1.254#53 <==這裡重要!告知這筆記錄是哪部 DNS 伺服器去找的! Aliases: www.vbird.tsai is an alias for linux.vbird.tsai. linux.vbird.tsai has address 192.168.1.254 有注意到上面輸出的特殊字體部分嗎?很多朋友在測試自己的 DNS 時,常常會『指定到錯誤的 DNS 查詢主機』了~ 因為他們的 /etc/reslov.conf 忘記改,所以老是找不到自己設定的資料庫 IP 資料。所以你要仔細看啊! 範例二:找出我們自己這個 vbird.tsai 領域的所有主機對應 [root@linux ~]# host -l vbird.tsai 192.168.1.254 Using domain server: Name: 192.168.1.254 Address: 192.168.1.254#53 Aliases: vbird.tsai name server linux.vbird.tsai. vbird.tsai name server slave.vbird.tsai. linux.vbird.tsai has address 192.168.1.254 slave.vbird.tsai has address 192.168.1.150 ....後面省略.... 上面的資訊可就熟悉多了吧?!沒錯!那就是我們在 named.vbird.tsai 裡面的設定值啊! 不過,並不是所有的 domain 都可以作這樣的事情~舉例來說,如果我們下達: [root@linux ~]# host -l yahoo.com Host yahoo.com not found: 5(REFUSED) ; Transfer failed. 這樣的回應是因為在對方的 /etc/named.conf 裡面並沒有設定 allow-transfer 那個設定選項的原因啊! 至於 host -a 的輸出資訊與 dig 是一模一樣的,所以我們先不介紹,在 dig 處再詳細說明。
? nslookup 語法: [root@linux ~]# nslookup [FQDN] [server] [root@linux ~]# nslookup 參數說明: 1. 可以直接在 nslookup 加上待查詢的主機名稱或者是 IP ,[server] 可有可無; 2. 如果在 nslookup 後面沒有加上任何主機名稱或 IP ,那將進入 nslookup 的查詢功能 在 nslookup 的查詢功能當中,可以輸入其他參數來進行特殊查詢,例如: set type=any :列出所有的資訊『正解方面設定檔』 set type=mx :列出與 mx 相關的資訊! 範例一:直接搜尋 winxp.vbird.tsai 的 IP 資訊 [root@linux ~]# nslookup winxp.vbird.tsai 192.168.1.254 Server: 192.168.1.254 Address: 192.168.1.254#53 <==同樣的,請注意搜尋的 DNS IP 喔! Name: winxp.vbird.tsai Address: 192.168.1.100 nslookup 可單純的將 hostname 與 IP 對應列出而已,不過,還是會將查詢的 DNS 主機的 IP 列出來的! 如果想要知道更多詳細的參數,那可以直接進入 nslookup 這個軟體的操作畫面中,如下範例: [root@linux ~]# nslookup <==進入 nslookup 查詢畫面 > 192.168.1.254 <==執行反解的查詢 > www.vbird.tsai <==執行正解的查詢 # 上面這兩個僅列出正反解的資訊,沒有啥了不起的地方啦! > tw.yahoo.com <==執行非本機上的查詢 Server: 192.168.1.254 Address: 192.168.1.254#53 Non-authoritative answer: # 注意這邊,因為不是自己的資料庫,所以是未認證過的資料(可能是快取) tw.yahoo.com canonical name = tw.yahoo-ap1.akadns.net. tw.yahoo-ap1.akadns.net canonical name = vip1.tw.tpe.yahoo.com. Name: vip1.tw.tpe.yahoo.com Address: 202.43.195.52 > set type=any <==變更查詢,不是僅有 A,全部資訊都列出來
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库LIUNX 鸟哥的架设 DNS教程适合菜鸟从零开始(6)在线全文阅读。
相关推荐: