WinPCに2枚のNICを使う
Oct 2013 coskx

1.はじめに

家庭でセキュリティのために2つのLANを持つことがある.
図のように,1つは外部に発信するLANで,もう1つは基本的に家庭内向けLANを想定している.

大事なのはNICを2枚持つ管理用PCのネットワーク設定である.
2つのNICから見て,家庭内のノードはそれぞれ異なるIPアドレスを持つので,混乱することはない.
ところがWAN内のノードにアクセスする際はどちら側からアクセスしてよいかわからなくなる.

そこで,設定者の意図として,管理用PCで次の状況を想定する.
通常のWANアクセスは,192.168.1.1(ルータB)経由でよいが,
WANの114.164.67.1はWeb運営上の理由などで192.168.0.1(ルータA)経由としたい.

このように複数の経路で目的IPに到達する手段がある場合,
どうしたいのかを示す設定が追加するルーティング設定である.

2.管理PCにおける2枚のNICの設定

2枚のNICは次のように設定されているものとする.あるいはDHCPの設定のまま.

NICA

IPAddress 192.168.0.2
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 登録しない
DNS 登録しない

NICB(こちらはDHCPによる設定そのままの場合もある)

IPAddress 192.168.1.2
サブネットマスク 255.255.255.0
デフォルトゲートウェイ 192.168.1.1
DNS 192.168.1.1

デフォルトゲートウェイの登録は1つのPCにおいて1つだけ

3.ルーティングテーブル

通常は自動でルーティングが行われるので,それに任せればよい.
WinPCの現在のルーティングテーブルの表示には「route print」のコマンドを使う.

C:\>route print
===========================================================================
インターフェイス一覧
 15...4c e6 76 xx xx xx ......NICAの名前
 10...6c 62 6d xx xx xx ......NICBの名前
  1...........................Software Loopback Interface 1
 11...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 12...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイ
ス  メトリック
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.2     20
        127.0.0.0        255.0.0.0            リンク上         127.0.0.1    306
        127.0.0.1  255.255.255.255            リンク上         127.0.0.1    306
  127.255.255.255  255.255.255.255            リンク上         127.0.0.1    306
      192.168.0.0    255.255.255.0            リンク上       192.168.0.2    276
      192.168.0.2  255.255.255.255            リンク上       192.168.0.2    276
    192.168.0.255  255.255.255.255            リンク上       192.168.0.2    276
      192.168.1.0    255.255.255.0            リンク上       192.168.1.2    266
      192.168.1.2  255.255.255.255            リンク上       192.168.1.2    266
    192.168.1.255  255.255.255.255            リンク上       192.168.1.2    266
        224.0.0.0        240.0.0.0            リンク上         127.0.0.1    306
        224.0.0.0        240.0.0.0            リンク上       192.168.0.2    276
        224.0.0.0        240.0.0.0            リンク上       192.168.1.2    266
  255.255.255.255  255.255.255.255            リンク上         127.0.0.1    306
  255.255.255.255  255.255.255.255            リンク上       192.168.0.2    276
  255.255.255.255  255.255.255.255            リンク上       192.168.1.2    266
===========================================================================
固定ルート:
  なし

IPv6 ルート テーブル
===========================================================================
アクティブ ルート:
 If メトリック ネットワーク宛先      ゲートウェイ
  1    306 ::1/128                  リンク上
  1    306 ff00::/8                 リンク上
===========================================================================
固定ルート:
  なし


このテーブルでは最長一致でどのNICからアクセスするかを設定している.
同じ一致なら,メトリック値が小さい方にアクセスする.
このままの設定では,
「192.168.0.255  255.255.255.255            リンク上       192.168.0.2    276」
より,192.168.0.xxへのアクセスは192.168.0.2を使い,

「192.168.1.255  255.255.255.255            リンク上       192.168.1.2    266」
より,192.168.1.xxへのアクセスは192.168.1.2を使い,

「 0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.2     20」
より,WANに対しては192.168.1.2を使い,
デフォルトゲートウェイである192.168.1.1(ルータB)にアクセスする.

「リンク上」というのは,相手が同じネットワーク上なので,ゲートウェイを通さずに直接
アクセスするという意味である。
 
4.ルーティング
ここで,通常のWANアクセスは,192.168.1.1(ルータB)経由でよいが,
WANの114.164.67.1はWeb運営上192.168.0.1(ルータA)経由にすると仮定する.
このような場合は,固定ルーティングをrouteコマンドで追加する.
 
(1)IPルーティング有効化
C:\>ipconfig /allで,ルーティング機能の初期状態が無効になっていることを確認する

C:\>ipconfig /all

Windows IP 構成

   ホスト名 . . . . . . . . . . . . : xxxxxxxxx
   プライマリ DNS サフィックス . . . . . . . :
   ノード タイプ . . . . . . . . . . . . : ハイブリッド
   IP ルーティング有効 . . . . . . . . : いいえ
   WINS プロキシ有効 . . . . . . . . : いいえ
   DNS サフィックス検索一覧 . . . . . . : yyyyyyyyy



◎レジストリエディタによりIPルーティングを有効にする

レジストリエディタによりIPルーティングを有効にするには、
以下のレジストリの値を1にセットする
キー HKEY_LOCAL_MACHINE のSYSTEM\CurrentControlSet\Services\Tcpip\Parameters
名称 IPEnableRouter
種類 REG_DWORD
データ 1   (する:1,しない:0)

◎システム再起動する

C:\>ipconfig /allで有効になったのを確認する

C:\>ipconfig /all

Windows IP 構成

   ホスト名 . . . . . . . . . . . . : xxxxxxxxx
   プライマリ DNS サフィックス . . . . . . . :
   ノード タイプ . . . . . . . . . . . . : ハイブリッド
   IP ルーティング有効 . . . . . . . . : はい
   WINS プロキシ有効 . . . . . . . . : いいえ
   DNS サフィックス検索一覧 . . . . . . : yyyyyyyyy


 
