レコードの作成/削除 (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:
    北米
    ホストには指定エリアからアクセスがあった場合に返す値を指定します。同じゾーン内で登録済のA/AAAAレコードが指定できます。

    ホストには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
                           
    • 例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
                               
    • 例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コマンドによる確認の確認事項を同一
注意:
逆引き可能なグローバルIPアドレスについては、IaaS 機能説明書 付録A.24 逆引きDNSの使い方 を参照してください。

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レコードの重みづけは、加重ラウンドロビン機能の重みづけとしては扱われません。
  • 補足
    • SRVレコード自体の仕様についてはRFC 2782を参照してください。