Hi @v01ded, I finally figured out the issue I had with macvlan networking for LAN.
The issue I was having is related to an old kernel bug (feature?) that disables checksumming for UDP packets on virtual interfaces. The assumption is that there is no value in computing a UDP checksum for a virtual interface since there is no physical transmission occurring, thus no chance of packet corruption. However, this does not play nice with DHCP/BOOTP clients.
You can see the bad UDP checksum error in tcpdump:
This issue was mostly resolved upstream for things like QEMU / KVM where virtual interfaces are extensively used.
I managed to fix this in @d26a0a6 by adding an iptables rule to force a checksum on outgoing DHCP packets, overriding the default kernel behavior on virtual interfaces.
Hi @v01ded, I finally figured out the issue I had with macvlan networking for LAN.
The issue I was having is related to an old kernel bug (feature?) that disables checksumming for UDP packets on virtual interfaces. The assumption is that there is no value in computing a UDP checksum for a virtual interface since there is no physical transmission occurring, thus no chance of packet corruption. However, this does not play nice with DHCP/BOOTP clients.
You can see the bad UDP checksum error in tcpdump:
This issue was mostly resolved upstream for things like QEMU / KVM where virtual interfaces are extensively used.
I managed to fix this in @d26a0a6 by adding an iptables rule to force a checksum on outgoing DHCP packets, overriding the default kernel behavior on virtual interfaces.
Some references: https://lorinstechblog.wordpress.com/2013/06/05/the-infamous-checksum-bug/ https://git.devuan.org/gregolsen/lxc-devuan/issues/1 https://github.com/projectcalico/felix/issues/40 https://bugs.launchpad.net/ubuntu/+source/isc-dhcp/+bug/930962 https://tools.ietf.org/html/rfc768