# IP付加機能 / ダイナミックDNSクライアント

ダイナミックDNS（DDNS）は、ISPなどから割り当てられたIPアドレスをインターネット上のダイナミックDNSサーバーに動的登録するための仕組みです。この仕組みを利用すると、IPアドレスが不定でも一定したホスト名（FQDN）を利用できるため、固定IPアドレスがない環境でもサーバーを公開したり、インターネットVPNの接続を受け付けたりすることが可能になります。
Note

検証済みダイナミックDNSサービスは弊社ホームページをご確認ください。

## 基本仕様

ダイナミックDNS（DDNS）クライアントの基本的な仕様は以下の通りです。

- HTTP、HTTPSを用いるダイナミックDNSサービスに対応
- IPv4、IPv6両対応
  - 対応DNSレコード：A、AAAA
  - 更新パケット：IPv4、IPv6
- サービスごとにURL（ユーザー名、パスワード、ホスト名、アドレス、ポート番号などの埋め込みが可能）を設定し、IPまたはIPv6インターフェースに関連付けて使う
- サポートするインターフェースは PPP、Ethernet、ブリッジ（brX）
- DDNSアップデートは次のタイミングで送信される。
  - 指定したインターフェースのアドレスが変更されたとき
  - 手動で更新コマンド（ddns-update now）を実行したとき
  - 定期更新タイマーが満了したとき（デフォルトは無効）
- 定期更新はデフォルト無効。設定可能な最小更新間隔は1分
- 更新失敗時の再送間隔、再送回数は設定可能。設定した回数再送しても更新できなかった場合は、次の更新タイミングまで更新を行わない。
- 再送はデフォルト無効。
- 更新パケット送信時には結果をログに記録（再送回数を含む）
- サービスごとに設定可能な更新用URLにはユーザー名、パスワードなどの変数を含めることができる。各変数にはそれぞれ対応する設定コマンドがあり、未設定時に変数を使用するとエラーになる。
- 1回の更新で使用できるアドレスは1つ
- ワイルドカードホスト名は使用不可
- MXレコードは未サポート
- IPv6ユニークローカルアドレス（fc00:/7レンジ）は未サポート

## 設定手順

DDNSクライアント機能の設定手順を説明します。
Note

ファイアウォール機能を使用している場合は、update-urlコマンドで指定するURLに本製品がアクセスできるよう、DNS通信とHTTPまたはHTTPS通信を許可してください。

Note

URLフィルター機能を使用している場合は、update-urlコマンドで指定するURLに本製品がアクセスできるよう、該当URLを許可してください。

1. DDNSサービス固有設定を作成します。これには、ddns-update-methodコマンドを使います。名前は任意です。

       awplus(config)# ddns-update-method example

2. ダイナミックDNSサービスを利用するためのユーザー名、パスワードと登録するホスト名を指定します。これには、username、password、host-nameの各コマンドを使います。

       awplus(config-ddns-update-method)# username exampleuser
       awplus(config-ddns-update-method)# password examplepassword
       awplus(config-ddns-update-method)# host-name example.example.com

3. DDNS更新リクエストの送信先URLを設定します。これには update-urlコマンドを使います。

       awplus(config-ddns-update-method)# update-url https://<USERNAME>:<PASSWORD>@members.dyndns.org/nic/update?hostname=<HOST-NAME>&myip=<IPADDRESS>

   Note

   クエリーパラメーターの開始を表す「`?`」をCLIから入力するには、`Ctrl/V` キーを入力してから `?` を入力してください。単に `?` を入力するとCLIヘルプが表示されてしまうためご注意ください。

   URL 内の `<>` で囲まれた部分は、リクエスト時にそれぞれ下記の値に置き換えられます。
   - `<USERNAME>` = usernameコマンドで設定したユーザー名
   - `<PASSWORD>` = passwordコマンドで設定したパスワード
   - `<HOST-NAME>` = host-nameコマンドで設定したホスト名
   - `<IPADDRESS>` = ip ddns-update-methodコマンドか ipv6 ddns-update-methodコマンドでDDNSサービス固有設定と関連付けられたインターフェースのIPv4/IPv6アドレス
     Note

     複数のIPv4アドレスを持つインターフェースでは数値的に一番小さいIPv4アドレスが、複数のIPv6アドレス（ただし、リンクローカルアドレスは対象外）を持つインターフェースでは残り有効期間がもっとも長いIPv6アドレス → 最小アドレスの順に選択されます。

