在 named.conf 中需要內置區域文件
我正在設置 DNS(綁定)伺服器,預設情況下 /etc/named.conf 具有以下條目:
zone "." IN { type hint; file "named.root"; }; zone "localdomain." IN { type master; file "localdomain.zone"; allow-update { none; }; }; zone "localhost." IN { type master; file "localhost.zone"; allow-update { none; }; }; zone "255.in-addr.arpa." IN { type master; file "named.broadcast"; allow-update { none; }; }; zone "0.in-addr.arpa." IN { type master; file "named.zero"; allow-update { none; }; };
當我嘗試啟動時
named
,它失敗了,因為這 5 個文件(named.root、named.zero、named.broadcast、localhost.zone 和 localdomain.zone)在此伺服器上的任何地方都不存在。所以我刪除了這些條目並named
開始正常執行。DNS 按預期工作。我做了一些研究,才知道這些文件用於解析localhost
域。我檢查了其他幾個 DNS 伺服器,發現這些文件基本上都有指向 localhost 的記錄A
。NS
我的問題是:
- 如果我在沒有這些文件的情況下繼續在我們的生產環境中執行這個 DNS 可以嗎?有什麼副作用?
- 我有
named.ca
在伺服器,但沒有named.root
。我檢查了另一個 DNS 伺服器(這兩個文件都存在)並看到它們具有相同的內容(指向根名稱伺服器的記錄。我可以只使用named.ca,因為它具有根名稱伺服器條目嗎?是named.root
不推薦使用的版本named.ca
嗎?- 我沒有在 中設置轉發器
named.conf
,但外部域都可以正常解析。我還需要某種貨運代理嗎?我們其他一些較舊的 DNS 伺服器設置了轉發器,該轉發器指向我們擁有伺服器的機架空間。
首先,如果您的發行版提供或安裝了
named.conf
引用這些區域文件的預設文件,那麼它們肯定存在於您的系統中。也許您應該重新安裝軟體包?(或者你是從原始碼安裝的?)如果您的 DNS 伺服器僅具有權威性
(您正在談論解析外部域,所以我認為情況並非如此。)
您絕對不需要“佔位符”區域“localhost”、“localdomain”、“0.in-addr.arpa”和“255.in-addr.arpa”。他們永遠不會被詢問。
我不確定根提示區。我想知道即使在僅權威配置中,BIND 是否仍可能不使用它。我寧願把它留在裡面。
如果您的 DNS 伺服器啟用了遞歸
你真的需要根提示區。BIND 具有內置預設值,這就是為什麼即使沒有它它仍然可以為您工作,但根提示資訊確實會不時更改,並且內置提示可能會過時。即使根提示不太可能發生如此大的變化以至於內置提示和目前根伺服器位置之間不再有任何重疊並且您的伺服器開始出現故障,您仍然應該有一個根提示文件並保持它(非常)偶爾約會。
至於其他佔位符區域,如果您沒有它們,什麼都不會出錯,但這意味著如果您的伺服器在這些域下收到“垃圾”查詢,它會將它們轉發到 Internet,而使用佔位符區域它本可以更快地產生否定答案。
根提示文件名
關於您關於根提示文件名的第二個問題,您是否呼叫該文件
named.root
或named.ca
其他任何內容都沒有關係,只要您named.conf
使用正確的文件名引用它即可。根提示不會經常更改,這就是您注意到另一台伺服器具有相同副本的原因。如上所述,您應該使用根提示文件而不是依賴於編譯的預設值。
貨代
如果需要,您可以配置轉發器。它將使少量流量遠離根伺服器,並將其直接發送到您的上游伺服器,但這對於少數伺服器來說並不是什麼大問題。配置轉發器、使它們保持最新的努力以及如果轉發器失敗而導致伺服器失敗的風險通常是不值得的。如果您正在管理數百或數千台伺服器,或者您正在創建用於最終使用者系統的預設配置,那麼我肯定會考慮它。