No IPV4 address for freebsd vm

If it’s not firewalling then maybe it’s to do with UDP checksum. It could be that the FreeBSD VM is sending DHCP packets with no checksum set, on the assumption they will be added by the physical NIC on egress.

On linux guests you can do:

ethtool --offload eth0 tx off

but I don’t know what the equivalent is for FreeBSD.

According to this old post, lxd had a workaround to update the checksums using mangle rules.

However, on a pure incus 6.0.2 system here, iptables -L -n -v -t mangle doesn’t show anything. On a system with ufw and libvirt as well, I see libvirt adds one for itself:

Chain LIBVIRT_PRT (1 references)
 pkts bytes target     prot opt in     out     source               destination
  220 75251 CHECKSUM   udp  --  *      virbr0  0.0.0.0/0            0.0.0.0/0            udp dpt:68 CHECKSUM fill

but not one for incus. Therefore, maybe incus’ dnsmasq has its own workaround now. But still, it would be worth doing a tcpdump on the incusbr0 interface, and an strace on the dnsmasq process, to see if the DHCP discover packets are being received.