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 を有効にできません。

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

クエリ解決プロセス

エイリアス レコードは 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 レスポンスを返します。

ALIAS レコードのターゲットを解決するときに、Cloud DNS はクライアント提供の EDNS クライアント サブネットを使用しません。

有効期間(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 レコードの解決で取得されたものかは関係ありません。

エラー処理

ALIAS レコードを解決するために、Cloud DNS はサードパーティの権威ネームサーバーを使用して DNS 委任を決定し、外部でホストされている DNS データを取得します。Cloud DNS が ALIAS レコード ターゲットを解決できない場合(ALIAS ターゲットの解決でエラー RCODE 値(NXDOMAINREFUSED など)が返された場合)、SERVFAIL レスポンスを返します。たとえば、ALIAS ターゲットが存在しない場合や、その信頼できるサーバーに到達できない場合、Cloud DNS は SERVFAIL を返します。

SERVFAIL はエラーに関する限定的な情報しか提供しないため、Cloud DNS ロギングには、ALIAS レコードの解決中に発生した特定の RCODE 値が含まれており、エラーのトラブルシューティングに役立ちます。Cloud DNS ロギングの使用方法については、ロギングとモニタリングを使用するをご覧ください。

ALIAS ターゲット解決の結果が NODATA レスポンス(NOERROR RCODE を含む空のレスポンス)の場合、Cloud DNS は NODATA を返します。ALIAS レコードは A クエリと AAAA クエリの両方に一致しますが、ALIAS ターゲットは 1 つのレコードタイプしか保持できません。これは想定された動作であり、エラー 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 のままになります。

次のステップ