init.d bind9 中止:“加载配置:地址不可用”

init.d bind9 中止:“加载配置:地址不可用”

问题:您正在运行某个 Debian 发行版,例如 Ubuntu Server 18.04 或 20.04。您在 /etc/bind/named.conf 中指定了一个 IP 地址参数:

  查询源地址192.168.30.2;
  监听 { 127.0.0.1; 192.168.30.2; };

还有,nutz。现在 bind9 启动在启动时中止,并显示类似以下内容的系统日志错误:

11 月 8 日 11:06:52 cygnus named[1333]: 无法获取查询源调度程序 (192.168.30.2#0)
11 月 8 日 11:06:52 cygnus 命名[1333]:加载配置:地址不可用
11 月 8 日 11:06:52 cygnus named[1333]: 退出(由于致命错误)
11 月 8 日 11:06:52 cygnus systemd[1]: bind9.service: 主进程已退出,代码=已退出,状态=1/失败
11 月 8 日 11:06:52 cygnus systemd[1]: bind9.service: 失败,结果为“退出代码”。

但是,您可以手动运行 init.d 脚本,使用以下命令:

/etc/init.d/bind9 启动

bind9 启动正常。您已启动 bind9 的调试,但日志记录只是不断报告 [正确,但可能缺乏详细性] 所需的 IP 地址不可用。

您搜索了 InnerTubes 并注意到,在过去十年中,该问题已多次作为错误报告给 ISC,但被拒绝,因为这不是错误。[没错;这不是 ISC BIND9 错误。]

呼呼。

答案1

以下答案由问题作者提交,他最初将答案作为问题的一部分发布


解决方案:在以下位置发现了可操作的线索 https://www.freedesktop.org/wiki/Software/systemd/NetworkTarget/

[帖子的开头是一篇长篇大论,描述了对特定 systemd 配置参数的潜在误解。具体来说,它指出 *.service 文件中的“network.target”参数并不意味着任何正常人可能期望的术语“network.target”的含义。“loaded.bananas”的含义也是如此。所以这真的不是 bind9 发行版管理员的错。不是的;他们可能是正常人。也许吧?]

如果你真的很着急,可以跳到“别废话了!我如何确保我的服务启动网络是真的在线的?”您将在此处阅读有关如何解决该问题的信息。总结一下 bind9 的情况——

编辑:

vi /etc/systemd/system/multi-user.target.wants/bind9.service

代替:

After=network.target(看到了 FUBAR 吗?没有?因此才有这篇长篇大论。)

和:

之后=网络在线.目标
想要=网络在线.目标

保存文件。重启:

初始化 6

重新登录,验证 bind9 是否已按您希望的方式启动。

root@cygnus:/etc/bind# ps ajx | grep 命名
    1 1704 1704 1704 ? -1 Ssl 121 0:01 /usr/sbin/named -f -u bind
或者可能:
root@draco:/etc/bind# ps ajx | grep 命名
    1 1258 1258 1258 ? -1 Ssl 110 0:02 /usr/sbin/named -f -u bind -t /var/lib/named -c /etc/bind/named.conf

附言:发行商 -- 请查看全部*.service 配置;这种阴险的“network.target”误解可能并不是唯一的。

PPS:Grr:“创建新标签‘监听名为 network.target’需要至少 300 点声望。请尝试使用现有标签列表中的内容。”

相关内容