获取KVM虚拟机DHCP的ip地址

获取KVM虚拟机DHCP的ip地址

一 基本思路

KVM虚拟机支持birdge网卡和nat模式网卡。本文只关注nat网卡。采用libvirt管理的虚拟机,会生成一个XML文件,文件内部保护具体的网卡配置,里面包含MAC地址。libvirt采用dnsmasq来提供dhcp服务,只需在dnsmasq里面找到mac和ip映射关系,即可找到虚拟机的ip.

二 具体操作过程

1 根据虚拟机命令获取虚拟机XML文件,并解析出MAC地址

virsh dumpxml vm-name | sed -n '/mac address/p'| awk -F "[']" '{print $2}'

2 根据mac查询ip

grep $mac -rn /var/lib/libvirt/dnsmasq | awk '{print $2,$3}'

3 一条命令搞定

for mac in `virsh dumpxml vm-name | sed -n '/mac address/p'| awk -F "[']" '{print $2}'`;  do grep $mac -rn ./| awk '{print $2,$3}' ; done

vm-name为虚拟机名字,自行修改。如果有多个nat网卡,可以获取到多个ip,要求虚拟机开机,且正确获取IP地址。

你可能感兴趣的:(获取KVM虚拟机DHCP的ip地址)