For the last year or more I have been confused by a problem where LXC containers get two IP addresses assigned.
Naturally you want static IPs for server containers defined in lxc/$name/config
lxc.net.0.ipv4.address = 10.0.3.2/24
lxc.net.0.ipv4.gateway = 10.0.3.1
would get two ip addresses on boot, the statically assigned one by lxc and another randomly assigned one.
I never really understood the root cause.
I fixed this by disabling files here and there, removing ip config from lxc/$name/config
, and then and in /etc/rc.local
running
ip addr add 10.0.3.2/24 scope global dev eth0
ip route add default via 10.0.3.1 dev eth0
Some of my containers use Ubuntu, most use lxinitd, I did not notice that the problem was limited to Ubuntu.
The above solution requires installing iproute2 i.e. /sbin/ip
in containers, which in tern, requires mounting /lib lib64 /usr/lib
and not being able to run a fully statically compiled container.
This fella has a much simpler solution
https://www.claudiokuenzler.com/blog/938/lxc-container-not-getting-ip-address-netplanNetplan is root cause of the problem, and it can be removed.
apt-get remove netplan.io
Now setting the IP address in lxc/$name/config
works across all my containers.
to remove netplan from lxc containers where it breaks basica ip address setups
ReplyDeletechroot $rootfs dpkg -r netplan.io
netplan is linked to ubuntu-minimal in 22.04LTSD so this no longer works :(
ReplyDelete