Red Hat Training

A Red Hat training course is available for RHEL 8

第 13 章 配置虚拟机网络连接

要让虚拟机(VM)通过网络连接到主机、主机上的其他虚拟机以及外部网络中的位置,必须相应地配置 VM 网络。为了提供虚拟机网络,RHEL 8 hypervisor 和新创建的虚拟机具有默认的网络配置,这些配置也可以进一步修改。例如:

  • 您可以启用主机上的虚拟机被发现并连接到主机以外的位置,就像虚拟机与主机位于同一个网络一样。
  • 您可以部分或完全将虚拟机与入站网络流量隔离,以便提高它的安全性,并尽可能降低影响主机的虚拟机问题的风险。

以下小节解释了各种虚拟机网络配置类型,并提供了有关设置所选虚拟机网络配置的说明。

13.1. 了解虚拟网络

虚拟机(VM)与网络中其它设备和位置的连接必须由主机硬件启用。以下小节解释了虚拟机网络连接的机制,并描述了默认的虚拟机网络设置。

13.1.1. 虚拟网络的工作方式

虚拟网络使用了虚拟网络交换机的概念。虚拟网络交换机是在主机机器中运行的软件构造。VM 通过虚拟网络交换机连接到网络。根据虚拟交换机的配置,虚拟机可以使用虚拟机监控程序管理的现有虚拟网络,或者使用不同的网络连接方法。

下图显示了将两个虚拟机连接到网络的虚拟网络开关:

vn 02 switchand 双 guests

从客户端操作系统的角度来看,虚拟网络连接与物理网络连接相同。主机机器将虚拟网络交换机视为网络接口。当 libvirtd 服务第一次安装并启动时,它会为虚拟机创建 virbr 0

要查看这个接口的信息,请在主机上使用 ip 工具。

$ ip addr show virbr0
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state
 UNKNOWN link/ether 1b:c4:94:cf:fd:17 brd ff:ff:ff:ff:ff:ff
 inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0

默认情况下,单一主机上的所有虚拟机都连接到同一个 NAT 类型的 虚拟网络,名为 default, 它使用 virbr 0 接口。详情请查看 第 13.1.2 节 “虚拟网络默认配置”

对于只对虚拟机的基本的出站网络访问,通常不需要额外网络设置,因为默认网络与 libvirt 软件包一起安装,并在 libvirtd 服务启动时自动启动。

如果需要不同的虚拟机网络功能,您可以创建额外的虚拟网络和网络接口,并配置虚拟机来使用它们。除了默认的 NAT 外,这些网络和接口可以被配置为使用以下模式之一:

13.1.2. 虚拟网络默认配置

libvirtd 服务首次安装在虚拟化主机上时,它会在网络地址转换(NAT)模式中包含初始虚拟网络配置。默认情况下,主机上的所有虚拟机都连接到同一个名为 default 的 libvirt 虚拟网络。这个网络中的虚拟机可以连接到主机上和主机外的网络上的位置,但有以下限制:

  • 网络中的虚拟机对主机上的主机和其他虚拟机可见,但网络流量会受到客户端操作系统网络堆栈中的防火墙以及附加到客户端接口的 libvirt 网络过滤规则的影响。
  • 网络中的虚拟机可以在主机外的位置看到。出站流量受 NAT 规则以及主机系统的防火墙影响。

下图演示了默认虚拟机网络配置:

vn 08 网络概述

13.2. 使用 web 控制台管理虚拟机网络接口

使用 RHEL 8 web 控制台,您可以管理连接到 web 控制台的虚拟机的虚拟网络接口。您可以:

13.2.1. 在 web 控制台中查看和编辑虚拟网络接口信息

使用 RHEL 8 web 控制台,您可以在所选虚拟机(VM)上查看和修改虚拟网络接口:

先决条件

