2つ以上のNICがあると、失敗する件

今日言われていた仮想IPをフフ〜ン♪と追加して、/etc/init.d/networking restartをしたら死んだ。
やばーーーい!とiDCへ駆けつけた*1

コンソールからifconfigで確認したが、やはりどれも立ち上がってない。コンソール上で/etc/init.d/networking startをしてもはやり立ち上がらない。

Reconfiguring networking interfaces... SIOCDELRT No such process.
SIOSCSIFFLAGS Can't assign requested address
Fail to bring up eth0:0

こんな感じでエラーが出る。ふむ、と思い、

ifup eth0
ifup eth1
ifup eth0:0

としたら必要なネットワークが全部起動した。
他の待機系のサーバーでも試した結果、以下の事が分かった。
2つ以上のNICがささっていてネットワーク設定されているサーバーでは/etc/init.d/networkingしたら失敗する。
立てた仮説は以下の通り

    1. 本当は2つ以上のNICがあっても/etc/init.d/networkingで起動するが、自分の設定がどこかおかしいせいで起動しない
    2. /etc/init.d/networkingは2つ以上のNIC、もしくは仮想IPに対応していない*2
    3. /etc/init.d/networking, ifup, ifdownにはパッケージ間の関連性がない。
    4. 上記パッケージを私が根本的に理解を間違っている

希望的可能性としては(1)と(4)。(2)だとちょっとやっかいだな。だってリモートで再起動出来ないってことだもんねぇ。
とりあえずは

    1. /etc/init.d/networkingのスクリプトを読む
    2. ifup/ifdownのmanページをちゃんと読む
    3. ローカルで実験をして再現するかどうか確認してみる

をする予定。
こうご期待!!

*1:しかもそのiDCに行くのは2回めで3年前とかだったから行く準備でわたわたした。日頃から緊急時を想定して準備しておくのが大事だなと痛感した。

*2:NICが1つだと仮想IPには対応しているようだ