DDNS更新のタイミング

使用中に、IPアドレスが変わってDNSの情報が変わったようだ。しかし、iTunesで音楽を聴いていたためネットには繋がっている状態だった(再生情報を送信し続けるため)。
外へのデータ送信は途切れていなかった。mixiとlast.fmが相手である。しかし、ローカルへのデータ送信がこけた。
ローカルのWebサーバへのアクセスも、外向き同様のアドレスを使用している。これは、ノートPCからアクセスすることを考えた場合に、外出先からアクセスする場合と家でアクセスする場合のホスト名を同じにしたいことが理由だ。hostsファイルやローカルでネームサーバを動かす方法では解決できない。幸いにして使っているルータがローカルNSを提供してくれるから、ホスト名さえ間違えていなければ何も考えずにアクセスできる。
しかし、今日は使用中にいきなり変わったのでキャッシュが追いつかなかった。家のサーバへアクセスするとunreachableになってしまった。pingやnslookupが正常なことから単純にキャッシュの問題だと思われた。
Windowsでは、Firefoxでリロードしているうちにキャッシュがクリアされて更新されたようでアクセスできるようになった。
しかし、Macが問題になった。同じことをしても一向に解決しない。Firefoxを再起動しても効果ない。完全にOSのネットワーク周りの問題だと思われた。念のためルータの更新ログを見てみようとログインを試みるが、ログインしたあとの画面がロードできない。仕方ないからルータを再起動した。これでログが役に立たなくなった。
問題をDNSキャッシュと決め打ちし、Macでのコマンドを調べた。最初にグーグル先生が教えてくれたのは「lookupd -flushcache」というコマンド。一応、OS X用ということだったので試したが、「command not found」という結果に。ディスク全体にfindかけても見つからない。psで調べても見つからない。
検索キーワードに「Leopard」を加えて再チャレンジ。すると、「dscacheutil -flush」というのが見つかった。こちらが正解。これで問題が解決した。Firefoxからページが見れた。ローカルサーバの再生履歴も更新されるようになった。いくつか抜けてしまったが、自宅サーバの現状のシステムでは、iPodで再生したのと同じことをすればデータを反映できるから問題はない。
一つ勉強にはなったが、あまりに面倒な現象だった。

コメント