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

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

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

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

サービスの制限

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

ゾーン・ファイルの制限

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

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

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

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

グローバル・ゾーンのインポートとエクスポートは、ALIASおよびTMレコードを除き、コンソールとAPIの両方でサポートされます。

プライベート・ゾーンの場合、インポートは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転送コピーではなく、元のゾーン・ファイルを含むネームサーバー。
  • ホストマスターの電子メール-ゾーンの責任者のアドレス。「@」記号のかわりに期間「.」が使用されています。期間を含むEメール・アドレスでは、期間をスラッシュ(/)に置換します。
  • シリアル番号-ゾーンのバージョン番号。シリアル番号は、ゾーンに対する次の更新ごとに増加します。
  • リフレッシュ時間- プライマリ・ゾーン・ファイル内のシリアル番号の増加を確認する前にネームサーバーが待機する時間(秒単位)。シリアル番号がセカンダリ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レコードの3つのクラス(IN (Internet)、CH (Chaosnet)およびHS (Hesiod)が存在します。Oracle Cloud Infrastructure DNSでは、INクラスのレコードのみを使用します。
  • レコード・タイプ-CNAME、AAAAまたはTXTなどのレコードのタイプ。
  • レコード・データ-DNS応答内のデータ(IPアドレス、ホスト名、その他の情報など)。各種のレコード・タイプには、異なるタイプのレコード・データが含まれます。

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

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

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

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

例:

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

ヒント

行の先頭にセミコロンを付けることは、RFC 1035ごとのゾーン・ファイルに対して有効なコメント構文ですが、使いやすさと書式設定を容易にするために、次に示すように、GoDaddyによって提供されるゾーン・ファイルの最初から大部分のコメント・セクションを削除することをお薦めします。
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"