21.4 啟動名稱伺服器 BIND

在 SUSE® Linux Enterprise Server 系統上,名稱伺服器 BIND (柏克萊網際網路名稱網域) 已經預先設定,所以安裝後即可啟動,不會有任何問題。如果您已具有可以運作的網際網路連線,而且在 /etc/resolv.conf 中輸入了 127.0.0.1 做為 localhost 的名稱伺服器位址,則通常表示您已經具有可以運作的名稱解析,因而無需瞭解提供者的 DNS。BIND 透過根名稱伺服器執行名稱解析,顯見處理程序較慢。一般而言,應該在 forwarders 下的組態檔 /etc/named.conf 中輸入提供者的 DNS 及其 IP 位址,以確保有效及安全的名稱解析。如果目前此辦法可行,名稱伺服器會當成純粹的「僅快取」名稱伺服器執行。只有在您為名稱伺服器設定它自己的區域時,它才會變成適合的 DNS。有關此種情況的簡單範例,請參閱 /usr/share/doc/packages/bind/config 中的文件。

提示: 自動使用名稱伺服器資訊

名稱伺服器資訊可自動根據目前的情況調整,視網際網路連線或網路連線的類型而定。若要這樣做,將檔案 /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 記錄檔中可以找到原因。

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

範例 21-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.1.116; };
        allow-query { 127/8; 192.168/16 };
        notify no;
        };

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