14.4. 虚拟机网络连接的类型
要修改虚拟机的网络属性和行为,更改虚拟机使用的虚拟网络或接口类型。以下小节描述了 RHEL 8 中虚拟机可用的连接类型。
14.4.1. 使用网络地址转换进行虚拟联网
默认情况下,虚拟网络交换机运行在网络地址转换(NAT)模式下。它们使用 IP 伪装而不是源-NAT(SNAT)或目的-NAT(DNAT)。IP 伪装可让连接的虚拟机使用主机机器的 IP 地址与任何外部网络通信。当虚拟网络交换机运行在 NAT 模式时,主机外的计算机无法与主机内的虚拟机进行通信。
虚拟网络交换机使用防火墙规则配置的 NAT。不建议在交换机运行时编辑这些规则,因为不正确的规则可能会导致交换机无法进行通信。
14.4.2. 路由模式中的虚拟网络
当使用 Routed 模式时,虚拟交换机会连接到连接到主机的物理 LAN 中,并在不使用 NAT 的情况下传输数据。虚拟交换机可以检查所有流量,并使用网络数据包中包含的信息来做出路由决策。使用此模式时,虚拟机(VM)都位于一个子网中,与主机是分开的。虚拟机子网通过虚拟交换机进行路由,该交换机位于主机上。这会启用传入连接,但对外部网络上的系统需要额外的路由表条目。
路由模式使用基于 IP 地址的路由:
使用路由模式的通用拓扑是虚拟服务器托管(VSH)。VSH 提供程序可能有多个主机计算机,各自具有两个物理网络连接。一个接口用于管理和记帐,另一个用于虚拟机连接。每个虚拟机都有自己的公共 IP 地址,但主机使用私有的 IP 地址,以便只有内部管理员可以管理虚拟机。
14.4.3. 网桥模式中的虚拟网络
在大多数虚拟机网络模式中,虚拟机会自动创建并连接到 virbr0
虚拟网桥。相反,在桥接模式中,VM 会连接到主机上的一个已存在的 Linux 网桥。因此,虚拟机可以在物理网络中直接看到。这就可以允许进入的连接,但不需要任何额外的路由表条目。
网桥模式使用基于 MAC 地址的连接切换:
在桥接模式中,虚拟机出现在与主机相同的子网中。同一物理网络中的所有其他物理机器都可以检测虚拟机并访问它。
网桥网络绑定
通过使用绑定将多个物理网桥接口连在一起,可以在 hypervisor 上使用多个物理网桥接口。然后,可以将绑定添加到网桥,之后也可以将虚拟机添加到网桥。但是,绑定驱动程序有多种操作模式,而且并非所有这些模式都能与虚拟机正在使用的桥接一起工作。
以下 绑定模式 很有用:
- 模式 1
- 模式 2
- 模式 4
相反,模式 0、3、5 或 6 可能会导致连接失败。另请注意,应使用独立于介质的接口(MII)监控来监控绑定模式,因为地址解析协议(ARP)监控无法正常工作。
有关绑定模式的详情,请参考 红帽知识库。
常见情况
使用桥接模式的最常见用例包括:
- 主机机器和虚拟机一起出现在现有网络中,最终用户看不到虚拟机和物理机器之间的不同。
- 在不更改现有物理网络配置设置的情况下部署虚拟机。
- 部署需要被现有物理网络轻松访问的虚拟机。将虚拟机放置到必须访问 DHCP 服务的物理网络中。
- 将虚拟机连接到使用虚拟 LAN(VLAN)的现有网络。
- 一个 demilitarized zone (DMZ)网络。对于带有虚拟机的 DMZ 部署,红帽建议在物理网络路由器和交换机上设置 DMZ,并使用桥接模式将虚拟机连接到物理网络。
14.4.4. 隔离模式中的虚拟网络
通过使用 隔离 模式,连接到虚拟交换机的虚拟机可以相互通信,并与主机机器通信,但其流量不会向主机外部传递,且无法从主机外部接收流量。对于基本功能,需要在这个模式中使用 dnsmasq
,如 DHCP。
14.4.5. 开放模式中的虚拟网络
当对网络使用 开放 模式时,libvirt
不会为网络生成任何防火墙规则。因此,libvirt
不会覆盖主机提供的防火墙规则,因此用户可以手动管理虚拟机的防火墙规则。
14.4.6. 虚拟机连接类型的比较
下表提供了有关所选的虚拟机(VM)网络配置可以连接到的位置的信息,以及它们对哪些位置可见。
连接到主机 | 连接到主机上的其他虚拟机 | 连接到外部位置 | 可查看外部位置 | |
---|---|---|---|---|
网桥模式 | 是 | 是 | 是 | 是 |
NAT | 是 | 是 | 是 | 否 |
路由模式 | 是 | 是 | 是 | 是 |
隔离模式 | 是 | 是 | 否 | 否 |
开放模式 | 取决于主机的防火墙规则 |