virsh domifaddr domain does not show static IP
Sebastian Mitterle
smitterl at redhat.com
Wed Sep 15 16:09:50 UTC 2021
After installing and configuring the qemu-guest-agent in the guest -
https://wiki.libvirt.org/page/Qemu_guest_agent
it should give you the IP with the domifaddr --source flag:
# virsh domifaddr avocado-vt-vm1 --source agent
Name MAC address Protocol Address
-------------------------------------------------------------------------------
lo 00:00:00:00:00:00 ipv4 127.0.0.1/8
- - ipv6 ::1/128
enc1 52:54:00:22:36:1b N/A N/A
On Wed, Sep 15, 2021 at 5:50 PM Charles Polisher <chas at chasmo.org> wrote:
> On 9/9/21 11:11, Kaushal Shriyan wrote:
>
> > I have assigned static IP for all the below KVM Guest VM's. Is there a
> > way to find out the IP of the below VM's from virsh utility or any
> > other utility? virsh domifaddr testdobssbahrainms does not show the
> > static IP.
> >
> > # virsh list --all
> > Id Name State
> > -----------------------------------------
> > 1 testdobssbahrainms running
> <snip>
> > # virt-install --version
> > 2.2.1
> > # cat /etc/redhat-release
> > CentOS Stream release 8
> >
> > #virsh domifaddr testdobssbahrainms
> > #Name MAC address Protocol Address
> >
> -------------------------------------------------------------------------------
>
> >
> >
> Kaushal,
>
> Probably the following was gleaned from this very list,
> in the last year or so IIRC. Hope this works for you.
> As you can see below, the technique is to grep the MAC addresses
> from the domain definitions, e.g.:
> # virsh dumpxml <domain> | grep 'mac address'
> <mac address='52:54:00:30:fe:d8'/>
> then grep the matching IP address from a listing of the
> hypervisor host's ARP table. e.g.:
> # arp -an | fgrep '52:54:00:30:fe:d8'
> ? (192.168.122.6) at 52:54:00:30:fe:d8 [ether] on virbr0
> ^^^^^^^^^^^^^ here is the IP address.
> The script follows my sig.
>
> Best regards,
> --
> Charles Polisher
>
> #!/usr/bin/perl -w
>
> #
>
> https://rwmj.wordpress.com/2010/10/26/tip-find-the-ip-address-of-a-virtual-machine/
> # Invocation: virt-addr.pl <guestname>
>
> use strict;
> use XML::XPath;
> use XML::XPath::XMLParser;
> use Sys::Virt;
>
> # Open libvirt connection and get the domain.
> my $conn = Sys::Virt->new (readonly => 1);
> my $dom = $conn->get_domain_by_name ($ARGV[0]);
>
> # Get the libvirt XML for the domain.
> my $xml = $dom->get_xml_description ();
>
> # Parse out the MAC addresses using an XPath expression.
> my $xp = XML::XPath->new (xml => $xml);
> my $nodes = $xp->find
> ("//devices/interface[\@type='network']/mac/\@address");
> my $node;
> my @mac_addrs;
> foreach $node ($nodes->get_nodelist) {
> push @mac_addrs, lc ($node->getData)
> }
>
> # Look up the MAC addresses in the output of 'arp -an'.
> my @arp_lines = split /\n/, `arp -an`;
> foreach (@arp_lines) {
> if (/\((.*?)\) at (.*?) /) {
> my $this_addr = lc $2;
> if (list_member ($this_addr, @mac_addrs)) {
> print "$1\n";
> }
> }
> }
>
> sub list_member
> {
> local $_;
> my $item = shift;
> foreach (@_) {
> return 1 if $item eq $_;
> }
> return 0;
> }
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/virt-tools-list/attachments/20210915/fc438510/attachment.htm>
More information about the virt-tools-list
mailing list