我有以下區域定義:
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:bind
with 權限-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 連接埠已打開,如上所示,狀態顯示“正常”(我的控制台中的項目符號點為綠色)。
我希望這對其他人有幫助,因為這是一種奇怪的狀態。