(2)routeコマンドによる設定

◎以下の作業は管理者として開いたコマンドプロンプトのコンソールで行う。

routeコマンドは
route[ -f][ -p][ -4][ -6][ PRINT| ADD| DELETE| CHANGE[ 宛先IPアドレス][ MASK サブネットマスクアドレス[ ゲートウェイIPアドレス][ METRIC メトリック数][ IF インターフェイス名]]
のように使う.
ただし,「route -f」は,全ルーティングの消去
(再起動すると,自動的にできる範囲のみ自動でルーティングテーブルを再構築する)
-pを付けないで設定するとその設定はPC再起動まで有効
-pを付けると,PC再起動しても,その設定は有効となる
-4 IPv4
-6 IPv6
 
ここでは114.164.67.1へのルートを192.168.0.2から192.168.0.1(ルータA)にしたいので,
C:\>route -p add 114.164.67.1 mask 255.255.255.255 192.168.0.1 metric 10 if 15
のようにすればよい.
メトリック値は小さいほど優先
インターフェイス名15というのは,ルーティングテーブル表示のところで,
15...4c e6 76 xx xx xx ......NICAの名前」のように表示されている番号を使う.
そうすると,次のように固定ルートが作られる.

C:\>route print
===========================================================================
インターフェイス一覧
 15...4c e6 76 xx xx xx ......NICAの名前
 10...6c 62 6d xx xx xx ......NICBの名前
  1...........................Software Loopback Interface 1
 11...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter
 12...00 00 00 00 00 00 00 e0 Teredo Tunneling Pseudo-Interface
 14...00 00 00 00 00 00 00 e0 Microsoft ISATAP Adapter #2
===========================================================================

IPv4 ルート テーブル
===========================================================================
アクティブ ルート:
ネットワーク宛先        ネットマスク          ゲートウェイ       インターフェイ
ス  メトリック
          0.0.0.0          0.0.0.0      192.168.1.1      192.168.1.2     20
     114.164.67.1  255.255.255.255      192.168.0.1      192.168.0.2     35
        127.0.0.0        255.0.0.0            リンク上         127.0.0.1    306
        127.0.0.1  255.255.255.255            リンク上         127.0.0.1    306
  127.255.255.255  255.255.255.255            リンク上         127.0.0.1    306
      192.168.0.0    255.255.255.0            リンク上       192.168.0.2    276
      192.168.0.2  255.255.255.255            リンク上       192.168.0.2    276
    192.168.0.255  255.255.255.255            リンク上       192.168.0.2    276
      192.168.1.0    255.255.255.0            リンク上       192.168.1.2    266
      192.168.1.2  255.255.255.255            リンク上       192.168.1.2    266
    192.168.1.255  255.255.255.255            リンク上       192.168.1.2    266
        224.0.0.0        240.0.0.0            リンク上         127.0.0.1    306
        224.0.0.0        240.0.0.0            リンク上       192.168.0.2    276
        224.0.0.0        240.0.0.0            リンク上       192.168.1.2    266
  255.255.255.255  255.255.255.255            リンク上         127.0.0.1    306
  255.255.255.255  255.255.255.255            リンク上       192.168.0.2    276
  255.255.255.255  255.255.255.255            リンク上       192.168.1.2    266
===========================================================================
固定ルート:
  ネットワーク アドレス          ネットマスク  ゲートウェイ アドレス  メトリック

     114.164.67.1  255.255.255.255      192.168.0.1      15
===========================================================================

IPv6 ルート テーブル
===========================================================================
アクティブ ルート:
 If メトリック ネットワーク宛先      ゲートウェイ
  1    306 ::1/128                  リンク上
  1    306 ff00::/8                 リンク上
===========================================================================
固定ルート:
  なし


もっとまとめて,114.164.67.0~114.164.67.255へのルートを付け加えたい場合は,
C:\>route -p add 114.164.67.0 mask 255.255.255.0 192.168.0.1 metric 10 if 15
のようにすればよい.
ルーティングの記述は,何個でも付け加えることができる.

(3)ルーティングコマンドの例

1)単に付け加えるだけなら add を使って
route -p add 114.164.67.0 mask 255.255.255.0 192.168.0.1 metric 10 if 15

すでにaddされた状態でもう一度同じ行き先をaddすることはできない
メトリックなどの変更は3)changeを使う

2)削除したい時  metricは書かない
(ゲートウェイ,インターフェイスIDも書かない場合もあります)
route -p delete 114.164.67.0 mask 255.255.255.0 192.168.0.1 if 15
route -p delete 114.164.67.0 mask 255.255.255.0
route -p delete 114.164.67.0 mask 255.255.255.0 if 15
route -p delete 114.164.67.0

3)変更したい時
ゲートウェイ or メトリックを変更したい時
route -p change 114.164.67.0 mask 255.255.255.0 192.168.0.1 metric 100 if 15

4)ゲートウェイを指定しないでLAN内を指定し,メトリックのみ指定したい場合は,
ゲートウェイのところに自分のIPadrを書く。
ただし,このコマンドはPCが自分のIPアドレスを確定された状態で使うこと。
(自分のIPアドレスが確定されていない場合は指定したアドレスをゲートウェイに
設定してしまう。すなわち-pオプションは使えない。)

route add 192.168.0.0 mask 255.255.255.0 192.168.0.2 metric 200 if 15
または
route change 192.168.0.0 mask 255.255.255.0 192.168.0.2 metric 200 if 15

5)全ルーティング設定をクリア
route -f
再起動すると,できる範囲でのみ自動でルーティングテーブルを再構築する.