我在一台 Ubuntu 12.04 主机上运行着许多虚拟机。由于各种原因,所有这些虚拟机都需要固定的 IP 地址。这台笔记本电脑用于演示——问题就出在这里……
根据具体情况,我会使用 WiFi 或移动网络共享来获取互联网连接,这两种情况都会导致笔记本电脑通过 DHCP 分配一个地址。通常,这个动态地址与固定地址 (192.168.0/20) 使用的子网不同。这使得主机操作系统无法访问静态地址。
经过一番思考,似乎最优雅的解决方案是在主机上创建一个单独的 LAN(用于虚拟机使用的子网),然后将其桥接到分配给主机的任何子网。
请记住,虚拟机只需要彼此之间以及与主机之间进行通信。它们不需要进行超出此范围的访问。
问题:
- 这是最好的方法吗?
- 如果是的话我该如何实现呢?
非常感谢。
答案1
如果您使用的是 VMware,您需要做的就是将这些虚拟机分配到与 VMware 本身或主机均无连接的虚拟 LAN。这称为“LAN 段”,在每台机器的网络接口设置下很容易找到。
您所要做的就是为第一台机器创建一个新的 LAN 段,然后将其他机器添加到同一个网络:
这类似于仅主机网络,但不同之处在于机器无法联系主机或其他外部网络(互联网),因此就像只有这些机器拥有一个 LAN。由于此网络中没有 DHCP 服务器,因此您必须在每个系统中手动添加 IP。
如果您希望它们与主机通信,则需要仅主机设置。在这种情况下,主机将具有较低的 IP,因为它将充当网关(但不将数据包转发到其他网络)。
答案2
任何 2 型虚拟机管理程序都已经具有多种类型的虚拟网络(桥接、仅主机、内部网络)。
桥接:虚拟机将像主机一样连接到您的物理网卡,并从 DHCP 获取 IP(如果启用)。
仅限主机:虚拟机只能与主机通信,不能超越主机通信(安装 VMWare Workstation 时应该启用此选项,更多详细信息)这里
-NAT:虚拟机将被网络地址转换到您的主机 IP,并通过其 IP 与主机之外进行通信。
答案3
当您安装元包时apt-get install ubuntu-virt
,您的桌面上就会有一个名为 NATed 桥virbr0
,您的所有 KVM 虚拟机都将连接到该桥,所以,我认为这对您来说已经足够了……
您可能virt-manager
也需要这个。