どんぶらアニマル さんぽ道

CBR250RR(MC22)とNSR80(HCO6)とAPE50(AC16)を中心とした備忘録。

DDNS Nowの自動更にDiCEを使ってきたけど正常に更新されなくなった

DDNSにDDNS Nowを使っていて、自動更新にはDiCEを使ってきた。が、数日前から外部からのドメイン名によるアクセスが不通になっていた。

 

原因調査

DiCEの手動での更新を実行して1日待ったがアクセスできるようにはならず。

DiCEを手動実行

 

長くても24時間で反映されるはずが、24時間待ってもアクセスができない。こんなに時間がかかるのもおかしいと思い、ちょっと調べてみたら、DiCEが認識しているグローバルIP(赤枠の部分)がおかしい。ルータが示しているグローバルIPのアドレスや自分のネットワークのグローバルIPを調べるサイトで得られるアドレスと違っている。

DiCEでDDNS Nowの自動更新


DiCEを再起動したり再インストールしたりしたが変わらず。グローバルIPが引けないとこのブログもまともに表示されないなど、いくつか困ったことになるので、これ以上DiCEにこだわるのは中止した。

 

解決

他の方法を考えたり、調べたりしていたら、DDNS Nowにcronでの実行方法が書かれていたので、これを試してみる。まずはcronに登録する前にコマンドラインで実実行してみた。(オレンジの部分は環境に合わせて変更する)

curl -X POST -d 'domain=hogehoge&password=hagehage' https://mogemoge/update.php

あっけなく実行して1分後には外部からアクセスできるようになった。

 

そこで下記コマンドを実行してcrontabのエディタを開き、

sudo crontab -e

下記の1行を追加した。

0-59 * * * * curl -X POST -d 'domain=hogehoge&password=hagehage' https://mogemoge/update.php

 

エディタをバックグラウンドに落とさす、ちゃんと終了させて登録されたか確認。

hoge@cf-n10:~$ sudo crontab -l
[sudo] hogeのパスワード:
(中略)
0-59 * * * * curl -X POST -d 'domain=hogehoge&password=hagehage' https://mogemoge/update.php

 

反省とか

異常発生が(多分)1/19の20時頃で、気付いたのがその日の22時頃、復旧したのが1/20の23時頃と気付くのにもちょっと遅れたし、手間を惜しんでDiCEの更新が反映されるのを期待して待ちすぎてしまった。

DiCEがうまく機能しない原因が分からずcronに移行することになったけど、個人的にはこっちの方が安心。Windowsマシンはクライアント専用であって24時間動かすとは限らないけど、Linuxマシンは他のサーバを動かしたりしてるから電源を落とすことは無いから。

 

気が向いたら感想をお願いします。(ログイン不要、ボタンを押すだけです)