4. グローバルコンフィグモードに戻り、ダイナミックDNSクライアントを有効にします。これには、ddns enableコマンドを使います。

       awplus(config-ddns-update-method)# exit
       awplus(config)# ddns enable

5. 登録するIPアドレスが設定されるインターフェースを指定してインターフェースモードに入り、DDNSサービス固有設定を関連付けます。これには、ip ddns-update-methodコマンドかipv6 ddns-update-methodコマンドを使います。

       awplus(config)# interface eth1
       awplus(config-if)# ip ddns-update-method example

設定は以上です。
IPアドレスの登録・更新は次のタイミングで行われます。

- 指定したインターフェースのアドレスが変更されたとき
- 手動で更新コマンド（ddns-update now）を実行したとき
- 定期更新タイマーが満了したとき

登録・更新に失敗した場合でも、初期設定では再送を行いません。
再送を有効にするには、サービス固有設定ごとに retry-intervalコマンドで再送間隔と最大再送回数を設定してください。
たとえば、5分（300秒）ごとに最大10回再送を行うには次のようにします。

    awplus(config)# ddns-update-method example
    awplus(config-ddns-update-method)# retry-interval 300 maximum-retries 10

初期設定では定期更新を行いません（IPアドレスが変更されたときと手動で更新コマンドを実行したときだけ更新を行います）。
定期更新を行うには、サービス固有設定ごとに update-intervalコマンドで更新間隔を設定してください。
たとえば、1日（1440分）おきに定期更新を行うには次のようにします。

    awplus(config)# ddns-update-method example
    awplus(config-ddns-update-method)# update-interval 1440

登録・更新の結果（成功・失敗）は次のフローで判断します。

図中の「成功リスト」、「失敗リスト」としては以下のものが使われます。

- 成功リスト：下記の組み込み成功文字列（複数）または custom-successで指定した文字列（1個）

      "good"
      "nochg"
      "success"
      "ok"
      "Updated"
      "No change"
      "Successful"
      "ip-same"
      "no-change"
      "OK"
      "NOERROR"

- 失敗リスト：下記の組み込み失敗文字列（複数）または custom-failureで指定した文字列（1個）

      "badauth"
      "!donator"
      "notfqdn"
      "nohost"
      "numhost"
      "abuse"
      "badagent"
      "dnserr"
      "911"

登録・更新の結果をHTML形式で応答するサービスの場合は、expect-html-responseコマンドでHTMLによる応答を受け入れるように設定してください。
また、サービスの仕様に応じて、custom-successコマンド、custom-failureコマンドを設定してください

    awplus(config)# ddns-update-method example
    awplus(config-ddns-update-method)# expect-html-response
    awplus(config-ddns-update-method)# custom-success AllGood

ダイナミックDNSクライアントの動作状態はshow ddns-update-method statusコマンドで確認できます。

    awplus> show ddns-update-method status

## 付録：ダイナミックDNSサービスの利用開始手順

ここでは、ダイナミックDNSサービスを利用開始する際の手順について説明します。
Note

以下の内容は本マニュアル作成時の情報にもとづいており、各サービスのアップデート等により変更される場合があります。あらかじめご了承ください。

### Dyn（dyn.com）

米Dyn社のダイナミックDNSサービス「DynDNS.com」（http://www.dyndns.com/）を使う場合を例に、DDNSクライアント機能の設定手順を説明します。

#### アカウントの登録

アカウント登録の仕方について説明します。
Note

ここでは7-days Free Trialで登録する場合の手順について説明します。

1. ブラウザーで「DynDNS.com」（http://www.dyndns.com/）を開き、トップページの「7-Day Free Trial」をクリックします。

2. 必要な情報を入力し、「I accept the terms of Acceptable Use policy, Services Agreement, and Privacy Policy.」にチェックを入れ、「Create Account」をクリックします。

3. 「Create Account」をクリックすると、Emailに入力したメールアドレス宛てに認証コードが送られてきます。

4. 以下の画面でメールに記載されていた認証コードを入れ、「Confirm」をクリックします。
   Note

   認証コードは送られてきてから48時間以内に入力しないとアカウントが無効になります。その場合はまた最初から登録し直してください。

5. 認証コードを入れると、以下の画面が表示されるので、「Proceed to checkout」をクリックします。

