VMネットワーキング

作成日:
VM network infrastructure

概要

仮想マシン(VM)のネットワーク設定に関する知識とメモ。

ネットワークモードの種類

仮想マシンには主に3つのネットワークモードがある。

モード外部からのアクセスインターネット接続ホストとの通信使用例
NAT❌ 不可✅ 可能❌ 制限あり一般的なWeb閲覧、開発
ブリッジ✅ 可能✅ 可能✅ 可能サーバー公開、ネットワークテスト
ホストオンリー❌ 不可❌ 不可✅ 可能隔離されたテスト環境

NAT(Network Address Translation)

NATとは

VMがホストマシンのIPアドレスを共有してインターネットにアクセスする方式。

動作の仕組み

[インターネット]

       ↓ (ホストのIPアドレスを使用)
[ホストマシン] ← 192.168.1.100(外部から見えるIP)

       ↓ NAT変換
[仮想マシン]  ← 10.0.2.15(内部プライベートIP)
  1. 送信時: VMからの通信は、ホストのIPアドレスに変換されてインターネットに出ていく
  2. 受信時: 外部からの応答は、ホストがNATテーブルを参照してVMに転送

NATのメリット

  • セキュリティ: 外部から直接アクセスできない
  • 簡単な設定: ネットワーク設定が不要
  • IPアドレス節約: ホストのIPを共有

NATのデメリット

  • 外部アクセス制限: ポートフォワーディングが必要
  • VM間通信制限: 他のVMやホストからの直接通信が制限される

ポートフォワーディング

外部からVMにアクセスするには、ホストのポートをVMのポートに転送する設定が必要。

[外部クライアント] → [ホスト:8080] → [VM:80]

VirtualBoxでの設定例:

  1. VM設定 → ネットワーク → 高度な設定 → ポートフォワーディング
  2. ホストポート: 8080、ゲストポート: 80 を設定

ブリッジモード

ブリッジとは

VMが物理ネットワークに直接接続され、独立したIPアドレスを持つ方式。

動作の仕組み

[インターネット]


[ルーター/DHCP]

   ┌───┴───┐
   ↓       ↓
[ホスト]  [VM]
192.168.1.100  192.168.1.101
  • VMは物理ネットワーク上の独立したデバイスとして認識される
  • DHCPから独自のIPアドレスを取得

ブリッジのメリット

  • 完全なネットワークアクセス: 外部から直接アクセス可能
  • VM間通信: 他のVMやホストと自由に通信
  • サーバー公開: Webサーバーなどの公開に適している

ブリッジのデメリット

  • IPアドレス消費: VMごとにIPアドレスが必要
  • セキュリティリスク: 外部から直接アクセス可能
  • ネットワーク依存: 物理ネットワークの影響を受ける

ホストオンリーモード

ホストオンリーとは

VMがホストマシンとのみ通信できる隔離されたネットワーク。

動作の仕組み

[インターネット]


[ホストマシン] ← 192.168.1.100(外部ネットワーク)
       ↑          192.168.56.1(ホストオンリーネットワーク)

[仮想マシン]  ← 192.168.56.101(ホストオンリーネットワーク)

ホストオンリーのメリット

  • 完全な隔離: 外部ネットワークから完全に分離
  • 安全なテスト環境: マルウェア解析などに適している
  • ホストとの通信: ファイル共有やSSH接続が可能

ホストオンリーのデメリット

  • インターネット不可: パッケージのダウンロードなどができない
  • 外部サービス利用不可: API連携などのテストが制限される

モード選択の指針

ユースケース推奨モード
一般的な開発・Web閲覧NAT
サーバー公開・外部からのアクセスブリッジ
セキュリティテスト・隔離環境ホストオンリー
複数VMのクラスター構築ブリッジ または 内部ネットワーク

Docker DesktopとNAT

macOS/WindowsのDocker Desktopでは、内部でLinux VMが動作しており、このVMはNATモードでホストと接続されている。

# ポートフォワーディングでコンテナを公開
docker run -p 8080:80 nginx
# → ホストの8080ポートへのアクセスがコンテナの80ポートに転送される

関連: Docker

参考リンク