On 5/5/20 9:26 AM, john doe wrote:
On 5/5/2020 8:29 AM, Michal Privoznik wrote:
Because interface type='bridge' and type='network' are not the same. The
libvirt_guest plugin needs a list of MAC addresses because it tries to
find a match across libvirt domain name -> list of domain's MAC
addresses -> list of leases. And whenever a domain is started, all its
interfaces with type='network' will notify the corresponding network and
the code that handles libvirt networks will dump the MAC address into a
file for the NSS plugin to use. But, if plain type='bridge' is used then
all that is done is that the TAP is plugged into the bridge (which
ensures the connectivity), but does not notify the network which in turn
means that the MAC dumping code is not run and hence the NSS plugin
won't find a match.
I don't understand why the network can not be notified, could it be a
feature request?
No. interface type='bridge' exists exactly for the reasons that users
want libvirt just to plug TAP device into a bridge they manage. And they
don't want libvirt to touch the bridge in any other way.
Is there a reason why you are using interface type='bridge' with the
default network?
I'm just starting with libvirt, so I could be missing something.
Yes, I don't need libvirt touching iptables at all.
In other words, is there a way to be able to use libvirt_guest without
having libvirt interacting with iptables.
I'm not quite sure how to achieve NAT then - do you insert the NAT rules
yourself? If it is so, then what you may do is to change the type of the
default network to 'open' and then use interface type='network' from the
domain.
Also, from (1):
"virsh net-dhcp-leases $network
where $network iterates through
all running network..."
If I understand correctly, the below should list all running network:
$ virsh net-dhcp-leases $network
error: command 'net-dhcp-leases' requires <network> option
This lists DHCP leases for given network. To list all running networks
you can use 'virsh net-list'.
I would suggest rephrasing the above to something along the lines of:
"virsh net-dhcp-leases $network, where '$network' is to be supstituted
by the desired network (E.G, 'default') or use virsh net-list to list
all available network."
Actually, the whole statement (copied verbatim from the webpage) is:
The NSS module then merely consults the list trying to find the match.
Users can view the list themselves:
virsh net-dhcp-leases $network
where $network iterates through all running networks.
Maybe I'm assuming too much, but this doesn't say that net-dhcp-leases
will print all running networks. The way I read this is: The NSS module
then merely does equivalent of iterating over every running network and
executing 'net-dhcp-leases' and trying to find the match.
I thought that using shell variables in a documentation for an UNIX-like
command is well understood, but maybe I am wrong.
Michal