Linux – Virtual IPv6 Network between VirtualBox VMs

ipv6linuxlinux-networkingvirtualboxvirtualization

I'm trying to create a virtual IPv6 network as a test environment.
I have 5 VirtualBox VMs (Ubuntu Server) with network adapters using host-only networking. You can imagine them being connected in series and every machine connects 2 subnets.
I want to ping the last machine from the first one:
On: 2001:db8:aaaa::100 I want to ping 2001:db8:dddd::101
(Note: there is no cccc network in between)

Only static configuration and routes are used:

/etc/network/interfaces
auto eth0
iface eth0 inet6 static
address 2001:db8:aaaa::100
netmask 64

/etc/network/interfaces
auto eth0
iface eth0 inet6 static
address 2001:db8:aaaa::101
netmask 64

auto eth1
iface eth1 inet6 static
address 2001:db8:bbbb::100
netmask 64
up ip -6 route add 2001:db8:dddd::/64 via 2001:db8:bbbb::101 dev eth1
down ip -6 route del 2001:db8:dddd::/64 via 2001:db8:bbbb::101 dev eth1

I thought there might be some automatic route discovery going on.
Anyway, ping6 2001:db8:dddd::100 will not work from aaaa::100
When I add the route:
ip -6 route add 2001:db8:dddd::/64 via 2001:db8:aaaa::101
it will work. But the next interface in the same network dddd::101 is not reachable. How could that be?
There is a machine with an interface bbbb::101 and another dddd::100 and I can ping the latter one, but the machine connected to it, dddd::101 not??

I also have also turned on forwarding.

Any ideas?

Best Answer

OK, it does work now.

The only thing missing, was a correct default route. I was adding static routes here and there, but there was no return route. Giving the first and last node a default gateway did the trick. The intermediate routers were correctly configured

That also means having net.ipv6.conf.all.forwarding = 1 for all intermediate systems (routers) [This was already done when I asked my question]