I have a server cluster where all servers have a second network card. These seconds cards are connected to an additional cluster-local switch. It's a 10GBit local interconnect. I connect these servers via IPv6. On each server runs a radvd. It announces the server's IPv6 address range onto this 2nd network card and is configured as follows:
interface <2nd network card> {
AdvSendAdvert on; // we advertise
AdvDefaultLifetime 0; // we're no default gateway
route <network of this server>::/64 {}; // offer route through this network to me
};
The Netplan YAML on the servers reads as follows:
network:
version: 2
renderer: networkd
ethernets:
<2nd network card>:
accept-ra: true // also tried "dhcp6: true"...
With Ubuntu 18.04, this works as expected. I see the routes in ip -6 r
:
<network of other server>::/64 via <link-local adr of 2nd card of other server>
dev <my 2nd network card> proto ra metric 1024 pref medium
With Ubuntu 20.04, however, I see nothing. The routes are simply not added. Something happens, however, when I issue netplan try
and hit Enter after some seconds. Then, and only then I see a route:
<network of other server>::/64 via <link-local adr of 2nd card of other server>
dev <my 2nd network card> proto ra metric 1024 expires 1794sec pref medium
After this route definition expires, it is gone and does not come back until a new netplan try
is issued.
I can disable the router advertisements and add the routes explicitly and statically:
network:
version: 2
renderer: networkd
ethernets:
<2nd network card>:
accept-ra: false
routes:
- to: <network of other server>::/64
via: <link-local adr of 2nd card of other server>
This works, so routing and networking generally is operational.
I am really a bit lost. Am I doing something wrong or is this a bug in Netplan or systemd-resolved? Does anyone know what is going on and how Ubuntu 20.04 can be convinced to listen to the router advertisements?