複数NICがあるサーバーの場合、
クライアントから片方のNICのIPアドレスにはアクセス接続出来るのに、もう一つのNICのIPアドレスにはアクセス接続できなかったりします。
一般的に、デフォルトゲートウェイが設定されていない側のIPアドレスに接続出来なくなります。
まあ、当然と言えば当然なのですが、、、
どうしてもネットワークでアクセスしたい!そんな場合にはスタティックルートを設定します。
レジュメ
複数NICがあるサーバーでデフォルトゲートウェイが設定されていないNIC側にアクセス出来ない
今回の環境・前提条件:
サーバー:
- Windows server 2012
クライアント(ノートパソコン)
- Windows 7 Pro
青いLANケーブルのネットワークは、例えば192.168.1.0/24のネットワークで、
オレンジ色のLANケーブルのネットワークは例えば192.168.100.0/24のネットワークです。
サーバーもクライアントもともに、デフォルトゲートウェイは青いネットワーク側のインターフェイスで設定してあります。
ここで、クライアントからオレンジ側のサーバーインターフェイス(192.168.100.1)にpingをしても応答が帰ってこないのです。
インターフェイスがPingが応答無い理由。それはルートテーブルにある
なぜならば、
- クライアント → デフォルトゲートウェイ → サーバー(オレンジ側)
は届くのですが、帰りの
- サーバー(オレンジ側) → × (ゲートウェイが無いから別のネットワークに応答できない)
という現象が起きてしまうから通信が出来ないのです。
サーバー上で「route print」コマンドを実行し、上記のようにルーティングテーブルを確認してみると、
「192.168.1.0」へのネットワーク宛先には、インターフェイス「192.168.1.1」からしか応答できないという設定になっています。
このため、「192.168.1.0」のネットワーク宛先には、「192.168.100.1」のインターフェイスは応答できないんです。
サーバー側にスタティックルート設定で通信出来るようにする方法
今回の環境の場合、サーバーにスタティックルートを追加し、通信出来るようにすることが出来ます。
ポイントは
- スタティックルートはインターフェイス毎に設定できる
という点です。
インターフェイスの番号は、「route print」で確認します。
複数あるインターフェイスがどっちのIPアドレスがどっちのインターフェイスかわからない場合は、「ipconfig /all」コマンドで確認できます。
次に、以下のコマンドで192.168.100.1側のインターフェイスにもルートを追加します。
route –4 add 192.168.1.0 mask 255.255.255.0 192.168.100.254 IF 12
ミソは、「IF」オプションでインターフェイス番号を指定していることです。
これにより、「192.168.1.0」ネットワーク宛先に対する「192.168.100.1」インターフェイスのルーティングが出来ました!
これでクライアント(ノートパソコン)からオレンジ側のIPアドレスにpingをすると応答が帰ってくるようになります。
ちなみに、
今回のroute追加コマンドはサーバー側のWindowsを再起動すると設定が無くなってしまいます。
永続的にルーティングを追加する設定は「-p」オプションの指定になりますが、詳しくはrouteコマンドのヘルプをご確認ください
route –?