###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2021 # # API実行サンプル名: # 05-008_DNSゾーン作成 # # 内容: # 管理しているドメインにゾーンを作成する手順です。 # # 版数:v1.2 # 更新日:2021/03/22 ###################################################################### 手順: ─────────────────────────────────── 項番1.認証用レコード取得 項番2.【レジストラ】認証用レコード登録 項番3.ゾーン作成 項番4.ゾーン情報確認 項番5.【レジストラ】NameServer情報更新 項番6.レコード作成 項番7.レコード確認 参考1.レコード削除 参考1-1.レコード削除 参考1-2.レコード削除確認 参考2.ゾーン削除 参考2-1.ゾーン削除 参考2-2.ゾーン削除確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ドメイン ─────────────────────────────────── 注意事項: ・「東日本リージョン1(jp-east-1)」にプロジェクトを作成し、その プロジェクトにDNSサービスを利用する(ゾーン情報、レコードの作成・ 削除等)ユーザーを登録した上で作業を実施してください。 ・登録可能なドメインについてはIaaS機能説明書「ゾーン登録可能な ドメイン」を参照してください。 ・項目名に【レジストラ】の記載のある項目は、レジストラの作業と なります。利用しているレジストラの操作方法に従い作業を行って ください。 項番1.認証用レコード取得 ゾーン作成を実施し、ドメインの所有権を確認するための認証用レコードを 取得します。 注意事項: ・最初に本APIを実行すると「Unauthorized」エラーが発生します。 レスポンスの「Message」に認証用レコードが表示されます。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" -H "Accept: application/xml" -d ''$ZONE_NAME''| xmllint --format --encode utf-8 - レスポンス例: ====================================================================== Sender Unauthorized name_server:8d16f10a03abfdb50e457da070622yj4.ns-verify.dns.nifcloud.com,txt:nifty-dns-verify=8d16f10a03abfdb50e457da070622yj4 37a3ff17-fb75-455e-b326-8f94d1c53uhy ====================================================================== 項番2.【レジストラ】認証用レコード登録 ドメインの所有権を確認するため、利用しているレジストラに項番1で 取得した認証用レコードを登録します。 注意事項: ・新規に取得したドメインの場合は「name_server」を登録してください。 ・既存ドメインまたはサブドメインの場合は「txt」を登録してください。 ・登録方法については利用しているレジストラの操作方法に従って ください。 項番1で取得した認証用レコード例: ====================================================================== ・name_server:8d16f10a03abfdb50e457da070622yj4.ns-verify.dns.nifcloud.com ・txt:nifty-dns-verify=8d16f10a03abfdb50e457da070622yj4 ・新規に取得したドメインの場合 認証用NSレコードの登録例: ====================================================================== $ORIGIN example.com. @ IN NS 8d16f10a03abfdb50e457da070622yj4.ns-verify.dns.nifcloud.com ・既存ドメインまたはサブドメインの場合 認証用TXTレコードの登録例: ====================================================================== $ORIGIN example.com. @ IN TXT "nifty-dns-verify=8d16f10a03abfdb50e457da070622yj4" 項番3.ゾーン作成 DNSゾーン作成を行います。 注意事項: ・レジストラに登録した認証用レコードが反映されるまでに時間が必要な 場合があります。反映されていない場合は項番1と同じレスポンスが 返ります。その場合は、時間を空けてから再度下記のゾーン作成APIを 実行してください。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" -H "Accept: application/xml" -d ''$ZONE_NAME'' | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== example.com example.com example.com 0 c6ad585ee36f40778540d27fbda1u59k INSYNC 2017-09-15T07:00:40.762Z ns0.dns.nifcloud.com ns1.dns.nifcloud.com ====================================================================== 項番4.ゾーン情報確認 作成したゾーンの情報を確認します。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$ZONE_NAME -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== example.com example.com example.com 0 ns0.dns.nifcloud.com ns1.dns.nifcloud.com ====================================================================== 項番5.【レジストラ】NameServer情報更新 項番2でレジストラに登録した認証用レコードの情報を削除し、項番4で 確認したNameServerの情報をレジストラに登録します。 注意事項: ・新規に取得したドメインの場合は「name_server」を削除してください。 ・既存ドメインまたはサブドメインの場合は「txt」を削除してください。 ・削除方法については利用しているレジストラの操作方法に従って ください。 項番4で取得したNameServer例: ====================================================================== ・NameServer:ns0.dns.nifcloud.com ・NameServer:ns1.dns.nifcloud.com NSレコードの登録例: ====================================================================== $ ORIGIN example.com. @ IN NS ns0.dns.nifcloud.com. IN NS ns1.dns.nifcloud.com. 項番6.レコード作成 作成したゾーンにレコードを作成します。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com # RECORD_NAME=<レコード名> RECORD_NAME=test-server-a-record01 # RECORD_TYPE=<レコード種別(NS、A、AAAA、CNAME、MX、TXT、PTR、LBR # を指定)> RECORD_TYPE=A # RESOURCE_RECORD=<レコードの応答値> RESOURCE_RECORD=192.168.10.20 API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$ZONE_NAME/rrset -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" -H "Accept: application/xml" -d 'CREATE'$RECORD_NAME''$RECORD_TYPE'60'$RESOURCE_RECORD'' | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== 6acc877f07109fe3a73f5d53feb864yh INSYNC 2017-09-15T09:48:16.303Z ====================================================================== 項番7.レコード確認 レコードが作成できたことを確認します。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$ZONE_NAME/rrset -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== test-server-a-record01.example.com A 42kySefs 60 192.168.10.20 false 100 ====================================================================== 参考1.レコード削除 作成したレコードを削除し、削除の確認を行います。 参考1-1.レコード削除 作成したレコードを削除します。 環境定義コマンド例: ====================================================================== # TMP_ZONE_NAME=<ドメイン名(FQDN形式で指定)> TMP_ZONE_NAME=example.com # TMP_RECORD_NAME=<レコード名> TMP_RECORD_NAME=test-server-a-record01 # RECORD_TYPE=<レコード種別(NS、A、AAAA、CNAME、MX、TXT、PTR、LBR # を指定)> RECORD_TYPE=A # RESOURCE_RECORD=<レコードの応答値> RESOURCE_RECORD=192.168.10.20 API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$TMP_ZONE_NAME/rrset -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" -H "Accept: application/xml" -d 'DELETE'$TMP_RECORD_NAME''$RECORD_TYPE''$RESOURCE_RECORD'' | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== f391a1d0f97b5a7f85383b47bd8a784h INSYNC 2017-09-20T07:00:00.743Z ====================================================================== 参考1-2.レコード削除確認 レコードが削除されたことを確認します。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$ZONE_NAME/rrset -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== false 100 ====================================================================== 参考2.ゾーン削除 作成したゾーンを削除し、削除の確認を行います。 参考2-1.ゾーン削除 作成したゾーンを削除します。 環境定義コマンド例: ====================================================================== # TMP_ZONE_NAME=<ドメイン名(FQDN形式で指定)> TMP_ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$TMP_ZONE_NAME -X DELETE -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" -H "Accept: application/xml" | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== a5e1ae6693e8429f6d2afc98bbe7e678 INSYNC 2017-09-20T07:14:00.526Z ====================================================================== 参考2-2.ゾーン削除確認 ゾーンが削除されたことを確認します。 環境定義コマンド例: ====================================================================== # ZONE_NAME=<ドメイン名(FQDN形式で指定)> ZONE_NAME=example.com API実行コマンド例: ====================================================================== curl -Ss $DNS/v1.0/hostedzone/$ZONE_NAME -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/xml" | xmllint --format --encode utf-8 - レスポンス例: ====================================================================== Sender NoSuchHostedZone No hosted zone found cfb6c834-58da-4ccd-ad62-5ecd91ce37cb ====================================================================== 以上 変更履歴: ─────────────────────────────────── v1.2版: ・「項番6.ゾーン情報確認」を全削除(意味のない作業のため) ・削除に伴い以降の項番を変更