Routerboard で MyDNS.jp に IPアドレスを通知する

Routerboard (RouterOS) は /tool fetch を使うとhttpのページを取得できるので、これと /system scheduler , /system script を連携すれば定期的にMyDNS.jpにIPアドレスを通知できます

ここではMyDNS.jp 記載の HTTP-BASIC による通知を取り上げますが、同様にHTTP-DIRECTでの通知も可能と思います。

注意

初期のRouterOSは fetch コマンドがHTTP-BASIC認証に対応していません

方法

fetch コマンド

RouterOSのコンソールで下記のコマンドを叩けば、MyDNS.jp に対してアクセス元IPアドレス(→現在のグローバルIPアドレス)を通知できます :

/tool fetch mode=http keep-result=no user=hogehoge password=hogehoge url=http://www.mydns.jp/login.html

keep-result=no オプションを指定することで、 wget --spider に近い挙動を得られます。 (取得したファイルを保存しません)

MyDNS.jp に対して任意のIPアドレスを通知したい場合は、url フィールドに HTTP-DIRECTのフォーマットに則ったURLを記入すれば良いと思います。

script コマンド

上記のfetchコマンドをRouterOSのScriptとして登録します :

/system script add name=mydns source="/tool fetch mode=http keep-result=no user=hogehoge password=hogehoge url=http://www.mydns.jp/login.html"

name パラメータには任意の名前を設定してください。

scheduler コマンド

上記のScriptを定期的に実行するようスケジュールします :

/system scheduler add name=mydns_2h on-event=mydns interval=2h

name パラメータには任意の名前を設定してください。

on-event パラメータにはスクリプトの name を、interval パラメータには実行間隔を指定します。

もしIPv4アドレス通知用ScriptとIPv6アドレス通知用Scriptを個別に用意した場合、それぞれを scheduler add してください。