Can i assign static vnet* device for some guests?
On 28.10.2016 11:09, Anton Gorlov wrote:> Can i assign static vnet* device for some guests? >What do you mean? vnet* devices are created by libvirt when a domain is being started (or on device hotplug). In general, unless all devices would be statically allocated, it would be impossible to guarantee certain vnet name. However, what you can do is to create the device yourself and then just tell libvirt to use it: <interface type='bridge'> <source bridge='vnetX'/> </interface> But most likely, the problem you are trying to solve looks for a different solution. If you need the device name in order to set up some environment (e.g. apply some FW rules on the device), we have network hooks and domain hooks - user defined scripts that are run by libvirt on various events (e.g. domain startup, device hotplug, etc.). You should consider those. Michal
28.10.2016 23:32, Michal Privoznik пишет: On my host node i using system created bridge. example brctl show br1 bridge name bridge id STP enabled interfaces br1 8000.0025907925d3 no eth1 vnet0 vnet2 vnet3 vnetN - guest net adapter, It added to bridge at guest's node started. bridge defined as =<network> <name>internal</name> <forward mode="bridge"/> <bridge name="br1"/> </network> = But in guest config xml vnet[0-3] nod defined == <interface type='network'> <mac address='52:54:00:b3:b0:47'/> <source network='internal'/> <model type='virtio'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </interface> ==>> Can i assign static vnet* device for some guests? > What do you mean? > vnet* devices are created by libvirt when a domain is being started (or > on device hotplug). In general, unless all devices would be statically > allocated, it would be impossible to guarantee certain vnet name. > > However, what you can do is to create the device yourself and then just > tell libvirt to use it: > > <interface type='bridge'> > <source bridge='vnetX'/> > </interface> > > But most likely, the problem you are trying to solve looks for a > different solution. If you need the device name in order to set up some > environment (e.g. apply some FW rules on the device), we have network > hooks and domain hooks - user defined scripts that are run by libvirt on > various events (e.g. domain startup, device hotplug, etc.). You should > consider those. > > Michal >
❦ 28 octobre 2016 14:32 -0700, Michal Privoznik <mprivozn@redhat.com> :> vnet* devices are created by libvirt when a domain is being started (or > on device hotplug). In general, unless all devices would be statically > allocated, it would be impossible to guarantee certain vnet name. > > However, what you can do is to create the device yourself and then just > tell libvirt to use it: > > <interface type='bridge'> > <source bridge='vnetX'/> > </interface>I think that libvirt will just dismiss the interface because of its prefix and creates another one itself. It would work with another prefix. -- Make sure your code "does nothing" gracefully. - The Elements of Programming Style (Kernighan & Plauger)