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?
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]