本番環境などでやらかしちゃった人 Advent Calendar 2023 2日目として,遡って書かせていただきます。
「本番環境でやらかしちゃった」というほどの大したことではなく休日が1時間くらい潰れただけの軽い事故ですが,アドカレが空き枠というのも悲しいかと思いますので軽く読んでいただければ幸いです。
Abstract
研究室内で前任者から引き継いだネットワーク管理を信用してプリンターなどの一部機器を触れなくなってしまったという感じです。
RFC2322だったらこんなことにはならなかったのに…
Introduction
筆者は理系大学院生(M1)で,研究室内のPCなどの管理を任されています。
今までは教員が担当していたのですが,PC周りが分かる人が栄転されたため,私が後任を拝命しました。
研究室内のネットワークでは,ルーターの下にプリンター数台やスキャナなどと学生たちのPC複数台が存在しています。
プリンターなどの共通の機器は固定IPアドレスで,個人のPCにはDHCPで配っています。(タイトルの伏線)
私が諸々の管理を引き継いでしばらくたったころ,キャンパス全体の停電が行われるという連絡が来ました。
実験装置などはシャットダウンがめんどくさいのですが,私の管轄はせいぜいNASを落とすくらいのもので各自のPCはそれぞれ切っておいてねと通達するくらいでした。
そんなわけで余裕で対応していたつもりでしたが,事件は停電復旧後に起きました。
※ この記事で例示してあるIPアドレスはすべて実在しないものです1。
Experimental section
IPアドレスが固定の機器と動的な機器が混在した状態で一度すべてシャットダウンし,その後適当な順番で起動します。
このとき,動的な奴らの方が起動が速いものとします。
Results and discussion
復旧後にプリンター(固定IPアドレス,本記事では192.0.2.2
とします)が使えるかテストしようとしたところ,プリンターがオフラインと言う旨のエラーが出ました。
ところがpingを打ってみるとちゃんと返事が返ってきます。
誰が返事しているのかMACアドレスのベンダーから確認すると,どうもプリンターではない別人(個人PC)が192.0.2.2
を使っているようです。
このアドレスは固定でプリンターに渡しているのにどうして勝手にそんなことをするのか,どんな実装なんだよ……
と文句を言いながら,とりあえずIPアドレスを解放させてプリンターに返すためにDHCPサーバーの設定を開くと,なんとDHCPの設定としては192.0.2.2
が固定だとは認識していない(DHCPで配っていい範囲に入っている)ことが明らかになりました。ひどい。
その後は手動でIPアドレスを振りながら固定アドレスの範囲は配らないように設定して解決しました。
以上の情報から推測される機構は以下の通りです。
- 個人PCがいち早く起動してIPアドレスを取得しようとする。
- DHCPサーバーは若い番号から順番に配ろうとして,
192.0.2.2
が未使用であることを確認して渡す。 - プリンターが遅れて起動する。
- プリンターは自分のアドレスが
192.0.2.2
だと思っているので使おうとするが,既に使用中であることが発覚する。 - 使えるIPアドレスがないのでプリンターがオフライン状態になる。
Conclusion
(前任者のやらかし)
固定IPアドレスの機器があるときは,そのアドレスはDHCPで配らないように設定しましょう。
常時起動であれば普段は問題になりませんが,いつ何が起きるかわかりません。
(私のやらかし)
また,ネットワークなど(それに限りませんが)の管理を任されたら,とりあえずどんな設定になっているのか軽くでいいので確認しましょう。
(ネタ枠)
今回のようなやらかしを起こさないようにするためには,RFC2322が有効であると考えられます。