KVM虚拟网络

宿主服务器安装完成KVM,首先要设定网络,以便和主机网络,客户机之间的网络通信在libvirt中运行KVM网络有两种方法:NAT和Bridge,默认为NAT

KVM 客户机网络连接有两种方式:

(1)用户模式(NAT):这种方式是默认网络,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外网访问虚拟机网络
(2)桥接模式(Bridge):这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的主机可以直接访问到虚拟机内部

一、基于NAT的虚拟网络

KVM安装时默认的网络配置

未分类

默认宿主机会有一个虚拟网卡virbr0,其实是一个虚拟交换机,并绑定一个网卡virbr0-nic

未分类

这时候主机就变成了一个路由器,可以看到路由功能已经打开,并做了SNAT

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward
[root@localhost ~]# iptables -t nat -L

未分类

当有虚拟机启动,如果采用的是默认NAT模式,那么virbr0交换机下就会增加接口,可以看到有2个虚拟接口,代表有2个虚拟机接到了这个交换机上

未分类

可以通过virsh命令查看虚拟机的网卡情况

未分类

向虚拟机添加虚拟机网络
可以通过xml文档添加:

<interface type='network'>
      <mac address='52:54:00:aa:18:d1'/>
      <source network='default'/>    //网络模式
      <model type='virtio'/>        //网卡类型
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>

二、基于网桥的虚拟网络

未分类

首先需要创建虚拟交换机,方式很多,可以通过图形化,nmcli命令等方式,下面通过直接该配置文件创建虚拟交换机

(1)在宿主机添加配置文件

未分类

重新启动网络,让虚拟交换机br0激活

未分类

(2)为虚拟机添加网络

如果虚拟机是关机情况下,执行以下命令

virsh attach-interface vm1  bridge  br0 --model virtio --config        // 下次启动生效

如果虚拟机是开机情况下,执行以下命令

virsh attach-interface vm2  bridge  br0 --model virtio --current       // 立即生效

cd /etc/libvirt/qemu
virsh dumpxml vm2 > vm2.xml      //为了让每次开机都生效,新生成一次配置文件替换原来的配置文件