Login Form






Passwort verloren?
Home
Was man über DNS wissen sollte … PDF Drucken E-Mail
Geschrieben von Carola 'Cat' Helfert   
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.

DNS Abfrage

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

 
Weiter >
© 2010 Unterwegs im Net
Joomla! is Free Software released under the GNU/GPL License.