仕事でNEC製のサーバ、Express5800のデータセンターモデルと呼ばれるサーバを使っています。これにメーカーの動作確認は取れていませんが、ドライバは提供されているのでWindowsServer2003R2を入れて運用していたりするのですが、何故か一部メーカーのSwitchと起動時のネゴシエーションに失敗します。Ciscoやアライドテレシスでは問題なかったのですが、FXCのSwitchでネゴシエーションに失敗するのです。オンボードのIntelのNICで安心してたんですけれども・・・
で、調べていくと「電源断からの初回起動」では問題が無いと言う事が解ってきました。「OSの再起動」だとNGな感じ。「OSの再起動」であっても管理コンソールから入っていってOSでネットワークの無効化・有効化を実施すると接続するようです。どうやらNICの初期化にまつわるトラブルっぽい感じ。
と言う事で対処方法はわかったものの、根本解決するには一体どこのメーカーと調整していけばいいの?と言う事もあり時間がかかりそうなので、バッチファイルで暫定対処してみました。以下コ汚いスクリプトw
@echo off
:loop
set ping_check=0
set i=0for /L %%i in (1,1,10) do (
ping 192.168.1.1
if %errorlevel%==0 call :check_add
):error
if %ping_check%==0 (
netsh interface set interface “ローカル エリア接続” disable
ping -n 5 127.0.0.1
netsh interface set interface “ローカル エリア接続” enable
)
goto loop
exit:check_add
set /a ping_check=%ping_check%+1
とかこんな感じ。ルータの 192.168.1.1 へ10回疎通確認をして10回全部失敗した場合にのみ、インターフェイスをリスタート。1回程度とかだとふとした瞬間に疎通断とかありそうですしね。
早く根本解決にこぎつけたい所です。
[追記]
このバッチファイルをどーすんの?と言う問い合わせがあったので追記。タスクスケジューラ(WindowsServerだと「タスク」)に登録して、スケジュールを「システム起動時」で起動、その後ほったらかしでping打ちまくり!です(滝汗

