[solved] Unbound + systemd-resolved: DNSSEC Validierung Fehler

Hallo,
ich habe auf einem (Mail-) Server unbound + systemd-resolved eingerichtet.
Die Konfiguration von unbound ist identisch mit der Dokumentation " Pi-hole: Einrichtung und Konfiguration mit unbound – AdBlocker Teil2 bis auf 1 Ausnahme: unbound verwendet Port 53.
Die Konfiguration von systemd-resolved ist einfach gehalten, d.h. systemd-resolved läuft im Stub-Modus und lauscht auf 127.0.0.53:53

Nach meinem Verständnis funktioniert dieses Setup zur Namensauflösung:

❯ sudo resolvectl status
Global
         Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=yes/supported
  resolv.conf mode: stub
Current DNS Server: 127.0.0.1
       DNS Servers: 127.0.0.1
        DNS Domain: ~.

Link 2 (eth0)
Current Scopes: none
     Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=yes/supported
 ❯ ss -tulpen | grep 53
udp   UNCONN 0      0      127.0.0.53%lo:53         0.0.0.0:*    uid:102 ino:11614558 sk:5e cgroup:/system.slice/systemd-resolved.service <->               
udp   UNCONN 0      0          127.0.0.1:53         0.0.0.0:*    ino:11535189 sk:5f cgroup:/system.slice/unbound.service <->                                
tcp   LISTEN 0      4096   127.0.0.53%lo:53         0.0.0.0:*    uid:102 ino:11614559 sk:69 cgroup:/system.slice/systemd-resolved.service <->               
tcp   LISTEN 0      256        127.0.0.1:53         0.0.0.0:*    ino:11535190 sk:6a cgroup:/system.slice/unbound.service <->                                
tcp   LISTEN 0      256        127.0.0.1:8953       0.0.0.0:*    ino:11535192 sk:6c cgroup:/system.slice/unbound.service <->

Die Funktionsprüfung von DNSSEC mit dig dnssec.works gibt das korrekte Ergebnis mit dem AD Flag zurück:

❯ dig dnssec.works

; <<>> DiG 9.18.18-0ubuntu0.22.04.1-Ubuntu <<>> dnssec.works
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 57628
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;dnssec.works.                  IN      A

;; ANSWER SECTION:
dnssec.works.           2618    IN      A       5.45.107.88

;; Query time: 4 msec
;; SERVER: 127.0.0.53#53(127.0.0.53) (UDP)
;; WHEN: Sat Jan 20 11:13:49 CET 2024
;; MSG SIZE  rcvd: 57

Im Arch Linux Wiki zu unbound wird eine andere Option zur DNSSEC Validierung verwendet: unbound-host. Wenn ich diese Prüfung ausführe erhalte ich die Ausgabe der IP mit der Kennzeichnung „insecure“:

❯ unbound-host -v dnssec.works
dnssec.works has address 5.45.107.88 (insecure)
dnssec.works has IPv6 address 2a03:4000:6:12af::1 (insecure)
dnssec.works mail is handled by 10 mail.dnssec.works. (insecure)

Somit ist die Validierung inkonsistent und es stellen sich 2 Fragen:

  1. Warum ist die Validierung von DNSSEC inkonsistent?
  2. Welche Validierung ist korrekt? dig oder unbound-host?

Update: Das Problem ist gelöst.

Lösung:
unbound-host muss mit ausreichenden Berechtigungen (sudo) und mit Option -C ausgeführt werden, denn in der Hilfe zu unbound-host steht:
-C config use the specified unbound.conf (none read by default)

3 „Gefällt mir“