DNSサーバにIPアドレスを通知する方法について。
前回取得したIPアドレスをDNSサーバに通知します。
Linux上ではnsupdateコマンドで対話的に行なえます。
実行は以下のような感じになります。
$ nsupdate -k <プライベートキーファイル> > server <通知先の権威DNSサーバ>. > update delete <対象ホスト名(FQDN)>. > update add <対象ホスト名(FQDN)>. <寿命(秒)> A <IPv4アドレス> > update add <対象ホスト名(FQDN)>. <寿命(秒)> AAAA <IPv6アドレス> > sendここで<プライベートキーファイル>とは、
前々回作成した"K*.*.private"っぽいファイルのことです。
前々回の記述を元に具体的に例示するなら、
$ nsupdate -k Kddns-sample-com.+123+45678.private > server ns.sample.com > update delete eagle.ddns.sample.com. > update add eagle.ddns.sample.com. 3600 A xxx.xxx.xxx.xxx > update add eagle.ddns.sample.com. 3600 AAAA xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx > sendな感じになります。
これをシェルスクリプト内に埋め込む等、非対話式で処理するなら
echo -e "server <通知先の権威DNSサーバ>\nupdate delete <対象ホスト名(FQDN)>.\nupdate add <対象ホスト名(FQDN)>. <寿命(秒)> A <IPv4アドレス>\nupdate add <対象ホスト名(FQDN)>. <寿命(秒)> AAAA <IPv6アドレス>\nsend" | nsupdate -k <プライベートキーファイル>のようにすれば可能です。
ここで注意すべきは<寿命>。
権威DNSサーバはキャッシュDNSサーバから問い合わせを受けたときに
合わせてこの<寿命>を通知しますが、
キャッシュDNSサーバはこの<寿命>が尽きるまで
この情報を保持して、再度問い合わせることはありません。
つまり、デバイスのIPアドレスがしょっちゅう変わるようなら、
この<寿命>を十分短くしておかないと、
デバイスにアクセスしようにも古いIPアドレスしか取得できず、
現在のIPアドレスが分からないなんてことが起こりえます。
とはいえ短くしすぎるとサーバやネットワークの負担増になります。
十分考えて設定すべきです。
0 件のコメント:
コメントを投稿