Windows Server(今回は 2016 を使用)をルータにする方法は2つ存在する。レジストリを編集する方法とサービスを起動する方法だ。
どちらの方法にせよ、サーバをルータ化するために、サーバは最低2つのNICを持っていなければならない。そしてクライアントのデフォルトゲートウェイには、そのサーバのIPアドレスが設定されている必要がある。
本記事では以下の環境のもと進行していく。
検証環境
本記事の検証環境は上図のようになっている。
ネットワークの基礎になるが、”192.168.1.1″ の Windows 10 端末と “192.168.2.2” の Windows 10 端末は相互に通信が通らない。
レジストリを編集する方法
1つ目の方法はレジストリを編集する方法だ。
具体的に言うと「HKEY_LOCAL_MACHINE\SYSTEM\CurrentCntrolSet\Services\Tcpip\Prameters」の「IPEnableRouter」のデータを「1」に設定するだけだ。
「IPEnableRouter」のデフォルト値は 0なので、1に変更する。
なお、設定を変更した後は再起動が必要だ。
疎通確認
GUI からサービスを起動する方法
2つ目の方法はサービスで「Routing and Remote Access」を開始する方法だ。
「サービス」を起動し、「Routing and Remote Access」を右クリック、「プロパティ」を開く。
「Routing and Remote Access」はデフォルトで「無効」になっているので、スタートアップの種類を「自動」にし、「適用」をクリックする。
※「手動」にした場合、次回起動時はサービスが無効に戻る。「自動」にすることで永久的に「Routing and Remote Access」を有効化する。
「開始」が実行できるようになるので、クリックする。
サービスの開始が始まる。5分程度。
「サービスの状態」が「実行中」になる。
なお、サービスの場合、サービスが開始すればルータとしての機能は即座に開始される。つまり、再起動が必要ない。
疎通確認
IP フォワーディング
Windows をルータにするといっても、これらの方法はあくまで IP フォワーディングを有効にするものだ。
ルータのようにルーティングするわけではない。
IP フォワーディングとルーティングの最大の違いは、ルーティングプロトコルによる経路選択を行うか行わないかだ。
IP フォワーディングは静的に設定された宛先にパケットをフォワードするだけなので、ルーティングのような冗長性のある動的な経路は提供されない。
IPフォワーディングとは、二つ以上のネットワークインターフェースやIPアドレスを持つネットワーク機器などで、一方が受信したIPパケットを一定のルールに基づいてもう一方から送信すること。IP通信の中継。
reference:IT用語辞典
ルーティングとは、ネットワーク上でデータを送信・転送する際に、宛先アドレスの情報を元に最適な転送経路を割り出すこと。特に、インターネットなどのIPネットワークにおいて、パケットの転送先を決定すること。
reference:IT用語辞典
ルーティングの追加は不要なのか
結果からわかるように、ルーティングの追加は必要ない。
サーバはもともと “192.168.1/24” と “192.168.2/24” のネットワーク(接続しているインターフェース)を知っているので、ルーティングを追加しなくてもパケットをフォワーディングできる。
レジストリとサービスのどちらがよいのか
サーバの再起動が問題ないのであれば、個人的にはレジストリをお勧めする。
なぜかというと、「Routing and Remote Access」を開始させるとシャットダウンに時間がかかる。
例えば、新規インストールした状態の Windows Server 2016 だと、下図のサービスのシャットダウンが2~3分程度かかった。普段は10秒程度でシャットダウンできていたことを考えると、時間がかかりすぎる。
といっても、上記は再起動の発生しやすい検証環境だからこそのデメリットだ。基本的にはどちらを選択しても問題ない。
ちなみに、Linux をルータにする方法も簡単なので、そちらもお勧めだ。
Reference