トップ > Hyper-V 仮想マシンのネットワークアドレス変換

Hyper-V 仮想マシンのネットワークアドレス変換

はじめに

Hyper-V では仮想ネットワークアダプタとして、[外部]・[仮想ネットワーク]・[内部]を選べる。

[外部]だと Hyper-V を実行しているマシンと同セグメントの IP アドレスが仮想マシンの数分、必要になる。複数の元あったサーバーを統合する場合はこれがベストな選択なのだろうが、仮想マシン自体は仮想ネットワークに閉じ込めておきたい場合もある。

今回立ち上げた環境ではグローバルアドレスが複数用意できない環境であったため、仮想マシンは[仮想ネットワーク]にして、プライベートアドレスを割り振るしかなかった。この場合、ポートによってサービスを割り振ることで、あたかも 1 台のサーバーですべてのサービスが動作しているように見せることになる。 (まぁ、仮想マシンなので、物理的にはどっちにしても1台なわけだが)

動作自体は単純なポート転送なのだが、Windows で設定したことがなく、設定にかなり戸惑ったので、ここに記録しておく。

構成

構成は下記の通り。要は物理ネットワーク側(この図では"ユーザー")から S のホスト名で透過的に W, F, D の各サーバーに接続できればよい。

network.png

手順

  1. [サーバーマネージャ]の[役割の追加]から[ネットワークポリシーとアクセスサービス]のインストールを開始する。
    名前が直感的でなさすぎると思うが、これがルーティングやら NAT やらをしてくれる役割らしい。
    1. [役割サービス]では[ルーティングとリモートアクセスサービス]を選択し、インストールする。
  2. 完了すると[サーバーマネージャ]の[役割]に表示されるので、左ツリーの[ルーティングとリモートアクセス]を右クリックし、[ルーティングとリモートアクセスの構成と有効化]を選択する。
    1. [カスタム構成]で[NAT]にチェックを入れ、構成を完了する。
  3. [ルーティングとリモートアクセス]-[IPv4]-[NAT]を開く。
  4. メインパネルを右クリックし、[新しいインターフェース]で外部 NIC を選択する。
  5. 追加されたインターフェースをダブルクリックするとプロパティが開く。
    1. [NAT]タブで[インターネットに接続されるパブリックインターフェース]を選択し、[このインターフェースで NAT を有効にする]にチェックを入れる。
    2. [サービスとポート]タブで必要なサービスに対するポート変換を定義していく。
      nat.png
    3. [着信ポート]は S のポート、[プライベートアドレス]と[発信ポート]は転送先のサーバーのアドレスとポートである。
    4. たとえば[着信ポート]=33890、[プライベートアドレス]=192.168.1.2、[発信ポート]=3389 と設定すれば、S:33890 へのアクセスが 192.168.1.2:3389 に転送され、192.168.1.2 のリモートデスクトップが利用できるようになる。このようにそれぞれの仮想マシンにリモートデスクトップ用のポートをふっておけば、管理がラクになるだろう。

各種サービスのポート番号

役割ポート
リモートデスクトップ (RDP)
RDPTCP3389
データベース (MySQL)
MySQLTCP3306
Web サービス (IIS)
IIS(HTTP)TCP80
ファイル共有 (SMB)
ダイレクト・ホスティング SMB サービスTCP445
ダイレクト・ホスティング SMB サービスUCP445
NetBIOS セッション・サービスTCP139
NetBIOS データグラム・サービスUDP138
NetBIOS 名前サービスTCP137
NetBIOS 名前サービスUDP137
(2010/08/31 16:04:36)
2009/11/96
プロフィール

Kenz Yamada(山田研二)。1984年生。大阪。ちょっとずつ好きなプログラム作ってます。 好きなものはカメラと旅行。ガジェットや身の回り、ちょっとこだわります。 詳しくは Web mixi で。

Bookmark and Share