我正在尝试找到一种方法来找出虚拟机实际驻留在哪台服务器上。我知道虚拟机的 IP。它在其中一个 Ubuntu 服务器内的本地网络上处于桥接模式。问题是我不知道是哪一个。
我使用 arp-scan 获取了机器的 mac 和 IP。是否有某种实用程序可以向我显示 arp 通过本地网络所采用的路由,以便我可以捕获实际 VM 所在服务器的 mac 或 ip?
答案1
解决这个问题的一般方法是询问主机而不是虚拟机。理论上,虚拟机有不认为它们是虚拟机。
为此,假设是 virtualbox,给VBoxManage list runningvms
定主机上的命令应显示该主机上所有正在运行的虚拟机。其他虚拟机管理程序可能提供类似的脚本功能。
如果你需要一个纯粹的网络解决方案,你需要一些非常高端的交换机(想想思科之类的 - 而不是消费级产品)。托管交换机应该允许你查看来自给定端口的所有 mac 地址。只需将端口映射到它们所连接的主机,然后在交换机上找到 MAC 地址即可。
由于我们的网络管理员无权访问 VMWare 环境,因此他就是这样追踪漫游虚拟机的。
长话短说:你无法从客人你必须询问链条上更高层次的东西,比如主持人或者交换机端口。
答案2
不,没有办法做到这一点*。
没有 arp 路由这种东西。它仅对本地有意义。
*...除非您以某种方式控制虚拟化层,以便可以将该信息推送给客户机。
答案3
不。
在组织层面,您需要对此类事情进行盘点。对于开发人员及其一两个虚拟机管理程序而言,如果虚拟机没有任何生产意义,那么临时将虚拟机放置在各处是可以的。但在托管环境中,这样做是不行的。您如何知道虚拟机管理程序因补丁或硬件维护而重新启动将会影响什么?您如何知道有多少可用容量以及您的硬件负载是否得到适当平衡?您必须手动管理它,或者必须使用管理它的软件(“云”)。
通过查询每个虚拟机管理程序中运行的虚拟机及其主机名、网络地址、用途和其他相关信息来制作清单。然后,您现在和将来都会得到答案。