Bind9 中的区域已成功加载。如何调试?Ubuntu

Bind9 中的区域已成功加载。如何调试?Ubuntu

我对系统管理这方面还很陌生。

我在 Ubuntu Server 18 上安装了 Bind9 ( apt-get install bind9)。我配置了转发,设置了区域。但它不起作用。

日志表明新区域已启动。

当我 ping 或托管时,ns.ubuntu.local它显示:ping: ns.ubuntu.local: Temporary failure in name resolution

我怎样才能知道我遗漏了什么?

日志:

Mär 11 08:18:42 server named[4201]: managed-keys-zone: loaded serial 21
Mär 11 08:18:42 server named[4201]: zone 0.in-addr.arpa/IN: loaded serial 1
Mär 11 08:18:42 server named[4201]: zone 127.in-addr.arpa/IN: loaded serial 1
Mär 11 08:18:42 server named[4201]: zone 255.in-addr.arpa/IN: loaded serial 1
Mär 11 08:18:42 server named[4201]: zone ubuntu.local/IN: loaded serial 1
Mär 11 08:18:42 server named[4201]: zone localhost/IN: loaded serial 2
Mär 11 08:18:42 server named[4201]: all zones loaded

我的named.conf.options

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you may need to fix the firewall to allow multiple
        // ports to talk.  See http://www.kb.cert.org/vuls/id/800113

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
            8.8.8.8;
            8.8.4.4;
        };

        //========================================================================
        // If BIND logs error messages about the root key being expired,
        // you will need to update your keys.  See https://www.isc.org/bind-keys
        //========================================================================
        listen-on { any; };
        allow-query { any; };
        recursion yes;
        dnssec-validation auto;

        auth-nxdomain no;    # conform to RFC1035
        listen-on-v6 { any; };
};

我的named-conf.local

//
// Do any local configuration here
//
zone "ubuntu.local" {
    type master;
    file "/etc/bind/zones/db.ubuntu.local";
};

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

我的zones/db.ubuntu.local

;
; BIND data file for local loopback interface
;
$TTL    604800
@       IN      SOA     ns.ubuntu.local. root.ubuntu.local. (
                              1         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL
;
@       IN      NS      ns.ubuntu.local.
ns      IN      A       192.168.2.10
www     IN      A       102.168.2.10

答案1

根据您提到的名称服务器在您的 中设置为 127.0.0.53 的事实/etc/resolv.conf,这意味着 systemd 正在为您处理名称解析。快速解释一下这行的含义,name server 127.0.0.53意味着使用正在侦听该 IP 地址的名称服务器,在本例中是 systemd-resolved。意味着options edns0支持扩展 DNS 选项以允许更大的 UDP 数据包大小,您无需担心这里的问题。

有两种可能的解决方法。第一种方法是修复 systemd-resolved,使其指向服务器上运行的 Bind9 实例。您可以通过以下任一方法执行此操作:a) 编辑 /etc/systemd/resolved.conf,使其显示类似以下内容:

[Resolve]
DNS=127.0.0.1

它可能在那里。或者 b) 配置一个带有扩展名的8.8.8.8systemd 解析配置文件。创建一个名为的文件,并在其中输入:/etc/systemd/network/.network50-mydns.network

[Match]
Name=eth0 # Your interface name

[Network]
DNS=127.0.0.1

如果您不确定界面,您可以随时执行systemd-resolve --status此操作,它应该会在那里列出。完成上述任一选项后,使用以下命令重新启动 systemd-resolved:

sudo systemctl restart systemd-resolved`.

第二种选择是禁用 systemd-resolved 并安装 resolvconf,执行以下操作:

sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
sudo apt install resolvconf

然后查看/etc/resolvconf/resolv.conf.d/base并将 nameserver 行更新为nameserver 127.0.0.1。完成后,您可以使用以下命令重新启动 resolvconf:

sudo systemctl restart resolvconf

执行上述任一选项后,您应看到/etc/resolv.conf现在您的名称服务器已按照配置中定义,并且您的 DNS 查找应使用本地绑定。您在评论中未提及该dig命令是否有效,但我认为它们有效。

相关内容