DNSゾーンファイルのフォーマット

ゾーン・ファイルとは、DNSゾーンを記述するテキスト・ファイルのことです。BINDファイル・フォーマットは業界推奨のゾーン・ファイル・フォーマットであり、DNSサーバー・ソフトウェアによって広く採用されています。

フォーマットはRFC 1035で定義されています。

ゾーン・ファイルの制限事項および考慮事項

サービスの制限

Oracle Cloud Infrastructure DNSサービスは、アカウント当たり1000ゾーンおよびゾーン当たり25,000レコードに制限されています。これらの値を超えるゾーンとレコード・サイズが必要な顧客は、support.oracle.comからサポートに連絡することをお薦めします。

ゾーン・ファイルの制限

ゾーン・ファイルのアップロードは、ゾーン・ファイルごとのサイズで1MBに制限されています。

この制限を回避するには、まず consoleまたは CreateZone API操作を使用してゾーンを作成します。次に、PatchDomainRecords API操作を使用して、100のバッチでゾーンにレコードを追加します。

インポートおよびエクスポートの制限

ALIASレコード・タイプを含む、またはTraffic Management (TM)を使用するゾーン・ファイルのエクスポートはサポートされていません。これは、ゾーン・ファイルがRFC標準レコードとしてエクスポートされ、ALIASレコードおよびTMが非標準レコード・タイプであるためです。GetZoneRecords API操作を使用して、非標準レコードのバックアップを取得できます。limitパラメータを使用して、それぞれ100件のレコードのバッチを作成します。

大域ゾーンのインポートおよびエクスポートは、コンソールとAPIの両方でサポートされますが、ALIASおよびTMレコードは例外です。

プライベート・ゾーンの場合、インポートはCreateZone API操作を使用してサポートされます。ゾーンのエクスポートはサポートされていません。

ゾーン・ファイルの例

これは、Oracle Cloud Infrastructure DNSからダウンロードしたゾーン・ファイルの例です。

$ORIGIN example.com.
			@                    3600 SOA   ns1.p30.oraclecloud.net. (
			zone-admin.dyndns.com.     ; address of responsible party
			2016072701                 ; serial number
			3600                       ; refresh period
			600                        ; retry period
			604800                     ; expire time
			1800                     ) ; minimum ttl
			86400 NS    ns1.p68.dns.oraclecloud.net.
			86400 NS    ns2.p68.dns.oraclecloud.net.
			86400 NS    ns3.p68.dns.oraclecloud.net.
			86400 NS    ns4.p68.dns.oraclecloud.net.
			3600 MX    10 mail.example.com.
			3600 MX    20 vpn.example.com.
			3600 MX    30 mail.example.com.
			60 A     204.13.248.106
			3600 TXT   "v=spf1 includespf.oraclecloud.net ~all"
			mail                  14400 A     204.13.248.106
			vpn                      60 A     216.146.45.240
			webapp                   60 A     216.146.46.10
			webapp                   60 A     216.146.46.11
		www                   43200 CNAME example.com.
ノート

レコード・クラス

前述のゾーン・ファイルの例では、レコード・クラスは表示されません。OCI DNSは、インターネット(IN)クラス・レコードでのみ機能しますが、効率のためにゾーン・ファイル内のクラス情報は省略します。

ゾーン・ファイルの構造

$ORIGINは、DNSノード・ツリーを示し、通常はDNSゾーン・ファイルを開始します。オリジンの下のホスト・ラベルはすべて、オリジン・ホスト名を追加して完全修飾ホスト名を作成します。終了期間で終了する完全修飾されたドメインを使用するレコード内のホスト・ラベルは、オリジン・ホスト名を追加しません。

例: $ORIGIN example.com.では、ホスト・ラベル・フィールドの後にピリオドが続いていないすべてのレコードで、example.comが後ろに付加されます。

「@」記号は、$ORIGINによって「@」記号を置換する必要があることを示す特殊なラベルです。これは通常、ゾーンのapexに使用されます。

SOAレコード-$ORIGINの後に、ゾーンのStart Of Authority (SOA)レコードが続きます。SOAレコードは、ゾーンごとに必要です。これには、ゾーンの名前、ドメインのゾーン・ファイルの管理者の電子メール・アドレス、ゾーンの現在のシリアル番号、ゾーンのプライマリ・ネームサーバー、および様々なタイミング要素(秒単位)が含まれます。

