On previous occasions (yes that does mean more than once) I have messed around with the network configuration of containers to get :-
- A consistent behaviour.
- A fixed IPv4 address with no DHCP configuration (this one is easy).
- A fixed IPv6 address with no autoconfigured global addresses (this one has been tricky)
This turns out to be relatively easy providing that you configure the addresses within the container rather than within the container configuration. At least it looks good to go so far (I’ve been mistaken in the past).
The container configuration is quite simple :-
lxc.net.0.type = veth lxc.net.0.flags = down lxc.net.0.link = br0
Note that the bridge interface (br0) may be different. Also note that there is no lxc.net.0.ipv4.address, lxc.net.0.ipv4.gateway, lxc.net.0.ipv6.address, or lxc.net.0.ipv6.gateway.
The configuration within the container is dependent on what userland you are running, but for Debian (and Ubuntu if you’re not using Netplan) :-
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 10.0.0.34/16 gateway 10.0.0.1 iface eth0 inet6 static address 2001:0db8:cafe:dead:0000:0000:0000:3eb/64 scope global gateway 2001:0db8:cafe:dead:0000:0000:0000:0001 privext 0 accept_ra 0 autoconf 0
Not sure quite which options are required but having all of “privext 0”, “accept_ra 0” and “autoconf 0” does mean no additional autoconfigured IPv6 addresses.
(And no the part number of this post isn’t anything more than a joke)