DNS レコードの概要

このページでは、レコードの概要と、Cloud DNS がサポートする DNS レコードタイプについて説明します。

レコードは、DNS リソースとドメイン名のマッピングです。個々の DNS レコードは、タイプ(名前と番号)、有効期限、タイプ固有のデータから構成されます。

サポートされている DNS レコード型

Cloud DNS でサポートされるレコード型は次のとおりです。

レコードタイプ 説明
A

アドレス レコード。ホスト名を IPv4 アドレスにマッピングします。

AAAA

IPv6 アドレス レコード。ホスト名を IPv6 アドレスにマッピングします。

ALIAS

エイリアス レコード(プレビュー版): エイリアス ドメイン名をゾーン apex の正規名にマッピングします。エイリアス レコードは ANAME レコードまたは CNAME フラット化とも呼ばれます。

エイリアス レコードを構成するには、gcloud CLI または Cloud DNS API を使用します。Google Cloud コンソールを使用してエイリアス レコードを構成することはできません。

CAA

認証局(CA)承認。ドメイン証明書の作成を許可する CA を指定します。

CNAME

正規名レコード。エイリアス名を指定します。

CNAME レコードの作成中に問題が発生した場合は、限定公開ゾーンで定義された CNAME レコードが機能していないをご覧ください。

DNSKEY

安全な転送のために、他のオペレーターから取得される DNSSEC キー。このレコード セットタイプを追加できるのは、転送状態の DNSSEC 対応ゾーンのみです。

DS

委任されたゾーンの安全を確保するための DNSSEC キー フィンガープリント。このレコード セットタイプは、委任されたゾーンに対して DNSSEC を有効にしません。有効にするには、このゾーンに対して DNSSEC を手動で有効にする必要があります。

HTTPS

HTTPS サービス バインディング レコード。送信元が複数の代替エンドポイントを指定できます(それぞれパラメータが関連付けられています)。このレコードは HTTP を HTTPS にリダイレクトします。このレコードタイプは、より一般的な SVCB レコードタイプに基づいており、同じ値形式を使用します。

IPSECKEY

日和見暗号化を有効にするための IPsec 対応クライアントの IPsec トンネル ゲートウェイ データと公開鍵。

MX

メール エクスチェンジ レコード。メールサーバーへのリクエストをルーティングします。

NAPTR

RFC 3403 で定義された Naming Authority Pointer レコード。

NS

ネームサーバー レコード。DNS ゾーンを権威サーバーに委任します。

PTR

ポインタ レコード。DNS の逆引きによく使用されます。

SOA

Start of authority レコード。DNS ゾーンに関する信頼できる情報を指定します。SOA リソース レコードは、マネージド ゾーンを作成するときに自動的に作成されます。レコードは必要に応じて変更できます(たとえば、シリアル番号を日付ベースのバージョニングをサポートする任意の番号に変更できます)。

SPF

Sender Policy Framework レコード。以前、メール検証システムで使用されていたレコード型で、非推奨になりました(代わりに TXT レコードを使用してください)。

SRV

Service locator レコード。一部の Voice over IP (VoIP)やインスタント メッセージング プロトコルなどのアプリケーションで使用されます。

SSHFP

SSH クライアントが SSH サーバーの公開鍵を検証するための SSH フィンガープリント。

SVCB

サービス バインディング レコード。論理サービスで複数の代替エンドポイントを指定できます(それぞれパラメータが関連付けられています)。HTTPS の送信元の場合は、HTTPS レコードタイプをご覧ください。

TLSA

TLS クライアントが X.509 サーバー証明書を検証するための TLS 認証レコード。

TXT

テキスト レコード。任意のテキストを含めることができ、セキュリティ情報や不正防止情報などのマシンが読み取れるデータを定義するためにも使用できます。

TXT レコードには、1 つまたは複数のテキスト文字列を含めることができます。個々の文字列は 255 文字以下にしてください。複数の文字列がある場合は、メール エージェントや他のソフトウェア エージェントによって連結されます。各文字列は引用符で囲みます。