6. 支払いを行うクレジットカードの情報と、氏名、住所を入力し、「Sign up for Trial」をクリックします。

   砂時計が表示されます。

   少し経つと、以下の画面が表示されます。

   これでアカウントの登録は完了です。
   Emailに入力したメールアドレス宛てに以下のようなメールが届きます。

#### ホスト名の取得

ホスト名の設定の仕方について説明します。

1. 上部メニューの「Services」＞「DynDNS Hosts」をクリックします。

2. 「DynDNS Pro and Host Services」ページが表示されるので、「Add New Hostname」をクリックします。

3. ホスト名を入力し、「Offline Hostname」をチェックし、「Activate」をクリックします。

   これでホスト名の設定は完了です。
   「DynDNS Pro and Host Services」ページにもホスト名が追加されています。

「DynDNS.com」での設定は以上です。

#### ルーターの設定

ルーターで行う設定の手順を説明します。

1. DDNSサービス固有設定を作成します。これには、ddns-update-methodコマンドを使います。名前は任意です。

       awplus(config)# ddns-update-method Dyn

2. ダイナミックDNSサービスを利用するためのユーザー名、パスワードと登録するホスト名を指定します。これには、username、password、host-nameの各コマンドを使います。
   Note

   ユーザー名、パスワード、ホスト名は以下を指定します。

   表 1
   ユーザー名 | DynDNS.comアカウントのユーザー名
   パスワード | DynDNS.comアカウントのパスワードもしくはアップデータークライアントキー
   ホスト名 | DynDNS.comで取得したホスト名

       awplus(config-ddns-update-method)# username allied-user
       awplus(config-ddns-update-method)# password XXXXXXXXXXX
       awplus(config-ddns-update-method)# host-name example.dyndns.org

3. DDNS更新リクエストの送信先URLを設定します。これには update-urlコマンドを使います。
   - Dynアカウントのパスワードを使う場合

         awplus(config-ddns-update-method)# update-url https://<USERNAME>:<PASSWORD>@members.dyndns.org/nic/update?hostname=<HOST-NAME>&myip=<IPADDRESS>

   - アップデータークライアントキーを使う場合
     Note

     アップデータークライアントキーの発行についてはアップデータークライアントキーの発行を参照してください。

         awplus(config-ddns-update-method)# update-url https://<USERNAME>:<PASSWORD>@members.dyndns.org/v3/update?hostname=<HOST-NAME>&myip=<IPADDRESS>

   Note

   クエリーパラメーターの開始を表す「`?`」をCLIから入力するには、`Ctrl/V` キーを入力してから `?` を入力してください。単に `?` を入力するとCLIヘルプが表示されてしまうためご注意ください。
   URL 内の `<>` で囲まれた部分は、リクエスト時にそれぞれ下記の値に置き換えられます。

   - `<USERNAME>` = DynDNS.comアカウントのユーザー名
   - `<PASSWORD>` = DynDNS.comアカウントのパスワード、もしくはアップデータークライアントキー
   - `<HOST-NAME>` = DynDNS.comで取得したホスト名
   - `<IPADDRESS>` = 取得したホスト名と関連付けたインターフェースのIPv4/IPv6アドレス
4. グローバルコンフィグモードに戻り、ダイナミックDNSクライアントを有効にします。これには、ddns enableコマンドを使います。

       awplus(config-ddns-update-method)# exit
       awplus(config)# ddns enable

5. 登録するIPアドレスが設定されるインターフェースを指定してインターフェースモードに入り、DDNSサービス固有設定を関連付けます。これには、ip ddns-update-methodコマンドかipv6 ddns-update-methodコマンドを使います。

       awplus(config)# interface eth1
       awplus(config-if)# ip ddns-update-method Dyn

設定は以上です。

##### アップデータークライアントキーの発行

アップデータークライアントキーは以下の手順で発行します。

1. 「Settings」をクリックし、「Account Settings」のページを開き、「Generate Key」をクリックします。

   2.「Warning」ダイアログが出てくるので、「generate」をクリックすると、アップデータークライアントキーが生成されます。

   ここで生成されたアップデータークライアントキーをルーターの設定で使用します。
   ※「show short key」をクリックすると、短いキーに変換されます。

### MyDNS（MyDNS.JP）

ダイナミックDNSサービス「MyDNS.JP」（https://www.mydns.jp/）を使う場合を例に、DDNSクライアント機能の設定手順を説明します。

#### アカウントの登録

アカウント登録の仕方について説明します。