SOAレコード・フォーマット

@     IN     SOA    {primary-name-server}     {hostmaster-email} (
				{serial-number}
				{time-to-refresh}
				{time-to-retry}
				{time-to-expire}
			{minimum-TTL-for-negative-cache} )
  • プライマリ・ネーム・サーバー-AXFR転送コピーではなく、元のゾーン・ファイルを含むネームサーバー。
  • ホストマスターの電子メール-ゾーンの責任者のアドレス。「@」記号のかわりにピリオド「.」が使用されています。ピリオドを含む電子メール・アドレスでは、ピリオドをスラッシュ(/)に置換します。
  • シリアル番号-ゾーンのバージョン番号。ゾーンが更新されるたびに、シリアル番号が増加します。
  • リフレッシュ時間-プライマリ・ゾーン・ファイル内のシリアル番号の増加を確認する前にネームサーバーが待機する時間(秒単位)。セカンダリDNSネームサーバーにより検出されたシリアル番号が増加すると、レコードを同期化するために転送が必要になります。セカンダリDNSを使用するゾーンにのみ適用されます。
  • 再試行時間–試行に失敗した後、ゾーンの更新を再試行する前にネームサーバーが待機する時間(秒単位)。セカンダリDNSを使用するゾーンにのみ適用されます。
  • 期限切れ時間-ネームサーバーがセカンダリ・ゾーンのデータを無効とみなしたり、そのゾーンの問合せへの応答を停止する前に待機する時間(秒単位)。セカンダリDNSを使用するゾーンにのみ適用されます。
  • 最小TTL-Time To Live (TTL)の最小値。ネームサーバーまたはリゾルバが否定応答をキャッシュする期間(秒単位)。

ゾーン・ファイル内のレコードの構造

ゾーン・ファイルはリソース・レコードの集合であり、各レコード・エントリが次の順序で記述されています。

フォーマット: ホスト・ラベル TTL レコード・クラス レコード・タイプ レコード・データ
例: example.com. 60 IN A 104.255.228.125
  • ホスト・ラベル-ホスト・ラベルは、レコードのホスト名の定義、および$ORIGINホスト名をラベルに追加するかどうかの定義に役立ちます。期間により終了した完全修飾ホスト名は、オリジンを追加しません。
  • TTL-Time To Live (TTL)は、DNSレコードが外部のDNSサーバーまたはリゾルバによってキャッシュされる時間(秒)です。
  • レコード・クラス-DNSレコードには、IN (Internet)、CH (Chaosnet)およびHS (Hesiod)の3つのクラスがあります。Oracle Cloud Infrastructure DNSでは、INクラスのレコードのみを使用します。
  • レコード・タイプ-CNAME、AAAAまたはTXTなどのレコードのタイプ。
  • レコード・データ-DNS応答内のデータ(IPアドレス、ホスト名、その他の情報など)。各種のレコード・タイプには、異なるタイプのレコード・データが含まれます。

インポート用にGoDaddy.comからエクスポートされたゾーン・ファイルの修正

GoDaddy.comは、ゾーン・ファイルを独自のフォーマットでエクスポートします。GoDaddy.comからエクスポートされたゾーン・ファイルを正しくインポートするためにOCI DNSサービスを取得するには、ファイルを直接変更する必要があります。ゾーン・ファイルを更新するには、次の手順に従います。

  1. GoDaddy.comからゾーン・ファイルをエクスポートします。GoDaddy.comのドキュメントを参照して、これがどのように行われるかを確認してください。
  2. 任意のテキスト・エディタでファイルを開きます。
  3. 次の情報のあるSOAレコードの前に、新しい行をファイルに追加します(最後のピリオドを含む)。$ORIGIN [yourdomain].
  4. ファイルを修正したら、変更内容をファイルに保存し、ゾーン・インポート関数を使用してファイルをDNS構成にインポートします。ゾーン・インポートの詳細は、DNSゾーンの管理を参照してください。
ノート