レコードの追加、削除、更新については、レコードを管理するをご覧ください。

ワイルドカード DNS レコード

Cloud DNS は、NS レコードを除くすべてのレコードタイプでワイルドカード レコードをサポートします。

エイリアス レコード

ALIAS レコードは Cloud DNS カスタム レコードタイプであり、CNAME レコードと同様に動作しますが、ゾーン apex でのみ使用でき、アドレス レコード(A または AAAA)クエリにのみ応答します。具体的には、ALIAS レコードタイプは、エイリアス ドメイン名を正規名にマッピングし、正規名を使用して応答を検索します。このレコードタイプは、apex で CNAME の動作が必要な場合に役立ちます。CNAME レコードを apex に配置することはできません。これは、zone apex に必要な SOA レコードなど、他のレコードタイプと一緒には存在できないためです。

ALIAS レコードは Cloud DNS に固有のもので、Cloud DNS ゾーンにクエリを行う外部クライアントに公開されることはありません。クライアントの場合、ALIAS レコードは、DNS レスポンスで標準の A または AAAA レコードとして示されます。ALIAS レコードは DNSSEC と互換性がないため、ALIAS レコードがあるゾーンでは DNSSEC を有効にできません。

エイリアス レコードは他のレコードと同様に管理できます。レコードを管理する方法については、レコードの管理をご覧ください。

クエリ解決プロセス

エイリアス レコードは Cloud DNS 一般公開ゾーンでのみ使用できます。

CNAME レコードの場合、リゾルバが正規名を解決する必要があります。ALIAS レコードの場合、Cloud DNS ネームサーバーは正規名を解決し、A または AAAA 合成レコードを生成してリゾルバに戻ります。合成された A レコードまたは AAAA レコードには、ALIAS レコードの名前と、ALIAS レコードのターゲット解決で見つかった IP アドレスが含まれています。Cloud DNS ネームサーバーは、Google で使用可能な再帰リゾルバを使用してエイリアス レコードを解決します。

エイリアス ターゲットが複数のアドレスを持つリソース レコードセット(RRSet)に解決される場合、Cloud DNS はすべてのレコードを返しますが、順序をランダム化してから、合成されたアドレス レコードを返します。このプロセスは、Cloud DNS がそのネームサーバーからの応答を処理する方法と似ています。

ALIAS のターゲットの解決時は、アドレス レコードのみが合成されます。ALIAS レコードのクエリでは、エイリアス レコードのターゲットの解決中に見つかった中間 CNAME レコードは返されません。ALIAS レコードに到達する前の CNAME 追跡で見つかった CNAME レコードが、変更されていない状態で返されます。ALIAS ターゲット解決に失敗した場合(つまり、NOERROR 以外のレスポンス コードが返された場合)、Cloud DNS ネームサーバーは SERVFAIL レスポンスをクライアントに返します。解決の結果、NODATA レスポンス(アドレス レコードのない NOERROR レスポンス)が返された場合、Cloud DNS ネームサーバーは NODATA レスポンスを返します。

有効期間(TTL)パラメータとキャッシュ

合成されたアドレス レコードで返される TTL 値は、ALIAS レコードの構成済みの TTL 値と、ALIAS ターゲットの解決中に検出された TTL 値の最小値になります。この方法で返された TTL が ALIAS レコードに構成された TTL よりも小さい場合がありますが、構成された TTL を超えることはありません。

次の例は、合成されたアドレス レコードの TTL の決定方法を示しています。

Cloud DNS マネージド ゾーンに次のレコードが構成されているとします。

example.com.    3600    SOA      ns.com.  admin.example.com. (...)
                86400   NS       ns.com.
                6000    ALIAS    test-cname.example.com.
test-cname      3000    CNAME    address.example.com.
address         5000    A        1.2.3.4

example.com の A レコードについて、このゾーンにクエリすると、次のようなレスポンスが返されます。

