Windows DNS サーバーで条件付きフォワーダーを使用する際の CNAME レコード解決に関する問題をトラブルシューティングする方法を教えてください。

所要時間3分
0

Windows Server DNS サーバーまたは AWS ディレクトリサービスの DNS 設定で条件付きフォワーダーを使用すると、CNAME レコード解決で問題が発生します。

簡単な説明

Windows DNS サーバーまたは AWS ディレクトリサービスとその条件付きフォワーダーを以下の環境で使用すると、CNAME レコード解決に関する問題が発生します。

  • オンプレミスのプライベート設定にある Windows DNS サーバーは、条件付きフォワーダーを使用して Amazon Route 53 リゾルバーのインバウンドエンドポイントに DNS クエリを送信します。
  • プライベート Amazon 仮想プライベートクラウド (VPC) 設定の Windows DNS サーバーは、条件付きフォワーダーを使用して DNS クエリを Route 53 リゾルバーに送信します。

解決策

DNS クライアントは NOERROR 応答を受信しているが、プライベートホストゾーンにある CNAME レコード値を解決できない

この問題は、Windows DNS サーバーに CNAME レコード (cname.example.com) の条件付きフォワーダーがあるが、CNAME レコード値 (example.net) には条件付きフォワーダーがない場合に発生します。

Windows DNS サーバーがクエリを Amazon Route 53 に転送すると、Route 53 リゾルバーは cname.example.com と example.net を解決し、A レコードを返して応答します。この応答は、各レコードの有効期限 (TTL) に基づいて Windows DNS サーバーにキャッシュされます。DNS サーバーに cname.example.com の有効なキャッシュがあるが、example.net のキャッシュが期限切れの場合、DNS サーバーは CNAME レコード値のみを返します。Route 53 リゾルバーが CNAME クエリを管理する方法の詳細については、「Amazon Route 53 DNS のベストプラクティス」の「CNAME レコード」を参照してください。

次の出力例は、複数の条件付きフォワーダー設定を示しています。

ホストゾーン情報

Public Hosted Zone (example.com)  
cname.example.com CNAME Simple - No example.net 300  

Private Hosted Zone (example.net)  
example.net A Simple - No 10.0.0.100 10 - - -

レコードのキャッシュなしで、cname.example.com 専用に作成された条件付きフォワーダーを使用する最初の dig クエリ

$ dig cname.example.com. +noedns +noquestion

; <<>> DiG 9.16.48-RH <<>> cname.example.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38053 <- NOERROR response
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; ANSWER SECTION:
cname.example.com. 300 IN CNAME example.net.
example.net. 10 IN A 10.0.0.100 <- A record IP address of example.net

;; Query time: 10 msec
;; SERVER: 10.0.0.53#53(10.0.0.53) <- a client's own Windows DNS server
;; WHEN: Sat Mar 09 22:11:34 UTC 2024
;; MSG SIZE rcvd: 110

cname.example.com 専用に作成された条件付きフォワーダーと cname.example.com のみに有効なキャッシュを使用する dig クエリ

$ dig cname.example.com. +noedns +noquestion

; <<>> DiG 9.16.48-RH <<>> cname.example.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 47918 <- NOERROR response
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; ANSWER SECTION:
cname.example.com. 280 IN CNAME example.net. <- No IP address returned

;; Query time: 0 msec <- Query time is 0 because it's a cache response
;; SERVER: 10.0.0.53#53(10.0.0.53) <- a client's own Windows DNS server
;; WHEN: Sat Mar 09 22:11:54 UTC 2024
;; MSG SIZE rcvd: 94

両方のレコード用に作成された条件付きフォワーダーを使用する digクエリ

$ dig cname.example.com. +noedns +noquestion

; <<>> DiG 9.16.48-RH <<>> cname.example.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38153 <- NOERROR response
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; ANSWER SECTION:
cname.example.com. 280 IN CNAME example.net.
example.net. 10 IN A 10.0.0.100 <- A record IP address of example.net

;; Query time: 10 msec
;; SERVER: 10.0.0.53#53(10.0.0.53) <- a client's own Windows DNS server
;; WHEN: Sat Mar 09 22:11:54 UTC 2024
;; MSG SIZE rcvd: 110

このエラーを解決するには、次の操作を行います。

注: プライベートホストゾーンのレコードを解決するには、Amazon VPC で enableDNSHostnames および enableDnsSupport 属性を True に設定します。

AWS公式
AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