Hello Friends:
-
On the
Fedora-33 LXC HOST(lxc version 4.x), there are noLXCrelated daemons running. It’s kept very simple (and all of this used to work). -
LXC containers are started manually via:
user@host$ sudo lxc-start --daemon --name vps20 -
In the
Fedora-33 LXC GUEST, theIP-Addressis specified in:/etc/sysconfig/network-scripts/ifcfg-eth0(standard location) as follows:
DEVICE=eth0
NAME=eth0
HWADDR=22:22:22:22:22:20
IPADDR=192.168.0.200
GATEWAY=192.168.0.1
NETMASK=255.255.255.0
PREFIX=24
DNS1=8.8.8.8
DNS2=8.8.4.4
DNS3=1.1.1.1
TYPE=Ethernet
BOOTPROTO=none # I also tried 'static' here.
NM_CONTROLLED=no
ONBOOT=yes
USERCTL=no
IPV6INIT=no
DEFROUTE=yes
PROXY_METHOD=none
BROWSER_ONLY=no
IPV4_FAILURE_FATAL=no
-
dhcp,dnsmasqor whatever else are not running on theLXC HostorLXC Guest(again, kept very simple). As well,NetworkManageris not installed on theLXC Guest.
With that in mind, the LXC Guest isn’t getting the above IP-Address for eth0. Rather, its getting the following:
user@vps20$ sudo ifconfig -a
br-888b5c9d98b2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.19.0.1 netmask 255.255.0.0 broadcast 172.19.255.255
inet6 fe80::42:7aff:fe64:4c2a prefixlen 64 scopeid 0x20<link>
ether 02:42:7a:64:4c:2a txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
docker0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
ether 02:42:a4:fa:09:64 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.251 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::2022:22ff:fe22:2220 prefixlen 64 scopeid 0x20<link>
ether 22:22:22:22:22:20 txqueuelen 1000 (Ethernet)
RX packets 2573 bytes 351788 (343.5 KiB)
RX errors 0 dropped 15 overruns 0 frame 0
TX packets 860 bytes 117516 (114.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth83c5f4d: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::c4fc:f8ff:fee8:4424 prefixlen 64 scopeid 0x20<link>
ether c6:fc:f8:e8:44:24 txqueuelen 0 (Ethernet)
RX packets 77 bytes 11251 (10.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 96 bytes 12966 (12.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vethb3d70e2: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::20b7:9dff:fe78:608e prefixlen 64 scopeid 0x20<link>
ether 22:b7:9d:78:60:8e txqueuelen 0 (Ethernet)
RX packets 71 bytes 10800 (10.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 102 bytes 13417 (13.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
PS: Yes, docker(1) is running inside the LXC Guest container. This is for a separate purpose.
How do I get LXC to assign the Static IP-Address specified above? Below is it’s ./config file.
# ./config
#
lxc.include = /usr/share/lxc/config/common.conf
lxc.include = /usr/share/lxc/config/userns.conf
lxc.include = /usr/share/lxc/config/nesting.conf
lxc.uts.name = vps20
lxc.rootfs.path = dir:/var/lib/lxc/vps20/rootfs
lxc.mount.fstab = /var/lib/lxc/vps20/fstab
lxc.arch = x86_64
lxc.net.0.type = veth
lxc.net.0.link = lxcbr0
lxc.net.0.name = eth0
lxc.net.0.flags = up
lxc.net.0.ipv4.gateway = 192.168.0.1
lxc.net.0.ipv4.address = 192.168.0.200/24
lxc.net.0.hwaddr = 22:22:22:22:22:20
lxc.cgroup.cpuset.cpus = 0,1,2,3,4,5,6,7,8,9,10,11
lxc.cgroup.cpu.shares = 100
lxc.mount.entry = /dev/kmsg dev/kmsg none defaults,bind,create=file
linux.kernel_modules = ip_tables,ip6_tables,netlink_diag,nf_nat,overlay
lxc.mount.auto = proc:rw sys:rw cgroup:rw:force
lxc.init.cmd = /sbin/init systemd.unified_cgroup_hierarchy=1
security.nesting = true
security.privileged = true
lxc.cap.drop =
lxc.cgroup.devices.allow =
lxc.cgroup.devices.deny =
lxc.cgroup2.devices.allow =
lxc.cgroup2.devices.deny =