QUESTION SECTION
example.com.                  A

ANSWER SECTION
example.com.        3000      A      1.2.3.4

解決中に検出された TTL は、6,000(ALIAS レコードの場合)、3,000(CNAME レコードの場合)、または 5,000(A レコードの場合)です。これらの TTL のうち、3,000 が最も小さいので、合成されたアドレス レコード内で返されます。

この例では、わかりやすくするために同じゾーン内のすべてのレコードを示していますが、TTL ロジックは、異なるゾーンをまたいで解決する場合も同じです。

権威応答ビット

DNS のレスポンスの権威ビットはチェーン内の最初の名前(元の qname)に基づきます。この名前に関連付けられたデータがサーバー上で見つかったものか、ALIAS レコードの解決で取得されたものかは関係ありません。

エラー処理

Cloud DNS サーバーが、ALIAS レコードに関連付けられている正規名を解決できない場合があります。たとえば、正規名が存在しない場合や、ネームサーバーで一時的に障害が発生している場合などです。

ALIAS ターゲット解決のレスポンスが NODATAOK RCODE を含む空のレスポンス)の場合、NODATA レスポンスをクライアントに返します。ALIAS レコードは A クエリと AAAA クエリの両方に応答しますが、ALIAS ターゲットはこれらのタイプのいずれかしか保持しないため、もう一方のタイプには NODATA レスポンスが返される可能性があります。これは想定されたユースケースであり、エラーとして扱うべきではありません。nonexistentrefused などの他のエラーの場合、ALIAS レコードはクライアントに SERVFAIL RCODE を返します。

すべてのエラーに対して SERVFAIL が返されると問題を理解しづらいため、DNS Cloud Logging ではデバッグを支援することを目的として、ALIAS の解決時に返される RCODE を記録するための追加のフィールドが用意されています。詳細については、ロギングとモニタリングの使用をご覧ください。

レコードのインポートとエクスポート

BIND ゾーンファイルまたは YAML ファイルとの間でレコードのインポートとエクスポートを行うことができます。

ALIAS のレコードタイプは標準の DNS レコードタイプではないため、BIND ファイルでは ALIAS レコードはサポートされていません。Cloud DNS はこれらのエントリを認識しますが、他の BIND 互換 DNS ソフトウェアは認識できない可能性があります。

ALIAS レコードは、Cloud DNS に固有の YAML ファイルに次の形式でエクスポートされます。

kind: dns#resourceRecordSet
name: DNS Name
rrdatas: RR Data
ttl: TTL
type: ALIAS

Cloud DNS では、上記の形式の YAML ファイルから ALIAS レコードをインポートできます。

セキュリティとプライバシー

Cloud DNS の一般公開ネームサーバーは、ユーザーに代わって ALIAS ターゲットを解決しますが、ALIAS ターゲットを正しく構成する必要があります。正しくない ALIAS ターゲットがあると、一般公開レコードが想定どおりに機能しなかったり、望ましくない IP アドレスが返される可能性があります。

マネージド ゾーンをモニタリングする

Cloud DNS は、マネージド ゾーンに対する Logging からのすべてのクエリをロギングしています。ALIAS 名前解決のステータス情報を記録するために、DNS クエリログでオプションの alias_query_response_code フィールドを使用できます。この情報は、DNS レスポンスから取得されません。

詳細については、ログの表示をご覧ください。

alias_query_response_code は、クエリが ALIAS レコードを使用して解決される場合にのみ設定されます。値 NoError は、ALIAS レコードが正常に解決されたことを意味し、その他の値はエラーを表します。SERVFAIL 値は、次のいずれかの問題を表します。

  • ターゲット ネームサーバーに到達できない
  • レスポンスを見つける前にターゲット解決がタイムアウトした
  • DNSSEC 検証に失敗した

ログエントリの qtype フィールドには ALIAS オプションがありません。ALIAS レコードを使用して A または AAAA クエリに応答した場合、qtype フィールドは A または AAAA のままになります。

次のステップ