流程

  1. Virtual Machines 界面中,点您要查看信息的虚拟机行。

    行会展开,以显示有关所选虚拟机以及用于关闭和删除虚拟机的基本信息 Overview 窗格。

  2. Network Interfaces

    Networks Interfaces 窗格会出现,其中包含为虚拟机配置的虚拟网络接口的信息。

    cockpit vNIC 信息

    该信息包括:

    • 类型 - 虚拟机的网络接口类型。类型包括虚拟网络、网桥到 LAN 以及直接附加。

      注意

      RHEL 8.2 不支持通用以太网连接。

    • 型号类型 - 虚拟网络接口的型号。
    • MAC 地址 - 虚拟网络接口的 MAC 地址。
    • IP 地址 - 虚拟网络接口的 IP 地址。
    • Source - 网络接口源。这取决于网络类型。
    • State - 虚拟网络接口的状态。
  3. 要编辑虚拟网络接口设置,请点 Edit。此时会打开「虚拟网络接口设置」对话框。

    Web 控制台虚拟网络,如果设置
  4. 更改接口类型、源或型号。
  5. Save。已修改网络接口。

    注意

    对虚拟网络接口设置的更改仅在重启虚拟机后生效。

其它资源

13.2.2. 在 web 控制台中连接虚拟网络接口

使用 RHEL 8 web 控制台,您可以为所选虚拟机重新连接断开连接的虚拟网络接口。

先决条件

流程

  1. Virtual Machines 接口中,点击您要连接的虚拟网络接口的虚拟机行。

    该行展开,显示 Overview 窗格,其中包含有关所选虚拟机和控制关闭虚拟机的基本信息。

  2. Network Interfaces

    此时会出现有关为虚拟机配置的虚拟网络接口的信息。

    cockpit vNIC plug

  3. 点您要连接的虚拟网络接口行中的 Plug

    所选虚拟网络接口连接至虚拟机。

13.2.3. 在 web 控制台中断开虚拟网络接口

使用 RHEL 8 web 控制台,您可以断开连接到所选虚拟机(VM)的虚拟网络接口。

先决条件

流程

  1. Virtual Machines 接口中,点击您要断开连接的虚拟网络接口的虚拟机行。

    行会展开,以显示有关所选虚拟机以及用于关闭和删除虚拟机的基本信息 Overview 窗格。

  2. Network Interfaces

    此时会出现有关为虚拟机配置的虚拟网络接口的信息。

    Cockpit vNIC 断开连接
  3. 在您要断开连接的虚拟网络接口行中点 Unplug

    所选虚拟网络接口断开与虚拟机的连接。

13.5. 虚拟机网络连接的类型

要修改虚拟机的网络属性和行为,更改虚拟机使用的虚拟网络或接口类型。以下小节描述了 RHEL 8 中虚拟机可用的连接类型。

13.5.1. 使用网络地址转换进行虚拟联网

默认情况下,虚拟网络交换机在网络地址转换(NAT)模式下操作。它们使用 IP 伪装而不是 Source-NAT(SNAT)或者 Destination-NAT(DNAT)。IP 伪装可让连接的虚拟机使用主机机器的 IP 地址与任何外部网络通信。当虚拟网络交换机以 NAT 模式操作时,主机外的计算机无法与主机上的虚拟机通信。

vn 04 hostwithnatswitch
警告

虚拟网络交换机使用 iptables 规则配置的 NAT。不建议在交换机运行时编辑这些规则,因为不正确的规则可能会导致切换无法通信。

13.5.2. 以路由模式的虚拟网络

当使用 Routed 模式时,虚拟交换机会连接到连接到主机的物理 LAN 中,并在不使用 NAT 的情况下传输数据。虚拟交换机可检查所有流量,并使用网络数据包中包含的信息来做出路由决策。使用此模式时,虚拟机(VM)都位于独立于主机机器的单个子网中。VM 子网通过主机上存在的虚拟交换机路由。这可启用入站连接,但需要为外部网络中的系统提供额外的路由可路由条目。

路由模式使用基于 IP 地址的路由:

vn 06 路由交换机

使用路由模式的常见拓扑包括 DMZ 和虚拟服务器托管。

DMZ

您可以创建一个网络,并处于安全考虑,将一个或多个节点放在这个受控的子网络中。这样的子网络被称为“非军事区(DMZ)”。

