Bug oder Feature?
Kurz vorweg:
Für Anwendungen, die den systemd-resolvd nutzen, sollte das (bis auf eine eventuelle kurze Verzögerung bis der Timeout da ist) eigentlich kein Problem sein.
Betroffen sind nach meinen Tests:
- reine IPv6-deployments
- Anwendungen, die am OS-Stub vorbei resolven aber dafür den announcten Server nutzen wollen
(- das Alpine Image, wenn man dhcpd nachinstalliert und per dhcpd -6 die IPv6 bezieht ... das überschreibt die resolv.conf mit dem nicht rekursiven IPv6 DNS und wirft die beiden IPv4 DNS Server raus)
Problem:
Anwendungen™️, die DNS rein über IPv6 abfragen wollen, fahren aktuell gegen die Wand.
Die Plattform announct in jedem Netz drei DNS-Server an die VMs:
- per DHCPv4: 94.16.16.16 und 94.16.16.94
- per RA (RDNSS) und DHCPv6: die ULA-Adresse des Netz-Gateways (fdXX:…::1), mit DNS server lifetime: infinite
Die beiden 94.16.16.x-Resolver funktionieren einwandfrei (UDP + TCP, extern + interne *.eos.local-Zone).
Der per RA/DHCPv6 announcte Gateway-Resolver dagegen:
| Anfrage an fdXX::1 | Ergebnis |
|---|---|
| Interne Zone, z. B. <vm>.<netz>.eos.local (A/AAAA) | ✅ Antwort |
| Reverse-Lookup eigener Adressen (PTR) | ✅ Antwort |
| Externe Namen (z. B. deb.debian.org) | ❌ Timeout (Anfrage wird verworfen, kein REFUSED) |
| SOA der eigenen Zone | ❌ Timeout |
Das Gateway ist also ein reiner Zonen-Responder ohne Rekursion — wird aber via RDNSS/DHCPv6 als vollwertiger DNS-Server announct.
Repro (auf einer Debian-13-VM):
apt install dnsutils ndisc6
# Announcte Server ansehen
networkctl status enp5s0 # → DNS: 94.16.16.16, 94.16.16.94, fdXX::1
rdisc6 -1 enp5s0 # → RDNSS: fdXX::1, lifetime infinite
# Extern: v4-Resolver ok, Gateway tot
dig +time=3 +tries=1 @94.16.16.16 deb.debian.org A # ANSWER: 2
dig +time=3 +tries=1 @<fdXX:…::1> deb.debian.org A # timed out
# Intern: Gateway antwortet
dig +time=3 +tries=1 @<fdXX:…::1> <vm>.<netz>.eos.local AAAA # ANSWER: 1
Display More
Vorschlag:
Betrifft mich aktuell nicht stark, aber da IPv6 ja langsam doch einigermaßen relevant wird, würde ich entweder:
- den Gateway-Resolver rekursiv machen (zum beispiel durch Forwarding an 94.16.16.16/94), oder
- per RDNSS/DHCPv6 einen funktionierenden Recursor announcen (z. B. eine v6-erreichbare Adresse der 94.16.16.x-Resolver) und den Gateway-Responder nur zusätzlich für die Zone nutzen, oder
- falls das Verhalten so gewollt ist: eventuell dokumentieren (hab gesucht aber nichts gefunden)
Viele Grüße