In case it's useful, I'm posting here the libvirt/qemu network configuration I used to try the above patches out.
- Ken. ## Here's a libvirt network config with NAT configured for both IPv4 and IPv6. ## The ULA range is randomly chosen. # cat /etc/libvirt/qemu/networks/dhcptest.xml <network> <name>dhcptest</name> <forward mode='nat'> <nat> <port start='1024' end='65535'/> </nat> </forward> <bridge name='virbr1' stp='on' delay='0'/> <domain name='dhcptest.home.arpa'/> <ip address='192.168.100.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.100.128' end='192.168.100.254'/> </dhcp> </ip> <ip family='ipv6' address='fd3a:d614:cde6:b03e::1' prefix='64'> <dhcp> <range start='fd3a:d614:cde6:b03e::100' end='fd3a:d614:cde6:b03e::1ff'/> </dhcp> </ip> </network> ## Here's the interfaces file for debian running inside qemu. ## Various combinations of {inet,inet6} {static,dhcp} can be tested. # cat /etc/network/interfaces source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet dhcp iface eth0 inet6 dhcp #iface eth0 inet static # address 192.168.100.37/24 # gateway 192.168.100.1 # dns-nameservers 192.168.100.1 #iface eth0 inet6 static # address fd3a:d614:cde6:b03e::37/128 # gateway fd3a:d614:cde6:b03e::1 # dns-nameservers fd3a:d614:cde6:b03e::1 ## Then, e.g. # resolvectl Global Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub Link 2 (eth0) Current Scopes: DNS Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported DNS Servers: fd3a:d614:cde6:b03e::1 192.168.100.1 DNS Domain: dhcptest.home.arpa Link 3 (eth1) Current Scopes: none Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported