iptablesをリスタートしたらsshが切られる現象が起きまして。
最初は、テーブルの書き換え方がまずいのかな、と思ってはてなで聞いてみたりしていたのですが。
調べた末に、iptablesを終了した際にKernelPanic起こしていたことが分りました。
- おれ最前線ねっと – Kernel panic
- kernel panic は体に悪いぜ | DOOM! DOOMER!! DOOMEST!?
- Bug 456664 – Kernel panic when unloading ip conntrack modules
解決策については、おれ最前線ねっと – Kernel panicで書いていただいているとおり、Kernelを新しくするか、古くすればOKです。
問題なのは、このサーバは遠隔地にあるということで。
カーネルをアップデートしたら再起動しないといけないですけど、普通にやると終了時にKernelPanicを起こして、二度と上がってきません。
メールとか電話で再起動を依頼できるのですけど、必要以上に頼みたくないですし。
そんなわけで、Bug 456664の状況下で、KernelPanicせずにリブートを成功させる方法を見つけたのでメモです。
- とりあえず普通にKernelをアップデート(または、grub.confを修正する)
- /etc/sysconfig/iptables-configを開いて、IPTABLES_MODULES_UNLOAD を”no”にする
これで、iptablesの終了時にモジュールのアンロードをしなくなるので、KernelPanicせずにリブートさせることが出来ます。とりあえずこれで一回リブートしてkernelが変われば、あとは設定を元に戻してもiptablesをrestartさせることが出来るようになります。やれやれ。
#今回の調査のために10回くらい依頼したから、今さら一回くらい一緒なんですけどね。