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&#58;//www.cman.jp/network/support/nslookup.htmlで以下の入力を行い確認してください。

        • ホスト名(FQDN)を指定してください: 133.162.139.51
        • オプション(任意): PTR:IPアドレス(逆引き)
        • DNSサーバを指定する場合(任意): ns0.dns.nifcloud.com
      • 確認事項

        • 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を参照してください。