PowerDNSはNXDOMAINのAAAAレコードをキャッシュしますが、有効なAレコードが存在します。

PowerDNSはNXDOMAINのAAAAレコードをキャッシュしますが、有効なAレコードが存在します。

PowerDNSを使用すると、奇妙な問題が発生しました。私に説明されている最初の問題は、ダウンしたドメインにHTTP要求を出すことができますが、staging.corp後続の要求はDNSエラーが原因で失敗することです。

問題が見つかったようですが、なぜこれが起こるのか、これが有効な動作であるのか、PowerDNS担当者にバグを報告するのか理解できません。

アップストリームDNSサーバーは有効なAレコードを返しますが、NXDOMAINの場合はAAAAレコードを返します。最初の要求が行われると、有効なAレコードが返されますが、NXDOMAINがキャッシュされ、すべての新しい要求がすぐにNXDOMAINを返すようです。

ステップ1:DNSが実行されていることを確認する

root:~# grep -v ^# /etc/powerdns/recursor.conf | grep -v ^$
etc-hosts-file=/etc/powerdns/hosts
export-etc-hosts=on
forward-zones-file=/etc/powerdns/recursor-forward-zones
local-port=53
quiet=yes
setgid=pdns
setuid=pdns


root:~# cat /etc/powerdns/recursor-forward-zones
+staging.corp=10.100.251.99
+.=8.8.8.8
root:~# dig m.emu.staging.corp
 
; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> m.emu.staging.corp
;; global options: +cmd                   
;; Got answer:                                            
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39857           
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
 
;; OPT PSEUDOSECTION:                               
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:                                                              
;m.emu.staging.corp.                IN      A
                       
;; ANSWER SECTION:                                                                                                                
m.emu.staging.corp. 6       IN      A       10.200.145.22

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 31 09:45:47 PDT 2023
;; MSG SIZE  rcvd: 67

ステップ2:要求する

root:~# curl https://m.emu.staging.corp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title></title>   
    <meta HTTP-EQUIV="REFRESH" content="0; url=https://mobile.emu.staging.corp">
</head>
<body>
</body>
</html>

ステップ3:DNSをもう一度確認してください。NXドメイン

root:~# dig m.emu.staging.corp

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> m.emu.staging.corp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 15030
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;m.emu.staging.corp.                IN      A

;; AUTHORITY SECTION:
staging.corp.              165     IN      SOA     ns.corp. dns-admin.corp. 2022052303 10800 7200 2419200 3600

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Mar 31 09:46:03 PDT 2023
;; MSG SIZE  rcvd: 127

アップストリームDNSサーバーが有効なAレコードで応答しています。

root:~# dig @10.100.251.99 m.emu.staging.corp a

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> @10.100.251.99 m.emu.staging.corp a
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55158
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:  
;m.emu.staging.corp.                IN      A

;; ANSWER SECTION:
m.emu.staging.corp. 10      IN      A       10.200.145.22

;; Query time: 46 msec
;; SERVER: 10.100.251.99#53(10.100.251.99)
;; WHEN: Fri Mar 31 09:46:44 PDT 2023
;; MSG SIZE  rcvd: 56

しかし、NXDOMAINはAAAA:

root:~# dig @10.100.251.99 m.emu.staging.corp aaaa

; <<>> DiG 9.11.3-1ubuntu1.18-Ubuntu <<>> @10.100.251.99 m.emu.staging.corp aaaa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 10062
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;m.emu.staging.corp.                IN      AAAA

;; AUTHORITY SECTION:
staging.corp.              1800    IN      SOA     ns.corp. dns-admin.corp 2022052303 10800 7200 2419200 3600

;; Query time: 109 msec
;; SERVER: 10.100.251.99#53(10.100.251.99)
;; WHEN: Fri Mar 31 09:46:48 PDT 2023
;; MSG SIZE  rcvd: 127

pdns-recursor を再起動すると、1 つの要求に対して再び動作します。

問題を解決するためのいくつかのオプションが表示されます。

  1. アップストリームDNSサーバーがNXDOMAINなしで応答できるようにする

アップストリームDNSサーバーが正しく機能していない場合、この動作を説明するRFCはありますか?これまで私は何も見つかりませんでした。 「これが壊れたのにこれが理由です」という文書を指摘できたらと思います。

  1. AAAA クエリを削除するように PowerDNS を変更する

これを行う方法に関するドキュメントが見つかりません。これはシステムレベルでなければならず、私が提供したカールコマンドは単なる例であり、DNSクエリはどこからでも来ることができます。

ベストアンサー1

NXDOMAINは、その名前(およびその下のすべての名前)が存在しないことを意味します。したがって、PowerDNSは正常に動作していますが、特権DNSサーバーに問題があります。

また見てくださいhttps://www.rfc-editor.org/rfc/rfc8020.html

おすすめ記事