|
eine kurze Beschreibung wie DNS funktioniert, den wichtigsten Begriffen und einigen anderen Nebensaechlichkeiten
Was man über DNS wissen sollte … 1. Was ist DNS DNS steht für Domain Name System und ist allgemein für die Namensauflösung (Hostname zu IP-Adresse und vice versa) im Internet zuständig. Seit Windows 2000 wird DNS als primäre Namesauflösung verwendet und löst WINS somit ab. DNS ist eine der Grundvoraussetzungen für die Verwendung von Active Directory Services seit Windows 2000. 2. Wie funktioniert eine DNS Anfrage Ein Benutzer möchte auf die Website http://techtalk.unterwegs-im.net surfen. 
1. Der Client (Resolver) stellt eine Anfrage (iterativ) an den ihm bekannten DNS Server 2. Da dieser diesen Host nicht kennt, stellt er eine Anfrage (recursiv) an den DNS Root-Server. 3. Der DNS Root Server kennt zwar diesen Host nicht, aber er kennt den Server, der für diese Toplevel Domain zuständig ist. 4. Der für diese Toplevel Domain zuständige DNS Server wird gefragt. 5. Der kennt zwar immer noch nicht den Host, aber dieser Server kennt den zuständigen DNS Server für diese Domain. 6. Der für die Domain zuständige DNS Server wird gefragt 7. Dieser gibt die IP-Adresse des angefragten Hosts zurück 8. Die IP Adresse wird vom 1. DNS Server an den Client geliefert. 3. Zone Durch die Delegation einer Domain auf andere Nameserver können sog. Zonen entstehen. Eine Zone beinhaltet alle Informationen zu einem bestimmten Teil oder einer kompletten Domain. Ein Beispiel hierfür ist der host sbs.unterwegs-im.net. In diesem Fall wurde die Second Level Domain Unterwegs-im welche innerhalb der Zone net liegt an die Nameserver ns1.sectoor.de und ns2.sectoor.de delegiert. Der Administrator der Zone unterwegs-im.net hat nun einen Rechner mit dem Namen sbs eingetragen. Aufbau eines Zonefiles: SOA (Start of Authority) In der SOA sind wichtige Informationen für die DNS Server enthalten, die sich insbesondere auf die Administration beziehen, nicht aber auf den Inhalt des Zone Files. Serial … ist eine aufsteigende Zahl, anhand welcher festgestellt werden kann, ob sich ein Zonefile geändert hat oder nicht. Bei einer Änderung der Zone diese „Versionsnummer“ erhöht, vergisst man das, übernimmt der Secondary Nameserver die Änderungen nicht, da er davon ausgeht, dass sich die Zone nicht geändert hat. Die Serial Number muss das 10stellige Format YYYYMMDDxx haben. Refresh … ist das Zeitintervall (i.d.R. acht Stunden), nach dessen Ablauf ein Secondary beim Primary nachprüfen soll, ob seine Informationen noch aktuell sind. Der Wert „refresh“ kann ein Wert zwischen 10000 – 86400 sein. Retry Falls der Primary bei einem Refresh nicht erreichbar sein sollte, wird nach Ablauf dieses Zeitintervalls von dem Secondary ein erneuter Versuch unternommen, einen sog. Zone Transfer (AXFR) auszuführen. Der Wert „retry“ kann ein Wert zwischen 1800 – 28800 sein. Expire Wenn nach dem Ablauf dieser Zeitspanne noch kein Refresh vorgenommen werden konnte, wird die Zone als "Ungültig" (expired) erklärt. Daraus resultiert, dass der NS für diese Zone keine authoritative Antwort mehr gibt. Der Wert „expire“ kann ein Wert zwischen 604800 – 3600000 sein. Minimum TTL Die TTL (Time To Live) gibt an, wie lange ein nicht authoritativer Nameserver diese Zone ohne Nachfrage cashen darf. Diese Werte sind dafür verantwortlich, wie schnell eine Änderung der Daten einer Domain auf alle Nameserver weltweit propagiert wird. Dabei sind auch immer die SOARecords der übergeordneten (delegierenden) Zone in Betracht zu ziehen. Daraus resultiert, dass der normale Dienstanbieter - z.B. bei Änderungen der Nameserver unterhalb einer Topleveldomain – nur bedingt Einfluss Dauer des Vorganges hat. Der Wert „minmum“ kann ein Wert zwischen 40000 – 345600 sein. Resource-Records NS-Record gibt an, welche Nameserver für diese Domain authoritativ sind. Aus der Reihenfolge der angeführten Nameserver lässt sich nicht schließen, welcher Nameserver der Primary und welcher der Secondary ist. Syntax: $domain IN NS $nameserver. Beispiel: unterwegs-im.net. IN NS ns.gute-jagd.de A-Record gibt an, welche IP für diesen Host hinterlegt ist. Dieser Eintrag muss nicht notwendigerweise gemacht werden; man kann eine Domain beispielsweise durchaus auch nur für Mailservices nutzen, wofür ein A-Record nicht notwendig ist. Auf der anderen Seite kann man auch mehr als einen Record pro Domain eintragen. Die jeweiligen IPs werden in diesem Fall dann roundrobin behandelt, d.h. bei jeder Anfrage wird ein anderer Record, ausgegeben. Dies ist besonders für größenskalierbare Systeme wichtig. Syntax: $domain IN A $ip Beispiel: sbs.unterwegs-im.net IN A <IP> Roundrobin: cast IN A <ip> IN A <ip> MX-Record gibt an, welche Mailserver für diese Domain zuständig sind. Bei einem MX Record wird immer ein Host angegeben, IP-Adressen sind keine gültigen Werte und erzeugen einen Fehler. Auch kann man MX Record priorisieren, indem man den Adressen verschiene „Prioritätsnummern“ mitgibt. Je niedriger diese Nummer ist, desto höher ist die Priorität. Einträge mit gleicher Priorität werden als Roundrobin behandelt. Ein MX Record kann, muss aber nicht vergeben werden Syntax: $domain IN MX $prioritaetsnummer $mailserver. Beispiel: unterwegs-im.net IN MX 10 mail.unterwegs-im.net. C-Name CNAME steht für canonical Name und ist eine Weiterleitung auf einen anderen Host oder eine andere Domain, in letzterem Fall gelten alle Einträge (NS, MX, A) dieser Zieldomain. Meistens wird dies benutzt, um Domains mit den gleichen Grunddaten leichter pflegen zu können bzw. weiteren, in derselben Zone eingetragenen Domains dieselben Daten wie der Zone selbst zuzuweisen. CNAME kann nicht im Zusammenhang mit Roundrobin verwendet werden. Syntax: $domain IN CNAME $zieldomain. Beispiel: luna.unterwegs-im.net IN CNAME irc.unterwegs-im.net Pointer (PTR) Mit Hilfe von Pointern werden IP Adressen einem Host zugewiesen, also das genaue Gegenteil zu einem A Record. Es kann aber pro IP Adresse nur einen reverse Eintrag geben. Pointer werden immer im reverse Zonefile beschrieben. Syntax: umgedrehte IP Adresse IN PTR $zieldomain. Beispiel: 200.131.160.217 IN PTR gute-jagd.de. Service location (SRV) … beschreibt einen Eintrag zu einem Host, der einen speziellen Service anbietet, z.B. einen Domain Controller. Syntax: _udp.$zieldomain _tcp.$zieldomain _sites. $zieldomain _msdcs. $zieldomain Beispiel: ldap._tcp.sbs.unterwegs-im.net. 600 IN SRV 0 100 389 DC.sbs.unterwegs-im.net Weitere wichtige Informationen: IN ?: Der Eintrag IN steht für die Datenklasse Internet. Es existieren noch weitere Klassen, deren Anwendung allerdings nicht sehr weit verbreitet ist. Der "." Grundsätzlich werden alle nicht auf einen Punkt endenden Domainname von einem Nameserver beim Laden des Zonefiles automatisch um den Domainnamen der Zone verlängert. So wird zum Beispiel aus dem Eintrag: Forum IN A 217.160.131.200 Forum.unterwegs-im.net. IN A 217.160.131.200 Das „@“ Das @-Zeichen steht für den Namen einer Zone. Da sich in einem Zonefile alle Resource-Records immer auf den zuletzt genannten Domainnamen beziehen, kann dieses Zeichen zur Unterbrechung und Eintragung weiterer Records direkt unterhalb der Zone benutzt werden. Es gibt noch viele mehr (nachzulesen in BOL oder RFC) <zonefile cougar und sbs (SECTOOR.local)> Hier ein Beispiel eines Zonefiles ;) cat@cougar:~$ cat /etc/bind/unterwegs-im.zone $TTL 40400 @ IN SOA ns1.sectoor.de. root.unterwegs-im.net. ( 2005061701 ; serial 10800 ; refresh 3600 ; retry 604800 ; expiry 40400 ) ; minimum IN NS ns1.sectoor.de. IN NS ns2.sectoor.de. unterwegs-im.net. IN A 213.202.240.20 mail IN A 217.160.131.200 unterwegs-im.net. IN AAAA 2001:6f8:900:155::2 ipv6 IN AAAA 2001:6f8:900:155::2 unterwegs-im.net. IN MX 10 mail.unterwegs-im.net. www 10M IN A 213.202.240.20 pop IN A 217.160.131.200 irc 10M IN A 217.160.131.200 webmail IN A 217.160.131.200 techtalk 10M IN A 213.202.240.20 forum 10M IN A 217.160.131.200 cougar IN A 217.160.131.200 backup.forum IN A 213.202.240.20 backup.techtalk IN A 217.160.131.200 luna 10M IN A 217.160.131.200 dumbo 60 IN CNAME mietzekatzenhoelle.dyndns.org. reisebericht IN A 212.112.235.84 sbs IN A 217.69.169.127 nst IN A 217.69.169.127 webchat 10M IN A 217.160.131.200 cast 10M IN A 217.160.131.200 10M IN A 213.202.240.20 cast1 IN A 217.160.131.200 cast2 IN A 213.202.240.20 Replikation/Transfer
So, oben habe ich beschrieben, wie ein Zonefile so aufgebaut ist. Dieses Zonefiles sind sozusagen die Datenbanken eines DNS Servers. Nun können aber mehrere DNS Server Daten zum selben Namespace halten. Dabei gibt es 3 Zonentypen • Primary In dieser werden alle Updates zur Zone gemacht. • Secundary ist eine read only Kopie der Primary Zone, welche nie auf dem selben DNS Server liegen kann wie die Primary • Stub ist eine read only Kopie der Primary Zone , die nur die ressource records enthält, die die authorativen DNS Server identifizieren, welche nie auf dem selben DNS Server liegen kann wie die Primary DNS Server, die eine Primary. Secundary oder Stub Zone hosten, nennt man authorativ für diese Domain. Den Prozess der Replikation eine Zone zu mehreren DNS Servern nennt man Zone Transfer. Dieser wird erreicht, indem man das Zonefile von einem DNS Server zu einem anderen kopiert. Zone Transfer kann sowohl vom primary als auch vom secondary DNS Server initiiert werden. Dabei nennt man den DNS Server, der die Source der Zone Informationen ist, den Master DNS Server. 4. Ports Im Allgemeinen werden die Anfragen von einem Port oberhalb 1023 an den Port 53 geschickt. Und die Antwort kommt vom Port 53 auf irgendeinen Port, der größer als 1023 ist. 5. Tools Um die Konfiguration einer Zone in Augenschein nehmen zu können, gibt es verschiedene Tools, die es ermöglichen, die in einem Zonefile vorgehaltenen Daten abzufragen, um so das Antwortverhalten des befragten Nameservers zu testen. Die meisten dieser Tools sind als Free- oder Shareware im Internet erhältlich, bzw. auf einem netzwerkfähigen System bereits installiert. Einige dieser Programme nenne ich hier: Unix • Dig • Host • Nslookup Windows • netdiag.exe • nslookup.exe • dnscmd.exe • DNSLint • Cyperkit MAC • dns lookup • whatroute 6. Begriffe • DNS Server ist der Server, auf der unter anderem Anfragen beantwortet. • Top Level Domain sind die Endungen, die eine gewisse Aussage treffen, was sich hinter einer Domain verbirgt (so wars zumindest mal geplant). Zu den Bekanntesten gehören: .com, .net, .gov und dann noch die 2 stelligen für die Länder. • Authorized DNS Server dabei handelt es sich um den Server, der bei *NIC (z.B. DeNIC für .de Domains) als der für eine spezielle Domain verantwortliche eingetragen ist • Zone Die Zone enthält die Ressourceneinträge für alle Namen in einer Domain. • FQDN Fully Qualified Domain Name, bezeichnet einen knoten eindeutig innerhalb eines Namespaces. (z.B. sbs.unterwegs-im.net) • Zone Datei Diese Datei enthält DNS-Daten einer Zone. AD integrierte Zone werden allerdings nicht in Dateien gespeichert, sondern von der AD selber gespeichert. • Ressource Eintrag Es gibt verschiedene Ressourcen Einträge, die überwiegend durch das RFC 1035 definiert sind. Die wichtigsten liste ich hier mal auf: o SOA o A o MX o CNAME o NS o PTR • Forward-Lookup Zone ist die Zone, die zum Auflösen von Namen zu IP-Adressen zuständig ist • Reverse-Lookup Zone ist die Zone, die zum Auflösen von IP-Adressen zu Namen zuständig ist • Primäre Zone oder Primärer DNS-Server ist sozusagen das Zonefile, welches editiert wird, und das auf die sekundären Server / Zones repliziert werden. • Sekundäre Zone oder Sekundärer DNS-Server Ist eine exakte Kopie des Primären Zone Files, welches auf dem Primärem DNS Server (Master) für diese Zone liegt. • Stubzone ist die partielle Kopie eines ZoneFiles, das neben dem SOA Record (Start of Authority) die NS Records und alle A Records, die zu diesen NS Records gehoeren. Eine Stubzone kennt also nur die Nameserver. • Deligierung mit Hilfe von Ressourceneinträgen kann eine DNS Server Hierarchie eingerichtet werden. Dabei werden zB ganze SubDomains von alternative DNS Server verwaltet. • Bedingte Weiterleitung DNS Anfragen werden anhand des Domain Namens an einen anderen DNS Server weitergeleitet • Active Directory integriert eine seit Windows 2000 implementierte Form der Zone Verwaltung mit den Vorteilen einer höheren Security und verbesserter Zone Replikation. • Partitionen Funktioniert nur mit AD integrierten Zonen, dabei wird der Replikationsbereich genau definiert. • Dateibasierte Zonenübertragung ist der Vorgang, bei dem die Zoneinformationen auf die Secondary DNS Server übertragen werden. • Active Directory Replikation • DnsSEC seit Windows Server 2003 ist eine grundlegende Unterstützung für das Sicherheitserweiterungsprotokoll „Domain Name System Security Extension“ • EDNS0 • DNS-Namespace • Public Namespace • Internal Namepace • Interative Abfrage nennt man eine Anfrage, die der DNS Server beantworten kann, ohne einen anderen DNS Server befragen zu müssen. • Authoritative Nameserver sind zuständig für eine Domain und können eine Antwort aufgrund der lokal gespeicherten Domaindaten geben. • nicht authoritative Nameserver müssen einen der authoritativen Nameserver befragen, um eine angefragte Domain in eine IP aufzulösen. • Recursive Abfrage Anfrage eines DNS Servers, an einen anderen DNS Server im Auftrag eines Clients. Rekursive Anfragen setzten sich solange fort, bis ein DNS Server die Antwort weiss (authorisiert). • DNS Client Resolver ein auf dem Client laufender Dienst, der die DNS Anfragen an den eingetragenen DNS Server sendet 7. Spezifikationen 7.1 RFC • RFC 1034 -- Domain Names — Concepts and Facilities • RFC 1035 -- Domain Names — Implementation and Specification • RFC 1123 -- Requirements for Internet Hosts — Application and Support • RFC 1886 -- DNS Extensions to Support IP Version 6 • RFC 1995 -- Incremental Zone Transfer in DNS • RFC 1996 -- A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY) • RFC 2136 -- Dynamic Updates in the Domain Name System (DNS UPDATE) • RFC 2181 -- Clarifications to the DNS Specification • RFC 2308 -- Negative Caching of DNS Queries (DNS NCACHE) • RFC 2535 -- Domain Name System Security Extensions (DNSSEC) • RFC 2671 -- Extension Mechanisms for DNS (EDNS0) • RFC 2782 -- A DNS RR for specifying the location of services (DNS SRV) 7.2 Drafts und andere Spezifikationen für DNS • Draft-skwan-utf8-dns-02.txt -- Using the UTF-8 Character Set in the Domain Name System • Draft-ietf-dhc-dhcp-dns-08.txt -- Interaction between DHCP and DNS • Draft-ietf-dnsind-tsig-11.txt -- Secret Key Transaction Signatures for DNS (TSIG) • Draft-ietf-dnsind-tkey-00.txt -- Secret Key Establishment for DNS (TKEY RR) • Draft-skwan-gss-tsig-04.txt -- GSS Algorithm for TSIG (GSS-TSIG) • af-saa-0069.000.doc -- ATM Name System Specification version 1.0 Quellen: How DNS Works http://technet2.microsoft.com/windowsserver/en/library/19a63021-cc53-4ded-a7a3-abaf82e7fb7c1033.mspx?mfr=true RFC’s BOL tools: dig http://fsck.ch/projects/dns/theory/man_dig.php host http://fsck.ch/projects/dns/theory/man_host.php nslookup http://fsck.ch/projects/dns/theory/man_nslookup.php nslookup http://www.trumphurst.com/dnsocx/nslookup.phtml cyperkit http://cyberkit.net dns lookup http://www.macosarchives.com/dns_tools.html whatroute http://www.mac.org/internet/whatroute/ (c) Carola ‘Cat’ Helfert, unterwegs-im.net 2006 |