[radvd-devel-l] resetting ipv6-allrouters membership on eth6

Pekka Savola pekkas at netcore.fi
Wed Apr 28 02:35:53 EDT 2010


There have been changes in this behaviour since radvd 1.1. It would be 
helpful if you could test the latest radvd?

On Tue, 27 Apr 2010, Ivan Skytte Jørgensen wrote:
> [This is possibly a resend]
> After configuring a previously-unused interface eth6 I see:
>
> soekris2:~ # fgrep ipv6-allrouters /var/log/messages|tail
> Apr 25 20:04:26 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:06:44 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:08:09 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:11:11 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:14:27 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:18:50 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:23:30 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:24:48 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:28:31 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
> Apr 25 20:32:45 soekris2 radvd[5000]: resetting ipv6-allrouters membership on eth6
>
> I have IPv6 and radvd running on all the other interfaces. The eth6interface is the only that generates this warning.
> The only special thing about eth6 is that it it has a VLAN running on top of it. (radvd runs fine on the VLAN)
>
> I did manage to get an strace of when radvd logs the warning:
>
> --- SIGALRM (Alarm clock) @ 0 (0) ---
> gettimeofday({1272219810, 505741}, NULL) = 0
> ioctl(4, SIOCGIFFLAGS, {ifr_name="eth6", ifr_flags=IFF_UP|IFF_BROADCAST|IFF_RUNNING|IFF_PROMISC|IFF_MULTICAST}) = 0
> open("/proc/net/igmp6", O_RDONLY)       = 5
> fstat64(5, {st_mode=S_IFREG|0444, st_size=0, ...}) = 0
> mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f2d000
> read(5, "1    lo              ff020000000"..., 1024) = 1024
> read(5, "000000000000001ffca90c2     1 00"..., 1024) = 1024
> read(5, "00000004 0\n12   sixxs           "..., 1024) = 437
> read(5, "", 1024)                       = 0
> read(5, "", 1024)                       = 0
> close(5)                                = 0
> munmap(0xb7f2d000, 4096)                = 0
> time(NULL)                              = 1272219810
> send(3, "<28>Apr 25 20:23:30 radvd[5000]:"..., 77, MSG_NOSIGNAL) = 77
> setsockopt(4, SOL_IPV6, IPV6_ADD_MEMBERSHIP, "\377\2\0\0\0\0\0\0\0\0\0\0\0\0\0\2\10\0\0\0", 20) = -1 EADDRINUSE (Address already in use)
> gettimeofday({1272219810, 511303}, NULL) = 0
> open("/proc/sys/net/ipv6/conf/all/forwarding", O_RDONLY) = 5
>
> Looking at the device-linux.c source it appears that the all-routers multicast membership is not found, radvd tries to join the multicast group, but kernel says "already in use".
> Yet the group membership isn't there:
>
> soekris2:~ # cat /proc/net/igmp6
> 1    lo              ff020000000000000000000000000001     1 0000000C 0
> 2    eth0            ff0200000000000000000001ff000000     3 00000004 0
> 2    eth0            ff020000000000000000000000000002     2 00000004 0
> 2    eth0            ff020000000000000000000000000202     1 00000004 0
> 2    eth0            ff0200000000000000000001ffca90c0     3 00000004 0
> 2    eth0            ff020000000000000000000000000001     1 0000000C 0
> 3    eth1            ff0200000000000000000001ff000000     3 00000004 0
> 3    eth1            ff020000000000000000000000000002     2 00000004 0
> 3    eth1            ff020000000000000000000000000202     1 00000004 0
> 3    eth1            ff0200000000000000000001ffca90c1     3 00000004 0
> 3    eth1            ff020000000000000000000000000001     1 0000000C 0
> 4    eth2            ff0200000000000000000001ff000000     1 00000004 0
> 4    eth2            ff020000000000000000000000000002     1 00000004 0
> 4    eth2            ff020000000000000000000000000202     1 00000004 0
> 4    eth2            ff0200000000000000000001ffca90c2     1 00000004 0
> 4    eth2            ff020000000000000000000000000001     1 0000000C 0
> 5    eth3            ff020000000000000000000000000002     1 00000004 0
> 5    eth3            ff020000000000000000000000000202     1 00000004 0
> 5    eth3            ff0200000000000000000001ffca90c3     1 00000004 0
> 5    eth3            ff020000000000000000000000000001     1 0000000C 0
> 7    eth5            ff020000000000000000000000000002     1 00000004 0
> 7    eth5            ff020000000000000000000000000001     1 0000000C 0
> 8    eth6            ff0200000000000000000001ff000000     3 00000004 0
> 8    eth6            ff0200000000000000000001ffca3c42     3 00000004 0
> 8    eth6            ff020000000000000000000000000001     1 0000000C 0
> 9    eth7            ff020000000000000000000000000002     1 00000004 0
> 9    eth7            ff020000000000000000000000000001     1 0000000C 0
> 10   sit0            ff020000000000000000000000000001     1 0000000C 0
> 12   sixxs           ff020000000000000000000000000002     1 00000004 0
> 12   sixxs           ff020000000000000000000000000001     1 0000000C 0
> 13   vlan60          ff020000000000000000000000000002     1 00000004 0
> 13   vlan60          ff0200000000000000000001ff000000     3 00000004 0
> 13   vlan60          ff0200000000000000000001ffca3c42     3 00000004 0
> 13   vlan60          ff020000000000000000000000000001     1 0000000C 0
> 14   tun6to4         ff020000000000000000000000000001     1 0000000C 0
>
> Rhe setsockopt() call looks OK to me (..\10.. means ifindex 8 which is the correct one) and radvd is giving the correct information to the kernel, but something goes wrong. I cannot imagine why. The kernel code looks OK, and it works fine for all the other active interface.
>
> radvd version: 1.1
> soekris2:~ # uname -a
> Linux soekris2 2.6.27.7-isj #2 SMP Tue Feb 17 18:04:18 CET 2009 i586 i586 i386 GNU/Linux
>
>
> I am not sure if there is something wrong in my configuration, or if I am looking at an obscure kernel bug.
>
> Do anyone recognise this error, or have any advice?
>
> /isj
>
>

-- 
Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings


More information about the radvd-devel-l mailing list