[Pkg-libvirt-maintainers] Bug#1104431: libvirt-daemon-driver-lxc: Starting libvirt_lxc container with MTU set to != 1500 doesn't set specified MTU on veth devices
Gary Hawkins
gary.hawkins at garyhawkins.me.uk
Tue Apr 29 23:17:53 BST 2025
Package: libvirt-daemon-driver-lxc
Version: 11.2.0-2
Severity: normal
Dear Maintainer,
When I start an LXC container using virsh -c lxc:///system start <name> where the domain XML file for that container contains something along the lines of:
<interface type='bridge'>
<mac address='52:54:00:03:87:f2'/>
<source bridge='ovs0'/>
<vlan trunk='yes'>
<tag id='2'/>
</vlan>
<virtualport type='openvswitch'>
<parameters interfaceid='c8304245-b238-4c61-a7c1-6a8bc905e251'/>
</virtualport>
<mtu size='9000'/>
</interface>
the container starts as expected, but the "vnet<n>" veth device(s) created as a result are always set to exactly 1500 MTU regardless of what is specified for MTU in the domain
XML. This only happens when using LXC containers with libvirt; qemu/KVM VMs started with libvirt set the MTU correctly. I am unsure whether this is a bug in libvirt or whether
the underlying systemd-container process is handling this incorrectly. While it is possible to alter the MTU of the veth device once started and make it work, that's not a
workable solution in the long term.
What I expect to happen is that either the MTU is set on the veth device as specified in the domain XML, or the XML does not allow MTU to be set, but I cannot see anything in the
libvirt documentation to suggest that setting MTU is not a valid option here.
https://libvirt.org/formatdomain.html#mtu-configuration does not seem to specify that <mtu size='...'/> is unacceptable for LXC containers, so I assume this was meant to work.
This is reproducible in the current 11.0.2-2 in trixie and also 11.0.2-3 in experimental. (I have downgraded back to 11.0.2-2 now)
-- System Information:
Debian Release: trixie/sid
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'testing'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 6.12.22-amd64 (SMP w/32 CPU threads; PREEMPT)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages libvirt-daemon-driver-lxc depends on:
ii libblkid1 2.41-4
ii libc6 2.41-7
ii libcap-ng0 0.8.5-4+b1
ii libfuse3-4 3.17.1+git250416-1
ii libgcc-s1 14.2.0-19
ii libglib2.0-0t64 2.84.1-1
ii libtirpc3t64 1.3.6+ds-1
ii libvirt-common 11.2.0-2
ii libvirt-daemon 11.2.0-2
ii libvirt-daemon-driver-network 11.2.0-2
ii libvirt0 11.2.0-2
ii logrotate 3.22.0-1
ii systemd-container 257.5-2
libvirt-daemon-driver-lxc recommends no packages.
libvirt-daemon-driver-lxc suggests no packages.
-- Configuration Files:
/etc/libvirt/lxc.conf changed:
log_with_libvirtd = 1
-- no debconf information
More information about the Pkg-libvirt-maintainers
mailing list