最近在弄有关ovirt虚拟化的东西,于是乎在本地搭建环境,搭建好环境,并通过ovirt创建虚拟机后,我发现了一个问题,如果我把创建的虚拟机设置为DHCP方式获取IP,则无法获取IP信息,如果我手动为创建的虚拟机设置IP,则无法ping通同一网段的其他主机。下面我详细说明一下环境信息:
192.168.1.22 :engine主机,用于部署ovirt的web管理系统
192.168.1.23:节点主机,用于存储虚拟机数据
192.168.1.24:这个是通过ovirt的web管理系统创建在节点主机(192.168.1.23)上的虚拟机
192.168.1.22与192.168.1.23两台主机都是通过Oracle VM VirtualBox创建的虚拟机,这两台虚拟机与宿主机是通过网桥模式进行网络连接的。这里我再啰嗦的说一下问题现象:192.168.1.24这台主机不管是通过DHCP还是手动设置IP,这台主机都无法ping通同一网段的其他主机(如192.168.1.22),但可能ping通它的宿主机(192.168.1.23),宿主机(192.168.1.23)可以ping通192.168.1.24(手动设置IP的时候),同一网段的其他主机(如192.168.1.22)无法ping通192.168.1.24(手动设置IP的时候)。
刚开始我怀疑是由于192.168.1.23与192.168.1.24之间的网络不是桥接模式,于是乎各种百度/Google有关于ovirt节点机上配置网桥的资料,发现ovirt节点主机默认就是网桥模式,我也尝试重新配置了网桥,但问题仍然存在,纠结了我好几天,直到我Google到一篇帖子(https://forum.opennebula.io/t/vm-can-only-be-pinged-from-node-solved/3196/12),这个帖子中有一个回答让我眼前一亮。下图是回答的截图。
大概意思是说Hyper-V(查了一下说是微软的虚拟化软件)有一个MAC欺骗防护,它会过滤掉ARP请求,需要关闭这个功能(英语不是太好,如果翻译的不对,各位见谅)。我盲猜难道Oracle VM VirtualBox默认开启了网卡的混杂模式,过滤了ARP请求?于是赶紧打开192.168.1.23主机的网络设置,如下图所示:
我了个擦,果然默认开启了混杂模式,而且选择的还是拒绝,把它改成全部允许,并点击OK按钮,关闭192.168.1.23虚拟机(我是直接强制退出的),并重新打开,通过192.168.1.22上的web管理系统重新启动192.168.1.24这台虚拟机,设置为DHCP(需要重启网卡服务),可以获取IP信息,且可以ping通网络,手动设置IP(也需要重启网卡服务),也可以ping通网络。物理机上会不会也存在这个问题呢,于是乎我又配置了一台物理机的节点机,经测试不存在这个问题。
如果上面有不正确的地方,请指正。