Hyper-Vで複数のネットワークをNAT構築する為の設定

タイトルの通り、Hyper-VでNAT環境を構築する方法です。ちょっと工夫が必要だったのでメモ。この辺、VMwareの方が便利ですね。

[Hyper-V] [NAT]とかで検索してもネットワーク共有 or Windows Serverのルーティング方法しか出てこず、ネットワーク共有でNATするとなぜかプチプチネットワークが切れるので、思い切ってVyattaで組んでみました。
サーバーで使うわけではないのでパフォーマンスは考慮しません。

作りたい構成

  • NAT配下のネットワーク構成
    • プライベート1(192.168.136.0/24)
    • プライベート2(192.168.137.0/24)
  • Vyattaの構成
    • インターフェースを3つ持たせる。
    • 外部x1、プライベートx2とする。
  • winsrv2012-1(Windows Server 2012 R2)
    • プライベート1に属する
  • winsrv2012-3(Windows Server 2012 R2)
    • プライベート2に属する


1. 仮想スイッチの設定

  • [Hyper-V マネージャー]から、[仮想スイッチマネージャー...]を起動します。
  • [新しい仮想ネットワークスイッチ]で、外部を1つ、プライベートを1つ作成します。



2. Vyattaのインストール・設定

  • Vyattaには、Hyper-V等、仮想マシン対応版のISOが配布されているのでダウンロードしてきます。

http://vyatta.org/downloads
[Virtualization ISO]というイメージです。

  • Vyattaのネットワークを設定します。

Vyattaの設定で、ネットワークアダプターを3つ追加します。
この時、仮想スイッチマネージャーで作成した、3つのスイッチ(外部1つ、プライベート2つ)にそれぞれ接続します。

ポイント
ここまでの構成で、1つの仮想スイッチに、2つのネットワークが混在している状況になります。従って、DHCPやファイル共有を設定したときに、別のネットワークと混在してしまう為、VLANを設定します。
※この点については、複数の仮想プライベートスイッチを作成し、Vyatta・サーバ・クライアントをそれぞれ接続することでもネットワークを分離することができます。ただ、VLANIDで分離する方法と比べると、新しいネットワークを作るたびに、仮想スイッチを作成しなければいけないというデメリットがあります。

[仮想LAN ID を有効にする]にチェックを入れ、2つのプライベートネットワークを、2と3に設定します。


  • Vyattaのコンフィグを入れます。

ネットワークはそれぞれ

    • eth0が192.168.137.0/24(VLAN ID:2)
    • eth2が192.168.136.0/24(VLAN ID:3)
    • eth1が外部ネットワーク

です。

set interfaces ethernet eth0 address '192.168.137.1/24'
set interfaces ethernet eth0 duplex 'auto'
set interfaces ethernet eth0 hw-id '00:15:5d:02:64:20'
set interfaces ethernet eth0 smp_affinity 'auto'
set interfaces ethernet eth0 speed 'auto'
set interfaces ethernet eth1 address 'dhcp'
set interfaces ethernet eth1 duplex 'auto'
set interfaces ethernet eth1 hw-id '00:15:5d:02:64:21'
set interfaces ethernet eth1 smp_affinity 'auto'
set interfaces ethernet eth1 speed 'auto'
set interfaces ethernet eth2 address '192.168.136.1/24'
set interfaces ethernet eth2 hw-id '00:15:5d:02:64:24'
set interfaces loopback 'lo'
set nat source rule 10 outbound-interface 'eth1'
set nat source rule 10 source address '192.168.137.0/24'
set nat source rule 10 translation address 'masquerade'
set nat source rule 20 outbound-interface 'eth1'
set nat source rule 20 source address '192.168.136.0/24'
set nat source rule 20 translation address 'masquerade'
set service https http-redirect 'enable'
set service ssh port '22'
set system config-management commit-revisions '20'
set system console device ttyS0 speed '9600'
set system host-name 'vyatta'
set system login user vyatta authentication encrypted-password '$1$cN6DpZCd$ttZRxXZ8M04m0L9sSdC1D0'
set system login user vyatta level 'admin'
set system ntp server '0.vyatta.pool.ntp.org'
set system ntp server '1.vyatta.pool.ntp.org'
set system ntp server '2.vyatta.pool.ntp.org'
set system package auto-sync '1'
set system package repository community components 'main'
set system package repository community distribution 'stable'
set system package repository community password ''
set system package repository community url 'http://packages.vyatta.com/vyatta'
set system package repository community username ''
set system syslog global facility all level 'notice'
set system syslog global facility protocols level 'debug'
set system time-zone 'Asia/Tokyo'

3. 各サーバ・クライアントの設定

あとは、各サーバ・クライアントのネットワークアダプターの設定で、それぞれVLAN IDを設定したプライベートスイッチを作成して完了です。