複数NICがあるサーバーでデフォルトゲートウェイが設定されていないNIC側にアクセス出来ない。スタティックルート設定で通信する方法

複数NICがあるサーバーの場合、
クライアントから片方のNICのIPアドレスにはアクセス接続出来るのに、もう一つのNICのIPアドレスにはアクセス接続できなかったりします。
一般的に、デフォルトゲートウェイが設定されていない側のIPアドレスに接続出来なくなります。
まあ、当然と言えば当然なのですが、、、
どうしてもネットワークでアクセスしたい!そんな場合にはスタティックルートを設定します。

 

複数NICがあるサーバーでデフォルトゲートウェイが設定されていないNIC側にアクセス出来ない

image

今回の環境・前提条件:

サーバー:

  • Windows server 2012

クライアント(ノートパソコン)

  • Windows 7 Pro

青いLANケーブルのネットワークは、例えば192.168.1.0/24のネットワークで、
オレンジ色のLANケーブルのネットワークは例えば192.168.100.0/24のネットワークです。
サーバーもクライアントもともに、デフォルトゲートウェイは青いネットワーク側のインターフェイスで設定してあります。
ここで、クライアントからオレンジ側のサーバーインターフェイス(192.168.100.1)にpingをしても応答が帰ってこないのです。

 

インターフェイスがPingが応答無い理由。それはルートテーブルにある

image

なぜならば、

  • クライアント → デフォルトゲートウェイ → サーバー(オレンジ側)

は届くのですが、帰りの

  • サーバー(オレンジ側) → × (ゲートウェイが無いから別のネットワークに応答できない)

という現象が起きてしまうから通信が出来ないのです。

サーバー上で「route print」コマンドを実行し、上記のようにルーティングテーブルを確認してみると、
「192.168.1.0」へのネットワーク宛先には、インターフェイス「192.168.1.1」からしか応答できないという設定になっています。
このため、「192.168.1.0」のネットワーク宛先には、「192.168.100.1」のインターフェイスは応答できないんです。

 

サーバー側にスタティックルート設定で通信出来るようにする方法

今回の環境の場合、サーバーにスタティックルートを追加し、通信出来るようにすることが出来ます。
ポイントは

  • スタティックルートはインターフェイス毎に設定できる

という点です。

インターフェイスの番号は、「route print」で確認します。
image

複数あるインターフェイスがどっちのIPアドレスがどっちのインターフェイスかわからない場合は、「ipconfig /all」コマンドで確認できます。
image

次に、以下のコマンドで192.168.100.1側のインターフェイスにもルートを追加します。

route –4 add 192.168.1.0 mask 255.255.255.0 192.168.100.254 IF 12

image
ミソは、「IF」オプションでインターフェイス番号を指定していることです。
これにより、「192.168.1.0」ネットワーク宛先に対する「192.168.100.1」インターフェイスのルーティングが出来ました!
これでクライアント(ノートパソコン)からオレンジ側のIPアドレスにpingをすると応答が帰ってくるようになります。

ちなみに、
今回のroute追加コマンドはサーバー側のWindowsを再起動すると設定が無くなってしまいます。
永続的にルーティングを追加する設定は「-p」オプションの指定になりますが、詳しくはrouteコマンドのヘルプをご確認ください

route –?

image

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です