このページでは、レコードの概要と、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 ゾーンに関する信頼できる情報を指定します。 |
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
レスポンスを返します。
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 レコードの解決で取得されたものかは関係ありません。
エラー処理
Cloud DNS サーバーが、ALIAS レコードに関連付けられている正規名を解決できない場合があります。 たとえば、正規名が存在しない場合や、ネームサーバーで一時的に障害が発生している場合などです。
ALIAS ターゲット解決のレスポンスが NODATA
(OK RCODE
を含む空のレスポンス)の場合、NODATA
レスポンスをクライアントに返します。ALIAS レコードは A クエリと AAAA クエリの両方に応答しますが、ALIAS ターゲットはこれらのタイプのいずれかしか保持しないため、もう一方のタイプには NODATA
レスポンスが返される可能性があります。これは想定されたユースケースであり、エラーとして扱うべきではありません。nonexistent
や refused
などの他のエラーの場合、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 のままになります。
次のステップ
Cloud DNS の使用を開始するには、クイックスタート: Cloud DNS を使用してドメイン名の DNS レコードを設定するをご覧ください。
ドメインを登録して設定するには、チュートリアル: Cloud DNS を使用してドメインを設定するをご覧ください。
API クライアント ライブラリについて学習するには、サンプルとライブラリをご覧ください。
Cloud DNS の使用時に発生する可能性のある一般的な問題の解決策については、トラブルシューティングをご覧ください。