3

I'm setting up some servers that will run virtual machines using IPv6. The network topology is something like this, where the br0 interfaces are virtual:

             2001:db8:fedc:aaaa::/64
   ---+----------------------------------+---
      |                                  | 
      | eth0: 2001:db8:fedc:aaaa::1      | eth0: 2001:db8:fedc:aaaa::2
 +----+----+                        +----+----+
 | server1 |                        | server2 | 
 +----+----+                        +----+----+
      | br0: 2001:db8:fedc:abcd::1       | br0: 2001:db8:fedc:cdef::1
      |                                  | 
      | VM network 1:                    | VM network 2:
      | 2001:db8:fedc:abcd::/64          | 2001:db8:fedc:cdef::/64
 +----+----+                        +----+----+
 |    |    |                        |    |    | 
vm1  vm2  vm3                      vm4  vm5  vm6

I'm trying to avoid using the network's default gateway to route the packets from a VM in a server to one in another server, because with many hosts it would become a bottleneck.

The idea is then to have each server advertise a route to its own VM network to the other servers. So in the example above, server1 would advertise a route to 2001:db8:fedc:abcd::/64 and server2 to 2001:db8:fedc:cdef::/64.

I have this in server1's radvd.conf:

interface eth0 {
  AdvSendAdvert on;
  prefix 2001:db8:fedc:abcd::/64 { };
  route  2001:db8:fedc:abcd::/64 { };
};

And this is server2's:

interface eth0 {
  AdvSendAdvert on;
  prefix 2001:db8:fedc:cdef::/64 { };
  route  2001:db8:fedc:cdef::/64 { };
};

I can see this information being received from one of the servers if I run "rdisc6 eth0" on the other one, but for some reason the route isn't being added to its routing table.

What am I missing here?

Bart De Vos
  • 17,761
  • 6
  • 62
  • 81
Andre
  • 181
  • 5

2 Answers2

5

This configuration won't work with radvd, and my attempts came from a misunderstanding of the purpose of router advertisements. This protocol is meant for host autoconfiguration and not for route propagation between routers.

Replacing radvd with Quagga and an IPv6-enabled routing protocol solves the issue.

Andre
  • 181
  • 5
1

The route stanza isn't needed in this case since by virtue of advertising the prefix, your system should be autoconfiguring the link-local address of server[1,2] as it is the server that tendered the route advertisement. It's possible that adding the route stanza for the same subnet is colliding with the route addition.

Peter Grace
  • 3,446
  • 1
  • 26
  • 42