Bug 1126301 - Can not migrate guest via ipv6
Summary: Can not migrate guest via ipv6
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: qemu-kvm
Version: 6.6
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: rc
: ---
Assignee: Amos Kong
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2014-08-04 06:47 UTC by Qian Guo
Modified: 2015-05-25 00:07 UTC (History)
13 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-08-06 02:40:49 UTC


Attachments (Terms of Use)

Description Qian Guo 2014-08-04 06:47:17 UTC
Description of problem:
Test migration in ipv6 environment, but failed.

Version-Release number of selected component (if applicable):
qemu-kvm-0.12.1.2-2.434.el6.x86_64

How reproducible:
100%

Steps to Reproduce:'
1.Disable ip6tables 
# iptables -F ; ip6tables -F

2.The src and dst qemu process list as followings
src # /usr/libexec/qemu-kvm -cpu Penryn -m 4G -smp 4 -M pc -enable-kvm -name rhel7 -nodefaults -nodefconfig -vga std -monitor stdio -drive file=/mnt/rhel6.5/rhel6u5basecp2.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native,cache=none -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -spice disable-ticketing,port=5900 -vga qxl -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-netpci0,mac=54:52:01:21:1a:01 -qmp unix:/tmp/q1,server,nowait -monitor unix:/tmp/m1,server,nowait


Dst # /usr/libexec/qemu-kvm -cpu Penryn -m 4G -smp 4 -M pc -enable-kvm -name rhel7 -nodefaults -nodefconfig -vga std -monitor stdio -drive file=/mnt/rhel6.5/rhel6u5basecp2.qcow2,if=none,id=drive-virtio-disk0,format=qcow2,werror=stop,rerror=stop,aio=native,cache=none -device virtio-blk-pci,drive=drive-virtio-disk0,id=virtio-disk0 -spice disable-ticketing,port=5900 -vga qxl -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=virtio-netpci0,mac=54:52:01:21:1a:01 -qmp unix:/tmp/q1,server,nowait -monitor unix:/tmp/m1,server,nowait -incoming tcp:0:4444


3.In both hosts, bridge interfaces can get ipv6 global addresses:
host1 # ifconfig bond-br 
bond-br   Link encap:Ethernet  HWaddr 00:1B:21:7A:76:84  
          inet addr:192.168.100.1  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: 2001::21b:21ff:fe7a:7684/64 Scope:Global
          inet6 addr: fe80::21b:21ff:fe7a:7684/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:16338 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2340 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:882358 (861.6 KiB)  TX bytes:101492132 (96.7 MiB)

host1 # brctl show bond-br
bridge name	bridge id		STP enabled	interfaces
bond-br		8000.001b217a7684	no		eth0
							tap0
host2 # ifconfig bond-br
bond-br   Link encap:Ethernet  HWaddr 00:15:17:AE:6C:BC  
          inet addr:192.168.100.2  Bcast:192.168.100.255  Mask:255.255.255.0
          inet6 addr: 2001::215:17ff:feae:6cbc/64 Scope:Global
          inet6 addr: fe80::215:17ff:feae:6cbc/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:17921 errors:0 dropped:0 overruns:0 frame:0
          TX packets:16072 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:102298782 (97.5 MiB)  TX bytes:1077472 (1.0 MiB)

# brctl show
bridge name	bridge id		STP enabled	interfaces
bond-br		8000.001517ae6cbc	no		eth1
							tap0

4.Can ping successfully via ipv6:
host1 # ping6 2001::215:17ff:feae:6cbc -c 5
PING 2001::215:17ff:feae:6cbc(2001::215:17ff:feae:6cbc) 56 data bytes
64 bytes from 2001::215:17ff:feae:6cbc: icmp_seq=1 ttl=64 time=0.137 ms
64 bytes from 2001::215:17ff:feae:6cbc: icmp_seq=2 ttl=64 time=0.130 ms
64 bytes from 2001::215:17ff:feae:6cbc: icmp_seq=3 ttl=64 time=0.203 ms
64 bytes from 2001::215:17ff:feae:6cbc: icmp_seq=4 ttl=64 time=0.133 ms
64 bytes from 2001::215:17ff:feae:6cbc: icmp_seq=5 ttl=64 time=0.136 ms

--- 2001::215:17ff:feae:6cbc ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3999ms
rtt min/avg/max/mdev = 0.130/0.147/0.203/0.031 ms


5.Migrate from host1 to host2:
# nc -U /tmp/q1 
{"QMP": {"version": {"qemu": {"micro": 1, "minor": 12, "major": 0}, "package": "(qemu-kvm-0.12.1.2-2.434.el6)"}, "capabilities": []}}
{"execute":"qmp_capabilities"}
{"return": {}}
{"execute": "migrate","arguments":{"uri": "tcp:[2001::215:17ff:feae:6cbc]:4444"}}
{"return": {}}
{"timestamp": {"seconds": 1407134527, "microseconds": 819052}, "event": "SPICE_MIGRATE_COMPLETED"}




Actual results:
migrate failed:
(qemu) info migrate 
Migration status: failed



Expected results:
migrated successfully

Additional info:
From host2, can capture following infos from tcpdump, when do migration:

