2009年3月24日の日記の2番目の記事へのコメント

DynDNSを何とかする

ここのページのドメイン名は,見りゃわかりますが DynDNS のやつです.元々ここのページが置いてあった実家のネットワークは,外側の口にグローバルIPが固定で割り振られていたので,DynDNS はアカウントが消失しないよう月に1回くらい手で更新するだけで十分でした.

が,今,この玄箱がつながっているネットワークの外側の口は,グローバル IP こそ振られているものの,固定である保証があるわけではなく,もしかしたら何らかの理由でリース期間が終わったところで IPアドレスが変わってしまうかもしれません (多分そうそうないとは思うけど).というわけで,IPアドレスが変わっちゃったら自動的に DynDNS に登録し直すような仕組みが欲しかったりします.

DynDNS に自動で登録する方法は色々あるようですが,軽く調べた感じだと ddclient が良いみたいです.ルータで dhclient が IP アドレスの変更を検出したときにこれを呼べば良さそうですね・・・.と思ったんですが,ルータ (OpenBlockS) には Perl が入っておらず,Flash の容量的にも入りそうな気がしません.Perl 自体を CF に入れるのも何か微妙だしなー.うーん.

仕方がないので ddclient は玄箱で動かすことにしました.が,ここで一つ疑問が. OpenBlockS の外側の口の IP アドレス (が変わったこと) を玄箱はどうやって知ることができるのか.

ヒタヒタさんを巻き込んであれこれ考えるもなかなかいいアイディアが思いつきません.外の Web サーバにアクセス元のIPアドレスを表示するページを置いて利用するとか, OpenBlockS が玄箱のどっかを NFS マウントして IP アドレスが変わるたびにそこに書き出すとか,玄箱から ssh とかで認証なしで入れるようにして定期的にチェックさせるとか,どれもちと微妙な感じです.

で,結局,OpenBlockS の namedb (OpenBlockS は LAN 内の DNS もやっている) に,名前を引くと外側の口の IP アドレスが返ってくるようなホスト名を追加し,外側の口の IP アドレスが更新されるたびに zone ファイルを書き換えて追従させることにしました.ヒタヒタさんはイマイチ賛同してくれませんでしたが (´・ω・`)

適当に外側の口の IP アドレスを調べて,今 zone ファイルに登録されているやつと違ってたら zone ファイルの IP アドレスとシリアル番号を書き換えるOpenBlockS用のスクリプトを作成.一応それっぽく動くようです./etc/dhclient-exit-hooks から呼ぶようにして,dhclient を落として上げたら zone ファイルに外側の口のアドレスが追加されました.IP アドレスが変わったときにも呼ばれるんだよな,このスクリプト・・・.

後は玄箱から定期的に OpenBlockS の外側の口に対応するホスト名の IP アドレスを引くようにして,今まで覚えていたのと違っていたら ddclient を呼んで DynDNS に登録すようにすればいいはず.・・・おっと,ddclient の設定がまだでした.・・・ん?この「use=web」ってなん・・・だ・・・と?

何と ddclient の設定に「use=web, web=checkip.dyndns.org/, web-skip='IP Address'」とか書いておけば, ddclient を実行する側が IP アドレスを知らなくても,DynDNS 側の機能を呼び出してこっち側のグローバル IP を調べてそのまま設定できちゃうみたいです・・・.あああ,確かに Web からアクセスしたときもそういう機能あったな・・・.というわけで,「適当に」といいつつも1時間くらいかけて書いたスクリプトが不要になりました orz

まあでもこれ使えば DynDNS まで問い合わせにいかなくてもいいわけで (当たり前),30秒に1回 IP アドレスが変わってないかチェックとかしても怒られないからw,こっちでやるってのもありかもなぁ.よーし,自前の方使ってみますかねー.

あ,そうそう,上記スクリプトを書いて動かそうとして気づいたんですが,OpenBlockS に awk と head が入ってなくて悶絶しましたw.すげえなこれ.とりあえず CF に head 入れました.いっそ CF に busybox を入れてしまうというのもありか・・・?

お名前:  メールアドレス(省略可):
メールアドレスも表示されます
ここに名前その他を書いてはいけません: ここにメールアドレスその他を書いてはいけません:

2009年3月24日の日記の2番目の記事へのコメント

中の人情報

名前:
nosuke (のすけ)
メール:
sasugaanijaのgmail.com
「の」は「@」みたいな
関連リンク:

カレンダー

2009年3月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

<<先月分

翌月分>>

最新の10件のエントリ

最近の10件のコメント

過去ログ