KDNS.JPのダイナミックDNS機能について
重要なお知らせ
ウェブサイトのリニューアルに合わせてダイナミック DNS の URI (ドメイン名の部分) が変更になっています。従来の URI については SSL 証明書の更新を行いませんので、2012 年 2 月以降は SSL 証明書の有効期限切れとなります。 旧 URI でダイナミック DNS 機能をご利用のユーザ様は、それまでに新しい URI への変更をお願いいたします。
ダイナミックDNS機能について
IPアドレスが固定ではなく、動的のホストにドメイン名を割り当てる場合、IPアドレスが変わるたびにDNSレコードの更新が必要となります。 ダイナミックDNS機能を利用することで、その更新を容易にすることができます。 この機能はddclient等のツールや一部のルータ等でも利用可能です。
KDNS.JPのダイナミックDNS機能は RFC 2136 (Dynamic Updates in the Domain Name System) のものとは異なり、DNSレコードの更新はウェブを利用したものとなります。
利用方法
ダイナミックDNSクライアントの用意
DynDNS.com に対応したツール類や機器が利用可能な場合があります。次のような環境で利用が可能です(リンク先はそれぞれの設定例です)。
ユーザ名とパスワードについて
ダイナミックDNS機能の利用には、対象のドメイン名にユーザ名とパスワードの設定が必要となります。
OpenIDでログインしてドメイン名を追加後、追加済みのドメイン名にパスワードの設定が可能となります。「ドメイン名管理」から「パスワード」の「設定」ボタンを押すと、ダイナミックDNS機能の利用に必要なユーザ名とパスワードが発行されます。
仕様について
API
ダイナミックDNSのAPIは DynDNS.com のものを参考にしています。これにより、DynDNS.com に対応した一部の機器でもKDNS.JPの利用が可能となっています。
DNSレコードのタイプについて
APIではAレコードとAAAAレコードのみの対応となります。その他のレコードはOpenIDでログイン後の「ドメイン名管理」でのみ設定が可能です。
サーバへのリクエスト方法
GET リクエストとなり、その際に対象のドメイン名に設定したユーザ名とパスワードをBasic認証で渡します。
IPアドレスを指定して example.kdns.info を更新する場合、URIは以下ようになります。
https://kdns.jp/nic/update?hostname=example.kdns.info&myip=IPアドレス
Basic認証のユーザ名とパスワードを含めた形式のURIは以下のようになります。
https://USERNAME:PASSWORD@kdns.jp/nic/update?hostname=example.kdns.info&myip=IPアドレス
この際、myip=
で指定するIPアドレスはIPv4形式のほか、IPv6でも指定が可能です。IPアドレスがIPv4かIPv6かは自動で識別します。IPv4の場合はAレコードが更新(存在しなければ追加)対象となり、IPv6の場合はAAAAレコードが更新(存在しなければ追加)対象となります。
参考にしている DynDNS.com のAPIでAAAAレコードが扱えないため、AAAAレコードおよびIPv6アドレスへの対応は独自に実装しています。このため、将来 DynDNS.com がAAAAレコードに対応し、もしもKDNS.JPと実装方法が異なった場合は互換性のためにKDNS.JPの仕様を変更する可能性があります。
以下のように myip=
オプションを省略することもできます。この場合はこのURIへの接続元IPアドレスが指定されたことになります。このとき、IPv4で接続すればAレコードが更新(存在しなければ追加)対象となり、IPv6で接続すればAAAAレコードが更新(存在しなければ追加)対象となります。ただし、この際は後述のIPv6からIPv4へのフォールバックについて注意が必要となります。
https://kdns.jp/nic/update?hostname=example.kdns.info
IPv6からIPv4へのフォールバックについて
kdns.jp というドメイン名にはAAAAレコードとAレコードの両方が付加されているため、 IPv6アドレスとIPv4アドレスの両方が割り当てられているクライアントでは、クライアントの実装や設定によってはIPv6を優先して接続を行います。 この際、IPv6による通信ができなかった場合はIPv4にフォールバックすることがあります。 myip= オプションを省略することにより、kdns.jp への接続IPアドレスに応じてAAAAレコードまたはAレコードが更新(存在しなければ追加)されますので、フォールバックにより予期せぬレコードが更新される恐れがあります。
リターンコード
APIを利用した際のKDNS.JPとDynDNS.comのリターンコードの一覧を以下の表にまとめます。仕様の違いにより、エラー内容によってはDynDNS.comとは異なるものになります。
動作 | KDNS.JP | 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には対応しません。
- KDNS.JPは Host ヘッダが必須となります。古いIOSのCiscoルータでKDNS.JPが利用できないのは、このヘッダを正しく送出しないためのようです。
- 対象ドメイン名のAレコード(またはAAAAレコード)が存在していない場合、Aレコード(またはAAAAレコード)が新規に追加されます。その際のTTLは300秒となります。
- 対象ドメイン名のAレコード(またはAAAAレコード)がすでに存在していた場合、IPアドレスが更新の対象となります。TTLは変更の対象とはなりません。TTLを長めに設定している場合はご注意ください。
- DNSラウンドロビンの利用目的でAレコード(またはAAAAレコード)が複数存在している場合、すべてのAレコード(またはAAAAレコード)が同じIPアドレスに更新されますのでご注意ください。
- 同一のクライアントから不必要に連続してAPIに接続しないでください。IPアドレスが頻繁に変わってしまった場合でも、10分以上の間隔を置いていただければ幸いです。
このページの更新履歴
- 2011-09-21
- ウェブサイトリニューアルに伴うURI変更を反映。
- 2011-01-19
- ウェブサイトリニューアルに関するお知らせを追記。
- 2010-08-05
- IPv6からIPv4へのフォールバックについて追記。
- 2010-01-10
- 公開。