Domain-Name-System

使用萬用字元記錄更新 DNS - 伺服器出現 TSIG 錯誤/GSS 驗證錯誤

  • May 3, 2019

我在企業環境中使用 Microsoft DNS 伺服器。我無法直接訪問它,但我可以遠端添加記錄。

例如 - 使用nsupdate- 我可以添加新的 A / CNAME 類型記錄,如 Unix&Linux如何使用 nsupdate 更新記錄?

cat <<EOF > dns-update
server bar.example
zone foo.bar.example
update add hostname.foo.bar.example 86400 A 192.0.2.1
send
EOF

nsupdate -g dns-update

以上作品並以status: NOERROR.

現在我要做的是創建可通過萬用字元*和 A name / CNAME 訪問的嵌套記錄。

在上面的範例中,如果我替換hostname.foo.bar.example*.hostname.foo.bar.examplensupdate 將失敗並顯示status: REFUSED. 如果我像在\*.

$ nsupdate -g scripts/dns-update 
; TSIG error with server: tsig verify failure
update failed: REFUSED

並帶有額外的調試資訊

$ nsupdate -g -D -L 3 scripts/dns-update 
...
;; TSIG PSEUDOSECTION:
588089969.sig-bar.example. 0 ANY TSIG   gss-tsig. 1556099609 300 28 BAQE//////8AAAAAKy03Mk/Ul7AQ***== 51403 NOERROR 0 

24-Apr-2019 11:53:29.924 dns_request_destroy: request 0x7fb2c6eef180
24-Apr-2019 11:53:29.924 req_destroy: request 0x7fb2c6eef180
24-Apr-2019 11:53:29.924 requestmgr_detach: 0x7fb2c6ee7010: eref 1 iref 1
Out of recvgss
24-Apr-2019 11:53:29.961 req_connected: request 0x7fb2c6eef010
24-Apr-2019 11:53:29.961 req_send: request 0x7fb2c6eef010
24-Apr-2019 11:53:29.961 req_senddone: request 0x7fb2c6eef010
24-Apr-2019 11:53:29.999 req_response: request 0x7fb2c6eef010: success
24-Apr-2019 11:53:29.999 req_cancel: request 0x7fb2c6eef010
24-Apr-2019 11:53:29.999 req_sendevent: request 0x7fb2c6eef010
update_completed()
24-Apr-2019 11:53:29.999 dns_request_getresponse: request 0x7fb2c6eef010
24-Apr-2019 11:53:29.999 GSS verify error: GSSAPI error: Major = A token had an invalid Message Integrity Check (MIC), Minor = Packet was replayed in wrong direction.
24-Apr-2019 11:53:29.999 tsig key '588089969.sig-bar.example' (<null>): signature failed to verify(1)
; TSIG error with server: tsig verify failure
show_message()
...

有趣的是 - 當我使用 Windows DNS 管理器做同樣的事情時,它沒有任何問題。查看螢幕截圖 - DNS 管理器

不幸的是,這是我 1) 無法自動化 2) 在 Linux 上執行大部分基礎設施的 GUI 解決方案。正因為如此,我試圖用nsupdate.

作為一種解決方法,我嘗試在 Linux(CentOS 7)上安裝 PowerShell(PSVersion 6.2.0)並使用Add-DnsServerResourceRecordCNamecmdlet(啟用配置萬用字元 DNS 記錄)。

不幸的是,Add-DnsServerResourceRecordCName該版本不提供命令。此解決方法不起作用。

引用自:https://serverfault.com/questions/964300