[PVE-User] How to see IP address of guest VM

Paul Gray gray at cs.uni.edu
Thu Jun 14 12:44:28 CEST 2012

On 06/14/2012 04:57 AM, Paul Gray wrote:
> On 06/14/2012 12:42 AM, Jewel Nuruddin wrote:
>> sorry, I am not a developer, as some other can show IP that's why I
>> though proxmox also implement the same thing.
> I'd suggest that a low-friction way to get the information that you're
> after is to simply run arpwatch on the bridges to watch for MAC-IP
> bindings. You could then periodically (or on-demand) pull the output
> from arpwatch and push it through a grep of the MACs found in the server
> .conf files.

Just a quick followup to state that this indeed "works for me" in the 
sense that anything that's on the network gets picked up.

I describe the process below, which is not "the requested solution," but 
if one were to tweak what I outline below so as to:
   * Pull the MAC and the IP from the arpwatch output
   * grep the conf files for a corresponding MAC match. Find the
     MAC for the IP found in the arpwatch output
   * lock the corresponding server's conf file
   * sed or echo
    "# arpwatch found the IP address ${IPADDR} bound to ${VMNET}"
     into the conf file (So that it will show up in the comment field
     in the GUI.
   * unlock the conf file.

More details:

My Proxmox servers are named vm1-vm8  and clustered:
# Install arpwatch
root at vm1:~# apt-get install arpwatch

# Pull all interfaces
root at vm1:~# for x in $(ifconfig -a | grep Link | grep HW | awk '{print 
$1}'); do echo $x -m root >> /etc/arpwatch.conf ; done

# Restart arpwatch
root at vm1:~# /etc/init.d/arpwatch restart

This is where the "elegant solution" and the "expedient solution" 
diverge a bit:  The "best" approach would be to pull the data directly 
from the arpwatch databases.  But the "expedient" approach is to pull 
the results from /var/log/syslog.  The log entries that you want look 
something like this:
  root at vm8:~# grep arpwatch: /var/log/syslog | grep "new station"
Jun 14 05:35:56 station245 arpwatch: new station 
a6:e5:68:a4:3f:f2 vmbr0
Jun 14 05:35:56 station245 arpwatch: new station 
a6:e5:68:a4:3f:f2 tap101i0
Jun 14 05:35:56 station245 arpwatch: new station 
a6:e5:68:a4:3f:f2 eth0
Jun 14 05:35:56 station245 arpwatch: new station 
a6:e5:68:a4:3f:f2 eth0

The above is one of my VMs.  From this output, the mac and matching IP 
can be pulled. With the MAC in hand, one can find a match in 
/etc/pve/qemu-server/*.conf.  With the conf file locked, you can then 
drop the corresponding IP in the conf file as a comment so as to show up 
in the GUI.  This is easy to do expediently, but the bash/awk/sed
prototype that I wrote for proof of concept (which is working) isn't 
suitable for posting here just yet.

Paul Gray                                         -o)
314 East Gym, Dept. of Computer Science           /\\
University of Northern Iowa                      _\_V
  Message void if penguin violated ...  Don't mess with the penguin
  No one says, "Hey, I can't read that ASCII attachment ya sent me."

More information about the pve-user mailing list