kvm网络管理
一、qemu-kvm支持的网络
1.虚拟机的网络模式
基于NAT(Network Address Translation)的虚拟网络
基于网桥(Bridge)的虚拟网络
用户自定义的隔离的虚拟网络
直接分配网络设备(包括VT-d和SR-IOV)
2.虚拟机的网卡:
RTL8139、e1000、.....
virtio
二、virsh命令查看网卡
virsh net-list
virsh net-info default
virsh net-dumpxml default
三、基于NAT的虚拟网络
1.KVM安装时默认的网络配置
2.默认宿主机会有一个虚拟网卡virbr0,其实是一个虚拟交换机
ifconfig virbr0
3.会绑定一个网卡virbr0-nic
brctl show virbr0
4.查看iptables的nat表,可以看到做了SNAT
iptables -t nat -L
5.可以看到从virbr0接口进来的DNS报文和DHCP报文是允许的
iptables -nvL
6.当有虚拟机启动,如果采用的是默认NAT模式,那么virbr0交换机下就会增加接口,可以看 到有2个虚拟接口,代表有2个虚拟机接到了这个交换机上
brctl show virbr0
7.以通过virsh命令查看虚拟机的网卡情况
virsh domiflist testvm01
virsh domif-getlink testvm02 vnet0
virsh domifstat testvm02 vnet0
8.向虚拟机添加虚拟机网络
可以通过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>
9. 候主机就变成了一个路由器,可以看到路由功能已经打开
cat /proc/sys/net/ipv4/ip_forward
注意 如果是0 那是因为ip_forward没有开启
启动ip_forward
vim /etc/sysctl.conf
net.ipv4.ip_forward = 1
四、基于网桥的虚拟网络
1.Redhat/CentOS配置网桥的常用方法:
nmcli:
1.添加网桥
nmcli connection add con-name virbr1 type bridge ifname virbr1
2./桥接物理网卡
nmcli connection add type bridge-slave con-name virbr1 ifname virbr1 master virbr1
3.激活连接
nmcli connection up virbr1
4.验证
ping真实主机
ping虚拟主机
2. brctl (需要安装bridge-utils包)
1.创建网桥
brctl addbr br10
2.连接网桥
brctl addif br10 ens34
3.brctl命令对网桥的配置需要以文件形式保存下来,这样系统再次启动后所有配置仍能生效。(修改配置文件达到连接网桥的功能)
1.复制网卡
cp ifcfg-ens33 ifcfg-virbr1
2.修改网卡配置
ens33网卡配置 TYPE="Ethernet" NAME="ens33" DEVICE="ens33" ONBOOT="yes" BRIDGE=virbr1
桥接网卡配置 TYPE="Bridge" BOOTPROTO="static" NAME="virbr1" DEVICE="virbr1" ONBOOT="yes" IPADDR=192.174.1.20 GATAWEY=192.174.1.2 DNS1=114.114.114.114
3.重启网卡
systemctl restart network
4.附加到虚拟机 (这一步使用哪种方法都得需要做这部)
virsh attach-interface testvm01 bridge virbr1 --mode virtio --current (立即生效 但是下次启动会失效) virsh attach-interface testvm01 bridge virbr1 --model virtio --config (永久生效,是因为写入配置文件)
五、用户自定义的隔离的虚拟网络
逻辑视图:
命令行添加网络:
下次启动生效
virsh attach-interface domain --type bridge --source br1 --model virtio --config
立即生效
virsh attach-interface domain --type bridge --source br1 --model virtio --current
为了让每次开机都生效,新生成一次配置文件替换原来的配置文件
virsh dumpxml domain > domain.xml