# tcpdump -i bond-br tcp  -n
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on bond-br, link-type EN10MB (Ethernet), capture size 65535 bytes
02:43:31.749806 IP6 2001::21b:21ff:fe7a:7684.49798 > 2001::215:17ff:feae:6cbc.krb524: Flags [S], seq 4111491297, win 14400, options [mss 1440,sackOK,TS val 18497113 ecr 0,nop,wscale 7], length 0
02:43:31.749854 IP6 2001::215:17ff:feae:6cbc.krb524 > 2001::21b:21ff:fe7a:7684.49798: Flags [R.], seq 0, ack 4111491298, win 0, length 0


If anything I made, please feel free to correct me

Comment 1 Qian Guo 2014-08-04 06:49:40 UTC
According to bug 680356 comment 32 , this bug is verified by qemu-kvm-0.12.1.2-2.320.el6, but can not find this build in brewweb, so I tested qemu-kvm-0.12.1.2-2.334.el6 which hit same issue.

I will set regression in this bug first.

Comment 4 Qian Guo 2014-08-04 07:36:25 UTC
Test locally with ipv6 still failed, the kernel build is :
kernel-2.6.32-495.el6.x86_64

IPV4 works fine

Comment 8 Amos Kong 2014-08-05 18:22:15 UTC
Hi qiguo,

Please reference the migrate steps in https://bugzilla.redhat.com/show_bug.cgi?id=680356#c32

You should not use '-incoming tcp:0:4444', '0' is a IPv4 address, [::1] is the IPv6 address for arbitrary address.

Or you can use '-incoming tcp:localhost:4444', Or '-incoming tcp:[2001::215:17ff:feae:6cbc]:4444'

Comment 9 Amos Kong 2014-08-06 01:36:05 UTC
Reference info: http://www.ripe.net/lir-services/new-lir/ipv6_reference_card.pdf

Unspecified  (::/128 , 0.0.0.0)
This address may only be used as a 
source address by an initialising host 
before it has learned its own address

Loopback (::1/128 , 127.0.0.1)
This address is used when a host talks to 
itself over IPv6. This often happens when 
one program sends data to another

Comment 10 Qian Guo 2014-08-06 02:40:49 UTC

(In reply to Amos Kong from comment #8)
> Hi qiguo,
> 
> Please reference the migrate steps in
> https://bugzilla.redhat.com/show_bug.cgi?id=680356#c32
> 
> You should not use '-incoming tcp:0:4444', '0' is a IPv4 address, [::1] is
> the IPv6 address for arbitrary address.
> 
> Or you can use '-incoming tcp:localhost:4444', Or '-incoming
> tcp:[2001::215:17ff:feae:6cbc]:4444'

Hi, Amos

Thanks for your helpful information, I retest it and it passed if with "-incoming tcp:[2001::215:17ff:feae:6cbd]:4444" and can not work with "-incoming tcp:[::1]:4444"

I will close this bug as NOTA
Thanks : )

Comment 11 Amos Kong 2014-08-06 03:23:08 UTC
(In reply to Qian Guo from comment #10)
> 
> (In reply to Amos Kong from comment #8)
> > Hi qiguo,
> > 
> > Please reference the migrate steps in
> > https://bugzilla.redhat.com/show_bug.cgi?id=680356#c32
> > 
> > You should not use '-incoming tcp:0:4444', '0' is a IPv4 address, [::1] is
> > the IPv6 address for arbitrary address.
> > 
> > Or you can use '-incoming tcp:localhost:4444', Or '-incoming
> > tcp:[2001::215:17ff:feae:6cbc]:4444'
> 
> Hi, Amos
> 
> Thanks for your helpful information, I retest it and it passed if with
> "-incoming tcp:[2001::215:17ff:feae:6cbd]:4444" and can not work with
> "-incoming tcp:[::1]:4444"

Fix one thing in Comment #8,  :: is arbitrary address / Unspecified address.

"::1" can only be used for local migration.
 
> I will close this bug as NOTABUG

Thanks.

> Thanks : )

Comment 12 Qian Guo 2014-08-06 03:24:52 UTC
(In reply to Amos Kong from comment #11)
> (In reply to Qian Guo from comment #10)
> > 
> > (In reply to Amos Kong from comment #8)
> > > Hi qiguo,
> > > 
> > > Please reference the migrate steps in
> > > https://bugzilla.redhat.com/show_bug.cgi?id=680356#c32
> > > 
> > > You should not use '-incoming tcp:0:4444', '0' is a IPv4 address, [::1] is
> > > the IPv6 address for arbitrary address.
> > > 
> > > Or you can use '-incoming tcp:localhost:4444', Or '-incoming
> > > tcp:[2001::215:17ff:feae:6cbc]:4444'
> > 
> > Hi, Amos
> > 
> > Thanks for your helpful information, I retest it and it passed if with
> > "-incoming tcp:[2001::215:17ff:feae:6cbd]:4444" and can not work with
> > "-incoming tcp:[::1]:4444"
> 
> Fix one thing in Comment #8,  :: is arbitrary address / Unspecified address.
> 
> "::1" can only be used for local migration.
>  
> > I will close this bug as NOTABUG
> 
> Thanks.
> 
> > Thanks : )
Great, verified this by my testing.

Thanks


Note You need to log in before you can comment on or make changes to this bug.