- Erste Idee: Hosts auf IP-Adressen mappen, mit hosts-Datei
- DNA = Verteilte Datenbank, implementiert durch eine Hierachie von Nameservern
- Protokoll der Anwendungsschicht (Schicht 7), löst Hostnamen auf
Skalierung
- Lastverteilung auf mehrere Schultern, nämlich die, die die entsprechenden Rechner ans Internet anbinden
- Verteilung auf Autoritative Nameserver
- Neue Frage: Woher findet der Client den Nameserver, der seine Adresse auflöst?
- -> Hierachisch angeordnet als Baum mit Wurzel Root-Server, dieser kennt die IP-Adressen aller
- Top-Level-Domain-Server (.com, .org, .edu, …)
- Ein Nameserver muss sich bei einem TLD-Server registrieren
Anfrage:
- amazon.com? an Root-Server, Antowrt: Weiß ich nicht aber frag mal .com-TLD-Server
- TDL -Server weiß es auch nicht, Antwort: Frag mal Amazon Autoritativen Nameserver
- Dann wird der Nameserver nach www.amazon.com gefragt (Iteratives Vorgehen)
Lastverteilung
- DNS-Root-Nameserver werden auf 13 verteilt.
- Diese 13 Root-Nameserver haben feste IP-Adressen, die fest in einem Textdokument stehen. http://root-servers.org
- Heute sind die IP-Adressen Anycast-IP-Adressen, d.h. es stecken mehr Server dahinter
TLD- und Autorative Server
- TLD-Server:
- com, org, net, edu
- Länder: de, uk, fr
- z.B. ist für de Adressen die Firma DENIC verantwortlich
- Autorative Server:
- Von den eigentlichen Firmen
- Führen die eigentliche Namensauflösung durch
Lokale Nameserver / Default Nameserver
- Da geht die Anfrage zuerst hin
- Bsp. Erst mal hosts Datei, dann der lokale Nameserver des Netzwerks usw.
- Kümmert sich um Namensauflösung
- Kontaktiert TLD-Nameserver und autorative Nameserver
- Cached Adressen
Rekursives Vorgehen:
- Frage geht an lokalen DNS-Server, geht weiter an Root-Server, geht weiter an TLD-Server, …
- Vorteil: Jeder Server kann cache erstellen
DNS-Dienste
- Aliasnamen für Hosts
- Aliasnamen für Mailserver
- Lastausgleich: Replizierbarer Webserver: Mehrere IP-Adressen von einem kanonischen Namen
nslookup www.oth-regensburg.deDNS Resource Records
Format:
(<name> <ttl> IN <typ> [<prio>] <wert>)
TTL in sekunden, IN steht für Internet (Standard)
- Typ A
nameist der Hostnamewertist die IPv4-Adresse
- Typ AAAA
- Wie A nur für IPv6
- Typ CNAME
nameist ein alias für einen kanonischen (echten) Namenwertist der kanonische Name- Bsp:
www.ibm.comist ein Alias fürservereast.backup2.ibm.com
- Typ MX
wertist der Name des Mailservers für die Domainname
- Typ NS
nameist eine Domain (z.B. foo.com)wertist der Name des autoritativen Nameservers für diese Domain- Wird bei Root-DNS-Servern verwendet
- Mehr als 100 weitere Typen
test.example.com. 3600 IN A 172.30.0.7
IN TXT "für DNS-Test"
abc 1800 IN
dns1 NS nameserver.example.org.- Der Punkt heißt es handelt sich um einen absoluten Hostname
- Würde der Punkt weggelassen, würden die Hostnamen gesuffixed werden mit dem eigenen
DNS-Header
- 16 Bit - ID - Dient dazu dass eine Antwort einer Anfrage zugeordnet werden kann
- Flags - Query/Reply, Recursion desired/available, ist aus cache?, …
- Anzahl Questions - Anzahl Answers-RRs
- Anzahl Authority-RRs - IP der Nameserver die gebraucht werden wenn man einen nicht gecachten Wert haben will
- Anzahl Additional RRs - Weitere Nameserver die statistisch wahrscheinlich in naher Zukunft gebraucht werden
- Dann die eigentlichen Questions und Answers