KVM虚拟网络

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



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

(1)用户模式(NAT):这种方式是默认网络,数据包由NAT方式通过主机的接口进行传送,可以访问外网,但是无法从外网访问虚拟机网络

(2)桥接模式(Bridge):这种模式允许虚拟机像一台独立的主机一样拥有网络,外部的主机可以直接访问到虚拟机内部



一、基于NAT的虚拟网络

KVM安装时默认的网络配置

杨书凡33.png



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

杨书凡35.png


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

[root@localhost ~]# cat /proc/sys/net/ipv4/ip_forward

1


[root@localhost ~]# iptables -t nat -L

杨书凡36.png

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

杨书凡37.png


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

杨书凡38.png


向虚拟机添加虚拟机网络

可以通过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>





二、基于网桥的虚拟网络

杨书凡39.png


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

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

杨书凡40.png


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

杨书凡43.png


(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      //为了让每次开机都生效,新生成一次配置文件替换原来的配置文件





猜你喜欢

转载自blog.51cto.com/yangshufan/2130263