######################################################################
# 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.ゾーン情報確認」を全削除(意味のない作業のため)
・削除に伴い以降の項番を変更