1、了解虚拟网络
主机硬件必须协助虚拟机(VM)连接到网络上的其他设备和位置。以下小节解释了虚拟机网络连接的机制, 并描述了默认虚拟机网络设置。
1.1、虚拟网络的工作方式
虚拟网络使用了虚拟网络交换机的概念。虚拟网络交换机是在主机机器中运行的软件构造。VM 通过虚拟 网络交换机连接到网络。根据虚拟交换机的配置,虚拟机可以使用由虚拟机监控程序管理的现有虚拟网络 或不同的网络连接方法。
下图显示了将两个虚拟机连接到网络的虚拟网络交换机:
从客户机操作系统的角度来看,虚拟网络连接与物理网络连接相同。主机计算机将虚拟网络交换机视为网 络接口。首次安装并启动 libvirtd 服务时,它会创建virbr0 (虚拟机的默认网络接口)。
要查看有关此接口的信息,请在主机上使用 ip 工具。
[root@kittod ~]# ip addr show virbr0
3: virbr0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 52:54:00:78:c6:de brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
默认情况下,单一主机上的所有虚拟机都连接到名为 default 的同一 NAT 类型虚拟网络,该网络使用 virbr0 接口。
对于虚拟机的基本出站网络访问,通常不需要额外的网络设置,因为默认网络与 libvirt 软件包一起安装, 并在启动 libvirtd 服务时自动启动。
如果需要其他虚拟机网络功能,您可以创建额外的虚拟网络和网络接口,并将虚拟机配置为使用它们。除 了默认的 NAT 外,这些网络和接口也可以配置为使用以下模式之一:
· 路由模式
· 网桥模式
· 隔离模式
· 开放模式
1.2、虚拟网络默认配置
当首次在虚拟化主机上安装 libvirtd 服务时,它会在网络地址转换(NAT)模式中包含初始虚拟网络配置。 默认情况下,主机上的所有虚拟机都连接到名为 default 的同一 libvirt 虚拟网络。这个网络上的虚拟机可以连接到主机上和主机之外的网络位置,但有以下限制:
网络上的虚拟机对主机和主机上的其他虚拟机可见,但网络流量会受到客户机操作系统网络堆栈中的防火墙以及附加到客户机接口的 libvirt 网络过滤规则的影响。
网络上的虚拟机可以连接到主机之外的位置,但它们不可见。出站流量受 NAT 规则以及主机系统的防火墙影响。
下图演示了默认虚拟机网络配置:
2、配置外部可见虚拟机
默认情况下,新创建的虚拟机连接到使用 virbr0 (主机上的默认虚拟网桥)的 NAT 类型网络。这可确保 虚拟机可以使用主机的网络接口控制器(NIC)连接到外部网络,但无法从外部系统访问虚拟机。
如果您要求虚拟机显示在与虚拟机监控程序相同的外部网络中,则必须使用桥接模式。为此,请将虚拟机 连接到连接到系统管理程序物理网络设备的网桥设备。要使用命令行界面,请遵循以下步骤。
1、在主机上为物理接口创建和设置网桥连接。