Domain-Name-System

本地 BIND DNS 記憶體伺服器客戶端不解析公共 DNS,僅解析內部區域

  • November 30, 2020

有很多評論部分可以讓您了解我嘗試過的內容。請注意,這是通過 ansible playbook 作為 jinja2 模板複製的(這就是其中存在 ansible 變數的原因)。這是在以主/從配置執行 BIND 9.11.13 的 CentOS 8 伺服器上。DNS 伺服器本身應該是僅在內部記憶體 DNS 伺服器,並且在解析任何公共或私有內容時都沒有問題。然而,客戶端最終只能解析本地區域。這是來自主人的named.conf:

//
// named.conf
//

/*
acl "trusted" {
       10.0.0.10; #ns1
       10.0.0.11; #ns2
       10.0.0.0/24;
};
*/

options {
       listen-on port 53 { 127.0.0.1; {{ ansible_default_ipv4.address }}; }
       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";
       secroots-file   "/var/named/data/named.secroots";
       recursing-file  "/var/named/data/named.recursing";
       allow-query     { any; };

       recursion yes;
       
       dnssec-enable no;
       dnssec-validation no;
       dnssec-lookaside auto;

       managed-keys-directory "/var/named/dynamic";

       pid-file "/run/named/named.pid";
       session-keyfile "/run/named/session.key";

       /* https://fedoraproject.org/wiki/Changes/CryptoPolicy */
       include "/etc/crypto-policies/back-ends/bind.config";
};

logging {
       channel default_debug {
               file "data/named.run";
               severity dynamic;
       };
};

zone "." IN {
       type hint;
       file "named.ca";
};

/*
zone "." {
       type forward;
       forward only;
       forwarders { 8.8.8.8; 8.8.4.4; };
};
*/

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

// forward lookup zone
zone "domain.local" {
    type master;
    file "domain.local.db";
    allow-update { none; };
    allow-query { any; };
    allow-transfer  { 10.0.0.11; };
    also-notify { 10.0.0.11; };
    notify yes;
};

// reverse lookup zone
zone "0.0.10.in-addr.arpa" {
    type master;
    file "domain.local.rev";
    allow-update { none; };
    allow-query { any; };
    allow-transfer  { 10.0.0.11; };
    also-notify { 10.0.0.11; };
    notify yes;
};

正如你所看到的,我回到了幾乎原版的設置。我嘗試了一堆僅轉發和 acls 的擺弄。

這是數據庫文件:

;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns1.domain.local. admin.domain.local. (
                 5     ; Serial
            604800     ; Refresh
             86400     ; Retry
           2419200     ; Expire
            604800 )   ; Negative Cache TTL
;
@   IN  NS  ns1.domain.local.
@   IN  NS  ns2.domain.local.
ns1.domain.local.          IN      A       10.0.0.10
ns2.domain.local.          IN      A       10.0.0.11
web.domain.local.          IN      A       10.0.0.13

我可能已經盯著這個太久了,這很明顯,但在這一點上,我真的很感激第二雙眼睛。

提前致謝!!

好吧,失踪的情況;又罷工了。我錯過了偵聽埠線上的結尾分號,這導致了一切。奇怪的是,當我重新啟動它時,named.service 並沒有抱怨。但是,重新啟動後,它確實對我大喊大叫,並告訴我我在哪裡是個白痴。::臉掌::

如果我理解您正在嘗試做什麼 - 如果您希望能夠解析外部域,那麼您需要啟用一些轉發器,以便您的 DNS 伺服器可以查詢外部世界並將結果傳回。

引用自:https://serverfault.com/questions/1044154