On 04/10/2011 06:32 PM, Serge Hallyn wrote:
Hi all,
some time ago bug
https://bugs.launchpad.net/ubuntu/maverick/+source/qemu-kvm/+bug/584048
was fixed in libvirt. It's the one where when a VM is started or stopped
which has a lower macaddr than what the bridge currently has, the bridge
changes macaddr and networking pauses. The fix was to make sure that a
macaddr assigned by libvirt will start with 'fe:' making it higher than
the physical interface.
But this doesn't help when virbr0 isn't associated with any physical
nic, as in the common NAT case!
Is there anything we can do to help that case?
Yes, it's already been addressed, The following commit was included in
0.9.0:
commit 5754dbd56d4738112a86776c09e810e32f7c3224
Author: Laine Stump <laine(a)laine.org>
Date: Wed Feb 9 03:28:12 2011 -0500
Give each virtual network bridge its own fixed MAC address
This fixes
https://bugzilla.redhat.com/show_bug.cgi?id=609463
The problem was that, since a bridge always acquires the MAC address
of the connected interface with the numerically lowest MAC, as guests
are started and stopped, it was possible for the MAC address to change
over time, and this change in the network was being detected by
Windows 7 (it sees the MAC of the default route change), so on each
reboot it would bring up a dialog box asking about this "new network".
The solution is to create a dummy tap interface with a MAC guaranteed
to be lower than any guest interface's MAC, and attach that tap to the
bridge as soon as it's created. Since all guest MAC addresses start
with 0xFE, we can just generate a MAC with the standard "0x52, 0x54,
0" prefix, and it's guaranteed to always win (physical interfaces are
never connected to these bridges, so we don't need to worry about
competing numerically with them).