t-hom’s diary

主にVBAネタを扱っているブログ…とも言えなくなってきたこの頃。

自宅DHCP兼DNSサーバー障害対応

今日20時頃、自宅DHCPサーバーが応答しなくなった。

半年ほど前にもトラブルで再構築した気がするが、これは設定ミスによるパスワードトラブルだったので実際に本番機の再構築一歩手前で気づいて修正した。
thom.hateblo.jp

ということで前回実際に故障したのは9か月前となる。
thom.hateblo.jp

前回もSDカード故障だったが、今回もSDカード故障。
もともと16GB 10枚入りで5,000円という激安のSDカードを使っていたので安かろう悪かろうということかもしれない。
実際にこのSDカードはラズパイデスクトップを入れるとプチフリーズが大きくてサーバー専用で使っていたのだが、本当はサーバーこそ信頼性の高いものを使う必要がある。

急遽トラブルを解消しないと在宅勤務も厳しいのでとりいそぎそのあたりに転がっていたSDカードをピックアップしてラズパイOS Lite をクリーンインストールした。

実はこんなこともあろうかと自宅のGitbucketサーバーにDNS/DHCPサーバーのコンフィグを退避してあり、設定のデプロイもスクリプト化してある。
thom.hateblo.jp

これのおかげで復旧は余裕!と思っていたんだけど、肝心のGitbucketのIPアドレスがDHCPによる固定IP払い出し。。DHCPリース期間は残っているはずだけどそのIPアドレス情報が故障したDHCPサーバーもしくはGitbucketサーバーのリポジトリに保管されていて思い出せない。。しかも最近アクセスしていなかったせいでPCからのDNSキャッシュも切れており、故障したDHCPサーバーはDNSサーバーも兼ねているという八方ふさがりの状況になってしまった。

DHCP側に依存するデメリットは前回の故障時に痛感しているはずなんだけどやはり管理が楽なので復旧に緊急を要するサーバー以外はこれに頼ってしまう。今回の失敗は、構築当時は緊急性がなかったはずのGitbucketサーバーが、DHCP/DNSコンフィグが保管されることによって復旧緊急性が跳ね上がってしまったのにそのときに固定IP設定をしなかったことだと思う。

結局どうやったかというと、Redmine上のCMDBでGitbucketサーバーのMACアドレスを調べて新規構築したDHCPサーバー上にGitbucketサーバーの固定払い出し設定を適当なIPアドレスで記述し、GitbucketサーバーにキーボードをつないでCtrl+Alt+Delでリブートした後GitbucketからDNS_DHCP設定をクローンした。あとはDHCP/DNSサーバーのデプロイスクリプトを走らせてリブートかければ復旧完了。
あとGitbucketは適当なIPを設定してしまったので再度リブート※して正しいIPを再取得。

※ミニHDMIディスプレイとキーボードを繋いで直接端末にログインを試みたのだがキーマップがENになっているためかパスワードが通らずリブートくらいしかDHCPでIP再取得の手段が無かった。

その後Gitbucketサーバーは固定IP化し、これにて一見落着。

ネットワーク障害はかなり焦るけども障害のたびに色々と反省点も見えてくるし、むしろ定期的に何かが壊れた方が構成を思い出すきっかけになるので良い気がしてきた。この障害がたとえば5年後とかだったらもはや何も覚えてなくて更に影響が大規模になっていた可能性がある。

最近安定稼働していたので放置気味だった自宅ネットワークだが、これを機に再度障害への備えについて見直そうと思った。

以上。

10/1追記

スマホからローカルのファイルサーバー(Samba)への接続に妙に時間がかかるようになり、ホームゲートウェイからローカルDNSへの転送を忘れてたことに気づいたので追記。

プロバイダとIPv6通信を契約にしてるとホームゲートウェイのDNSにはIPv6しか指定できないのでローカルDNSのglobal IPv6アドレスを指定しておく。

これでホームゲートウェイがlocal.thom.jp宛ての名前解決を受け取るとローカルDNSに転送してくれる。

当ブログは、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、 Amazonアソシエイト・プログラムの参加者です。