DDNS DynDNSからMyDNSへ乗り換え

LINEで送る
Pocket

自宅にサーバを置かなくなり固定IPを止めて久しいですが、SlingboxやNAS、VPNなど海外や出先から自宅ルータ経由の接続は必須なため、ここ数年DDNSでお馴染みのDynDNSのお世話になっていたのですが、2013年5月にSLAを変更し有料化されてしまいました。(お試し期間30日)
DynDNSのよいところは、元々BuffaloのルータにDynDNSのIP自動通知機能があってそれを使用すればルータが勝手にIPを通知してくれるというものでした。常時電源ONのルータで無料でDDNS運用できるという節電(サーバ不要)のメリットもありました。まあDynDNSがよいのではなくBuffalo側が対応していたのが良かった点ですね。
ところが昨年から1ヶ月に1度「あと5日でDNSの有効期限が切れるぞ!」という脅しにも似たメールをDynDNSから頂戴するようになり、その度にDynDNSのHPへ行き手動更新するとなぜか継続できていました。ただ一度忘れて本当に期限切れになったことがあり同一名で再登録した経緯があります。

まあ1ヶ月に1度ならまあよいかと思いますが、長年無料でノーメンテだったサービスが突如改悪になってしまったため、MyDNSへ乗り換えることにしました。MyDNSはjpドメインを無料で運用できる点でなかなかよいですね。

早速MyDNSに登録してみました。DDNSの通知方法をどうしようか、ここが一番のポイントなのですが、MyDNSはBuffaloのルータでは対応していません。
しかし、MyDNSにはいろんな通知方法がありHTTP-BASIC認証やPOP/SMTP/FTPなどもできるようです。HTTP-BASIC認証ならwgetやcurlなどに任せれば自動通知できそうですね。

ってことでrootハックしたLS-VLのcronに以下を仕込んでみました。LS-VLはBuffaloのNASですが、rootハックすればいわば小さな自宅サーバですので一石二鳥です。

  • /etc/cron/cron.d/ddns.sh
    /etc/cron/cron.d/配下の適当なShellをddns.shでコピーし、viで中身を以下に書き換えます。

    #!/bin/sh
    #
    # update ddns
    #
    
    # MyDNS
    wget -O - --http-user=yourname --http-password=xxxxxxxx http://www.mydns.jp/login.html
    
  • crontab -eにてcronに登録
    12 4 * * * /etc/cron/cron.d/ddns.sh
    

数日経過後、MyDNSのHPにログインしLOG INFOを確認しますと正常に更新されているのが確認できました。ログ日付が1日飛んだり飛んでなかったりしているのは、MyDNSのロギング仕様が過去24時間以内はログ記録しないためです。

2013/10/21 04:12:02 JST  	IPv4 UPDATE : yourname xxx.xxx.xxx.xxx (xxx.xxx.xxx), http, jpn 
2013/10/19 04:12:16 JST  	IPv4 UPDATE : yourname xxx.xxx.xxx.xxx (xxx.xxx.xxx), http, usa 
2013/10/17 04:12:03 JST  	IPv4 UPDATE : yourname xxx.xxx.xxx.xxx (xxx.xxx.xxx), http, jpn 
2013/10/15 04:12:09 JST  	IPv4 UPDATE : yourname xxx.xxx.xxx.xxx (xxx.xxx.xxx), http, usa 
2013/10/14 04:12:07 JST  	IPv4 UPDATE : yourname xxx.xxx.xxx.xxx (xxx.xxx.xxx), http, usa 


後日、DynDNSの更新仕様はどうも1か月に1度Webログインが必要なことがわかりました。これでHPから手動で更新すると継続される謎も解けました。すでにMyDNSのお世話になっているので不要なのですが、それならDynDNSのWebログインもLS-VLのcronに任せてみたらってことで、ddns.shにDynDNSの行を追加。なおBuffaloルータのDynDNSのIP通知機能は有効のままです。これで来月期限切れ通知メールが来なければOKですね!

  • /etc/cron/cron.d/ddns.sh
    #!/bin/sh
    #
    # update ddns
    #
    
    # MyDNS
    wget -O - --http-user=yourname --http-password=xxxxxxxx http://www.mydns.jp/login.html
    
    # DynDNS
    wget -O - --no-check-certificate --post-data="username=yourname&password=xxxxxxxx" https://account.dyn.com/
    


2013/11/23追記
昨日Dynから以下のようなメールが届きました。

Since enforcing our 30-day manual account login for free users, we heard requests that a single email reminder to log in just is not enough. You asked for it, so we delivered.

Effective December 1, 2013, you will now receive a reminder email 15 days ahead of account expiration, in addition to an alert 5 days ahead of expiration — both sent if you have not manually logged in within the last 30 days.

手動でログインしないとやはりNGなんですかね。UA(User Agent)なども見てるんでしょうか。
取り急ぎ、12/1まで待ってみます。

2013/12/05追記
結局、昨日「expire in 5 days」メールが届きました。やはり、自動ログインスクリプトだけではNGでした。FireFoxのiMacrosで自動ログインを仕込むしかない感じです。UAやログイン時刻なんかも見てるんですかね。MyDNSがあるのでDynDNSは諦めます。

コメントを残す

メールアドレスが公開されることはありません。