質問
仮想マシンにおける内部ネットワーク、外部ネットワーク、プライベートネットワークとは、それぞれどのようなもので、どのような使用方法がありますか? |
解答
仮想マシン(VirtualBox / VMware / Hyper-V など)でよく出てくる 内部ネットワーク・外部ネットワーク・プライベートネットワーク は、それぞれネットワークの「到達範囲」が異なります。 混乱しやすい部分なので、役割・特徴・用途 を明確に整理します。 # 1. 内部ネットワーク(Internal Network / Host-Only Network) 【概要】 * ホストOS ↔ ゲストOS(VM)間 のみ通信できるネットワーク * インターネットには出られない * 他の物理PCや外部ネットワークからは完全に隔離 VirtualBox の「内部ネットワーク」や VMware / Hyper-V の「ホスト専用ネットワーク」がこれに相当します。 【特徴】 * 安全性が高い * VM 同士の通信は可能(同じネットワークに参加していれば) * 外部に漏らしたくない検証環境に向く * ホストから SSH / HTTP などでアクセス可能 【用途】 * 開発用のVM環境(DB・REST API・アプリケーション) * セキュリティ検証(外部に情報を出したくない) * ホストPCとVMだけで閉じた環境構築 * TryHackMe のローカル版のようなペンテスト練習環境 # 2. 外部ネットワーク(Bridged / NAT) 外部ネットワークと言っても 2種類の意味 があります。 2-1. ブリッジ接続(Bridged Adapter) 【概要】 * 仮想マシンが 物理LANに直接ぶら下がる * VM が物理マシンと同じネットワーク内で「独立した1台のPC」として見える 【特徴】 * 外部ネットワーク → VM にアクセスできる * 社内LANや家庭LANに参加する * DHCPサーバから実IPをもらう 【用途】 * 物理PCと同じネットワークでサーバを立てたい場合(開発・テスト) * 仮想マシンを LAN 内の他PCからアクセスしたい場合 * 実サーバのように扱いたい場合(Webサーバ、DBサーバ、NAS) 2-2. NAT(Network Address Translation) 【概要】 * ホストの NIC(ネットワークカード)を借りて、VM が外部ネットワークへ出る * VM → 外部(インターネット) は可能 * 外部 → VM は基本的に不可(ポートフォワード設定すれば可能) 【特徴】 * 最も簡単で安全 * VM が外に出れて便利 * NATなので外部からVMは見えない(安全) 【用途】 * インターネットに出たいVM(Linuxアップデート、apt/yum/pacman など) * 外部公開の必要がない開発用VM * セキュリティリスクを低くしたい場合 # 3. プライベートネットワーク(Internal Network の狭義版) プライベートネットワークは文脈により意味が変わりますが、 多くのツール(Vagrant / Hyper-V など)では次の意味です。 【概要】 * ゲストOS同士のみ通信できる * ホストからはアクセスできる場合と、できない場合がある(実装依存) * インターネットから完全に隔離 * Private IP(10.x/172.16/192.168.x)を使う閉じたネットワーク 【特徴】 * 複数VMでクラスタ構築するときに便利(Kubernetes, Docker Swarm, Hadoop) * 外部から見られたくない * ホストは「ルーター」にならない限りアクセス不可のこともある 【用途】 * VM内クラスタ通信(Kubernetes ノード間、DBレプリケーション) * セキュリティ検証向け隔離環境 * ペンテスト・マルウェア解析の隔離環境 * 外部アクセス禁止の完全プライベートネットワーク # まとめ:3つの違い(最短版)
使い分けの実践的Tips * Kubernetesクラスタをローカル構築する場合 → プライベートネットワーク(VM同士通信が重要) * 開発用Webサーバをローカルで動かしたい(ホストからアクセス可) → 内部ネットワーク(Host-Only) * 会社LANから VM をサーバとして使いたい → Bridged(物理LANと同じアドレスになる) * 安全にインターネットアクセスしたいだけ → NAT(最も無難) |
|
|
この記事へのコメント