Create/delete record#
レコードを作成、削除します。
- 登録できるレコード種別は、NS、A、AAAA、CNAME、MX、TXT、PTR、SRVです。
- SOAレコードは設定変更できません。
- 1つのリクエスト内で複数のレコード作成/削除操作を指定できます。それらは1つのトランザクション処理として扱われ、部分的に反映されることはありません。
-
レコード作成/削除は即時反映ではないため、レスポンスには作成された更新リクエスト情報が含まれます。
反映ステータスが PENDINGから INSYNCに変わったタイミングで反映完了です。 -
登録できるレコード数はゾーンごとに最大10000までです。
- 削除時は、Name、Type、Valueが一致するデータが削除されます。
- 同一ゾーン内でレコード作成または削除APIを同時刻に実行した場合、500 Internal Errorが発生するためリトライしてください。
※ゾーンIDはゾーン名と同じ値です。
APIエンドポイント#
リージョン | APIエンドポイント |
---|---|
西日本リージョン3の場合 | https://dns.gls.cloud.global.fujitsu.com |
東日本リージョン3の場合 | https://dns.gls.cloud.global.fujitsu.com |
HTTPメソッドとURI#
POST
/v1.0/hostedzone/{ゾーンID}/rrset
HTTPステータスコード#
正常時:200
エラー時:400, 404
リクエストパラメータの説明#
名前 | In | Type | デフォルト値 /必須指定 |
Description |
---|---|---|---|---|
x-fcx-region | header | string | Description参照 | フローティングIP払出しリージョン名 レコード種別にPTRを指定する場合は必須です。 jp-east-1、jp-east-2、jp-east-3、jp-west-1、jp-west-2、jp-west-3 |
x-fcx-region-token | header | string | Description参照 | フローティングIPを払出したプロジェクトのトークン、X-Auth-Token(jp-east-1のトークン)と別プロジェクトのトークンを指定することが可能です。 レコード種別にPTRを指定する場合は必須です。 なお、X-Auth-Tokenと同プロジェクトへのPTR操作時もトークン指定は必須です。 例:プロジェクトAのゾーンにプロジェクトBのフローティングIPをPTRレコード登録する場合 下記をリクエストヘッダーに指定します。 - X-Auth-Token:<プロジェクトAのトークン> - x-fcx-region-token: <プロジェクトBのトークン> |
x-fcx-region-project-id | header | string | Description参照 | フローティングIPを払出したプロジェクトID レコード種別にPTRを指定する場合は必須です。 |
ChangeResourceRecordSetsRequest | body | - | 必須 | リクエストのエンベロープ |
ChangeBatch | body | - | 必須 | レコード操作トランザクション処理のエンベロープ |
Comment | body | string | 任意 | レコード操作トランザクション処理に対するコメント |
Changes | body | - | 必須 | 変更内容リストのエンベロープ |
Change | body | - | 必須 | 変更内容のエンベロープ |
Action | body | string | 必須 | レコード操作の種類 CREATEまたはDELETE |
ResourceRecordSet | body | - | 必須 | レコード情報のエンベロープ |
Name | body | string | 必須 | レコード名 入力制限:1文字以上63文字以内 - 半角英数字(a~z、0~9) - ハイフン(-) - ワイルドカード(*) - アットマーク(@) ワイルドカード(*)設定可能(A、AAAA、MX、CNAME、TXTレコードのみ。ただし、WeightまたはFailoverを設定している場合は不可) アットマーク(@)指定可能(A、AAAA、MX、TXTレコードのみ。ただし、Failoverを設定している場合は不可) |
Type | body | string | 必須 | レコード種別 NS、A、AAAA、CNAME、MX、TXT、PTR、SRV |
SetIdentifier | body | string | 任意 | レコード識別情報 |
Weight | body | string | 任意 | 重み付け値 0~100 |
Failover | body | string | 任意 | フェイルオーバー種別 PRIMARYまたはSECONDARY |
XniftyHealthCheckConfig | body | - | 任意 | ヘルスチェック情報のエンベロープ |
IPAddress | body | string | 必須 | ヘルスチェック先IPアドレス |
Port | body | string | 必須 | ヘルスチェック先ポート |
Protocol | body | string | 必須 | ヘルスチェック種別 HTTP、HTTPS、TCP |
ResourcePath | body | string | 任意 | ヘルスチェック先パス |
FullyQualifiedDomainName | body | string | 任意 | ヘルスチェック先ドメイン名 |
TTL | body | string | 任意 | TTL値 60~86400秒 未設定時はゾーンのTTLが使用されます。 |
ResourceRecords | body | - | 必須 | レコードの応答情報の親ノード レコードの応答情報一覧のエンベロープ |
ResourceRecord | body | - | 必須 | レコードの応答情報 レコードの応答情報のエンベロープ |
Value | body | string | 必須 | レコード応答値 CNAME、MX、NSレコードはマルチバイトドメインの設定が可能です。 |
XniftyComment | body | string | 任意 | コメント 全角255文字以内で指定します。 |
レスポンスボディ(正常系)の説明#
名前 | Type | Description |
---|---|---|
ChangeResourceRecordSetsResponse | - | レスポンスのエンベロープ |
ChangeInfo | - | 更新リクエスト情報のエンベロープ |
Id | string | 更新リクエストID GetChange APIで更新リクエスト情報の取得に使用します。 |
Status | string | 更新リクエストの現在の状態 PENDINGまたはINSYNC |
SubmittedAt | string | 更新リクエスト発行日時 形式:YYYY-MM-DDThh:mm:ss.SSSZ |
リクエスト例#
POST /hostedzone/example.com/rrset HTTP/1.1 Date: Fri, 06 Jun 2014 11:00:37 GMT Content-Length: … Host: dns.gls.cloud.global.fujitsu.com Accept: application/xml X-Auth-Token: MIIFvgY… <?xml version="1.0" encoding="UTF-8"?> < ChangeResourceRecordSetsRequest xmlns="http://docs.cloudcommunity.global.fujitsu.com/dns/api/v1.0/"> <ChangeBatch> <Changes> <Change> <Action>CREATE</Action> <ResourceRecordSet> <Name>server.example.com</Name> <Type>A</Type> <TTL>60</TTL> <ResourceRecords> <ResourceRecord> <Value>222.158.xxx.yyy</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> </Change> </Changes> </ChangeBatch> </ChangeResourceRecordSetsRequest>
レスポンス例#
HTTP/1.1 200 OK Date: Fri, 06 Jun 2014 11:00:38 GMT Content-Length: … Content-Type: application/xml x-fj-request-id: d96bd874-9bf2-11e1-8ee7-c98a0037a2b6 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> < ChangeResourceRecordSetsResponse xmlns="http://docs.cloudcommunity.global.fujitsu.com/dns/api/v1.0/"> <ChangeInfo> <Id>7a782d43939d7ff538ff1ee19dbdd5a0</Id> <Status>INSYNC</Status> <SubmittedAt>2014-06-06T11:00:38.178Z</SubmittedAt> </ChangeInfo> </ChangeResourceRecordSetsResponse>
フェイルオーバーの設定#
- フェイルオーバーの設定
フェイルオーバーの設定はFailoverタグで指定します。A、AAAAレコードのみ利用可能です。- PRIMARY:1レコードのみ設定できます。
- SECONDARY:複数の設定が可能です。
-
ヘルスチェック
フェイルオーバーの設定ではヘルスチェックを登録します。
設定はXniftyHealthCheckConfigタグで設定します。
ヘルスチェックのルール- レコード毎に指定されている個別のヘルスチェックを実行します。
- ヘルスチェックは5分間隔で行われます。
- ヘルスチェック時には、対象サーバに対してインターネット経由でパケットを送信することによりチェックします。
- フェイルオーバーの切り替え対象は、同ホストかつ同レコードタイプを1グループとして実行します。
- 同じグループのレコード名は全て同じ名前にしてください。
- 対象のIPアドレスはグローバルIPアドレスを設定してください。
- 対象のIPアドレスにパケットが届くように、ネットワークやOS(ファイアーウォールサービス、セキュリティグループルール、およびOSのファイアーウォールなど)を設定しておいてください。
- ResourcePathタグを設定した場合は、その値がヘルスチェック先パスとなります。設定しない場合は、”/”がヘルスチェック先パスとなります。
- FullyQualifiedDomainNameタグを設定した場合は、その値がHostヘッダの値となります。
- セカンダリが複数設定されている場合は、先に登録したレコードが優先されます。
- ヘルスチェックは通常、プライマリーに対してのみ行われます。
- プライマリーに対するヘルスチェックが異常であった場合、プライマリーとセカンダリの両方にヘルスチェックが行われるようになります。
- プライマリーとセカンダリのサーバ状態および振り分け先の関係は、IaaS機能説明書(ネットワーク - DNSサービス - フェイルオーバ機能)を参照してください。
<XniftyHealthCheckConfig> <IPAddress>対象のIPアドレス</IPAddress> <Port>対象のポート番号</Port> <Protocol>対象のプロトコル </Protocol> <ResourcePath>対象となるURLのパス部分</ResourcePath> <FullyQualifiedDomainName>HTTPヘッダのホスト情報</FullyQualifiedDomainName> </XniftyHealthCheckConfig>
📒注: フェイルオーバーを使用するときは、レコードのTTLを60秒にすることを推奨します。 -
フェイルオーバーの設定サンプル(ResourceRecordSet)
<ResourceRecordSet> <Name>server.example.com</Name> <Type>A</Type> <Failover>PRIMARY</Failover> <XniftyHealthCheckConfig> <IPAddress>222.158.xxx.yyy</IPAddress> <Port>80</Port> <Protocol>HTTP</Protocol> </XniftyHealthCheckConfig> <ResourceRecords> <ResourceRecord> <Value>222.158.xxx.yyy</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> <ResourceRecordSet> <Name>server.example.com</Name> <Type>A</Type> <Failover>SECONDARY</Failover> <XniftyHealthCheckConfig> <IPAddress>222.158.xxx.zzz</IPAddress> <Port>80</Port> <Protocol>HTTP</Protocol> </XniftyHealthCheckConfig> <ResourceRecords> <ResourceRecord> <Value>222.158.xxx.zzz</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet>
重みづけラウンドロビンの設定#
-
重みづけラウンドロビンの設定
重みづけはWeightタグで重みづけ値を指定します。A、AAAAレコードのみ利用可能です。
指定された重みづけ値に応じて、レコードのヒット率が変動します。 -
注意事項
- 重みづけの設定値で、100となる重みづけのレコードが1つも無い場合は、対象レコードが名前解決時に返却されない場合があります。
- 重みづけの設定値を、0に設定すると、ヒット率0となるので値を返しません。
- 通常のレコード登録で、同ホスト/同レコードタイプを登録した場合は、重みづけ値が100として扱われます。
-
重みづけラウンドロビンの設定サンプル(ResourceRecordSet)
<ResourceRecordSet> <Name>server.example.com</Name> <Type>A</Type> <Weight>100</Weight> <TTL>60</TTL> <ResourceRecords> <ResourceRecord> <Value>222.158.xxx.yyy</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> <ResourceRecordSet> <Name>server.example.com</Name> <Type>A</Type> <Weight>100</Weight> <TTL>60</TTL> <ResourceRecords> <ResourceRecord> <Value>222.158.xxx.zzz</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet>
MXレコードの設定#
-
MXレコードの設定
ResourceRecordのValueタグにはプライオリティとホストを半角空白区切りで指定します。<Value>プライオリティ ホスト</Value>
-
MXレコードの設定サンプル
プライオリティ:
10
ホスト:
mail.example.com<ResourceRecordSet> <Name>@</Name> <Type>MX</Type> <TTL>60</TTL> <ResourceRecords> <ResourceRecord> <Value>10 mail.example.com</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet>
PTRレコードの設定#
-
PTRレコードの設定
PTRレコードの設定は、Nameに登録するIPアドレス、Valueに登録するFQDN名を指定します。
事前に正引き用のAレコードの登録が必要です。
正引き用のAレコードを登録するDNSはForOSS DNSサービスです。 -
PTRレコードを設定したグローバルIPアドレス解放時の注意点
PTRレコードを設定したグローバルIPアドレスを解放する場合、必ず事前にPTRレコードを削除してください。
PTRレコードを削除せずにグローバルIPアドレスを解放した場合、PTRレコードが事前連絡なく強制的に削除される可能性があります。 -
PTRレコードの操作件数
PTRレコードは一度のAPI実行で1件のみ操作可能です。
2件以上の操作を行った場合、400 InvalidInputとなりますので件数を減らし再実行してください。 -
処理時間
PTRレコードの操作は他のレコードよりもAPI実行完了まで時間がかかります。📒注: PTRレコードの登録、削除は、Aレコードなどの実行に比べて時間がかかります。 -
同時実行について
複数のPTRレコード操作時、先発操作が完了するまで、後発操作に待ち合わせが発生します。
待ち合わせが一定時間以上経過すると後発のPTRレコード操作が503 Service Unavailableとなる可能性があります。
その際はリトライを実施してください。 -
DeleteHostedZoneとの同時実行について
PTRレコード操作とゾーンの削除が同時に実行されないように後発の操作で待ち合わせが発生します。
待ち合わせが一定時間以上経過すると後発のPTRレコード操作が503 Service Unavailableとなる可能性があります。
その際はリトライを実施してください。 -
PTRレコードの設定サンプル
<Changes> <Change> <Action>CREATE</Action> <ResourceRecordSet> <Name>123.56.xxx.yyy</Name> <Type>PTR</Type> <ResourceRecords> <ResourceRecord> <Value>host.example.com</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> </Change> </Changes>
PTRレコード操作後の確認#
-
PTRレコード操作後、逆引き解決を実施し、操作が正しく反映されたか確認してください
ネームサーバに逆引き操作が正しく反映されているかを確認してください。
以下に確認方法の例を記載します。
なお、確認例のうち1パターンのみ実施で問題ありません。-
例1) digコマンドによる確認の場合(133.162.139.51はPTRレコード名のダミー値)
-
前提条件:インターネットにUDP53番ポートでアクセスできる環境で実施してください 。
dig -x 133.162.139.51 @ns0.dns.nifcloud.com
-
確認事項
-
CREATEの場合:ANSWER SECTIONに正引きレコード名が表示されること
;; ANSWER SECTION: 51.139.162.133.in-addr.arpa. 60 IN PTR <正引きレコード名>
-
DELETEの場合:CREATEの場合と異なり、ANSWER SECTIONに正引きレコード名が表示されないこと
;; ANSWER SECTION:\(表示なし\) ;; AUTHORITY SECTION: 139.162.133.in-addr.arpa. 3600 IN SOA ns0.dns.nifcloud.com. hostmaster.dns.nifcloud.com. 1538455002 10800 3600 604800 3600
-
-
-
例2) nslookupコマンドによる確認の場合(133.162.139.51はPTRレコード名のダミー値)
-
前提条件:インターネットにUDP53番ポートでアクセスできる環境で実施してください 。
nslookup -type=PTR 133.162.139.51 ns0.dns.nifcloud.com
-
確認事項
-
CREATEの場合:nameに正引きレコード名が表示されること
51.139.162.133.in-addr.arpa name = <正引きレコード名>
-
DELETEの場合:以下のメッセージが出力されること
** server can't find 51.139.162.133.in-addr.arpa.: NXDOMAIN
-
-
-
例3) インターネット上サイトでの確認の場合(133.162.139.51はPTRレコード名のダミー値)
-
https://www.cman.jp/network/support/nslookup.html
で以下の入力を行い確認してください。- ホスト名(FQDN)を指定してください: 133.162.139.51
- オプション(任意): PTR:IPアドレス(逆引き)
- DNSサーバを指定する場合(任意): ns0.dns.nifcloud.com
-
確認事項
- nslookup実行の場合: nslookupコマンドによる確認の確認事項と同一
- dig実行の場合: digコマンドによる確認の確認事項を同一
-
-
SRVレコードの設定#
-
SRVレコードの設定
レコード名(Nameタグの値)には”_<サービス名>._<プロトコル名>”の形式でサービス名とプロトコル名を指定します(例:_ftp._tcp)。
また、値(Valueタグの値)には、SRVレコードのプライオリティ、重みづけ、ポート番号、ターゲットをこの順番に半角スペース区切りで指定します。<Value>プライオリティ 重みづけ ポート番号 ターゲット</Value>
-
SRVレコードの設定サンプル
プライオリティ:
1
重みづけ:
2
ポート番号:
21
ターゲット:
ftp-server-01.example.com<ResourceRecordSet> <Name>_ftp._tcp</Name> <Type>SRV</Type> <TTL>3600</TTL> <ResourceRecords> <ResourceRecord> <Value>1 2 21 ftp-server-01.example.com</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet>
-
SRVレコードのドメイン名について
- SRVレコードのドメイン名にはAPIリクエスト発行時にURLに指定したゾーンIDが登録されます(例:example.com)。
- 注意事項
- ターゲット値は、"<同一ゾーンに存在するAレコードのレコード名>.<ドメイン名>"の形式で指定してください。
例えば、Aレコードのレコード名が"ftp-server-01"、ドメイン名が"example.com"の場合
"ftp-server-01.example.com"と設定してください。 - ターゲット値はマルチバイトドメインで指定できます。
- SRVレコードの重みづけは、加重ラウンドロビン機能の重みづけとしては扱われません。
- ターゲット値は、"<同一ゾーンに存在するAレコードのレコード名>.<ドメイン名>"の形式で指定してください。
- 補足
- SRVレコード自体の仕様についてはRFC 2782を参照してください。