So, ich habe etwas geforscht. Danke für's Mitdenken :)
Zusammenfassend reden wir vom AD Bit und vom DO Bit. AD: Authenticated DATA (also DNSSEC validierte Daten) DO: DNSSEC ok (zusätzliche DNSSEC Infos (z.B. RRSIG Records) darf in der Antwort nicht gesetzt sein, wenn die Daten nicht validiert sind
Diese Bits können in der Query und in der Response gesetzt sein.
Der derzeit einzig zuverlässige Weg, an das AD Bit in der Response zu kommen, scheint also zu sein, das DO Bit in der Query zu setzen und die ggf. überschüssigen RRSIGs einfach zu ignorieren.
TLDR;
RFC6840 (Clarifications and Implementation Notes for DNS Security (DNSSEC) von 2013 sagt, daß das AD Bit in der Query gesetzt werden kann, damit der Resolver weiß, daß der Client das AD Bit auch in der Antwort verstehen wird. Somit kann der Resolver dem Client den Validierungsstatus mitteilen, ohne den ganzen anderen DNSSEC Kram auch noch zu schicken (der Client braucht die RRSIGs gar nicht):
5.7. Setting the AD Bit on Queries
The semantics of the Authentic Data (AD) bit in the query were previously undefined. Section 4.6 of [RFC4035] instructed resolvers to always clear the AD bit when composing queries.
This document defines setting the AD bit in a query as a signal indicating that the requester understands and is interested in the value of the AD bit in the response. This allows a requester to indicate that it understands the AD bit without also requesting DNSSEC data via the DO bit.
Das impliziert anscheinend, daß man früher (und jetzt auch, je nachdem, welchen Resolver man nutzt), wenn man den Validierungsstatus haben wollte, das DO Bit in der Query setzen musste. Steht vermutlich auch irgendwo in einer RFC.
Und wenn man die RRSIGs haben möchte, dann genügt es *nicht*, das DO Bit zu setzen, sondern man muss explizit nach den RRSIGs fragen, falls der Resolver sie nicht selbsttätig schickt.
RFC4035 Section 5
Wenn man Zeit hat, kann man das ja mal weiterverfolgen. Scheint also noch im Rahmen des Ermessens zu liegen, was der systemd-resolved hier macht.
DO q->r AD q->r RRSIG
Bind9.11 0->0 0->0 - 0->0 1->1 - 1->1 0->1 RRSIG
systemd 0->0 0->0 - 0->0 1->0 - 1->1 0->1 RRSIG
Der derzeit einzig zuverlässige Weg, an das AD Bit in der Response zu kommen, scheint also zu sein, das DO Bit in der Query zu setzen und die ggf. überschüssigen RRSIGs einfach zu ignorieren.
Wie bin ich drauf gekommen? Ich stutzte über
dig mx DOMAIN
welches mir kein AD Bit lieferte. Aber
exim -be '${lookup dnsdb{dnssec_strict,mx=DOMAIN}} secure:$lookup_dnssec_authenticated'
sagte mir, daß es secure ist.
-- Heiko