ゾーン・ファイルに@ 600 IN A GoCentral Published Siteなどの動的Aレコードが含まれている場合、Webサイトの正しいIPアドレスを使用してこれらのレコードを修正する必要があります。この情報を取得する方法は、GoDaddy.comにお問い合せください。例:@ 600 IN A 192.0.2.255

例:

これは、GoDaddy.comからエクスポートされたゾーン・ファイルの例です。太字のコードは、Oracle Cloud Infrastructure DNSへのインポートの対象とするファイルから削除する必要があるコードです。

ヒント

行の先頭にあるセミコロンは、RFC 1035に従った、ゾーン・ファイルに対して有効なコメント構文ですが、簡単に使用したり、フォーマットのために、次に示すように、GoDaddy.comによって提供されるゾーン・ファイルの最初から大部分のコメント・セクションを削除することをお薦めします。
Domain: example.com
; Exported (y-m-d hh:mm:ss): 2019-01-10 13:05:04
;
; This file is intended for use for informational and archival
; purposes ONLY and MUST be edited before use on a production
; DNS server.
;
; In particular, you must update the SOA record with the correct
; authoritative name server and contact e-mail address information,
; and add the correct NS records for the name servers which will
; be authoritative for this domain.
;
; For further information, please consult the BIND documentation
; located on the following website:
;
; http://www.isc.org/
;
; And RFC 1035:
;
; http://www.ietf.org/rfc/rfc1035.txt
;
; Please note that we do NOT offer technical support for any use
; of this zone data, the BIND name server, or any other third-
; party DNS software.
;
; Use at your own risk.
; SOA Record
example.com.        3600     IN     SOA ns41.domaincontrol.com. dns.net. (
                    2018122702
                    28800
                    7200
                    604800
                    3600
                    ) 
; A Records
@   600  IN     A   192.0.2.249
blog    10800    IN     A   192.0.2.255
dev 1800     IN     A   192.0.2.254
dev01   1800     IN     A   192.0.2.253
dev02   1800     IN     A   192.0.2.252
dev03   1800     IN     A   192.0.2.251
dev04   1800     IN     A   192.0.2.250
; CNAME Records
abc123b432dc7785b7ef31f04f25c3e71    1800     IN     CNAME   verify.bing.com.
akamai  600  IN     CNAME   www.example.com.edgekey.net.
email   3600     IN     CNAME   email.secureserver.net.
; MX Records
@   604800   IN     MX  10  amlxe.l.google.com.
@   604800   IN     MX  10  aplxe.l.google.com.
; TXT Records
@   3600     IN     TXT "google-site-verification=3J82-80dbMyCo5Q5C1G11JszeOnZPGCSYlHcPcXg"
@   3600     IN     TXT "google-site-verification=eS_QPYLE_W4nduSrlN-cddxG7ZqOnB743xsbX918"

次に、OCI DNSにインポートする準備ができた修正済ゾーン・ファイルの例を示します。インポート前に、太字のコードをゾーン・ファイルの先頭に追加する必要があります。

$ORIGIN example.com.
example.com.	     3600     IN     SOA ns41.domaincontrol.com. dns.net. (
                    2018122702
                    28800
                    7200
                    604800
                    3600
		     )
					
; A Records
@   600  IN     A   192.0.2.249
blog    10800    IN     A   192.0.2.255
dev 1800     IN     A   192.0.2.254
dev01   1800     IN     A   192.0.2.253
dev02   1800     IN     A   192.0.2.252
dev03   1800     IN     A   192.0.2.251
dev04   1800     IN     A   192.0.2.250abc123b432dc7785b7ef31f04f25c3e71    1800     IN     CNAME   verify.bing.com.
; CNAME Records
akamai  600  IN     CNAME   www.example.edgekey.net.
email   3600     IN     CNAME   email.secureserver.net.
; MX Records
@   604800   IN     MX  10  amlxe.l.google.com.
@   604800   IN     MX  10  aplxe.l.google.com.
; TXT Records
@   3600     IN     TXT "google-site-verification=3J82-80dbMyCo5Q5C1GM8os1VYVEOnZPGCSYlHcPcXg"
@   3600     IN     TXT "google-site-verification=eS_QPYLE_W4nduSrlN-cddxG7ZqOnB7k7uIG7qrsyu8"