Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

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

最終更新 Markdown で表示Agent セットアップ

インポートとエクスポートを使うと、DNS レコードをより細かく管理でき、ドメインの移行や レコードコメント の一括編集がしやすくなります。

レコードをインポートする

制限

  • ゾーンファイルのサイズ上限は 256 KiB(262144 バイト)です。

  • API のレート制限は、ユーザーあたり 1 分あたり 3 リクエストです。

ゾーンファイルを整形する

ドメインの BIND ゾーンファイル を作成します。必要なら サードパーティのツール を使ってください。

特定のレコードタイプ(例: CNAMEDNAMEMXNSPTRSRV レコード)を使う場合は、それらのレコードの content が、末尾ピリオド付きの完全修飾ドメイン名(example.com. など)になっていることを確認してください。詳細は RFC 1035 または Stack Exchange の投稿 を参照してください。

ゾーンファイルを Cloudflare にインポートする

ダッシュボードでゾーンファイルをインポートする手順は次のとおりです。

  1. Cloudflare ダッシュボードで DNS レコード ページを開きます。

    Records を開く ↗
  2. インポートとエクスポート を選択します。

  3. DNS レコードのインポート で、整形済みファイル を選択します。

  4. 対象レコード をプロキシしたくない場合は、インポートした DNS レコードをプロキシする の選択を外します。

API でレコードをインポートするには、正しく 整形したファイル を添えて POST リクエスト を送ります。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Write
Import DNS Recordsbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/import" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--form "file=@your_formatted_file.txt"

レコードをエクスポートする

Cloudflare からレコードを一括エクスポートすることもできます。

ダッシュボードでレコードをエクスポートする手順は次のとおりです。

  1. Cloudflare ダッシュボードで DNS レコード ページを開きます。

    Records を開く ↗
  2. インポートとエクスポート を選択します。

  3. エクスポート を選択します。

API でレコードをエクスポートするには、GET リクエスト を送ります。

Required API token permissions

At least one of the following token permissions is required:
  • DNS Read
  • DNS Write
Export DNS Recordsbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/export" \
	--request GET \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"

DNS レコード属性

ゾーンファイルのエクスポートまたはインポート時、Cloudflare は コメントとタグ を次の構造で整形します。各レコードの直後に ; を使ったインラインコメントとして属性を付けます。これは RFC 1035 セクション 5 に従います。

組み合わせ 説明
タグのみ タグ名に使える文字は 限られています

また、タグ値に ", =, ,, \ が含まれる場合は、二重引用符 (") で囲む必要があります。二重引用符 (") で囲んだタグ値は JSON 文字列として扱われるため、値の中の引用符は \" でエスケープできます。

空の値を持つタグは、my-tag-name:""my-tag-name:my-tag-name のいずれかで表せます。
コメントのみ コメントは文字の 制限が少なく、コメントはそのまま含まれます。

コメントに文字列 cf_tags= が含まれる場合は、行末に追加の cf_tags= を付ける必要があります。
コメントとタグ ゾーンファイルのコメントは、上記のとおり ; <comment> cf_tags=<tags> の形式になります。cf_tags= の前にスペースがある点に注意してください。
どちらもない ゾーンファイルのコメントは空でも、省略しても構いません。レコードの直後に続かないゾーンファイル内のコメントも無視されます。
ゾーンファイルの例txt
; Only tags
a.example.com.  60  IN  A   1.1.1.1 ;   cf_tags=awesome
b.example.com.  60  IN  A   1.1.1.1 ;   cf_tags=tag1,tag2:value2,tag3:"value,with,commas",tag4:"value with \"escaped\" quotation marks"

; Only a comment
c.example.com.  60  IN  A   1.1.1.1 ; just a comment without tags
d.example.com.  60  IN  A   1.1.1.1 ; this comment contains cf_tags= as text cf_tags=

; Comments and tags
e.example.com.  60  IN  A   1.1.1.1 ; simple example cf_tags=important,ticket:THIS-12345
f.example.com.  60  IN  A   1.1.1.1 ; this is the comment cf_tags=tag1:value1,tag2:value2,tag-without-value,another-tag-without-value,tag-with-quoted-value:"because of the comma, quotes are needed"

; Neither attribute
g.example.com.  60  IN  A   1.1.1.1

予約済みの cf- タグ

エクスポートとインポートでは、cf- で始まる特別なタグで、特定の Cloudflare 設定を制御できます。エクスポート時、これらのタグはゾーン上の各レコードの現在の設定を反映して自動で追加されます。

cf- タグ付きレコードの例txt
;; CNAME Records
a.cloudflaredocs.com.	1	IN	CNAME	example.com. ; cf_tags=test:1,cf-flatten-cname
b.cloudflaredocs.com.	1	IN	CNAME	example.com. ; cf_tags=cf-proxied:false
c.cloudflaredocs.com.	1	IN	CNAME	example.com. ; cf_tags=tag-without-value,cf-proxied:true

cf-proxied

エクスポート時、プロキシ済み DNS レコード には cf-proxied:true タグが付き、DNS のみのレコードには cf-proxied:false が付きます。

ゾーンファイルのインポート時、レコードをプロキシするかどうかは cf-proxied タグの値が優先されます。つまり次のとおりです。

  • タグがある場合、ダッシュボードで インポートした DNS レコードをプロキシする を選択しているか、API で proxied パラメーターを一般に true または false にしているかに関係なく、そのレコードではタグの値が使われます。
  • タグがない場合、プロキシ状態は一般的なインポートオプションにフォールバックします。つまり、ダッシュボードの インポートした DNS レコードをプロキシする の選択有無、または API の proxied パラメーターが truefalse かです。

cf-flatten-cname

有料ゾーンで レコード単位の CNAME flattening を使いたい場合は、ゾーンファイル内の flatten する各 CNAME レコードの横に cf-flatten-cname タグを付けます。エクスポート時、このタグはゾーン上のレコード設定を反映して自動で追加されます。

DNS ゾーンファイルのディレクティブ

DNS ゾーンファイルは、リソースレコード(RR)に加えてディレクティブで構成できます。ディレクティブは $ で始まり、標準化されています。$ORIGIN$INCLUDERFC 1035 で定義され、$TTLRFC 2308 で定義されています。加えて BIND は、非標準$GENERATE ディレクティブを提供します。

Cloudflare は $ORIGIN$TTL$GENERATE ディレクティブをサポートします。

$INCLUDE はサポートしていません。ゾーンファイルに $INCLUDE ディレクティブが含まれると、Cloudflare はパースエラー $INCLUDE directive not allowed を返します。

役に立ちましたか?