2022年3月14日月曜日

DynamicDNS - 4.DynamicDNSでIPアドレスを通知

DynamicDNSについての連載4回目。
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 件のコメント:

コメントを投稿