IPv6 not working for containers from the outside, but works from host and other containers

Apparently I was missing ipv6.routing: "true".

Found out thanks to OP in Lxd ipv6 interface and bridge in same ipv6 network allowed or not? .

EDIT: Apparently something else is also at play because after a full reboot it stopped working, now to figure what else it is that I did from shell history…

EDIT2: So actually what helped was enabling NDP Proxy on host and manually registering the container, I have no clue what is going on or how to automate this. This works even after removing the above ipv6.routing config.

sysctl net.ipv6.conf.ens2.proxy_ndp=1
ip -6 neigh add proxy 2001:bc8:1640:1c45:216:3eff:fe42:2947 dev ens2

Additionally I changed the bridge to have a different IPv6 from the ens2 interface.

  ipv6.address: 2001:bc8:1640:1c45::1/64

EDIT 3: So I just added the proxy adds for each container to a shell script that runs on boot as a lazy solution, one can also use ndppd as per How to Assign IPv6 Addresses to LXD Containers on a VPS | Ryan Young but I do not get why I have to do this as my /64 block is supposedly routed to the host according to Scaleway?

2 Likes