每次重启时,必须重新启动 Bind9,DNS 服务器才能正常工作

每次重启时,必须重新启动 Bind9,DNS 服务器才能正常工作

我跟着这个非常好的教程在 Debian Jessie 上(在我的 Raspberry Pi 上)创建我的第一个 DNS 服务器。它似乎运行良好。我可以 ping 通:

ping myhostname.mydomain

一切运行正常。问题是每次我重启树莓派时,我都必须运行

sudo service bind9 restart

否则 DNS 服务器将无法按照我的配置启动,我的 DNS 定义将无法工作。现在我不得不说,如果我运行htop,我可以看到 bind9 在那里运行,但尽管如此,我还是ping得到了主机名不存在的结果。只有在我手动重新启动 bind9 后,DNS 服务器才能再次工作。

我不得不说,虽然我一直在尝试解决这个问题,但我让 bind9 运行通过 Chroot 进行操作,如 Debian 页面中所述,但这并没有帮助。

我对此还很陌生,所以如果您需要任何其他信息,请询问。我不知道从哪里开始寻找 bind9 的问题来解决这个问题。

注意:我从全新安装开始这一切。


更新根据评论中的问题:

dig myhostname.mydomain

给出超时:

; <<>> DiG 9.9.5-9+deb8u3-Raspbian <<>> myhostname.mydomain
;; global options: +cmd
;; connection timed out; no servers could be reached

命令netstat -plnut返回

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 127.0.0.1:53            0.0.0.0:*               LISTEN      -
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN      -
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      -
tcp6       0      0 :::80                   :::*                    LISTEN      -
tcp6       0      0 :::53                   :::*                    LISTEN      -
tcp6       0      0 :::22                   :::*                    LISTEN      -
tcp6       0      0 ::1:953                 :::*                    LISTEN      -
tcp6       0      0 ::1:6010                :::*                    LISTEN      -
udp        0      0 127.0.0.1:53            0.0.0.0:*                           -
udp        0      0 0.0.0.0:68              0.0.0.0:*                           -
udp        0      0 192.168.1.2:123         0.0.0.0:*                           -
udp        0      0 127.0.0.1:123           0.0.0.0:*                           -
udp        0      0 0.0.0.0:123             0.0.0.0:*                           -
udp        0      0 0.0.0.0:48851           0.0.0.0:*                           -
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           -
udp6       0      0 :::546                  :::*                                -
udp6       0      0 :::53                   :::*                                -
udp6       0      0 2003:75:e15:c201:52:123 :::*                                -
udp6       0      0 fe80::ba27:ebff:fe7:123 :::*                                -
udp6       0      0 ::1:123                 :::*                                -
udp6       0      0 :::123                  :::*                                -
udp6       0      0 :::53420                :::*                                -
udp6       0      0 :::5353                 :::*                                -

重新启动后,会添加以下两行,它们属于 DNS 服务器:

tcp        0      0 192.168.1.2:53          0.0.0.0:*               LISTEN      -
udp        0      0 192.168.1.2:53          0.0.0.0:*                           -

答案1

1)自定义脚本来处理 DHCP 延迟。(以 root/sudo 身份创建文件)

cat /usr/local/sbin/network-check

#!/bin/bash
while ! ifconfig | grep "192.168.1." > /dev/null; do
        #Network Down
        sleep 1
done
#Network up restart bind9
service bind9 restart

chmod a + x /usr/local/sbin/network-check

在 /etc/rc.local 中的 exit 0 之前添加一行

network-check
exit 0

然后重新启动

2) 设置静态,网络将以 IP 启动,然后 bind9 将启动(并使用该 IP)

答案2

我建议升级到 BIND 9.10,它能够通过全局选项yes的默认设置自动检测系统 IP 地址的变化automatic-interface-scan

在 BIND 9.9 中,相关选项interface-interval控制 BIND 轮询接口更改的频率。默认值为 60 分钟,这对于您的目的来说太慢了。

相关内容