获取KVM + libvirt的DHCP客户端列表?

Modified on: Sun, 25 Aug 2019 06:40:02 +0800

我有几个虚拟机通过KVM + libvirt在Ubuntu 9.10上运行。我希望能够找到分配给每个主机的IP地址,而无需为每台机器打开物理“控制台”并调用ifconfig

考虑:

rascher@localhost:~$ virsh -c qemu:///system list --all
Connecting to uri: qemu:///system
 Id Name                 State
----------------------------------
  1 machine1          running
  2 machine2          running
  - machine3          shut off

我的网络配置如下:

<network> <name>default</name> <uuid>1be...</uuid> <forward mode='route' dev="eth0"/> <bridge name='virbr0' stp='on' forwardDelay='0' /> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.2' end='192.168.122.254' /> </dhcp> </ip> </network>

那么我怎样才能得到一个上面写着:

的列表

<network>
  <name>default</name>
  <uuid>1be...</uuid>
  <forward mode='route' dev="eth0"/>
  <bridge name='virbr0' stp='on' forwardDelay='0' />
  <ip address='192.168.122.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.122.2' end='192.168.122.254' />
    </dhcp>
  </ip>
</network>

我玩arp

machine1 IP address = 192.168.122.16
machine2 IP address = 192.168.122.238
...

但这不会映射到虚拟机的ID。

是否有一些工具(通过命令行,virshvirt-*)我可以确定这些信息吗?或者我是否需要在每个单独的VM上运行一些花哨的脚本,检查自己的IP并将其报告回主机操作系统?

作者:rascher

最佳答案

所以,在调查时,我发现libvirt使用dnsmasq为客户操作系统执行DHCP和DNS。

dnsmasq将根据从guest虚拟机接收的任何主机名在主机的DNS表中设置主机名。

因此,根据这些说明和很多谷歌搜索,我只需要创建并添加到/etc/dhclient.conf:

send host-name "machine1"

现在,从我的主机操作系统,我可以ping machine1.

有谁知道为什么我需要添加尾随“。”为了解决DNS条目?我怎么能改变这个?

作者:,rascher

相关问答

添加新评论