目的
今回の記事では仮想マシンのネットワーク接続方式についてまとめました。仮想マシンで設定するネットワーク接続方式ですが、なんとなく「NAT」「ブリッジ」....程度にしか知らない人が特に多い印象です。
実務ではサーバ構築時に設定することが多いので、何となくではなく仕組みについてもしっかり理解した状態でベストな接続方式を選べるようにまとめました。
ネットワーク接続方式まとめ
① NAT
ホストOSのIPアドレスを共有して、仮想マシン(VM)から外部のネットワークへ通信できるようにするネットワーク接続方式です。
仕組み
VMの「プライベートIPアドレス」をホストOSの「グローバルIPアドレス」に変換して外部と接続します。ただし、外部からVMへの直接的な通信は不可能です。また、外部接続用に使用するネットワーク接続方式なのでVM同士も通信はできません。外部ネットワークからVMにはホストを使用した「ポートフォワーディング」が必須です。
<VMから外部ネットワークと接続するとき(アウトバウンド)>

送信元は「192.168.100.10 : 50000」ですが、NAT(ホスト)で「192.168.1.10 : 60001」に変換、そしてデフォルトゲートウェイに接続してNAT(LAN上の)がグローバルIPアドレスに変換してから外部ネットワークと通信します。
*ポートは動的ポート(どの番号を使用するか指定も可能)。
<外部ネットワークからVMと接続するとき(インバウンド)>

外部ネットワークから接続する場合、ホスト側との「ポートフォワーディング」が必要です。
外部ネットワークから「203.0.113.5: 2222」宛に接続するとNAT(LAN上の)がホストの「プライベートIPアドレス」である「192.168.1.10: 60001」に変換、そして次はNAT(ホスト)がそれを「192.168.100.10 :50000」に変換して通信します。
*ポート番号は動的です(どの番号を使用するか指定も可能)。
② ブリッジ
仮想マシンをホストと同じ物理ネットワーク(LAN)に直接参加させ、独立した1台のコンピューターとして扱えるようにする接続方式。
NATの時のようにホストIPの経由は行わず」、独立したサーバとして直接外部ネットワークと通信ができる。
仕組み
ネットワーク上の「DHCPサーバ」からホストマシンと別の固有のIPアドレスが仮想マシンに割り当てられる。この「DHCPサーバ」は基本的に仮想化ソフトウェア上でなく、実ネットワーク上に存在する。VM用にホストの物理インターフェース(物理NIC)を割り当て、それを使用して外部ネットワークと通信します。
(VM → 仮想NIC → 物理NICの経路順)

このように、VMはDHCPサーバから「プライベートIPアドレス」を割り当てられます。
外部ネットワークと通信するときは、実ネットワーク上のデフォルトゲートウェイに向かい、そこでNAT(NAPT)により「プライベートIPアドレス → グローバルIPアドレス」に変換して外部と通信します。
注意しなければならないのは、物理ホストが社内ネットワークなど「組織ネットワーク」に所属しているときです。
このとき、IPアドレスを割り当てるDHCPサーバは社内ネットワーク上に存在します。
こういった組織で使用されるサーバは、セキュリティ上の観点からブリッジに参加しただけではIPアドレスを割り当てられないことが多いです。
私の会社もIPアドレスを割り当ててもらうには申請が必要で手動で行います。
③ Host-only
仮想マシンとホストの間だけで通信を行うためのネットワーク接続方式です。
言い換えると、ホストとVMのみの閉じたネットワークを作り出します。だから、外部ネットワークと通信は行えません。仮想化ソフトウェア上の「DHCPサーバ」がIPアドレスを割り当てます。
仕組み
ホストの中に「仮想ネットワーク」を作成します。そこにホスト、VMが参加するイメージです。
ホストの中に「仮想スイッチ」があり、そこにホストやVMが接続されているイメージです。

例えば、VM1からホストと通信する際の経路は「VM1 → 仮想スイッチ → ホスト」となり、物理NICは経由しません。
④ NATネットワーク
複数のVMを同じ仮想ネットワークに参加させつつ、その仮想ネットワークからホスト(NAT)を使って外部ネットワークに接続する方式です。
NATとHost-onlyを組み合わせたような方式です。NATと同じで外部ネットワークからVMに直接的な通信はできません。しかし、NATと違ってNATネットワークではVM同士の通信は可能です。もちろん外部ネットワークからVMへの接続には「ポートフォワーディング」が必要です。

NAT(ホスト)を使用するので、ホストの物理NICを使用して外部ネットワークと通信します。
⑤ 内部ネットワーク
VM同士だけで通信するための閉じたネットワークです。
*仮想化ソフトウェアの種類によっては、ホストとVMが通信することが可能です。
仕組み
「仮想スイッチ」を使用して、そこに各VMを接続します。

まとめ
以上になります。
用語だけでなくその仕組みを理解するとネットワークの理解がさらに深まります。仕組みを理解することで要件にあった最適な接続方式を選ぶことができるようになります。

No responses yet