Kapitel 4: Domain Name System
DNS: Domain Name System
Was ist das Domain Name System und welche Funktion erfüllt es?
Definition
Das Domain Name System (DNS) ist ein weltweiter Verzeichnisdienst mit dezentraler Administration für die Übersetzung symbolischer Hostnamen (Domänennamen) in IP-Adressen (Name Resolution) und umgekehrt (Reverse Lookup):
symbolische Namen sind für Menschen besser lesbar und einfacher zu merken als IP-Adressen
bei Änderung der IP-Adresse, etwa bei Umzug eines Hosts in ein anderes Netzwerk, kann der symbolische Name durch Aktualisierung der Zuordnung im DNS gleich bleiben.
Beispiel
www.w3c.org ←→ 217.70.184.50
www.google.com ←→ 142.250.185.68
www.uni-wuppertal.de ←→ 132.195.147.67
DNS: Domain Name Space
Was ist das Domain Name Space wie setzt es sich zusammen?
Das Domain Name Space ist ein baumförmiger Domänennamenraum
Unter der Wurzel liegen Top Level Domains:
com, edu, gov, mil, net, de, uk ...
Blätter und Knoten des Baums (Labels): alphanumerische Zeichenketten (incl. - Minuszeichen) mit 1-63 Zeichen
Bezeichnung eines Domänennamen erfolgt von unten (Blatt) nach oben (Wurzel) mit . Punkt getrennt (und abgeschlossen)
Namenauflösung (address resolution)
Über welche Wege erfolgt die Namenauflösung?
Die Übersetzung von lesbaren Domänennamen in IP-Adressen und umgekehrt erfolgt üblicherweise
durch Konfigurationsdateien auf dem lokalen Host
durch Anfrage an DNS-Server (Dienste im Internet)
durch zwischengespeicherte Informationen (DNS-Caches)
FQDN
Was ist unter FQDN zu verstehen?
FQDN (Fully Qualified Domain Name)
Bezeichnung eines vollständigen Pfades von einem Blatt bis zur Wurzel mit maximal 255 Zeichen
www.uni-wuppertal.de.
lsrv0.studs.math.uni-wuppertal.de.
Vorgang der rekursiven Namenauflösung
Erklären Sie schrittweise die Namenauflösung anhand folgenden Beispiels:
Der Host ares7.math.uni-wuppertal.de (ares7)
ermittelt die IP-Adresse
des Hosts www.linux.org
Dabei sei als Suchreihenfolge ‘files dns’ konfiguriert, lokale Zwischenspeicher (DNS-Caches) seien jeweils vorhanden:
Die rekursive Namenauflösung ist der übliche Vorgang.
Beispielhafter Vorgang:
(1) Lokaler DNS-Cache
ares7: Suche im lokalen DNS-Cache (lokaler Dienst)
Falls www.linux.org vorhanden und gültig
⇒ OK, gespeicherte IP-Adresse nutzen
(2) Lokale Hosts-Datei
ares7: Suche in lokaler Hosts-Datei (/etc/hosts)
Falls www.linux.org vorhanden
(3) DNS-Cache
Anfrage [ares7 → ns.uni-wuppertal.de (ns-buw)]
(gemäß Nameserver-Konfiguration in nsswitch.conf)
”IP-Adresse von www.linux.org?“
ns-buw: Falls www.linux.org im DNS-Cache vorhanden und gültig
⇒ (8) (nicht-autoritative Antwort)
(4) Eigene lokale Domäne
ns-buw: Falls www.linux.org in eigener lokalen Domäne (hier: Nein!)
⇒ selbst zuständig ⇒ Suche in eigener Datenbank
⇒ (8) (autoritative Antwort)
(5) Root-Nameserver
Anfrage [ns-buw → ns-root (ein Root-Nameserver)]
”Wer ist für www.linux.org zuständig?“ (insb. für org)
ns-root: ”Ich nicht, sondern ns-org!“ (incl. IP-Adresse)
(6) Domäne-Nameserver
Anfrage [ns-buw → ns-org]
”Wer ist für www.linux.org zuständig?“ (insb. für linux.org)
ns-org: ”Ich nicht, sondern ns-linux.org!“ (incl. IP-Adresse)
(7) Domain/Domäne-Nameserver
Anfrage [ns-buw → ns-linux.org]
”Wer ist für www.linux.org zuständig?“
ns-linux.org: ”Ich! Die IP-Adresse lautet ‘104.28.16.26’.“ (autoritativ)
ns-buw: [www.linux.org–104.28.16.26] im DNS-Server-Cache speichern,
incl. Gültigkeitsdauer (TTL) für nicht-autoritative Antworten
⇒ 8. (nicht-autoritative Antwort)
(8) Ergebnis
Antwort [ns-buw → ares7]
”IP-Adresse von www.linux.org lautet 104.28.16.26“
Hinweise zur Namenauflösung
Was gibt es bei der Namenauflösung zu beachten?
Hinweise
Bei der iterativen Namenauflösung werden sämtliche Anfragen
durch den Host (oben: ares7) selbst durchgeführt
Die Programme, Dienste und Software-Bibliotheken, die als Schnittstelle zwischen Anwendungen und Nameserver auf Hosts für die Namenauflösung zuständig sind, heißen Resolver (z. B. nslookup, dig)
Multicast DNS (mDNS) ist ein einfaches Zeroconf-Verfahren in nicht-öffentlichen (z. B. APIPA-)Netzwerken, bei dem für die Namenauflösung mDNS-Multicast-Adressen verwendet werden (IPv4: 224.0.0.251, IPv6: ff02::fb, Port 5353/UDP).
DNS-Ressourcendatensätze (Resource Records)
Die Datensätze (DNS Resource Records) für Domänennamen (nicht notwendigerweise FQDN) in der verteilten hierarchischen DNS-Datenbank haben die Form:
Domänenname: Schlüsselfeld (primary key)
Lebensspanne: TTL (Time To Live) in Sekunden
Grad für die Aktualität, d. h. Gesichertheit der Information
Klasse: IN (Internet)
obsolet: CH (Chaosnet), HS (Hesiod), CS (CSNET)
Typ, Wert: Art und Wert der Ressource
(je nach Ressourcentyp ggf. mehrere Felder mit Werten)
DNS-Ressourcendatensatztypen
Nennen und erklären Sie die Ressourcendatensatztypen des DNS.
A: Suche nach einer IP-Adresse zur Auflösung eines symolischen Namens
MX: Suche nach dem zuständigen Mail Server (Mail eXchange) einer Domäne
NS: Suche nach dem zuständigen Name Server einer Domäne
CNAME: Suche nach dem Canonical Name zu einem Alias Domain Name
PTR: Suche nach einem symbolischen Namen (Pointer) für Reverse Lookup
AAAA: IPv6-Adresse
Reverse DNS Lookup
Welche Funktion hat das Reverse DNS Lookup?
Welche Eigenschaften besitzt es?
Die umgekehrte Namenauflösung (Reverse DNS Lookup) ermittelt zu einer gegebenen IP-Adresse den Domänennamen:
132.195.95.101 → ares1.math.uni-wuppertal.de
Dies erfolgt in der Regel ebenfalls durch den Resolver.
Da der baumförmige Domain Name Space für die Vorwärtssuche nach Domänennamen (Forward Lookup) strukturiert ist, und eine erschöpfende Suche (exhaustive search) zu zeitaufwendig, resp. in einer verteilten Datenbank praktisch undurchführbar ist, wird der DNS
bei IPv4
um einen Teilbaum (Reverse Domain) unter der Domäne in-addr.arpa mit Labels 0,...,255 auf vier Ebenen erweitert, der für umgekehrte Namenauflösungen verwendet wird.
bei IPv6
analog um einen Teilbaum unter ip6.arpa mit Labels 0,...,F auf 32 Ebenen erweitert, der für umgekehrte Namenauflösungen verwendet wird.
Wie sieht der beispielhafte Vorgang des Reverse DNS Lookup aus?
Beispiele für Repräsentationen in der in-addr.arpa-Domäne?
Die durch 195.132.in-addr.arpa repräsentierte Subdomäne enthält also die 65536 IP-Adressen 132.195.0.0,..., 132.195.255.255.
Eine inverse Anfrage für die IP-Adresse 132.195.95.101 liefert über den Nameserver der Subdomäne 132.195.0.0/16 (Uni Wuppertal):
arpa → in-addr → 132 → 195
(ns.uni-wuppertal.de, 132.195.249.13)
101.95.195.132.in-addr.arpa → ares1.math.uni-wuppertal.de
Ressourcendatensätze des Reverse-DNS
Wie lauten die Ressourcendatensätze des Reverse-DNS?
In den Ressourcendatensätze der reversen Domäne werden als Domänennamen die Repräsentationen der IP-Adressen verwendet
Beispiele
Reverse DNS Lookup für die IP-Adresse 91.198.174.192 (via Resolver):
(1) Erstelle Repräsentation: 192.174.198.91.in-addr.arpa
(2) Finde zustäandigen Nameserver: arpa → in-addr → 91 → 198 → . . .
spätestens auf der dritten Ebene mit numerischen Labels 0,...,255)
⇒ Nameserver für wikipedia.com: ns0.wikimedia.org (208.80.154.238)
(3) Anfrage an ns0.wikimedia.org: 192.174.198.91.in-addr.arpa
⇒ symbolischer Name: www.wikipedia.com
Dynamisches DNS (DynDNS)
Welche Funktion besitzt DynDNS und wie funktioniert es?
Falls Server-Dienste (WWW, VPN, E-Mail ...) unter wechselnden IP-Adressen angeboten werden sollen oder müssen, so ist die feste (statische) Zuordnung von Domänennamen zu IP-Adressen im DNS nicht sinnvoll, da der manuelle Vorgang zur Umsetzung zu lange dauern würde.
Bei DynDNS werden dynamische DNS-Datenbankeinträge durch spezielle (authentifizierte) DNS-Anfragen eines Hosts aktualisiert. Die autoritativen Antworten eines DynDNS-Nameservers bezüglich dieser Ressourcendatensätze sind somit stets aktuell.
Risiken im DNS
Welche Risiken gibt es im DNS?
DNS Cache Poisoning
Übermittlung gefälschter DNS-Daten (DNS-Spoofing), die im Cache gespeichert werden und später für (böswillig) falsche Zuordnung von IP-Adressen sorgen.
Gefälschten Daten können mit korrekten Antworten sowie z. B. per IP-Spoofing oder DNS-Hijacking eingeschleust werden.
Intrusion
Manipulation der DNS-Konfigurationsdateien (hosts, nsswitch.conf, resolv.conf) durch Malware oder Einbruch auf dem lokalen Host (→ Intrusion Detection)
DynDNS
mangelnde Sicherheit bei der Aktualisierung (authentifizierte DNS-Requests) der DynDNS-Datenbankeinträge
temporär falsche Zuordnungen durch noch nicht erfolgte Aktualisierung der DNS-Caches (nicht-autoritative Antworten).
DNS-Sicherheit
Wie kann das DNS geschützt werden?
Domain Name System Security Extensions (DNSsec)
Erweiterungen des DNS insb. zur Absicherung gegen DNS Spoofing um:
Daten-Authentizität
Daten-Integrität
Die Korrektheit der ausgelieferten DNS-Daten wird durch die Unterzeichnung der Original-Ressourcendatensätze, und damit auch der nicht-autoritativen Antworten (cached information), auf Basis von Zertifikaten und digitalen Signaturen (→ Kap. 5) sichergestellt. Jeder DNS-Client kann somit überprüfen, ob die Unterschriften der erhaltenen DNS-Daten korrekt sind.
DNSsec basiert auf der Echtheitsüberprüfung der Datensätze und nicht auf der Authentifikation der beteiligten Nameserver.
Zuletzt geändertvor 10 Monaten