綁定 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.com使用 . 新增和刪除子網域(又名)nsupdate。我嘗試了以下操作,但出現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:bindwith 權限-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 連接埠已打開,如上所示,狀態顯示“正常”(我的控制台中的項目符號點為綠色)。

我希望這對其他人有幫助,因為這是一種奇怪的狀態。

相關內容