本ウエブサイトをご利用の際は、JavaScriptを有効にする必要があります。
本サービスのダイナミックDNS機能について
ダイナミックDNS機能について
IPアドレスが固定ではなく、動的のホストにドメイン名を割り当てる場合、IPアドレスが変わるたびにDNSレコードの更新が必要となります。 ダイナミックDNS機能を利用することで、その更新を容易にすることができます。 この機能はddclient等のツールや一部のルータ等でも利用可能です。
本サービスのダイナミックDNS機能は RFC 2136 (Dynamic Updates in the Domain Name System) で規定されているものとは異なり、DNSレコードの更新はウエブを利用したものとなります。
利用方法
ダイナミックDNSクライアントの用意
DynDNS.com に対応したツール類や機器が利用可能な場合があります。次のような環境で利用が可能です(リンク先はそれぞれの設定例です)。
ユーザ名とパスワードについて
ダイナミックDNS機能の利用には、対象のドメイン名にユーザ名とパスワードの設定が必要となります。
OpenIDでログインしてドメイン名を追加後、追加済みのドメイン名にパスワードの設定が可能となります。「ドメイン名管理」から「パスワード」の「設定」ボタンを押すと、ダイナミックDNS機能の利用に必要なユーザ名とパスワードが発行されます。
仕様について
API
ダイナミックDNSのAPIは DynDNS.com のものを参考にしています。これにより、DynDNS.com に対応した一部の機器でも本サービスの利用が可能となっています。
DNSレコードのタイプについて
APIではAレコードとAAAAレコードのみの対応となります。その他のレコードはOpenIDでログイン後の「ドメイン名管理」でのみ設定が可能です。
サーバへのリクエスト方法
GET リクエストとなり、その際に対象のドメイン名に設定したユーザ名とパスワードをBasic認証で渡します。
IPアドレスを指定して example.kendomo.jp を更新する場合、URIは以下ようになります。
https://domain.kendomo.net/nic/update?hostname=example.kendomo.jp&myip=IPアドレス
Basic認証のユーザ名とパスワードを含めた形式のURIは以下のようになります。
https://USERNAME:PASSWORD@domain.kendomo.net/nic/update?hostname=example.kendomo.jp&myip=IPアドレス
この際、myip= で指定するIPアドレスはIPv4形式のほか、IPv6でも指定が可能です。IPアドレスがIPv4かIPv6かは自動で識別します。IPv4の場合はAレコードが更新(存在しなければ追加)対象となり、IPv6の場合はAAAAレコードが更新(存在しなければ追加)対象となります。
参考にしている DynDNS.com のAPIでAAAAレコードが扱えないため、AAAAレコードおよびIPv6アドレスへの対応は独自に実装しています。このため、将来 DynDNS.com がAAAAレコードに対応し、もしも本サービスと実装方法が異なった場合は互換性のために本サービスの仕様を変更する可能性があります。
以下のように myip= オプションを省略することもできます。この場合はこのURIへの接続元IPアドレスが指定されたことになります。このとき、IPv4で接続すればAレコードが更新(存在しなければ追加)対象となり、IPv6で接続すればAAAAレコードが更新(存在しなければ追加)対象となります。ただし、この際は後述のIPv6からIPv4へのフォールバックについて注意が必要となります。
https://domain.kendomo.net/nic/update?hostname=example.kendomo.jp
IPv6からIPv4へのフォールバックについて
domain.kendomo.net というドメイン名にはAAAAレコードとAレコードの両方が付加されているため、 IPv6アドレスとIPv4アドレスの両方が割り当てられているクライアントでは、クライアントの実装や設定によってはIPv6を優先して接続を行います。 この際、IPv6による通信ができなかった場合はIPv4にフォールバックすることがあります。 myip= オプションを省略することにより、domain.kendomo.net への接続IPアドレスに応じてAAAAレコードまたはAレコードが更新(存在しなければ追加)されますので、フォールバックにより予期せぬレコードが更新される恐れがあります。
リターンコード
APIを利用した際の本サービスとDynDNS.comのリターンコードの一覧を以下の表にまとめます。仕様の違いにより、エラー内容によってはDynDNS.comとは異なるものになります。
| 動作 | 本サービス | DynDNS.com |
|---|---|---|
| アップデート成功。 | success | success |
| アップデートは不要だった。前回とIPアドレスに変化がない場合。 | nochg | nochg |
| ユーザ名またはパスワードの認証に失敗。 | badauth | badauth |
| 与えられたパラメタが正しくない。 | badsys | badsys |
| 提供されていないFQDNを指定した。 | badauth | notfqdn |
| 存在しないホスト名を指定した。 | badauth | nohost |
| ホスト名は存在するが、それは他のユーザのものである。 | badauth | !yours |
| 寄与したユーザだけ利用できるオプションが指定されているが、ユーザは寄与していない。 | 未定義 | !donator |
| 指定のホスト名は有効でない。 | 未定義 | !active |
| 更新の乱用(更新しすぎ)により停止されている。 | 未定義 | abuse |
| 2つ以上のホストが存在したため、エラーとなった | 未定義 | numhost |
| DNSエラー | 未定義 | dnserr |
| すでに異なるタイプのレコードの合計が最大数に達しており、新規のレコードを追加できない。 | badsys |
注意点
- APIはHTTPS(SSL)による接続が必要です。HTTPには対応しません。
- HTTP/1.0を使用するDynDNS.comとは異なり、本サービスはHTTP/1.1を使用するため、Host ヘッダが必須となります。古いIOSのCiscoルータで本サービスが利用できないのは、このヘッダを正しく送出しないためのようです。なお、Hostヘッダの送出さえ行えば、HTTP/1.0で接続しても利用は可能です。
- 対象ドメイン名のAレコード(またはAAAAレコード)が存在していない場合、Aレコード(またはAAAAレコード)が新規に追加されます。その際のTTLは300秒となります。
- 対象ドメイン名のAレコード(またはAAAAレコード)がすでに存在していた場合、IPアドレスが更新の対象となります。TTLは変更の対象とはなりません。TTLを長めに設定している場合はご注意ください。
- DNSラウンドロビンの利用目的でAレコード(またはAAAAレコード)が複数存在している場合、すべてのAレコード(またはAAAAレコード)が同じIPアドレスに更新されますのでご注意ください。
- 同一のクライアントから不必要に連続してAPIに接続しないでください。IPアドレスが頻繁に変わってしまった場合でも、10分以上の間隔を置いていただければ幸いです。
このページの更新履歴
- 2010-08-05
- IPv6からIPv4へのフォールバックについて追記。
- 2010-01-10
- 公開。