[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] Paused networking on VM up/down with NAT fwd



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 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).



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]