vn 99 路由模式 DMZ

DMZ 中的主机机器通常为 WAN(外部)主机机器以及 LAN(内部)主机机器提供服务。这需要从多个位置访问这些位置,并且这些位置的安全性和信任级别以不同的方式控制并操作,所以路由模式是这种环境的最佳配置。

虚拟服务器托管

虚拟服务器托管供应商可能有几台主机,各自有两个物理网络连接。一个接口用于管理和核算,另一个用于要连接的虚拟机。每个虚拟机都有自己的公共 IP 地址,但主机机器使用私有 IP 地址,以便只有内部管理员才能管理虚拟机。

vn 10 路由模式数据中心

13.5.3. 以桥接模式的虚拟网络

在大多数 VM 网络模式中,虚拟机会自动创建和连接 virbr0 虚拟网桥。相反,在桥接模式中,VM 会连接到主机上的一个已存在的 Linux 网桥。因此,虚拟机可以在物理网络中直接看到。这就可以允许进入的连接,但不需要任何额外的路由表条目。

网桥模式使用基于 MAC 地址的连接切换:

vn 桥接模式图

在桥接模式中,虚拟机与主机机器位于同一个子网中。同一物理网络中的所有其他物理机器都可以检测虚拟机并访问它。

网桥网络绑定

虚拟机监控程序上可以使用多个物理桥接接口,方法是将它们与绑定接合在一起。然后该绑定可以添加到桥接中,之后虚拟机也可以添加到桥接中。但是,绑定驱动程序有几个操作模式,并非所有这些模式都可用于使用虚拟机的桥接。

以下 绑定模式 可用:

  • 模式 1
  • 模式 2
  • 模式 4

而使用模式 0、3、5 或 6 可能会导致连接失败。另请注意,应该使用介质独立接口(MII)监控绑定模式,因为地址解析协议(ARP)监控无法正常工作。

有关绑定模式的详情,请参考红帽知识库

常见情况

使用桥接模式的最常见用例包括:

  • 主机机器和虚拟机一起出现在现有网络中,最终用户看不到虚拟机和物理机器之间的不同。
  • 在不更改现有物理网络配置设置的情况下部署虚拟机。
  • 部署需要被现有物理网络轻松访问的虚拟机。将虚拟机放置到必须访问 DHCP 服务的物理网络中。
  • 将虚拟机连接到使用虚拟 LAN(VLAN)的现有网络。

其它资源

13.5.4. 在隔离模式中的虚拟网络

使用 隔离 模式时,连接到虚拟交换机的虚拟机可以相互通信并与主机机器通信,但它们的流量不会在主机机器外传递,它们无法从主机外部接收流量。在这个模式下需要使用 dnsmasq 的基本功能,比如 DHCP。

vn 07 隔离交换

13.5.5. 打开模式的虚拟网络

当在网络中使用开放 模式时, libvirt 不会为网络生成任何 iptables 规则。因此, libvirt 不覆盖主机提供的 iptables 规则,因此用户可以手动管理虚拟机的 iptables 规则。

13.5.6. 虚拟网络设备的直接附加

您可以使用 macvtap 驱动程序将虚拟机的 NIC 直接附加到主机的指定物理接口。macvtap 连接有多种模式,包括私有模式

在这个模式中,所有数据包都发送到外部交换机,且只有在通过外部路由器或网关发送并返回主机时,才会在同一主机上传送到目标虚拟机。可以使用专用模式来防止单一主机上的独立虚拟机相互通信。

virt macvtap 模式私有

其它资源

13.5.7. 虚拟机连接类型比较

下表提供了所选虚拟机(VM)网络配置可连接的位置信息,以及它们可见到的位置。

表 13.1. 虚拟机连接类型

 连接到主机连接到主机上的其他虚拟机连接到外部位置可查看外部位置

网桥模式

NAT

路由模式

隔离模式

私有模式

开放模式

取决于主机的 iptables 规则

13.6. 其它资源


为了尽快向用户提供最新的信息,本文档可能会包括由机器自动从英文原文翻译的内容。如需更多信息,请参阅此说明。