The machine comes with a single ipv4 and a /64 amount of ipv6 addresses.
I want to use the box to host some of my flask applications (plaid mainly), keep some continuous integration instances for libav and some other experiments with compilers and libraries (such as musl, cparser other).
I followed the documentation provided and it worked quite well up to a point. The btrfs integration works as explained, creating new Gentoo instances just worked, setting up the network… Required some effort.
I have just 1 single ipv4 and some ipv6 so why not leveraging them? I decided to partition my /64 and use some, configured the bridge to take
::::1::1 and set up the container configuration like this:
lxc.network.type = veth lxc.network.link = br0 lxc.network.flags = up lxc.network.ipv4 = 192.168.1.4/16 lxc.network.ipv4.gateway = auto lxc.network.ipv6 = ::::1::4/80 lxc.network.ipv6.gateway = auto lxc.network.hwaddr = 02:00:ee:cb:8a:04
But the route to my container wasn’t advertised.
Having no idea why I just kept poking around sysctl and iproute2 until I got:
net.ipv6.conf.all.forwarding = 1 net.ipv6.conf.eth0.proxy_ndp = 1
ip -6 neigh add proxy ::::1::4 dev eth0
In my container runner script.
I know that at least other people had the problem so here this mini-post.