質問: サーバのデフォルトゲートウェイ設定が消えてしまいます。 現在構築中のシステムでネットワークが不安定になっており、大変困っています。 解析方法や考え方等、ご存じの方いらっしゃいましたらお知恵を拝借できません でしょうか? windowsserver2003 sp1のサーバにnicが2枚差し込んであります。 このサーバはwebサーバ兼mailserverです。メールサーバは sendmail advanceserver 1.3.2jを使用しています。 nic1:dmzのセグメントに接続(メトリック1) nic2:メンテ用のセグメントに接続(メトリック10) 現象としては、nic1のゲートウエイの設定が失われてしまい外へ出られなくなって しまうということです。現象の確認方法は以下の通りです。 ■確認方法 1.他のプログラムからエラーで通知 2.該当サーバにログイン 3.ipconfigを実行 4.nic1ののデフォルトゲートウェイが空欄となってしまう。 ■解決法 1.nic1をネットワークのプロパティで「修復」 2.ipconfigで確認 3.nic1のデフォルトゲートウェイが空欄でなくなっている 4.ネットワーク設定が回復 nic1,nic2にはそれぞれ別のデフォルトゲートウェイが設定されています。 この現象は多いときには一日に複数回発生し、特に修復をしなくても自動で 元に戻っています。 ただ、外に出られないのは致命的なので解決したいと思っているのですが 皆目見当が付きません。以下のような点をアドバイス頂けるとありがたいです。 ・この現象にたいする処方及び検証ポイント ・ハードか設定まわりかの切り分けの方法 ・トラブルシューティングの考え方 他に必要な情報ありましたらすぐにアップさせていただきます。 何卒お力添えいただけまうようお願い致します。
回答: 返事が遅れてしまってごめんなさい。 さて、先の回答です。 環境: ・当該ホストはdmz上に配置。 ・nicが2個。 ・nic1は外部ネットワーク(internet)に向いており、dmz上の ルータのアドレスが default gateway 。 ・このルータのアドレスは xxx.xxx.xxx.xxx 。 ・nic2は内部ネットワークに接続しており、内部向けのルータ が同じセグメント内にある。 ・この内部行きルータのアドレスは 172.16.1.1 ・nic2自身のアドレスは 172.16.1.10 、マスクビットは 24bit。 ・内部ネットワークは 172.16.0.0 、クラスbのプライベート アドレス。 というふうに仮定してみます。 設定: ・nic1のアドレスは「ローカルエリア接続1」のプロパティで 設定する。 ・ここでnic1自身のipアドレスとサブネットマスク値、および default gateway として xxx.xxx.xxx.xxx を設定する。 ・nic2のアドレスは「ローカルエリア接続2」のプロパティで 設定する。 ・ここでnic2自身のipアドレスとサブネットマスク値のみを 設定し、default gateway の値は**空にしておく**。 ・コマンドラインから、下記を実行する。 route -p add 172.16.0.0 mask 255.255.0.0 172.16.1.1 このように -p 付きで実行すればレジストリ(?)に格納され、 再起動しても消えません。 ほんとうはこのコマンドに if 2 のようにインターフェイスの 指定まで付ければ確実なのですが、windows 自身がどのように if の番号を振るのかイマイチ不明なので、なまじ付けない ほうが良いようです。 -p オプションは add の時だけ指定できるオプションで、 これを付与しないと再起動毎に消えてしまいます。 設定結果は route print で見えます。destination 毎に、期待した interface から 経路が設定されているか確認します。 残念なことに、こうやって設定した内容は確認するダイアログ ボックスなどがありません。コマンドラインから route print を実行して確認することしか出来ません。ひどいシロモノですね。 #だから windows は... もちろん質問者さんのネットワーク構成によって、設定する値は 異なります。例えば、destination をクラスbプライベートの 全ネットワークにしていますが、クラスbプライベートのうち どこかだけを destination にするなら当然マスク値も異なります。 上記では例として値を埋めてみましたが、現実の状態にあわせて 値を適宜考えてみてください。 --