获取桥接虚拟机的 IP 地址

获取桥接虚拟机的 IP 地址

我正在使用 KVM 和 qemu/libvirtd 在我的本地网络中实现虚拟化。

现在我正在编写一个脚本,该脚本应该可以简化虚拟机的克隆和下载过程。为此,我需要知道这些虚拟机的 IP 地址。例如,获取新创建/克隆的虚拟机的 IP。

设置如下:

  • 具有一个桥接器的虚拟机管理程序,供所有虚拟机使用
  • 所有虚拟机都从外部 dhcp 服务器获取 ip
  • 外部 dhcp 服务器(在 fritz.box 上)(可以由在虚拟机管理程序上运行的服务器替换)

下列某些方法可能是可行的:

  • 我可以从 qemu-config 文件中获取 mac 地址,并使用它来查找 dhcp 服务器内的关联 ip 地址
  • 执行广播 ping 不会返回网络中的所有活动虚拟机,但可以使用一些奇怪的 bash 循环来 ping 所有 254 个 ip。(会产生一些大的开销;我不喜欢它)
  • 之后使用 arp 根据配置文件中的 mac 地址 grep 一个 ip

有没有更优雅的方法来实现这一点?

答案1

您忘记了最常见的方法 - 让虚拟机运行守护进程(或代理,命名无关紧要),它将向外部机器报告虚拟机的详细信息。这样,您不仅可以收集 IP,还可以收集统计数据、负载、关键服务的状态等。

顺便说一下,oVirt 和即将推出的 RHEV 版本中已经存在这样的代理

相关内容