KVM虚拟网络

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVM虚拟网络相关的知识,希望对你有一定的参考价值。

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



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

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

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



一、基于NAT的虚拟网络

KVM安装时默认的网络配置

技术分享图片



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

技术分享图片


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

[[email protected] ~]# cat /proc/sys/net/ipv4/ip_forward

1


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





以上是关于KVM虚拟网络的主要内容,如果未能解决你的问题,请参考以下文章

查看kvm虚拟机是否桥接方式

KVM网络虚拟化及openvswitch

KVM 网络虚拟化基础

KVM虚拟网络

开源虚拟化KVM,网络设置

KVM网络虚拟化(二)