1. ブラウザーで「MyDNS.JP」（https://www.mydns.jp/）を開き、トップページの「ログイン」をクリックします。

2. 右上のメニューの「JOIN US」をクリックします。

3. 必要な情報を入力し、「確認」をクリックします。

4. 「送信」をクリックすると、「メール1」に入力したメールアドレス宛てにMasterIDとパスワードが送られてきます。

5. 「LOG IN」をクリックし、メールに記載されていたMasterIDとパスワードを入れ、「ログイン」をクリックします。

#### ドメインおよびホスト名の取得

ドメインおよびホスト名の取得について説明します。

1. 「DOMAIN INFO」をクリックし、「Domain」および「Hostname」に必要な情報を入力し、「確認」をクリックします。

2. 登録した内容に問題ないことを確認し「送信」をクリックすると、「メール1」に入力したメールアドレス宛てに登録内容が送られてきます。

#### ホスト名用のID取得

ホスト名用のID取得の仕方について説明します。

1. 「USER INFO」をクリックし、「追加する子IDの数」を入力し、「確認」をクリックする。

2. 登録した内容に問題ないことを確認し「送信」をクリックします。

3. 子ID用のTargetIDが発行され、「メール1」に入力したメールアドレス宛てに子ID用のMasterIDとパスワードが送られてきます。

#### ホスト名への子ID割当

登録したホストに専用のTargetID（MasterIDとパスワード）を割り当てます。

1. 「DOMAIN INFO」をクリックし、入力したホスト名に子TargetIDを割り当て、「確認」をクリックします。

2. 登録した内容に問題ないことを確認し「送信」をクリックすると、「メール1」に入力したメールアドレス宛てに登録内容が送られてきます。

「MyDNS.JP」での設定は以上です。

#### ルーターの設定

ルーターで行う設定の手順を説明します。

1. DDNSサービス固有設定を作成します。これには、ddns-update-methodコマンドを使います。名前は任意です。

       awplus(config)# ddns-update-method mydns

2. ダイナミックDNSサービスを利用するためのユーザー名、パスワードと登録するホスト名を指定します。これには、username、password、host-nameの各コマンドを使います。
   Note

   ユーザー名、パスワード、ホスト名は以下を指定します。

   表 2
   ユーザー名 | MyDNS.JPからメールで送られてきた子ID用のMasterID
   パスワード | MyDNS.JPからメールで送られてきた子ID用のパスワード
   ホスト名 | ホスト名。ホスト名はデバイスが使用しているドメインを把握するための管理用として登録（DDNS更新リクエストには未使用）

       awplus(config-ddns-update-method)# username mydnsXXXXXX
       awplus(config-ddns-update-method)# password XXXXXXXXXXX
       awplus(config-ddns-update-method)# host-name test1.atkk-example.mydns.jp

3. DDNS更新リクエストの送信先URLを設定します。これには update-urlコマンドを使います。

       awplus(config-ddns-update-method)# update-url https://<USERNAME>:<PASSWORD>@ipv4.mydns.jp/login.html

   もしくは

       awplus(config-ddns-update-method)# update-url https://www.mydns.jp/directip.html?MID=<USERNAME>&PWD=<PASSWORD>&IPV4ADDR=<IPADDRESS>

   Note

   クエリーパラメーターの開始を表す「`?`」をCLIから入力するには、`Ctrl/V` キーを入力してから `?` を入力してください。単に `?` を入力するとCLIヘルプが表示されてしまうためご注意ください。
   URL 内の `<>` で囲まれた部分は、リクエスト時にそれぞれ下記の値に置き換えられます。

   - `<USERNAME>` = MyDNS.JPからメールで送られてきた子ID用のMasterID
   - `<PASSWORD>` = MyDNS.JPからメールで送られてきた子ID用のパスワード
   - `<IPADDRESS>` = ホスト名と関連付けたインターフェースのIPv4/IPv6アドレス
4. グローバルコンフィグモードに戻り、ダイナミックDNSクライアントを有効にします。これには、ddns enableコマンドを使います。

       awplus(config-ddns-update-method)# exit
       awplus(config)# ddns enable

5. 登録するIPアドレスが設定されるインターフェースを指定してインターフェースモードに入り、DDNSサービス固有設定を関連付けます。これには、ip ddns-update-methodコマンドかipv6 ddns-update-methodコマンドを使います。

       awplus(config)# interface eth1
       awplus(config-if)# ip ddns-update-method mydns

設定は以上です。