首页 > 虚拟机

kvm虚拟机ping不通主机

一、KVM的虚拟机与宿主机通过vethpair直连

流程重现如下:
1.创建虚拟机并安装centOS。 流程略去
2.创建一个vethpair

3.使用virt-manager为虚拟机创建网卡并连接veth-centOS上,其他无需配置,一切默认

4.在虚拟机centOS中配置realtekethernet网络的IP地址,192.168.1.101/24。 很奇怪为什么叫realtekethernet。 关于为什么会出现realtekethernet,好像和KVM或者QEMU有关。 后来我用上面的方法添加了网络,名字就变成了PCIethernet!我们暂时忘掉它吧。
然后ifconfig看到如下:

为什么叫ens9!!很奇怪!!都是问题!!!

5.然后奇迹发生了!ping192.168.1.100!知道了!结果如下:

6.摘要
为什么会发生这种情况?还需要进一步研究,也许这只是表面现象,还有很多疑问!

那么,果然!出了问题!!!
流程重现如下:
1.创建第二个虚拟机VM2并安装redhat
2。 创建一个vethpair

3.然后重复上面第一部分的作,将虚拟机IP设置为192.168.1.103/24
4。 在虚拟机redhat中Ping192.168.1.102,但是不通!然后ping192.168.1.100还是不行!好吧,我承认我的网络基础知识很差,但是实在是看不懂
5.然后,我回到centOS并ping192.168.1.102,结果成功了!无语了。 。 这是为什么呢?!

为了阅读起来更清晰,我决定推翻上面的一切,重新开始!
流程重现如下:
1.创建3台虚拟机,分别安装centOS、redhat、ubuntu
2.创建3个vethpair,并配置在不同网段,如下:

3.为虚拟机分别添加网卡,并连接虚拟机对应的veth。 这次,设备型号选择virtio。 看来网速很快
4。 开始测试网络连接。 结果如下
veth0←→centOS通信
veth1←→redhat通信
veth2←→ubuntu通信
其他连接无法ping通
这个结果还是比较满意的
5.总结
为什么需要配置在不同网段?我想不通

这次尝试与第三次尝试类似,只不过主机的veth没有设置IP地址。 具体流程如下:
1.跳过创建虚拟机的过程
2.配置vethpairs

3.在虚拟机centOS中配置新添加的两块网卡的IP,分别设置为192.168.4.3/24和192.168.5.3/24
4。 在虚拟机中Ping上述两个IP在同一网段的地址,如192.168.4.5和192.168.5.4
5.在宿主机中使用wireshark抓包,可以看到veth3和veth4的抓包情况。 截图如下。 结果是收到了ARP数据包。
ping192.168.4.4的结果,veth3上抓包

ping192.168.5.4的结果,veth4上抓包

6。 总结
虚拟机的ARP请求通过vethpair直接发送给主机,就是这样

返回顶部