DNS SERVFAIL の問題をトラブルシューティングする方法を教えてください。

所要時間3分
0

Amazon Route 53 でドメインを解決する際に、「SERVFAIL」応答が返されます。

解決方法

問題: サードパーティーのネームサーバー (NS) が AWS パブリックリゾルバーの IP アドレスをブロックしている

サードパーティーの NS がパブリックリゾルバーの IP アドレスをブロックした場合、パブリックドメインに対するクエリを解決すると SERVFAIL 応答が返されます。これは、1 つの AWS リージョンから解決する場合でも、複数の AWS リージョンから解決する場合でも発生します。ただし、8.8.8.8 や 1.1.1.1 などの一部のパブリック DNS リゾルバーに対して同じ DNS クエリを解決すると、NOERROR 応答が返されます。

この問題を解決するには、サードパーティーの DNS プロバイダーに連絡して許可リストを作成してください。SERVFAIL 応答が確認されている AWS リージョンのすべての AWS パブリックリゾルバー IP アドレス範囲をリストに追加します。

問題: パブリックホストゾーンに正しくないサブドメイン委任が設定されている

パブリックホストゾーン「example.com」には、「aws.example.com」用にサブドメイン委任が設定されています。サブドメイン委任設定で、サブドメインの権限のない、到達できないまたは正しくないネームサーバーが指定されています。

ドメイン「example.com」の親パブリックホストゾーン

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
aws.example.comNSdummy-ns1.com、dummy-ns2.net、dummy-ns3.co.uk、dummy-ns4.org、

ドメイン「aws.example.com」のサブドメインホストゾーン

aws.example.comNSns1-xxx.awsdns-xx.com、ns2-xxx.awsdns-xx.co.uk、ns3-xxx.awsdns-xx.net、ns4-xxx.awsdns-xx.org
aws.example.comA1.2.3.4

前述のエラーを解決するには、親ホストゾーン内のネームサーバーレコードを、サブドメインホストゾーンのネームサーバーと一致するように設定します。カスタムネームサーバーを使用している場合は、ネームサーバーにアクセスできることを確認してください。

問題: ドメインレジストラに間違ったネームサーバーが登録されている

ドメインレジストラに間違ったネームサーバーがリストされている場合、SERVFAIL 応答が返される原因には 2 つあります。

  • ドメインレジストラで設定されているネームサーバーが、パブリックホストゾーンで提供されているネームサーバーと一致しません。
  • レジストラで設定されているネームサーバーは存在しますが、特定のドメインに対して権限がありません。

ネームサーバーが存在しない場合、リゾルバーは反復クエリを開始した後にタイムアウトします。これらのタイムアウトにより、クエリ時間が大幅に遅れます。ネームサーバーは回答を提供できないため、リゾルバーは SERVFAIL 応答を返します。

ドメインのパブリックホストゾーン

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com

ネームサーバーは、次の例に示すように、ドメインレジストラで設定されます。

whois example.com | grep "Name Server"
Name Server: ns1.test.com  
Name Server: ns2.test.com
Name Server: ns3.test.com  
Name Server: ns4.test.com

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

  • **ホワイトラベルネームサーバーが実装されていない場合:**レジストラのネームサーバーを、パブリックホストゾーンに割り当てられているネームサーバーに置き換えます。
  • **ホワイトラベルネームサーバーが実装されている場合:**レジストラのネームサーバーが、パブリックホストゾーンのグルーレコードおよびホワイトラベルネームサーバーの A レコードと同一であることを確認します。

問題: プライベートホストゾーンに、サポートされていないサブドメイン委任が設定されている

プライベートホストゾーンでサブドメイン委任が正しく設定されていない場合、仮想プライベートクラウド (VPC) の DNS リゾルバーは SERVFAIL を返します。

プライベートホストゾーン

servfail.localNSns-xxx.awsdns-xx.co.uk、ns-x.awsdns-xx.com、ns-xxx.awsdns-xx.org、ns-xxx.awsdns-xx.net。
sub.servfail.localNSns-xxx.awsdns-xx.net。

: AWS マネジメントコンソールを使用してプライベートホストゾーンに NS レコードを作成し、サブドメインの責任を委任することはできません。代わりに、AWS コマンドラインインターフェイス (AWS CLI) を使用してください。Amazon Route 53 はプライベートホストゾーンでのサブドメイン委任をサポートしていないことに注意してください

問題: DNSSEC の設定が間違っている

