绑定 DDNS 更改接收“更新失败:NOTAUTH”,如何解决该授权问题?

绑定 DDNS 更改接收“更新失败:NOTAUTH”,如何解决该授权问题?

我有以下区域定义:

zone "madetoorder.software" {
  type master;
  file "/var/lib/bind/example.com.zone";
  allow-transfer { trusted-servers; };
  check-names warn;
  update-policy {
    grant local-ddns zonesub any;
    grant letsencrypt_wildcard. name _acme-challenge.example.com. txt;
  };
  max-journal-size 2M;
};

如图所示,它应该允许我使用 添加和删除子域(又名foo.example.comnsupdate。我尝试了以下操作,但出现错误NOTAUTH

$ sudo nsupdate
> local 165.232.146.181
> zone madetoorder.software
> update delete ve-vlc.madetoorder.software.
> send
NOTAUTH
> update add ve-vlc.madetoorder.software. 60 A 165.232.146.181
> send
NOTAUTH
> quit

我们可以看到,send命令失败并出现NOTAUTH

我知道local-ddns密钥已成功加载,因为当我尝试不使用时sudo出现以下错误:

$ nsupdate -l
19-Apr-2022 21:50:16.831 open: //run/named/session.key: permission denied
can't read key from //run/named/session.key: permission denied

查看文件,它看起来像是一个有效的密钥。正如预期的那样。

此外,letsencrypt对 TXT 字段的更改也按预期工作。那么问题出在哪里:

grant local-ddns zonesub any

笔记:

如区域定义所示,.zone 文件位于 下/var/lib/bind。并且目录由 拥有root:bind并具有权限-rwxrwxr-x。文件本身具有权限-rw-------。因此named(以 身份运行bind)可以访问这些文件。

答案1

我找到了解决问题的方法。

我重新啟動了named

我不太清楚发生了什么。它看起来正在运行:

$ systemctl status named
● named.service - BIND Domain Name Server
     Loaded: loaded (/lib/systemd/system/named.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2022-04-20 14:25:48 UTC; 9h ago
       Docs: man:named(8)
   Main PID: 2334296 (named)
      Tasks: 14 (limit: 9508)
     Memory: 44.3M
     CGroup: /system.slice/named.service
             └─2334296 /usr/sbin/named -f -u bind

但我无法访问任何东西。我花了一点时间才注意到系统实际上死的

当我测试使用dig @ns1.example.com www.example.com它时,它处于该状态时会失败。然而,UDP 端口是开放的,如上所示,状态显示 OKAY(我的控制台中的项目符号为绿色)。

我希望这对其他人有所帮助,因为这是一种奇怪的状态。

相关内容