qemu kvm虚拟机的四种网络模式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/gsl371/article/details/78662258

 

 

1. 引言

Libvirt虚拟网络使用虚拟网络交换机的概念。虚拟网络交换机是在主机物理机器服务器上运行的软件结构,虚拟机(客户机)通过它连接到该物理主机服务器。客户机的网络流量通过这个交换机被引导: 
qemu kvm虚拟机的四种网络模式 
Linux主机物理机服务器将虚拟网络交换机表示为网络接口。当libvirtd守护进程(libvirtd)首次安装并启动时,表示虚拟网络交换机的默认网络接口是virbr0。 
qemu kvm虚拟机的四种网络模式 
这个virbr0接口可以通过ip命令,像其他任何接口一样用命令查看 
qemu kvm虚拟机的四种网络模式

2. 桥接模式

在使用桥接模式时,所有虚拟机都好像与主机物理机器在同一个子网内。同一物理网络中的所有其他物理机器都知道这些虚拟机,并可以访问这些虚拟机。桥接操作在OSI网络模型的第2层。 
在中间件(hypervisor )中可以使用多个物理接口,通过绑定把他们连接在一起,然后把它添加的网桥,同时虚拟机也被添加到这个网桥,绑定操作有多种模式,只有少数这些模式可以与虚拟客机正在使用的桥接器配合使用。 
qemu kvm虚拟机的四种网络模式

3. NAT模式

默认情况下,虚拟网络交换机以NAT模式运行。他们使用IP伪装而不是SNAT(Source-NAT)或DNAT(Destination-NAT)。IP伪装使得连接的guest虚拟机可以使用主机物理机器IP地址与任何外部网络进行通信。默认情况下,虚拟网络交换机在NAT模式下运行时,放置在主机物理机外部的计算机无法与其中的guest虚拟机进行通信,如下图所示:qemu kvm虚拟机的四种网络模式 
DNS和DHCP 
IP地址可以通过DHCP分配给客户机。为此,可以将地址池分配给虚拟网络交换机。Libvirt使用这个dnsmasq程序。dnsmasq的一个实例是由libvirt为每个需要它的虚拟网络交换机自动配置和启动的。 
qemu kvm虚拟机的四种网络模式

4. 路由模式

当使用路由模式时,虚拟交换机连接到连接到主机物理机器的物理LAN,在不使用NAT的情况下来回传输流量。虚拟交换机可以检查所有流量,并使用网络数据包中包含的信息来做出路由决策。使用此模式时,所有虚拟机都位于其自己的子网中,通过虚拟交换机进行路由。这种情况并不总是理想的,因为物理网络上的其他主机物理机器不通过手工配置的路由信息是没法发现这些虚拟机,并且不能访问虚拟机。路由模式在OSI网络模型的第三层运行。qemu kvm虚拟机的四种网络模式

5. 隔离模式

使用隔离模式时,连接到虚拟交换机的虚拟机可以相互通信,也可以与主机物理机通信,但其通信不会传到主机物理机外,也不能从主机物理机外部接收通信。在这种模式下使用dnsmasq对于诸如DHCP的基本功能是必需的。但是,即使该网络与任何物理网络隔离,DNS名称仍然被解析的。因此,DNS名称能解析但ICMP回应请求(ping)命令失败这种情况可能会出现。 
qemu kvm虚拟机的四种网络模式

6. 默认配置

libvirtd守护进程(libvirtd)第一次被安装时,它将包含配置在NAT模式下的初始虚拟网络交换机。使用此配置,以便安装的guest虚拟机可以通过主机物理机与外部网络进行通信。下图显示了这个默认配置libvirtd: 
qemu kvm虚拟机的四种网络模式