第 17 章 配置虚拟机网络连接
要使虚拟机(VM)通过网络连接到主机、主机上的其他虚拟机以及外部网络中的位置,必须相应地配置虚拟机网络。为了提供虚拟机网络,RHEL 9 管理程序和新创建的虚拟机具有默认网络配置,也可以进一步修改。例如:
- 您可以使主机上的虚拟机通过主机外的位置被发现和连接,就如同虚拟机与主机位于同一网络中一样。
- 您可以部分或完全将虚拟机与入站网络流量隔离,以提高其安全性,并将虚拟机出现任何问题而影响主机的风险降至最低。
以下章节解释了各种类型的虚拟机网络配置,并提供了设置所选虚拟机网络配置的说明。
17.1. 了解虚拟网络
虚拟机(VM)连接到网络上的其他设备和位置必须由主机硬件来提供。以下小节解释了虚拟机网络连接的机制,并描述了默认的虚拟机网络设置。
17.1.1. 虚拟网络的工作方式
虚拟网络使用了虚拟网络交换机的概念。虚拟网络交换机是在主机机器中运行的软件构造。VM 通过虚拟网络交换机连接到网络。根据虚拟交换机的配置,虚拟机可以使用由 hypervisor 管理的现有虚拟网络或不同的网络连接方法。
下图展示了将两个虚拟机连接到网络的虚拟网络交换机:
从客户机操作系统的角度来看,虚拟网络连接与物理网络连接是一样的。主机虚拟机将虚拟网络交换机视为网络接口。当 virtnetworkd
服务首次安装并启动时,它会创建 virbr0,即虚拟机的默认网络接口。
要查看有关此接口的信息,请使用主机上的 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.0.2.1/24 brd 192.0.2.255 scope global virbr0
默认情况下,单个主机上的所有虚拟机都连接到名为 default 的同一 NAT 类型 虚拟网络,该网络使用 virbr0 接口。详情请参阅虚拟网络默认配置。
对于从虚拟机进行基础出站网络访问,通常不需要额外的网络设置,因为默认网络会与 libvirt-daemon-config-network
软件包一起安装,并在启动 virtnetworkd
服务时自动启动。
如果需要不同的虚拟机网络功能,您可以创建额外的虚拟网络和网络接口,并将虚拟机配置为使用它们。除了默认的 NAT 外,这些网络和接口也可以配置为使用以下一种模式:
17.1.2. 虚拟网络默认配置
当在虚拟化主机上安装 virtnetworkd
服务时,它会在网络地址转换(NAT)模式中包含初始虚拟网络配置。默认情况下,主机上的所有虚拟机都连接到同一 libvirt
虚拟网络,名为 default。这个网络上的虚拟机可以连接到主机上和主机之外的网络位置,但有以下限制:
-
网络上的虚拟机对主机和主机上的其他虚拟机可见,但网络流量会受到客户机操作系统网络堆栈中的防火墙以及附加到客户机接口的
libvirt
网络过滤规则的影响。 - 网络上的虚拟机可以连接到主机之外但对它们不可见的位置。出站流量受 NAT 规则以及主机系统的防火墙影响。
下图演示了默认虚拟机网络配置: