ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

KVM虚拟机NAT模式网络无法连接

2021-07-01 17:34:20  阅读:214  来源: 互联网

标签:01 虚拟机 KVM libvirt libvirtd NAT Linux dnsmasq wxn


问题发生

在使用virt-manager启动虚拟机后,使用一段时间后突然虚拟机网络断开,并不知道是什么原因导致。

解决问题

可以看到虚拟机是使用NAT模式连接主机网络的。
在这里插入图片描述
这里使用的是virt-manager创建虚拟机时提供的default网络配置xml文件。
在这里插入图片描述
首先查看virt-manager的网卡接口,如下图中的virbr0就是KVM为虚拟机创建的网卡接口,也是作为一个switchbridge,将包分发到KVM中的各个虚拟机。
在这里插入图片描述
通过virsh重新启动default接口,提示信息显示,该接口是正常工作的。
在这里插入图片描述
通过brctl命令也可以看到virbr0网络接口也是在正常开启的。
在这里插入图片描述
到这里就很奇怪了,不知道该从和下手,在突然尝试将libvirtd服务重新启动时,看到启动时报错了。

imaginemiracle:~$ service libvitd status
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-07-01 16:28:46 CST; 3s ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 41796 (libvirtd)
      Tasks: 19 (limit: 32768)
     Memory: 35.2M
     CGroup: /system.slice/libvirtd.service
             ├─19069 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─19070 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             └─41796 /usr/sbin/libvirtd

7月 01 16:28:46 Linux-wxn systemd[1]: Starting Virtualization daemon...
7月 01 16:28:46 Linux-wxn systemd[1]: Started Virtualization daemon.
7月 01 16:28:47 Linux-wxn libvirtd[41796]: libvirt version: 6.6.0, package: 1ubuntu3.5 (Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 07 Apr 2021 13:33:46 +0200)
7月 01 16:28:47 Linux-wxn libvirtd[41796]: hostname: Linux-wxn
7月 01 16:28:47 Linux-wxn libvirtd[41796]: internal error: firewalld is set to use the nftables backend, but the required firewalld 'libvirt' zone is missing. Either set the firewalld backend to 'iptables', or ensure that firewalld has a 'libvirt' zone by upgrading firewalld to a version supporting rule priorities (0.7.0+) and/or rebuilding libvirt with --with-firewalld-zone
7月 01 16:28:47 Linux-wxn dnsmasq[19069]: read /etc/hosts - 7 addresses
7月 01 16:28:47 Linux-wxn dnsmasq[19069]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
7月 01 16:28:47 Linux-wxn dnsmasq-dhcp[19069]: read /var/lib/libvirt/dnsmasq/default.hostsfile

可以看到这个错误是由于Linux的防火墙引起的,在网上找了很多解决方案却还是不能解决,于是直接将Linux的防火墙关闭,再次重启libvirtd服务错误解决,KVM中的虚拟机正常连接网络。

imaginemiracle:~$ sudo service firewalld stop
imaginemiracle:~$ sudo service libvitd restart
● libvirtd.service - Virtualization daemon
     Loaded: loaded (/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-07-01 16:33:00 CST; 41min ago
TriggeredBy: ● libvirtd-admin.socket
             ● libvirtd-ro.socket
             ● libvirtd.socket
       Docs: man:libvirtd(8)
             https://libvirt.org
   Main PID: 42261 (libvirtd)
      Tasks: 21 (limit: 32768)
     Memory: 40.8M
     CGroup: /system.slice/libvirtd.service
             ├─19069 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             ├─19070 /usr/sbin/dnsmasq --conf-file=/var/lib/libvirt/dnsmasq/default.conf --leasefile-ro --dhcp-script=/usr/lib/libvirt/libvirt_leaseshelper
             └─42261 /usr/sbin/libvirtd

7月 01 16:33:00 Linux-wxn dnsmasq[19069]: read /etc/hosts - 7 addresses
7月 01 16:33:00 Linux-wxn dnsmasq[19069]: read /var/lib/libvirt/dnsmasq/default.addnhosts - 0 addresses
7月 01 16:33:00 Linux-wxn dnsmasq-dhcp[19069]: read /var/lib/libvirt/dnsmasq/default.hostsfile
7月 01 16:33:12 Linux-wxn libvirtd[42261]: libvirt version: 6.6.0, package: 1ubuntu3.5 (Christian Ehrhardt <christian.ehrhardt@canonical.com> Wed, 07 Apr 2021 13:33:46 >
7月 01 16:33:12 Linux-wxn libvirtd[42261]: hostname: Linux-wxn
7月 01 16:33:22 Linux-wxn dnsmasq-dhcp[19069]: DHCPREQUEST(virbr0) 192.168.122.245 52:54:00:11:c0:55
7月 01 16:33:22 Linux-wxn dnsmasq-dhcp[19069]: DHCPACK(virbr0) 192.168.122.245 52:54:00:11:c0:55 Linux-IM
7月 01 17:03:22 Linux-wxn dnsmasq-dhcp[19069]: DHCPREQUEST(virbr0) 192.168.122.245 52:54:00:11:c0:55
7月 01 17:03:22 Linux-wxn dnsmasq-dhcp[19069]: DHCPACK(virbr0) 192.168.122.245 52:54:00:11:c0:55 Linux-IM

在这里插入图片描述

总结

由于防火墙的原因导致虚拟机无法通过NAT连接主机网络,关闭防火墙即可,到此算是解决了该问题吧!(由于不明发生的原因,防火墙为什么导致libvirtd服务启动default网络失败,只能算作是表面上的解决)

标签:01,虚拟机,KVM,libvirt,libvirtd,NAT,Linux,dnsmasq,wxn
来源: https://blog.csdn.net/qq_36393978/article/details/118390233

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有