レコードの管理

Cloud DNS API の DNS レコードを管理するときに、変更リクエストを API に送信する場合があります。このページでは、リソース レコードセットのコレクションに対する追加と削除を行う変更方法について説明します。また、importexporttransaction コマンドを使用して、目的の変更を API に送信する方法についても説明します。

始める前に

すでにマネージド ゾーンを作成していて、そのタスクの前提条件を満たしている必要があります。

レコードの追加または削除

レコードセット内の DNS レコードを追加または削除するには、実行するオペレーションを指定するトランザクションを作成して実行します。トランザクションは、一緒に伝播すべき 1 つ以上のレコード変更のグループです。トランザクション全体が成功または失敗のいずれかになるため、データが中間状態のままになることはありません。

Console

GCP Console でレコードセットを作成するには:

  1. Cloud DNS ページに移動します。
  2. レコードを追加するマネージド ゾーンの名前をクリックします。
  3. ゾーンの詳細画面で、[レコードセットの追加] をクリックします。
  4. [レコードセットを作成] 画面で、[DNS 名] フィールドに DNS ゾーンのサブドメインを入力します。例: mail
  5. [リソース レコードのタイプ] を選択します。例: MX
  6. [TTL] フィールドに、リソース レコードの有効期間の数値を入力します。これはキャッシュに保存できる時間です。この値は正の整数である必要があります。[TTL ユニット] プルダウン メニューから、時間の単位を選択します。例: 30 minutes
  7. 選択したリソース レコードのタイプに応じて、表の説明に従って残りのフィールドに値を入力します。
  8. [項目を追加] をクリックして追加情報を入力できます。
  9. [作成] をクリックします。

gcloud

トランザクションを開始するには:

gcloud dns record-sets transaction start my-zone-name \
    --dns-name="example.com" \
    --zone="my-zone-name"
  
トランザクションを追加するには:
gcloud dns record-sets transaction add my-zone-name \
    --dns-name="example.com" \
    --ttl="number of seconds" \
    --type="record type" \
    --zone="my-zone-name"
  

ここで

  • --typeで説明されているレコードタイプです。

トランザクションを削除するには:

gcloud dns record-sets transaction remove my-zone-name \
    --dns-name="example.com" \
    --ttl="number of seconds" \
    --type="record type" \
    --zone="my-zone-name"
  

ここで

  • --typeで説明されているレコードタイプです。

トランザクションを実行するには:

gcloud dns record-sets transaction execute my-zone-name \
    --dns-name="example.com" \
    --zone="my-zone-name" \

既存のレコードを置き換えるには、remove コマンドの後に add コマンドを発行します。

リソース レコードタイプの選択に関する詳細

レコードタイプ 入力
A

ホストの IP アドレス(ドット付き 10 進数形式)。

AAAA

ホストの IP アドレス(IPv6 16 進数形式)。

CAA

このドメインの証明書を発行する権限のある証明局。

CNAME

DNS 名がエイリアスとなる正規名。

DNSKEY

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

DS

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

IPSECVPNKEY

IPSec 公開 VPN キー。このレコード セットタイプを使用する場合は DNSSEC が推奨されますが、DNSSEC はこのゾーンに対して有効になっていません。

MX

サーバーの優先度を示す、メール交換サーバーの番号と DNS 名です。番号が小さいサーバーから試行されます。番号と DNS 名の間に必ずスペースを入れてください。

NAPTR

Uniform Resource Name のマッピングに使用する NAPTR(Naming Authority Pointer)ルール。

NS

権威ネームサーバーの DNS 名。NS レコードがゾーンのネームサーバーと一致している必要があります。

PTR

リソースの正規名。通常は逆検索に使用されます。

SPF

SPF レコード セットタイプは非推奨です。代わりに、「v=spf1 」で始まる TXT レコードを使用してください。最新のメール ソフトウェアでは、SPF タイプのレコードは使用されません。

SRV

特定のサービスを提供するサーバーデータ。

SSHFP

SSH サーバーのアルゴリズム番号、フィンガープリントの種類を表す番号、キー フィンガープリント。このゾーンの DNSSEC を有効にしている場合は、このレコードタイプを使用してください。

TLSA

名前付きエンティティの DNS ベースの認証(DANE)TLSA 証明書アソシエーションの情報。

TXT

テキスト レコード。任意のテキストを含めることができ、セキュリティ情報や不正防止情報などのマシンが読み取れるデータを定義するためにも使用できます。TXT レコードには 1 つ以上のテキスト文字列を含めることができ、各文字列の最大長は 255 文字です。複数の文字列がある場合は、メール エージェントや他のソフトウェア エージェントによって連結されます。各文字列は引用符で囲みます。次に例を示します。


"Hello world" "Bye world"

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

importexport を使用して、レコードセットをマネージド ゾーンの内外にコピーできます。インポートおよびエクスポートできる形式は、BIND ゾーンファイル形式または YAML レコード形式のいずれかです。

レコードセットをインポートするには、dns record-sets import コマンドを使用します。--zone-file-format フラグは、import に BIND ゾーン形式のファイルが想定されていることを伝えます。このフラグを省略すると、import は YAML 形式のレコード ファイルを想定します。

gcloud dns record-sets import -z=examplezonename \
   --zone-file-format path-to-example-zone-file

レコードセットをエクスポートするには、dns record-sets export コマンドを使用します。レコードセットを BIND ゾーン形式のファイルでエクスポートするには、--zone-file-format フラグを使用して、export に指示します。次に例を示します。

$ cat records.bind
example.com. 21600 IN NS ns-gcp-private.googledomains.com.
example.com. 21600 IN SOA ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600 259200 300
host1.example.com. 300 IN A 192.0.2.91

このフラグを省略すると、export はレコードセットを YAML 形式のレコード ファイルでエクスポートします。

gcloud dns record-sets export example.zone -z=examplezonename \
   --zone-file-format
   

例:

$ cat records.yaml
---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com.
ttl: 21600
type: NS
---
kind: dns#resourceRecordSet
name: example.com.
rrdatas:
- ns-gcp-private.googledomains.com. cloud-dns-hostmaster.google.com. 1 21600 3600
  259200 300
ttl: 21600
type: SOA
---
kind: dns#resourceRecordSet
name: host1.example.com.
rrdatas:
- 192.0.2.91
ttl: 300
type: A

現在のレコードセットの表示

ゾーンの現在の DNS レコードを表示するには:

gcloud

gcloud dns record-sets list --zone="myzonename"
コマンドによって、最初の 100 レコードのリソース レコードセットの JSON レスポンスが出力されます。次の追加のパラメータを指定できます。
  • limit: リスト表示するレコードセットの最大数です。
  • name: このドメイン名と完全に一致するレコードセットのみをリスト表示します。
  • type: このタイプのレコードだけをリスト表示します。指定した場合、--name パラメータも指定する必要があります。

Python

def list_resource_records(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    records = zone.list_resource_record_sets()

    return [(record.name, record.record_type, record.ttl, record.rrdatas)
            for record in records]

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud DNS のドキュメント