DNSSEC で、次のように設定が 1 つあるいは複数間違っている可能性があります。

  • DNSSEC がドメインレジストラレベルで有効になっていますが、DNSホスティングサービス側では有効になっていません。
  • DNSSEC 署名が、ドメインレジストラレベルと DNS ホスティングサービス側で有効になっています。しかし、1 つまたは複数の重要な情報 (キータイプ、署名アルゴリズム、公開鍵など) が一致しません。または、DS レコードが間違っています。
  • 親ゾーンと子ゾーンの間の信頼チェーンが確立されていません。親ゾーンの DS レコードが、子ゾーンのパブリック KSK のハッシュと一致しません。

この問題を解決するには、「Route 53 の DNSSEC 設定の問題を特定してトラブルシューティングする方法」を参照してください。

問題: Route 53 リゾルバーのインバウンドとアウトバウンドのエンドポイントチェーンの設定が間違っている

この問題は、ループ内の DNS トラフィックが原因です。次のパターンからのトラフィックフローがループの原因となります。

EC2 インスタンス - VPC DNS リゾルバー - (転送ルールとの一致) - アウトバウンドエンドポイント - (インバウンドエンドポイントのターゲット IP アドレス) - インバウンドエンドポイント - VPC DNS リゾルバー

この問題を解決するには、「リゾルバーエンドポイントのループ構成を回避する」を参照してください。

問題: Route 53 リゾルバーのアウトバウンドエンドポイントに接続の問題がある

Route 53 リゾルバーのアウトバウンドエンドポイントとリゾルバーのルールターゲット IP アドレスの間に接続の問題がある場合、AmazonProvidedDNS は SERVFAIL を返します。

この問題を解決するには、次の手順を実行してください。

  • アウトバウンドエンドポイントで作成された Elastic Network Interface (ENI) VPC からターゲット IP アドレスへのネットワーク接続を確認します。
    1. ネットワークアクセスコントロールリスト (ネットワーク ACL) を確認します。
    2. ポート 53 を介してターゲット IP アドレスへの TCP および UDP トラフィックを許可するアウトバウンドエンドポイントのセキュリティグループのエグレスルールがあることを確認します。
    3. ターゲット IP アドレス側に設定されているファイアウォールルールを確認します。
    4. アウトバウンドエンドポイントの Elastic Network Interface (ENI) とターゲットの IP アドレス間のルーティングを確認します。
  • 設計上、Route 53 リゾルバーのアウトバウンドエンドポイントの Elastic Network Interface (ENI) には、パブリック IP アドレスがありません。ターゲット DNS サーバーがパブリック DNS の場合 (例: 8.8.8.8) の場合、アウトバウンドエンドポイントが NAT ゲートウェイのルートテーブルエントリを含むプライベートサブネットに作成されていることを確認します。

問題: 親ゾーンのグルーレコードが欠落している

ドメイン「example.com」のパブリックホストゾーン内には、サブドメインのネームサーバーを指す「glue.example.com」のサブドメイン委任があります。ただし、次の例に示すように、グルーレコードはパブリックホストゾーン「example.com」には存在しません。

ドメイン「example.com」の親パブリックホストゾーン

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com

ドメイン「glue.example.com」のサブドメインパブリックホストゾーン

glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com
glue.example.comA1.2.3.4
ns1.glue.example.comA3.3.3.3
ns2.glue.example.comA4.4.4.4
ns3.glue.example.comA5.5.5.5
ns4.glue.example.comA6.6.6.6

この問題を解決するには、親ドメインのホストゾーンのサブドメイン「glue.example.com」のグルーレコードを作成します。

ドメイン「example.com」の親パブリックホストゾーン

example.comNSns1.example.com、ns2.example.com、ns3.example.com、ns4.example.com
glue.example.comNSns1.glue.example.com、ns2.glue.example.com、ns3.glue.example.com、ns4.glue.example.com
glue.example.comA1.2.3.4
ns1.glue.example.comA3.3.3.3
ns2.glue.example.comA4.4.4.4
ns3.glue.example.comA5.5.5.5
ns4.glue.example.comA6.6.6.6

問題: max-recursion-depth を超えている

クエリドメインの応答深度が 9 を超える場合、max-recursion-depth を超えていることになります。応答は、8 つ以下の CNAME レコードと最後の A/AAAA レコードのチェーンでなければなりません。

この問題を解決するには、応答に含まれる CNAME レコードの数を減らします。ループを防ぐため、Route 53 リゾルバーの深度は最大 9 (8 つの CNAME と 1 つの A/AAAA レコードのチェーン) をサポートしています。

AWS公式
AWS公式更新しました 1年前
コメントはありません