Comment 0 for bug 1332420

Revision history for this message
Radek Zajic (radek-zajic) wrote :

Dear all,

a regression has been introduced in Linux Kernels by patch https://github.com/torvalds/linux/commit/efe4208f47f907

The regression behaves in a way that when there are multiple IPv6 sockets created with multicast/link-local addresses on the same interface, handling of the packets is broken. (Reported e. g. on http://www.spinics.net/lists/netdev/msg286344.html)

This can be reproduced by
1. installing Ubuntu 14.04 with default kernel
2. installing dibbler-server and configuring with basic dhcpv6 settings (hand out one subnet), for example:
/etc/dibbler/server.conf:
log-level 8
preference 0
iface <IFACE> {
 t1 1800-2000
 t2 2700-3000
 prefered-lifetime 3600
 valid-lifetime 7200
 subnet 2001:db8:abcd::/64
 class {
    pool 2001:db8:abcd::1000-2001:db8:abcd::1fff
 }
 ta-class {
    pool 2001:db8:abcd::2000-2001:db8:abcd::2fff
 }
 option dns-server 2001:db8:abcd::1
}

3. get a DHCPv6 client and request addresses from the server
4. view the packets on the interface affected, use e.g.: tcpdump -i <IFACE> '(udp port 546)||(udp port 547)' -n
There will be multicast DHCPv6 solicits, however no DHCPv6 responses, as Dibbler creates two sockets on the same interface (multicast socket first, link-local socket next).

There is a patch available in the upstream, that will be probably merged to 3.15.2 kernel (it is not present in current 3.15.1 vanilla kernel) - http://patchwork.ozlabs.org/patch/352246/

When applying this patch to trusty-proposed linux-image-3.13.0-30-generic_3.13.0-30.54 from Git repositories at git clone git://kernel.ubuntu.com/ubuntu/ubuntu-trusty.git and recompiling the kernel, everything starts to work as expected.

Please apply this patch ASAP to fix IPv6 multicast, there is more and more IPv6 in the wild and this bug is a serious one.