#650047 radvd sometimes sends advertisements on the wrong interface

Package:
radvd
Source:
radvd
Description:
Router Advertisement Daemon
Submitter:
David Madore
Date:
2013-10-06 17:04:21 UTC
Severity:
normal
#650047#5
Date:
2011-11-25 22:39:31 UTC
From:
To:
When radvd has been configured to listen on an interface but ignore if
missing, and when that interface is later brought up, a router
advertisement is sent for the prefix of the newly activated interface,
but it is sent to the wrong interface (i.e., some already existing
interface).

To reproduce: consider the following radvd.conf:

### cut after ###
interface eth0
{
        AdvSendAdvert on;
        MaxRtrAdvInterval 300;
        prefix 2001:db8::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};

interface dummy0
{
        IgnoreIfMissing on;
        AdvSendAdvert on;
        MaxRtrAdvInterval 60;
        prefix 2001:db8:bad::/64
        {
                AdvOnLink on;
                AdvAutonomous on;
        };
};
### cut before ###

Start radvd with eth0 up but dummy0 down.  *Then* bring dummy0 up:
radvd sends a router advertisement for 2001:db8:bad::/64 on eth0
(rather than on dummy0): this is wrong.

[Please forward this bug upstream if appropriate.]

#650047#10
Date:
2012-06-20 20:50:36 UTC
From:
To:
I can confirm this behaviour. I have a similar setup with two
interfaces on two different subnets. Assume eth0 (which is not
connected but ifup'ed on boot) should announce subnetE and wlan0
subnetW.

On wlan0, both subnets are announced and accepted by a client. This
unfortunately breaks IPv6 connectivity for the client on subnetE,
because the address from subnetE takes precedence over the address from
subnetW upon source address selection. However, the wlan0 interface has
only an IPv6 address on subnetW and therefore the connection will
timeout.

My workaround:

Instead of configuring the explicit prefix (e.g. 2001:db8::/64) in
radvd.conf, I use the special prefix ::/64 (for both interfaces). With
this setting, the behaviour is gone and the client receives only
announcements for the proper subnet.

Thanks for looking into this.

Nicolas

#650047#15
Date:
2012-06-20 20:54:21 UTC
From:
To:
Sorry, typo:

This unfortunately breaks IPv6 connectivity for the client on
_subnetW_ !


Nicolas

#650047#20
Date:
2013-10-06 17:03:43 UTC
From:
To:
I have this bug too. I use radvd to announce prefix to Xen domUs and
each time I (re)start one, a RA is sent on other VMs virtual interfaces,
breaking routing, and making the whole system broken. Worse is when the
RA goes to the eth0, even if not listed in any interface xxx {} :/

Currently this makes radvd unusable in such env.

Alexandre.