20.3. 啟動名稱伺服器 BIND

在 SUSE Linux 系統上,名稱伺服器 BIND (Berkeley Internet name domain,柏克萊網際網路名稱領域) 已經預先設定,所以安裝後即可啟動,不會有任何問題。如果您已具有可以運作的網際網路連線,而且也在 /etc/resolv.conf 中輸入了 127.0.0.1 做為 localhost 的名稱伺服器位址,表示您通常已經有工作名稱解析,就不需要知道提供者的 DNS。BIND 透過根名稱伺服器完成名稱解析,顯見處理程序較慢。一般而言,提供者的 DNS 應該在 forwarders 之下的組態檔 /etc/named.conf 中輸入其 IP 位址,以確保有效及安全的名稱解析。如果目前都能運作,名稱伺服器會純粹當作 僅快取 名稱伺服器執行。只有您設定它自己的區域時,它才會變成適當的 DNS。關於這個的簡單範例包含於 /usr/share/doc/packages/bind/sample-config 的文件中。

[Tip]自動使用名稱伺服器資訊

根據網際網路連線或網路連線的類型,可以自動對目前的情況使用名稱伺服器資訊。若要這樣做,將檔案 /etc/sysconfig/network/config 中的變數 MODIFY_NAMED_CONF_DYNAMICALLY 設定為 yes

不過,在負責的機構指定正式領域前,請不要設定。即使您有自己的領域而且是由提供者管理的,最好也不要使用,否則 BIND 不會轉寄此領域的要求。例如,此領域將無法存取提供者的網頁伺服器。

若要啟動名稱伺服器,以 root 的身份輸入指令 rcnamed start。如果右邊出現綠色的「完成」,即表示已成功啟動稱為 named 的名稱伺服器程序。使用 hostdig 程式立即測試本地系統上的名稱伺服器,應該會傳回 localhost 作為預設伺服器,位址為 127.0.0.1。如果不是這種情形,/etc/resolv.conf 可能包含不正確的名稱伺服器項目,或是檔案根本不存在。對於第一次測試,輸入 host 127.0.0.1,這通常都能成功。如果看到錯誤訊息,使用 rcnamed status,檢查伺服器是否確實執行。如果名稱伺服器沒有啟動或是未以預期的方式運作,通常在 /var/log/messages 記錄檔中可以找到原因。

若要使用提供者的名稱伺服器或將網路上已經執行的名稱伺服器作為 forwarder,請在 forwarders 下的 options 區段中輸入對應的 IP 位址。範例 20.1, "named.conf 中的轉寄選項" 中包含的位址只是範例。根據您自己的設定調整這些項目。

範例 20.1. named.conf 中的轉寄選項

options { 
        directory "/var/lib/named";
        forwarders { 10.11.12.13; 10.11.12.14; };
        listen-on { 127.0.0.1; 192.168.0.99; };
        allow-query { 127/8; 192.168.0/24; };
        notify no;
        };

options 項目後面跟著是區域的項目、localhost 以及 0.0.127.in-addr.arpa。在 "." 之下的 type hint 項目應該永遠是存在的。不需要修改對應檔案,而且應該依其原狀運作。另外也請確定每個項目的前後都有「;」,且大括號在正確的位置。變更組態檔 /etc/named.conf 或區域檔後,使用 rcnamed reload 告訴 BIND 重新讀取這些檔案。使用 rcnamed restart 停止和重新啟動名稱伺服器會達成相同的結果。輸入 rcnamed stop 隨時停止伺服器。