OPNsenseでDynamic DNS

自宅サーバーのDynamic DNSにieserver.netを使わせていただいているが、NECルーターを使っていた時にルーターで設定できなかった(対応サービスに存在しなかった)ので、クライアントのWindows上でDiCEを使っていた。
Windows10でも特に問題なく動いていたが、Windows機の電源が切れているときにIPアドレスが変わると繋がらなくなるのは流石にアレなので、仮想化ルーターに合わせて仮想化ルーター側に移動した。


OPNsenseもieserverのGnuDIPには対応していないっぽいので、別の方法を検討した。
便利ツールのページにperlスクリプトがあるので、これを適当な仮想マシンでCronで動かせばいいか…と思っていたが、よくよく見るとほとんどはIPアドレスの変化を監視する部分で、DNSエントリの更新はwget1コマンドでできるっぽい。


以下に処理部分を引用。

$STATUS = `wget -q -O - '$DDNS_UPDATE?username=$ACCOUNT&domain=$DOMAIN&password=$PASSWORD&updatehost=1'`;

どうも、このURLにアクセスするとアクセス元のIPアドレスを新しいアドレスとして認識するという仕組みらしい。


OPNsenseのDynamic DNSにはCustomというタイプがあり、これは特定のインターフェースを監視して、IPアドレスが変化したら指定されたURLにアクセスするという動作をするので、上記のURLを指定してやればよい。
しばらく使ってみたが、再起動時でIPアドレスが変化したときなども追従するので大丈夫だと判断した。
本当は上記でもやっているように戻り値をチェックするべきだとは思う。