[libvirt] [RFC] VM which uses macvtap will not respond ping request when being migrated

Wangrui (K) moon.wangrui at huawei.com
Tue Mar 25 06:15:44 UTC 2014


Thanks.

libvirt 1.1.0  qemu 1.5.1  host kernel 3.0.58

guest hasn't ipv6 enabled.

macvtap0  Link encap:Ethernet  HWaddr 52:54:00:37:CD:68
          inet6 addr: fe80::5054:ff:fe37:cd68/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:0 (0.0 b)  TX bytes:468 (468.0 b)

macvtap0 is belong to vm at the dest side. When migrate begins macvtap0 will send the packet like this:
		  
07:57:59.233270 IP6 :: > ff02::16: HBH ICMP6, multicast listener report v2, 1 group record(s), lengt 28
07:58:00.096088 IP6 :: > ff02::1:ff6d:4665: ICMP6, neighbor solicitation, who has fe80::5054:ff:fe6d4665, length 24
07:58:00.123900 IP6 fe80::2a6e:d4ff:fe50:8d7 > ipv6-allrouters: ICMP6, router solicitation, length 1
07:58:00.175891 IP6 fe80::2a6e:d4ff:fe50:8d7 > ff02::16: HBH ICMP6, multicast listener report v2, 1 roup record(s), length 28
07:58:01.096089 IP6 fe80::5054:ff:fe6d:4665 > ipv6-allrouters: ICMP6, router solicitation, length 16

the virNetDevSetOnline in the libvirt makes macvtap0 up on the dest side, so macvtap0 sends the packets.

I do nothing when VM is migrating. The IPv6 packets are sent automatically from the dest host when it is up.
I guess this makes route table updated in switch.

the configure of macvtap in xml like this 
<interface type='direct'>
      <source dev='eth4' mode='bridge'/>
      <model type='virtio'/>
 </interface>

-----Original Message-----
From: sendmail [mailto:justsendmailnothingelse at gmail.com] On Behalf Of Laine Stump
Sent: Saturday, March 22, 2014 2:39 AM
To: libvir-list at redhat.com
Cc: Wangrui (K); chenliang (T); Zhaoyanbin (A); Michael S. Tsirkin
Subject: Re: [libvirt] [RFC] VM which uses macvtap will not respond ping request when being migrated

On 03/18/2014 02:12 AM, Wangrui (K) wrote:
> A vm which uses macvtap will not respond ping request, when the vm is being migrated. 
>
> I found that on the destination side the macvtap will send a IPv6 packet at the begin of migration to update the route table in switch, however VM is still on the src.
>
> In this case , what can I do to avoid VM's network disconnection
>

Can you provide more details on this? What are the versions of libvirt,
qemu, and kernel on your host system? Can you provide the <interface>
section of the guest's config?

Does this only occur when the guest has IPv6 enabled, and only for an
IPv6 ping? What is the packet that is sent? At the beginning of the
migration the guest is not running on the destination, and the host has
no idea what the guest's IPv6 (or v4) address might be, so it can't send
a IPv6 packet on behalf of the guest. The only thing I can think of
could be something to do with the link-local address (the fe80:...
address that is used for IPv6's discovery and autoconf protocols).




More information about the libvir-list mailing list