DNS not configured for IPv6 wwan
Hello,
Upgrading from alpine 3.15 to 3.16 (NetworkManager 1.32.12 to 1.38) DNS configuration no longer seems to work (not propagated to resolv.conf in default mode or dnsmasq in dns=dnsmasq mode) for our LTE modem with an ipv6-only provider (it still works on another network that is ipv4-only)
I've attached debug logs of a connection: messages.1
From what I can notice,
-
nmcli c show
/nmcli d show
both properly list the ipv6 address:
armadillo:~# nmcli c show gsm-ttyCommModem |grep DNS
IP6.DNS[1]: 2001:240::13
IP6.DNS[2]: 2001:240::14
armadillo:~# nmcli d
DEVICE TYPE STATE CONNECTION
ttyCommModem gsm connected gsm-ttyCommModem
eth0 ethernet unavailable --
eth1 ethernet unavailable --
lo loopback unmanaged --
ppp0 ppp unmanaged --
armadillo:~# nmcli d show ppp0 | grep DNS
IP6.DNS[1]: 2001:240::13
IP6.DNS[2]: 2001:240::14
armadillo:~# nmcli d show ttyCommModem | grep DNS
IP6.DNS[1]: 2001:240::13
IP6.DNS[2]: 2001:240::14
-
but according to logs there is nothing to do as DNS configuration did not change (the logs do list ndisc events with "dns_server" updates though, just dns-mgr module thinking "DNS configuration did not change")
-
even if I force a change (by e.g plugging and ethernet link and removing it) the configured DNS are not stored in /etc/resolv.conf, I just turn up with an empty file with
#generated by nm
comment -- so it's not a matter of not changing, the queued updates don't insert the dns entries in global conf at all. -
(ppp0 is unmanaged in my configuration, but even if I remove that interface filter it stays at disconnected state in current nm version -- and no more DNS comes up)
-
I'm not sure if it's related but in 1.32 ppp0 didn't have the DNS attached to its device configuration
-
I setup an ipv6 only ethernet network and was not able to reproduce, when trying I always get a 'DNS configuration changed' event and DNS show up properly.
Might be related to #944 (closed), but !1170 (merged) that was supposed to fix it in included in 1.38.0 so I guess it's not.
I'll look at the code a bit more but I'm honestly out of ideas at this point, thank you for any help!