異なるあて先を参照するデフォルトゲートウェイを2つのNICにそれぞれ設定すると・・・

先日、断続的にネットワークからロストする障害を抱えたファイル共有マシンの復旧に係り、その原因が2つのNICそれぞれに異なるあて先を参照するデフォルトゲートウェイが指定されている事にありました。
理由は、異なるネットワーク双方から、該当マシンを利用したかったという事。

そこで、それぞれのネットワークに対して個別のゲートウェイ(静的ルート)をroute addコマンドで追加し、ネットワーク経路を明確化して事なきを得たのですが、この際に発生していた障害がとても面白かったので共有します。

断続的に、不規則にネットワークからロストするファイル共有マシンという事で、直感的にネットワーク経路上の問題ではない(ハードが断続的にリブートしているなら別ですが)と考え、まずは同一セグメントにあるマシンにpingが通る事を確認しました。
現象から、2枚のNICが断続的にネットワークからロストし合っている様子です。
競合問題に近いものを感じて、NICの設定を見てデフォルトゲートウェイがそれぞれ異なるあて先参照をしている事が分かりました。

どうも、自分のデフォルトゲートウェイを優先するような挙動を繰り返しているようです(タイミングは不規則)。
片方のネットワークを物理的に遮断しても、この現象は収まりませんでした。


なお、トリビアとして・・・
このデフォルトゲートウェイを2つ以上登録できる仕組みを「デッド・ゲートウェイ・ディテクション」と言います。
デフォルトゲートウェイが故障した場合、通信できないゲートウェイに変わり2つ目以降に登録されたデフォルトゲートウェイに通信を引き継ぐ仕組みです。
ただし、元々通信できないゲートウェイは、この仕組みの対象外となってしまいます。
また、Windows XP以前のOSでは、ゲートウェイの復旧感知機能がない事にも注意が必要です。