![]() |
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(39):定義自己的名字服務 |
![]() |
定義自己的名字服務緩沖形式的名字服務只能用于名字查詢,但沒有定義任何名字數據。如果要想讓自己 的網絡有一個域名,并為其他計算機都提供服務,就必須使用完整配置的名字服務器。
第一步要為自己的子域在/etc/namedb/named.conf文件中定義zone,并修改設置文件 named.conf。在named.conf文件中,首先要刪除forward的相關設置,使服務器不僅用于轉發 請求,也能擁有自己的名字解析數據庫。然后再增加一項新zone的定義:
這一項描述了bsdgroup.example.org.cn的zone對應的配置文件為db.bsdgroup。其中 type master表示這台DNS服務器為這個zone的主服務器,對于一個zone來講,可以由多個DNS 服務器提供服務,以提供一定的備份能力。當為一個zone使用多個DNS服務器的時候,通常可 以設置一個主服務器,而其他服務器為輔服務器,輔服務器將從主服務器上獲得zone的解析 數據,而本地文件只是用于萬一主服務器出現故障的情況。 更改過named.conf中的zone設置項,就能創建zone的解析數據文件db.bsdgroup,用于 保存zone內的解析數據。
這個設置文件中首先為這個zone定義了SOA記錄,接下來定義了服務于這個zone的兩個 名字服務器。當為一個zone定義名字服務器時,有的管理員以為將名字服務器設置的越多越能 提供備份,其實并不是這樣。如果定義的一台名字服務器,其named.conf(或named.boot)設 置文件中并沒有設置它為這個zone服務,那么該名字服務器上就沒有這個zone的解析數據,這 就導致一些客戶從這個名字服務器中查詢這個zone的數據失敗。這個配置錯誤就是Internet中 經常發生的Lame Server錯誤,一些老版本的named不能檢測并糾正這個錯誤,就會導致網絡上 部分客戶計算機不能解析這個zone。同樣,多個名字服務器之間還應該保持zone數據一致,正 確划分好主/輔服務器可以很好的解決這個問題。 然后又針對這個zone定義了兩個MX記錄,表示對應于這個zone的郵件服務器為ns和ns1, 這樣在電子郵件中的地址中,就不需要使用具體的計算機名字ns.bsdgroup.example.org.cn, 而可以直接使用bsdgroup.example.org.cn。其中ns的參數為10,ns1的參數為20,用于標識不 同郵件服務器的優先級,一個郵件總是首先向低優先級的郵件服務器發送,只有當這個服務器 出現故障時,才會嘗試其他的郵件服務器。 這個文件中還定義了几個A記錄,這個記錄具體定義ns和ns1的IP地址,然后定義了一個 www的計算機,但這只是freebsd.example.org.cn的一個別名。 這個zone是對該zone中的計算機進行正向名字查詢,從名字返回相應的IP地址,進一步 可以配置反向查詢zone,輸入要查詢的IP地址,返回正確的主機名字。
前面提到的localhost.rev就是一個反向查詢zone文件。因此要定義其他反向解析zone, 就與它相似。首先在named.conf中增加一個設置語句:
網絡地址以反方向的方式寫出,并使用in-addr.arpa后綴,表示一個反向查詢zone為192.168.4。 然后創建反向解析數據bsdgroup.rev:
注意,這里正向解析和反向解析位于同一台服務器上,這只是一種較簡單的情況,但對 Internet上更廣泛的復雜情況,并不總是如此。
當完成了這一步之后,就可以把本網絡上所有計算機的解析數據,使用A記錄增加到 db.bsdgroup中,使用PTR記錄增加到bsdgroup.rev文件中去,并重新啟動named守護進程,或者 向named發送SIGHUP信號(使用kill或killall),使其重新讀取設置文件。那么所有使用這台計 算機作名字服務器的計算機將能正確查詢相應的名字和IP。 但是,外部的計算機并不知道有這個名字服務器的存在,因此外部計算機還無法查找到 正確的結果。因此就需要將這個名字服務器,及其提供服務器的域,登記到Internet上的正式名 字服務器上,以便這個名字服務器上的zone數據通過正式服務器發布到整個Internet。最方便的 做法是將這個名字服務器登記到其上一級名字服務器上,如在example.org.cn的名字服務器中可 以指定bsdgroup.example.org.cn子域的zone設置及名字服務器。
此后,外部計算機才能查找bsdgroup這個域的內容。 這個例子中使用了兩個名字服務器ns和ns1,為了保持兩個服務器中的數據一致,兩個服務器 一個需要作為主服務器,另一個必須作為輔服務器。主服務器ns在配置文件named.conf中使用 type master來說明,而輔服務器ns1使用type slave來說明:
這使得ns1首先嘗試從ns(192.168.4.21)中獲得zone的配置數據,如果不能成功再從本 機配置文件中獲得。這樣既能起到備份作用,又能保持解析數據盡量一致。 named在啟動和運行的過程中將不斷向控制台打印信息,這些信息也被寫入/var/log/messages 文件中。查看這些文件可以判斷是否有錯誤發生。
此外,隨著Internet的發展,根DNS服務器也會不斷更新,因此保持自己的DNS服務器中 root.hints(或named.root)文件與Internet上的真實根文件服務器同步也是非常重要。通常可 以使用dig來從一個根文件服務器上取得這個文件:
如果一切正常,就可以將root.hints.new復制為named.root,并重新啟動named。此外還 有一些常用的工具程序有nslookup,dig,dnswalk,named-xfer等,能用來分析DNS設置,幫助解 決設置問題。 未完,待續。。。 |
|||||||||||
| 新浪首頁 > 科技時代 > FreeBSD使用大全連載 > FreeBSD連載(39):定義自己的名字服務 | ||||||||||||
Copyright(C) 1999 SINA.com, Stone Rich Sight. All Rights Reserved
版權所有 四通利方 新浪網