天天看點

《DNS與BIND(第5版)》——第7章 BIND的維護7.1 控制名稱伺服器

本節書摘來自異步社群《dns與bind(第5版)》一書中的第7章,第7.1節,作者: 【美】joseph davies 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

愛麗絲繼續喘着氣說:“可是,在我住的地方,

隻要快快地跑一會兒,你總能跑到另外一個地方的。”

“那可真是個慢吞吞的地方!”

王後說:“你瞧,在我們這兒,得拼命地跑,才能保持在原地。

要是想到别的地方,得再快一倍才行!”

本章将讨論關于如何維護名稱伺服器的相關内容。包括如何控制名稱伺服器,如何修改區域資料檔案,以及如何保持root提示檔案是最新的。還将列出常見syslog錯誤資訊并解釋bind的統計資料。

本章不會涉及如何排除故障的問題。因為維護隻涉及如何保持資料是最新的,以及監視名稱伺服器的運作情況。而排除故障就像是滅火——dns的緊急情況會像火苗一樣經常出現。本書在第14章會讨論如何“滅火”。

傳統上,管理者通過unix信号(signal)來控制bind名稱伺服器(即named)。名稱伺服器将收到的信号解釋成采取特定行動的指令,例如重載所有已變更的primary區域。然而,可用信号的數量有限,并且信号也無法傳遞附加資訊,例如要重載的特定區域的域名。

在bind 8.2中,isc引入了一種控制名稱伺服器的方法:通過一條特殊的控制通道來發送消息。這條控制通道可以是一個unix域套接字(unix domain socket),也可以是名稱伺服器用來監聽控制消息的一個tcp端口。因為控制通道不受限于數量有限的離散信号,是以其更靈活、功能更強。isc表示,控制通道是未來發展的方向,管理者應該使用它來管理所有的名稱伺服器,而不是使用信号。

要通過控制通道發送消息給一個名稱伺服器,可以使用ndc(bind 8)或rndc(bind 9)程式。在bind 8.2之前,ndc隻是一個簡單的shell腳本,用來将信号(例如hup)替換成友善的參數(例如reload)。本章稍後會提到這個版本的ndc。

7.1.1 ndc與controls(bind 8)

如果不帶參數執行,ndc将會通過unix域套接字來發送消息,嘗試與本地主機上運作的名稱伺服器進行通信。這個套接字通常稱為/var/run/ndc,不過有些作業系統使用不同的路徑名。該套接字的所有者一般為root,并且隻有其所有者才具有讀寫權限。bind 8.2及其後續版本的名稱伺服器會在啟動時建立該unix域套接字。可以使用controls語句為該套接字指定另一個路徑名或權限。例如,如果要将該套接字的路徑改為/etc/ndc,将使用者組的所有權改為named,并使該套接字的所有者和使用者組都具有讀寫權限,可以這樣做:

div style="text-align: center">

《DNS與BIND(第5版)》——第7章 BIND的維護7.1 控制名稱伺服器