[radvd-devel-l] Multiple IPv6 Routers

Iain J. Watson lists at ij-watson.co.uk
Fri Nov 26 03:14:46 EST 2010


Hi,

Resending this as it doesn't appear to have went properly last time.
Sorry if this is a duplicate.

I am trying to set up a network with two IPv6 routers for redundancy
but am having very little success in making this work. With an IPv4
network I would use keepalived but I believe this is not necessary
with IPv6. I may be going about this in the totally wrong way but I
cannot find any useful information in the man page or general
searching the web. I hope you can help.

Each router is given :1 or :2 on each /64 subnet behind them. The :1
router is set with a high priority and the :2 is set as low priority.
For testing I have one server in each subnet pinging to the other.

Router :1 Config
-----------------------
interface eth1
{
       AdvSendAdvert on;
       AdvDefaultPreference high;
       MinRtrAdvInterval 10;
       MaxRtrAdvInterval 30;
       AdvReachableTime 1000;
       prefix 2a01:3d0:0:1::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
       route ::/0
       {
               AdvRoutePreference high;
       };
};

interface eth2
{
       AdvSendAdvert on;
       AdvDefaultPreference high;
       MinRtrAdvInterval 10;
       MaxRtrAdvInterval 30;
       AdvReachableTime 1000;
       prefix 2a01:3d0:0:2::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
       route ::/0
       {
               AdvRoutePreference high;
       };
};

Router :2 config
----------------------
interface eth1
{
       AdvSendAdvert on;
       AdvDefaultPreference low;
       MinRtrAdvInterval 10;
       MaxRtrAdvInterval 30;
       AdvReachableTime 1000;
       prefix 2a01:3d0:0:1::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
       route ::/0
       {
               AdvRoutePreference low;
       };
};

interface eth2
{
       AdvSendAdvert on;
       AdvDefaultPreference low;
       MinRtrAdvInterval 10;
       MaxRtrAdvInterval 30;
       AdvReachableTime 1000;
       prefix 2a01:3d0:0:2::/64
       {
               AdvOnLink on;
               AdvAutonomous on;
               AdvRouterAddr off;
       };
       route ::/0
       {
               AdvRoutePreference low;
       };
};

Using these configs, when both routers are up I can ping between the
servers fine, but the :1 router is not always the router used (as
shown by traceroute6).

box490:~# traceroute box567
traceroute to box567 (2a01:3d0:0:2:216:3eff:fe4b:b9c9), 30 hops max,
40 byte packets
 1   (2a01:3d0:0:1::1)  1.707 ms  1.578 ms  1.246 ms
 2  box567 (2a01:3d0:0:2:216:3eff:fe4b:b9c9)  1.625 ms  1.445 ms  1.567 ms
box490:~#

root at box567:~# traceroute6 box490
traceroute to box490 (2a01:3d0:0:1:216:3eff:fe23:574) from
2a01:3d0:0:2:216:3eff:fe4b:b9c9, 30 hops max, 24 byte packets
 1  2a01:3d0:0:2::2 (2a01:3d0:0:2::2)  0.679 ms  0.569 ms  0.571 ms
 2  box490 (2a01:3d0:0:1:216:3eff:fe23:574)  1.161 ms  1.135 ms  1.117 ms
root at box567:~#

Also, when I hard power-off one of the routers to simulate a failure I
can no longer ping in either direction. If I run radvdump on either of
the test servers I see nothing being received. If I then restart radvd
on the remaining router I become able to ping again.

I have been scratching my head over this for a few days now with no
success so I hope someone on this list is able to help.

Regards,
Iain Watson
--
"Just think how stupid the average person is,
and then realize that half of them are even stupider!"
--George Carlin



More information about the radvd-devel-l mailing list