AC-5

某SEの雑記帳

windows serverでNICを2枚挿す場合の設定

      2017/11/21

WindowsサーバーをWebサーバーとして使う機会があり、公開用のIPアドレスとローカルネットワーク用のIPアドレスでセグメントを分けて利用する為、
NIC(LANカード)を2枚利用する設定を行いました。
公開用セグメントにはロードバランサーを利用して、グローバルIPアドレスと公開用IPアドレスを紐付けています。

環境

OS:Windows Server 2012 R2
公開用IPアドレス:192.168.0.100
ローカルIPアドレス:192.168.1.100

NICの設定

Windows Server 2012 R2でのNICの設定方法になります。
右下のアイコンを右クリックして、「ネットワークと共有センターを開く」を選択します。

どちらからでも良いのですが、まずは公開用のアドレスを設定します。
公開用アドレスを設定するNICを選択します。

プロパティを選択します。

インターネットプロトコルバージョン4(TCP/IPv4)を選択してプロパティを押します。

ここまでの手順は、後述するローカルIPアドレスの設定でも同一です。
公開用アドレスの情報を入力します。
先程の環境に記載した通り、こちらは公開用ですので、
IPアドレス:192.168.0.100
サブネットマスク:255.255.255.0
デフォルトゲートウェイ:192.168.0.1
優先DNSサーバー:8.8.8.8
代替DNSサーバー:4.4.4.4
にしました。
こちらの設定は各自で適宜変更してください。

デフォルトゲートウェイはNICが複数枚でも1つだけ設定する

次にローカル側の設定を行いますが、ここで注意するのはデフォルトゲートウェイは1つだけ設定するという事です。
有効にしていても動いてしまう事もありますが、ネットワークの設定としては間違っています。

デフォルトゲートウェイは「どこに送ればいいか分からないパケットの送り先」となります。
同一セグメント内であれば直接通信できますが、異なるセグメントや外部のIPアドレスへのアドレス等、宛先を知らないパケットに関してはデフォルトゲートウェイに聞くという動きになります。

というわけで、先程設定したNICともう一方のNICのインターネットプロトコルバージョン4(TCP/IPv4)のプロパティを開くところまでは同様の手順です。
プロパティが開いたら今回の例では以下のように設定をいれました。

これで設定は終わったと思いきや、他のセグメントからpingを打つと届きません。
例えば、スイッチでは192.168.1.0/24とルーティングの設定がちゃんとされている192.168.2.0/24から、192.168.1.100にpingを打ったとします。
すると、たぶんrequest timeoutとなり返ってきません。
これは実は192.168.2.0/24から192.168.1.100へのpingは届いているのですが、192.168.1.100から192.168.2.0/24へ返すパケットが、
192.168.1.100の本来のデフォルトゲートウェイ(例として192.168.1.1)に聞かなければいけないのに、
先に設定したNICのデフォルトゲートウェイ(ここでは192.168.0.1)に聞きにいってしまっているので、戻りのICMPパケットが返ってきていない状態です。

ですので、サーバ自身に、192.168.2.0/24のパケットは192.168.0.1に聞いてくださいというルールを作る必要があります。
これをルーティングテーブルといいます。

ルーティングテーブルに追加する

管理者権限でコマンドプロンプトを起動して、以下のコマンドを入力します。

route -p add <ネットワーク> mask <マスク> <ゲートウェイ>

<ネットワーク>はネットワークの開始アドレスなので、192.168.2.0などのだいたいは最後が0になります。
-pは設定を恒久的にするというオプションです。
こちらを入れておかないと、再起動したら消えてしまいます。

今回は、下記のようになります。

route -p add 192.168.2.1 mask 255.255.255.0 192.168.1.1

また、ルーティングテーブルは複数設定できるので、優先度を指定するメトリックやインターフェースを指定する事もできます。
その場合は以下のようになります。

route -p add <ネットワーク> mask <マスク> <ゲートウェイ> metric <メトリック> if <インターフェース>

メトリックは小さい方が優先されるので、1が優先されます。
インターフェースは「route print」コマンドを実行すると「インターフェイス一覧」に表示されている先頭の数字になります。
省略しても大丈夫ですが、明示的に指定する事が可能です。

設定を間違えてしまい、削除する場合は以下のようになります。

route delete <ネットワーク> mask <マスク>

今回は以下のようになります。

route delete 192.168.2.1 mask 255.255.255.0

以上で、NICの2枚挿しの設定ができたかと思います。

 - Windows