レコードの作成/削除 (POST v1.0/hostedzone/{ゾーンID}/rrset)
- レコードの作成、削除を行います。
- 登録できるレコード種別は、NS、A、AAAA、CNAME、MX、TXT、PTR、LBR(レイテンシベースルーティング用)、SRVです。
- SOAレコードは設定変更できません。
- 1つのリクエスト内で複数のレコード作成/削除操作を指定できます。それらは1つのトランザクション処理として扱われ、部分的に反映されることはありません。
- レコード作成/削除は即時反映ではないため、レスポンスには作成された更新リクエスト情報が含まれます。
これの反映ステータスがPENDINGからINSYNCに変わったタイミングが反映完了となります。
- 登録できるレコード数はゾーンごとに最大10000までです。
- 同一ゾーン内でレコード作成或いは削除APIを同時刻に実行した場合、500 Internal Errorとなりますので、リトライを実施してください。
※ゾーンIDはゾーン名と同じ値です。
Request Headers
x-fcx-region
フローティングIP払出しリージョン名。レコード種別にPTRを指定する場合必須
jp-east-1、jp-west-1、jp-west-2
x-fcx-region-token
フローティングIPを払出したプロジェクトのトークン、X-Auth-Tokenと別プロジェクトのトークンを指定することが可能。レコード種別にPTRを指定する場合必須。 なお、X-Auth-Tokenと同プロジェクトへのPTR操作時もトークン指定は必須
例)プロジェクトAのゾーンにプロジェクトBのフローティングIPをPTRレコード登録する。下記をリクエストヘッダに指定
・X-Auth-Token:<プロジェクトAのトークン>
・x-fcx-region-token: <プロジェクトBのトークン>
Request Parameter
なし
Request Elements
ChangeResourceRecordSetsRequest
リクエストのエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | None | ChangeBatch |
ChangeBatch
レコード操作トランザクション処理のエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | ChangeResourceRecordSetsRequest | Comment Changes |
Comment
レコード操作トランザクション処理に対するコメント
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ChangeBatch | None |
Changes
変更内容リストのエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | ChangeBatch | Change |
Change
変更内容のエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..n | Changes | Action ResourceRecordSet |
Action
レコード操作の種類。CREATEまたはDELETE
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | Change | None |
ResourceRecordSet
レコード情報のエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | Change | Name Type Weight XniftyDefaultHost Failover XniftyHealthCheckConfig TTL ResourceRecords XniftyComment |
Name
レコード名
入力制限:
半角英数字(a~z、0~9)、ハイフン(-)、ワイルドカード(*)、アットマーク(@) 1文字以上63文字以内
ワイルドカード(*)設定可能(A、AAAA、MX、CNAME、TXTレコードのみ。ただし、WeightまたはFailoverを設定している場合は不可)
アットマーク(@)指定可能(A,AAAA,MX,TXTレコードのみ。ただし、Failoverを設定している場合は不可)
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ResourceRecordSet | None |
Type
レコード種別
NS、A、AAAA、CNAME、MX、TXT、PTR、LBR、SRV
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ResourceRecordSet | None |
Weight
重み付け値。0~100
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ResourceRecordSet | None |
XniftyDefaultHost
デフォルトホスト情報
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ResourceRecordSet | None |
Failover
フェイルオーバー種別。PRIMARYまたはSECONDARY
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ResourceRecordSet | None |
XniftyHealthCheckConfig
ヘルスチェック情報のエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 0..1 | ResourceRecordSet | IPAddress Port Protocol ResourcePath FullyQualifiedDomainName |
IPAddress
ヘルスチェック先IPアドレス
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | XniftyHealthCheckConfig | None |
Port
ヘルスチェック先ポート
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | XniftyHealthCheckConfig | None |
Protocol
ヘルスチェック種別。HTTP、HTTPS、TCP
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | XniftyHealthCheckConfig | None |
ResourcePath
ヘルスチェック先パス
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | XniftyHealthCheckConfig | None |
FullyQualifiedDomainName
ヘルスチェック先ドメイン名
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | XniftyHealthCheckConfig | None |
TTL
TTL値。60~86400秒。未設定時はゾーンのTTLが使用される。
レコード種別がLBRの場合は設定不要
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ResourceRecordSet | None |
ResourceRecords
レコードの応答情報の親ノード
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | ResourceRecordSet | ResourceRecord |
ResourceRecord
レコードの応答情報
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..n | ResourceRecords | Value |
Value
レコード応答値。CNAME、MX、NSレコードはマルチバイトドメインの設定が可能。
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ResourceRecord | None |
XniftyComment
コメント。全角255文字以内
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 0..1 | ResourceRecordSet | None |
HTTP ステータス
ステータス
リクエストのステータスを返却する。
- 200:
- 正常終了
- 400:
- 入力パラメータ不正
- 404:
- ゾーンIDで指定したゾーンが存在しない。
Data Type | Cardinality |
---|---|
Int | 1..1 |
Response Elements(正常終了時)
ChangeResourceRecordSetsResponse
レスポンスのエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | None | ChangeInfo |
ChangeInfo
更新リクエスト情報のエンベロープ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
- | 1..1 | ChangeResourceRecordSetsResponse | Id
Status SubmittedAt |
Id
更新リクエストID
GetChange APIで更新リクエスト情報の取得に使用します
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ChangeInfo | None |
Status
更新リクエストの現在の状態
PENDINGまたはINSYNC
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ChangeInfo | None |
SubmittedAt
更新リクエスト発行日時。形式:YYYY-MM-DDThh:mm:ss.SSSZ
Data Type | Cardinality | Parent Element | Child Element(s) |
---|---|---|---|
xsd:string | 1..1 | ChangeInfo | None |
Example of Request
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>
Example of Response
HTTP/1.1 200 OK
Date: Fri, 06 Jun 2014 11:00:38 GMT
Content-Length: …
Content-Type: application/xml
x-fcx-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>
LBRの設定
- レイテイシーベースルーティング(LBR)の設定
LBRの設定はTypeに"LBR"タイプを指定します。
Valueタグにはエリアとホストを半角空白で区切って指定します。
エリアには最寄りのエリアを指定します。<Value>エリア ホスト<Value>
- 10:
- 日本
- 20:
- アジア
- 30:
- 北米
ホストにはFQDNではなく、サブドメイン表記で記載してください。
(LBR設定サンプルには、www.example.comをデフォルトゾーン&日本で登録し、www2.example.comをアジアで登録する例を記載しています。)
XniftyDefaultHostタグに指定エリア以外のアクセスがあった場合に返す値を指定します。
- LBRの設定サンプル(ResourceRecordSet)
<Changes> <Change> <Action>CREATE</Action> <ResourceRecordSet> <Name>server.example.com</Name> <Type>LBR</Type> <XniftyDefaultHost>www</XniftyDefaultHost> <ResourceRecords> <ResourceRecord> <Value>10 www,20 www2</Value> </ResourceRecord> </ResourceRecords> </ResourceRecordSet> </Change> </Changes>
重みづけラウンドロビンの設定
- 重みづけラウンドロビンの設定
重みづけは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はK5 DNSサービスです。
- 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 @cdns0.nifty.ad.jp
- 確認事項
- CREATEの場合:ANSWER SECTIONに正引きレコード名が表示されること
;; ANSWER SECTION: 51.139.162.133.in-addr.arpa. 60 IN PTR <正引きレコード名>
- DELETEの場合:CREATEの場合と異なり、ANSWER SECTIONに正引きレコード名が表示されないこと
;; ANSWER SECTION: 139.162.133.in-addr.arpa. 3600 IN SOA cdns0.nifty.ad.jp. hostmaster.nifty.ad.jp. 1490603408 10800 3600 604800 3600
- CREATEの場合:ANSWER SECTIONに正引きレコード名が表示されること
- 前提条件:インターネットにUDP53番ポートでアクセスできる環境で実施してください
。
- 例2) nslookupコマンドによる確認の場合(133.162.139.51はPTRレコード名のダミー値)
- 前提条件:インターネットにUDP53番ポートでアクセスできる環境で実施してください
。
nslookup -type=PTR 133.162.139.51 cdns0.nifty.ad.jp
- 確認事項
- CREATEの場合:nameに正引きレコード名が表示されること
51.139.162.133.in-addr.arpa name = <正引きレコード名>
- DELETEの場合:以下のメッセージが出力されること
** server can't find 51.139.162.133.in-addr.arpa.: NXDOMAIN
- CREATEの場合:nameに正引きレコード名が表示されること
- 前提条件:インターネットにUDP53番ポートでアクセスできる環境で実施してください
。
- 例3) インターネット上サイトでの確認の場合(133.162.139.51はPTRレコード名のダミー値)
- https://www.cman.jp/network/support/nslookup.htmlで以下の入力を行い確認してください。
- ホスト名(FQDN)を指定してください: 133.162.139.51
- オプション(任意): PTR:IPアドレス(逆引き)
- DNSサーバを指定する場合(任意): cdns0.nifty.ad.jp
- 確認事項
- nslookup実行の場合: nslookupコマンドによる確認の確認事項と同一
- dig実行の場合: digコマンドによる確認の確認事項を同一
- https://www.cman.jp/network/support/nslookup.htmlで以下の入力を行い確認してください。
- 例1) digコマンドによる確認の場合(133.162.139.51はPTRレコード名のダミー値)
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を参照してください。