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