我已經在 CentOS 7 中正確配置了主 DNS 伺服器並且工作正常。我有嘗試過在另一台電腦上配置僅快取 DNS 伺服器,我不確定它是否有效。
這是我的/etc/named.conf
僅緩存伺服器:
options {
listen-on port 53 { 127.0.0.1; 192.168.1.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; 192.168.1.0/24; };
#allow-query-cache { localhost; 192.168.1.0/24; };
這就是我在快取 DNS 伺服器上所做的一切。我啟動named
服務並使其能夠在啟動時啟動。
在客戶端電腦上,/etc/resolv.conf
我將名稱伺服器指定為快取 dns 伺服器 IP 位址。
這裡的問題是,當我使用主機名稱從客戶端 ping 任何電腦時,客戶端電腦傳回以下錯誤:
ping: primarydns.linux.com: Name or service not known
誰能幫幫我嗎?我真的不確定我什麼時候在快取伺服器上做錯了。
答案1
該問題評論中的討論表明,實際目標是建立一個本地、完全隔離的 DNS 環境以用於培訓目的。
我將概述模擬 DNS 在此類隔離環境中的公共互聯網上運作方式所需的基本元件。
權威方
- 對您自己的根 (
.
) 區域版本具有權威性的名稱伺服器。此根區域應該具有您在環境中使用的任何 TLD 的授權。 - 對您自己的某些 TLD 版本(
com
在您的範例中)具有權威性的名稱伺服器。 TLD 區域應對其下方存在的任何區域進行授權。 - 對您自己的區域具有權威性的名稱伺服器(
linux.com
在您的範例中)。
雖然從技術上講,這些區域可以全部駐留在同一名稱伺服器上,但如果您以這種方式進行設置,您將無法觀察典型行為。為了能夠觀察相關行為,您的範例應該有三個獨立的名稱伺服器。
遞迴端
- 一個快取遞歸名稱伺服器,您在其中擁有自訂根 (
.
)提示區(僅指定上述環境中的根伺服器及其IP)。
如果您的訓練環境中使用了 DNSSEC,請.
使用用於根區域的 KSK 為根 ( ) 指定信任錨。如果未使用 DNSSEC,請停用 DNSSEC 驗證。
完成此操作後,遞歸程序將能夠正常運行,並按照授權鏈到達訓練環境中存在的任何區域,就像在公共互聯網上一樣。