gpt4 book ai didi

qemu - libvirt:从客户机获取 ipv4 地址

转载 作者:行者123 更新时间:2023-12-03 13:39:00 27 4
gpt4 key购买 nike

我正在寻找一种解决方案来获取使用 libvirt 在 qemu/kvm 上运行的 VM 的 ipv4 地址或其他元数据?我还研究了 ovirt 客户代理和 qemu 客户代理,但我想知道是否有更好/更简单的方法来获取这些数据?

基本上我有几台运行 KVM 的主机,对于每个特定的私有(private) IP 地址,我需要能够知道哪个 VM 正在使用该 IP 地址运行(由 DHCP 服务器提供)。

最佳答案

我在每个虚拟机上安装 avahi,所以他们会公布自己的地址。但是,这不是唯一可用的选项(特别是如果您的 VM 包含与 Linux 不同的内容)。所以进入virsh选项的神奇世界!

*) 首先,您需要获取 VM 网卡的 MAC 地址:

[root@5844 ~]# virsh domiflist b2bua
Interface Type Source Model MAC
-------------------------------------------------------
vnet0 network default virtio 52:54:00:aa:bb:cc
vnet1 bridge br1 virtio 52:54:00:dd:ee:ff

[root@5844 ~]#

*) 现在让我们看一下 ARP 表
[root@5844 ~]# arp -e
Address HWtype HWaddress Flags Mask Iface
xx.xx.xx.xx ether xx:xx:xx:xx:xx:xx C br0
192.168.122.14 ether 52:54:00:xx:xx:xx C virbr0
192.168.122.51 ether 52:54:00:aa:bb:cc C virbr0
[root@5844 ~]#

*) 现在让我们将所有内容粘合在一起(并添加一些 shell/regex 魔法):
[root@5844 ~]# for mac in `virsh domiflist b2bua |grep -o -E "([0-9a-f]{2}:){5}([0-9a-f]{2})"` ; do arp -e |grep $mac  |grep -o -P "^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}" ; done
192.168.122.51
[root@5844 ~]#

关于qemu - libvirt:从客户机获取 ipv4 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19057915/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com