🔄 1. Rekursion vs. Iteration im Detail
Clients (PCs, Smartphones) sind reine Stub-Resolver: Sie besitzen keine eigene DNS-Baumlogik, sondern delegieren die Arbeit mit RD=1 vollständig an einen vollwertigen Caching-Resolver.
# Abfrage mit dig anzeigen und Flags auslesen:
dig +nocmd www.it-praxisportal.de +noall +comments +answer
# Typischer Header im Output:
# ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48212
# ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
# ^^^^^^^^
# qr = Antwort, rd = Rekursion angefordert, ra = Rekursion vom Server ausgeführt
🛡️ 2. Das Open-Resolver-Sicherheitsrisiko
Wenn ein rekursiver Nameserver öffentlich im Internet steht und Anfragen von beliebigen IP-Adressen (any) beantwortet, wird er binnen kürzester Zeit für DNS Amplification DDoS missbraucht:
Ein Angreifer sendet ein gefälschtes 60-Byte UDP-Paket mit der Absender-IP seines Opfers an deinen Open Resolver. Die Antwort (z.B. DNSSEC-Schlüssel) ist 3.000 Bytes groß (Verstärkungsfaktor 50x!). Dein Server bombardiert das Opfer mit unangefordertem Traffic.
Die Lösung in BIND9 (named.conf.options):
options {
recursion yes;
allow-query { 192.168.0.0/16; 10.0.0.0/8; localhost; }; # Nur internes Netz!
forwarders { 1.1.1.1; 9.9.9.9; };
forward only;
};
📑 3. Cheat-Sheet: DNS-Header-Flags
| Flag | Bezeichnung | Bedeutung in der Praxis |
|---|---|---|
QR |
Query / Response | 0 = Anfrage eines Clients; 1 = Antwortpaket eines Servers |
AA |
Authoritative Answer | 1 = Server besitzt die Original-Zone (kein Cache-Zwischenergebnis) |
TC |
Truncated | 1 = Antwort passte nicht in 512B UDP; Client muss per TCP/53 wiederholen |
RD |
Recursion Desired | 1 = Client bittet den Server, die Auflösung komplett zu übernehmen |
RA |
Recursion Available | 1 = Server beherrscht Rekursion und bietet diesen Dienst aktiv an |