kvm已经设置桥接网卡的虚拟机无法连接宿主机?

发布于 2022-09-12 01:57:52 字数 1293 浏览 18 评论 0

问题描述:
我在一台centos的系统中安装了kvm虚拟机。
现在所有的虚拟机都使用了桥接模式连接网络,并且都可以正常连接外网,相互之间也能正常通信。但是使用过程中发现宿主机无法连接虚拟机。

假定宿主机是A,里面的虚拟机是B、C、D
现在A连接BCD均不通,BCD之间正常通信。

想知道是什么原因导致的的宿主机不能连接虚拟机?


宿主机环境:
防火墙已经关闭
CentOS Linux release 7.5.1804 (Core)
libvirtd (libvirt) 4.5.0

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.2.1     0.0.0.0         UG        0 0          0 enp1s0f0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
172.18.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-ddf29c2d2cf2
192.168.2.0     0.0.0.0         255.255.255.0   U         0 0          0 enp1s0f0
192.168.100.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr1
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

虚拟机环境:
防火墙已经关闭
设置网络均为桥接:

    <interface type='direct'>
      <mac address='52:54:00:bb:dd:dd'/>
      <source dev='enp1s0f0' mode='bridge'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吹梦到西洲 2022-09-19 01:57:52

这个问题到现在已经解决了

问题出在interface的配置上,我这里的type是direct,字面意思是直通的接口,而不是桥接的接口。

最后,我觉得正确的网络配置不应该是直接写在虚拟机配置文件中,应该是单独创建一个虚拟机网络,然后再在虚拟机机中指定一个netwrok。

具体netwrok的配置说明,可以看官方的文档,有详细的例子。

==========
20220726 补充

  1. 我当时提的这个问题其实不算是一个问题,只是当时弄错了这个配置

     <interface type='direct'>
       <mac address='52:54:00:bb:dd:dd'/>
       <source dev='enp1s0f0' mode='bridge'/>
       <model type='virtio'/>
       <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
     </interface>

    虚拟机的interface网络接口,type 为 direct
    这里我误以为这个配置是我理解的“桥接”,实际上并不是一般意义上的“桥接”。
    Direct attachment to physical interface
    如果要配置kvm的网络,应该这么配置
    需要参考libvirt的文档
    libvirt关于网络配置的说明
    openEuler管理员指南里面关于KVM的配置说明

===
如果要创建桥接网络的话,讲一下大致流程,有些也记不太清楚了,因为已经有好一段时间没接触kvm了。

  1. 首先用brctl在本机创建一个桥接,我把它名命为br0。
  2. 把需要桥接的网络加入到这个网桥里,配置好了之后可以通过这个网桥访问到网关。
  3. 在kvm里面添加一个网络,指定这个网络使用br0这个网桥。
  4. 创建虚拟机的时候,interface 里面指定上一步创建好的网络,这个时候只要配置了网络的虚拟机都会连接到br0这个网桥上,可以通过brctl看到每个虚拟机的网卡连接在br0上。

===
network的配置如下:
说明

<network>
  <name>host-bridge</name>
  <forward mode="bridge"/>
  <bridge name="br0"/>
</network>

===

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文