純規の暇人趣味ブログ

首を突っ込んで足を洗う

Windowsで複数のLAN(NIC)を使う

      HimaJyun

ここ2週間で散々な目に遭いました、これで今年はずっと幸運でしょう……トラブル続きの@HimaJyunです。

今回はWindowsに2つのLAN(NIC)を接続して、接続先に応じて使い分けるということをやってみたので、そのやり方でもまとめてみようと思います。

ネットが増えた

先日、我が家に2本目のインターネット回線が来ました(PPPoEマルチセッションではなく、本当に2本目の光回線を引き込んだ)

前までは物理的な接続が不可能な距離にルータがあり「クソ遅いWi-Fi」として接続していたのですが、今回は別の(使っているPCにより近い)部屋にルータを設置したので有線接続にしました。

早いですね、良いですね……じゃなくて、早いのはいいのですが1つ問題がありました。

サーバ、どうする?

我が家にはこのブログを配信しているWebサーバをはじめ、いくつかのサーバが存在しています。

そして、それらは前から存在している回線(仮にA回線としましょう)に接続されています。A回線は固定IPになっています。

今回新たに引き込んだ回線(B回線としましょう)は固定IPにはなっておらず、サーバを接続する予定はありません。

サーバはA回線に繋がっており、LAN側からしか管理が出来ないようになっています。

今回PCに有線接続されたのはB回線側です、そうです、管理できないんですね、はい。

そこで私は愚直にもPCに2本の回線を繋げることにしました(VLANなどは使用していません(と言うか存在を後から知りました、まだまだ勉強不足))

インターネットへの接続を高速なB回線、サーバへの接続をA回線で行いたい。

どうすれば上手い具合に使い分けがされるのか? これが今回の課題です。

(相変わらずグダグダで前置きが長い、というわけでやっとこさ本文です。)

2回線を使い分け

2LAN、というわけで多分これはVPN経由で接続する場合でも同じ事なんじゃないかと思う、が、VPNにはまだ詳しくないので知らない。

Windowsでの操作だけど、やってる事は単なるネットワークの設定なのでLinuxでもそう変わらないはず。

というわけで、IP周りの設定は以下のようになっている。

  • A:192.168.1.1
  • B:192.168.0.1

今回は運良く別々のサブネットになっていたが、これがダブっていたら多分碌な事にならないと思うのでルータを弄ってずらした方が良い。

要は192.168.1.1/24に接続する時のみA回線を使用してくれればよい。

デフォルトゲートウェイは1つ

2回線を同時に確立させるためには、インターネットに出ない側(A回線)のデフォルトゲートウェイを無効にする必要がある。(有効でも一応動いたりするが、ネットワーク的には間違っている)

つまり無効にされる側のDHCPを切って静的にローカルIPを割り当てる必要があるってわけ。

デフォルトゲートウェイとは「どこに送ればいいかわからないパケット」を送る宛先になる。

例えば機器がLAN内であればどこに送れば良いかが分かるので、デフォルトゲートウェイを介さずに直接通信が行われる。

一方インターネットに出るパケットはプロバイダを介したりごちゃごちゃと処理が必要なので、それを代わりに受け持つ存在が必要になる。

これがデフォルトゲートウェイ(説明を諦めた

端折っていうとインターネットに出る必要があるパケットを送り付ける宛先(大抵はルータ)

デフォルトゲートウェイは「デフォルト」ゲートウェイだ、デフォルトが2つあるのはおかしい。

「どこに送れば良いか分からない物を受け付けますよ」なんて言う人が2人居たらそいつらのどちらに依頼すれば良いのか分からない、というわけ。

もちろんデフォルトゲートウェイを切ればその回線からはインターネットに出られなくなるが、そんな事はどうでもいい(もう1回線あるし)

今回はサーバにだけ繋ぎたい192.168.1.1に属する側のデフォルトゲートウェイを無効(空)にした。

ちなみにこうすると「インターネットアクセスなし」となるが無視してOK、「インターネット」へのアクセスがないだけでLANには繋がっている。

ルーティングテーブルを編集する

次は192.168.1.1/24(サーバ)にアクセスするときのみA回線を利用するように設定が必要

ただしここはやらなくても繋がったりする、繋がるならやらなくて良いと思う、多分……(少なくとも手元のPCではそのまま繋がった)

ルーティングテーブルは端的に言えばパケットの送り先を決めるためのルール表みたいなもの。

ここに「192.168.1.1/24はどこそこへ送ってくださいね」という定義を追加する。

これの追加は簡単で、管理者権限のコマンドプロンプトから以下のコマンドを放つ

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

<ネットワーク>はすなわちネットワークの開始アドレス(192.168.1.0など、たいていの場合は0)

「-p」は設定を恒久的に、つまり再起動しても維持されるようにするため、心配ならpなしでテストしてからでもOK。

つまり今回の場合は以下の通りになる。

route -p add 192.168.1.0 mask 255.255.255.0 192.168.1.1

また、メトリックやインターフェースを指定することも出来る。

その場合は以下の通り。

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

メトリックは小さいほうが優先されるので、適当に1にでもしておけばいい。

インターフェースは「route print」を実行した際に「インターフェイス一覧」に表示されている番号がそれ。

インターフェイス一覧
  1...00 00 00 00 00 00 ......HogeHoge VeryVery HighSpeed NIC

値は適当だが、この場合だと「1」がインターフェースの番号になる。

省略すると自動で最適な値が選択されるらしいが、明示的に指定したいならどうぞ。

設定を間違えて削除したいときは以下の通り

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

すなわちこんな感じ

route delete 192.168.1.0 mask 255.255.255.0

設定は「route print」した際の「固定ルート」の所にある、最初からある169.254……は正常なのでそのままでOK

有線+無線でのおせっかい機能

Windowsには相変わらずお節介機能が備わっており、有線+無線での2回線構成の場合、起動時に無線が自動で接続されない(省エネ目的らしい)

MSの公式ページを参考にして、両回線を自動で接続するようにする。

ちなみに自分は10 Proなのでグループポリシーを設定する、これはHomeとかでは使えないみたいなので、MS公式ページを参考にレジストリを編集する方法をどうぞ。

まずは検索ボックスに「gpedit.msc」と入れ、「ローカルグループポリシーエディター」を起動する。

「コンピューターの構成」->「管理用テンプレート」->「ネットワーク」->「Windows接続マネージャー」へと進む。

「インターネットまたは Windows ドメインへの同時接続の数を最小化する」をダブルクリックし、未構成から「無効」に変更する。

これでOK。

出来上がり

これで2本のインターネット回線をイイカンジに使い分けることが出来るようになりました。

トラブル続きの二週間だったので遅れを取り戻さないと……

 - サーバ運営