BIND9 未通過 IPv6 獲取查詢
我正在測試將 Debian 10 伺服器升級到 Debian 11。伺服器執行 bind9 作為許多域的主要權威 DNS,並且在 Debian 10 上已經執行了兩年。(BIND v.9.11.5) 在新的測試 Debian 11 VPS (BIND 9.16.15) 上,複製了站點特定的配置文件(目前僅用於 1 個測試域),bind9 在查詢(A、AAAA、 MX) 通過 IPv4 發送,但使用 IPv6 時沒有響應。
我有一個 nftables 防火牆,它允許埠 53 的傳入數據包,如果我打開 UDP dport 53 的防火牆日誌記錄,則會顯示 IPv6 和 IPv4 查詢數據包。
當 bind9 啟動時,它會在 syslog 中報告它正在偵聽 IPv6 地址。
ss 顯示在 IPv6 上偵聽的程序。
如果我使用
rndc querylog
並觀察日誌文件,記錄了 IPv4 查詢,但沒有記錄 IPv6 查詢。就好像傳入的 UDP 數據包在防火牆和 bind9 之間失去一樣。
沒有其他程序正在偵聽埠 53,因為如果我停止執行 bind9,ss 將不會列出任何內容。
其他服務(例如 SSH)在 IPv6 上完美執行。
我的
named.conf.options
樣子是這樣的:options { directory "/var/cache/bind"; allow-query-cache { none; }; allow-query { any; }; recursion no; //======================================================================== // If BIND logs error messages about the root key being expired, // you will need to update your keys. See https://www.isc.org/bind-keys //======================================================================== dnssec-validation auto; listen-on-v6 port 53 { any; }; };
那麼我可以做哪些其他測試來解決這個問題?
(BIND 的第二個問題可能不相關:在區域傳輸到輔助 DNS 期間出現“權限被拒絕”錯誤。)
通過重啟修復!
在最近完成自動核心升級後,我可能應該這樣做。這種行為當然沒有任何意義。
更新:再次遇到類似的問題,我現在懷疑這是因為我的系統之前安裝了一些其他軟體的 iptables。如果 iptables 仍然安裝,它的規則可能會保留在核心的網路配置中,對 nftables 是不可見的。為了解決這個問題,我必須刪除 iptables 包並清除核心中的所有 iptables 規則;後者會在我重新啟動時發生。