Registrierung
leer
leer
newposts
Users
search
FAQ
Login
Start

Hallo Gast, und Willkommen im Forum. Sie müssen sich einloggen oder registrieren, um alle Funktionen nutzen zu können.


PN's Forum \ Kommunikation \ Netzwerke \ einrichten eines DNS Servers


 Poison Nuke  *

#1 Verfasst am 20.02.2008, um 17:25:16



Hallo,

in diesem Thread möchte ich kurz erklären, wie man einen DNS Server einrichtet.
Doch vorher natürlich erstmal die wichtigste Frage für einige:


Was ist DNS

nein, es ist nicht Desoxiribonukleinsäure gemeint, auch wenn die Abkürzung in der Biochemie das meint, aber hier geht es um Computer.
Gemeint ist der Domain Name Service.

Im Internet ist es ja so, dass jeder Computer eine eindeutige Adresse hat, und zwar seine IP Adresse. Dies ist eine Folge von 4 dezimalen Zahlen (in der vereinfachten Darstellung), mit denen über 4 Milliarden Endgeräte eindeutig identifiziert werden können (klingt eigentlich viel, aber wie haben schon einen massiven Mangel an Adressen).

Nur das Problem ist jetzt:
ein COmputer oder ein Server wird im Internet über seine IP Adresse angesprochen und nichts anderes. Nur leider ergibt sich da das Problem, dass die meisten Menschen sich Zahlen weitaus schlechter merken können wie Wörter.
Aus diesem Grund wurden die Domainnamen eingeführt. Dabei bezeichnet ein eindeutiger Name einen bestimmten PC im Internet.
Nur bevor dann der eigene PC zuhause weiß, welchen Server er genau ansprechen muss, wenn wir einen bestimmten Namen in die Adresszeile eingeben, muss er vorher erst in einer Art "Telefonbuch" schauen, welche "Rufnummer" der Rechner unter dem jeweiligen Namen hat.

Dieses Telefonbuch sind die DNS Server. Sie speichern, welche IP Adresse zu welcher Domain gehört.



Wie ist eine Domain aufgebaut?

Jeder wird ja wissen, dass eine Domain aus mehr als nur einem Namen besteht. Mindestens noch ein .de oder ein .com oder so werden hinten angefügt, ab und an wird vor der Domain auch nochmal ein weiterer Name eingefügt.
Mein Forum z.B. läuft unter
forum.poisonnuke.de

und meine Hauptseite unter
www.poisonnuke.de

Dabei beginnt die Namensauflösung (so wird der Prozess bezeichnet, bei dem zu einer Domain die passende IP Adresse geholt wird) mit der Toplevel Domain. Dies ist sind die letzten Zeichen einer Domain, also .de, .com usw.
Sie dienen zur logischen Unterteilung des Internets und vorallem zur strukturierten Abfrage. Denn würde man nur eine Liste mit Namen ohne verschiedene Domainunterteilungen haben, dann müsste man für das gesamte Internet einen großen DNS Server bereitstellen, der alle Namen verwaltet und das wäre schlichtweg Overkill, dieser eine Server würde einen massiven Datenverkehr bewältigen müssen und es würde am Ende nur noch Chaos herrschen.

Daher gibt es zuerst die Toplevel Domains. Sie werden von einem der 13 Root-Nameserver aufgelöst, diese sagen aber nur, welcher weitere DNS Server für diese Toplevel Domain zuständig ist. Bei einer .de Domain würde jetzt also die Anfrage auf einen der DNS Server der DENIC weitergeleitet werden, sie ist für alle Domains zuständig, die unter .de laufen.

Die DENIC leitet die Anfrage jetzt aber auch nur weiter, und zwar an den DNS Server der jeweiligen Domain. Denn wie ihr bei meiner Seite seht, gibt es unter der Domain poisonnuke.de noch weitere, sogenannte Subdomains. Theoretisch könnte man jetzt noch beliebig viele weitere Subdomainlevel aufbauen (x1.geode.network.xirror.test.com z.B.), wobei bei der Namensauflösung nach jeder Subdomain an den dazugehörigen Nameserver weitergeleitet werden würde.

Auf diese Weise erreicht man eine schöne Baumstruktur vom Internet und die Last für die einzelnen DNS Server hält sich in Grenzen, da sie ja immer nur einen Teil der Arbeit leisten müssen.




Installation eines DNS Servers unter Windows 2003

Eigentlich ist die recht simpel. Man öffnet die Serververwaltung, klickt auf "eine neue Rolle hinzufügen", wählt dann den DNS Server aus, legt die Windows CD ein und dann wird der Dienst erstmal installiert.
Danach kann man im Assistenten auswählen, was für eine Art von DNS Server installiert werden soll.

Unterschieden wird in einfachen sekundären DNS Servern, die sich mit einem anderen DNS Server abgleichen und diesen entlasten.

Dann gibt es als wichtigste Form für eine eigenen Domain einen DNS Server mit "Forward Lookup Zone". Dabei löst der DNS-Server Namen für eine bestimmte Domäne auf, in meinem Fall würde er alle Subdomains von poisonnuke.de auflösen. D.h. wenn man im Browser forum.poisonnuke.de eingibt, wird zuerst über die Rootserver nachgefragt, welcher DNS Server für die .de Domain zuständig ist. DIeser DNS Server wird dann befragt, welcher Server für poisonnuke.de verantwortlich ist (mein Server) und dieser gibt dann schlussendlich noch die Antwort, welche IP Adresse sich hinter der Subdomain forum. verbirgt. Dabei kann die aber auch auf den gleichen Server verweisen.

Weiterhin kann man auch noch einen DNS Server für eine "Reverse Lookup Zone" erstellen. Dieser macht eine Rückwärtssuche, man kann also eine IP Adresse eingeben und fragen, welche Domain zu ihr gehört.
Das wird allerdings sogut wie nie gebraucht, meist nur bei der Routenverfolgung.


Da ich unter meiner Domain natürlich ein paar Subdomains brauche, richte ich eine "Forward Lookup Zone" ein und trage bei ihr als primäre Domain "poisonnuke.de" ein.

Jetzt kann man noch festlegen, ob Anfragen auf andere Domains auf einen weiteren DNS Server weitergeleitet werden sollen, oder ob der DNS Server direkt eine Anfrage bei den Root-Servern starten soll, wenn er eine Domain selbst nicht kennt.

Jetzt sollte man in die DNS Verwaltung kommen, in der man seine Domain sieht. Mit einem Rechtsklick auf diese kommt man in die Eigenschaften, bei der insbesondere der "Authoritätsursprung" interessant ist. Hier trägt gemäß der DENIC als erstes eine fortlaufende Seriennummer im Format:

JJJJMMTTxx ein (die xx stehen für eine fortlaufende Zahl beginnend bei 01), z.B.:

2008022001

für den heutigen Tag. Als nächstes kommt der bei der DENIC registrierte Name des DNS-Servers rein, in meinem Fall wäre das:
ns.master.poisonnuke.de

Die Emailadresse wird statt mit @ mit einem . geschrieben und lautet z.B. so:
admin.ns.master.poisonnuke.de

Die folgenden Werte sind von der DENIC festgelegt und sollten so eingetragen werden:
Aktualisierungsintervall: 3 Stunden
Wiederholungsintervall: 1 Stunde
Läuft ab nach: 7 Tagen
Minimum TTL: 1 Tag
TTL für diesen Eintrag: 1 Tag






So, die Einrichtung ist jetzt prinzipiell abgeschlossen. Wenn man jetzt einen Rechtsklick auf die Domain macht, kann man eine weitere (Sub)Domain hinzufügen, für diese einfach den Namen eingeben (z.B. "forum") und dann in dieser Subdomain einen neuen "Host" Eintrag anlegen, bei dem man die IP Adresse von dem Server einträgt, der über diese Domain angesprochen werden soll. Wenn die Subdomain auf dem gleichen Server liegt, kommt hier natürlich auch die gleiche IP Adresse rein.






Nun braucht man nur noch in den Netzwerkeinstellungen unten den Eigenschaften des IP-Protokolls die IP-Adresse von dem eben eingerichteten DNS Server eintragen und kann somit diesen zur Namensauflösung nutzen.



Vorteil ist:
man kann so einen Server natürlich auch in einem privaten Netzwerk verwenden, wenn man die Rechner zuhause per Namen ansprechen möchte statt mit IP Adressen. Dazu kann man eine beliebige Domain anlegen (muss nichtmal eine Toplevel Domain haben) und über weitere Subdomains kann man dann jeden Rechner im Netzwerk ansprechen, insofern man ihn im DNS Server eingetragen hat :prost




Da ich leider aktuell den DNS Server schon fertig eingerichtet habe und mein Internet zu dem recht langsam ist, kann ich im Moment noch nicht mit Bildern dienen. Werde das aber bei Gelegenheit nachholen. Falls schon früher Bedarf bestehen sollte, werde ich es aber versuchen, soviel Umstand ist es eigentlich nicht :prost


greetz
Poison Nuke

Daniel.Rieper

#2 Verfasst am 08.02.2011, um 00:17:26



Poisonnuke hast du vielleicht auch ein Howto für Debian bezogen auf Bind9 auf Lager?

Sollte man sich eine tld registrieren, oder würde auch eine kostenfreie von z.B. "nic.de.vu" reichen?

Gruß
Daniel



endurance

#3 Verfasst am 08.02.2011, um 06:54:20



Hier nur zu Veranschaulichung der Servermanager von Windows2008R2 mit der erwähnten forward & reverse (in dem Fall nur private IPs) lookup zone.

Das Beispiel zeigt meine lokale subdomain:






http://www.mtb-la-palma.de

bearbeitet von endurance, am 08.02.2011, um: 06:54:46


 Poison Nuke  *

#4 Verfasst am 08.02.2011, um 10:53:30



Einrichten von bind9 unter Debian:

bind9 installieren:

Quellcode
apt-get install bind9



folgende Dateien sind wichtig:
/etc/bind/named.conf
/etc/bind/named.conf.options




in der named.conf.options wird eingestellt, wie sich der Nameserver verhalten soll

Quellcode
 allow-transfer { x.x.x.x;}; 
       //wird nur benötigt wenn ein sekundärer Nameserver betrieben werden soll der die Zonendaten kopiert
       
       allow-query { any;}; 
       //sollte so bleiben, damit alle IPs den Server befragen können. Diese Einstellung kann für jede Domain seperat eingestellt werden und kann daher hier auch weggelassen werden
       
       listen-on port 53 {127.0.0.1; x.x.x.x; x.x.x.x;}; 
       //hier kann man den Server auf bestimmte IPs begrenzen
       
       recursion no; 
       //wenn diese Option nicht gesetzt ist, kann der DNS Server auch für Domains antworten, die er selbst nicht kennt, was grundsätzlich nichts schlimmes ist, man kann ihn so als alternativen DNS Server eintragen




in der named.conf muss jede Domain (Zone) eingetragen werden, für die der Server zuständig ist. Dabei wird dann aber lediglich definiert, in welcher Datei die Informationen für diese Zone zu finden sind
wenn man mehrere Domains hat wie ich, die alle aber auf die gleiche Seite auflösen kann man auch einfach bei jeder Zone die gleiche Datei eintragen.

So sieht ein Eintrag für eine Zone aus:

Quellcode
zone "poison-nuke.de" {
        type master;
		//dieser Server ist für die Zone Hauptverantwortlich, seine Antworten sind authorativ. 
		//alternativ kann hier "slave" definiert werden, dann arbeitet der Server als slave, statt des "file" statements wird dann "transfer-source x.x.x.x;" definiert
		
        file "/etc/bind/poisonnuke.de";
		//in dieser Datei sind die eigentlichen Zonendaten gespeichert
		
        allow-query { any; };
		//wie in der named.conf.options, nur speziell für die Zone
};





die eigentliche Zonendatei

Quellcode

$TTL 1d
;hier wird die Gültigkeit der Zonendaten angegeben. D.h. die Daten können einen Tag auf anderen DNS Servern gespeichert werden, 
;ohne dass sie erneut abgerufen haben, dadurch dauert es aber auch bis zu 24h, bis eine Änderung in der Zone weltweit übernommen wurde.

@                       IN SOA ns.poisonnuke.de.        hostmaster.poisonnuke.de. (
;diese Zeile ist der "Start of Authority", welcher Nameserver also hauptverantwortlich ist und wer der Ansprechpartner ist (das letzte ist eine Emailaddresse, nur das @ wird hier gegen einen Punkt getauscht)

                        2009082701      ; Seriennummer, eine Art Versionsnummer der Zone, zum Start nimmt man meistens das aktuelle Datum und fügt hinten zwei Nullen an und bei jeder Änderung wird die Zahl eins vergrößert
                        10800           ; wie oft soll sekundärer NS seine Daten aktualisieren
                        3600            ; wie lange warten wenn primärer NS nicht erreichbar war
                        604800          ; wie lange warten bis sekundäre Zone gelöscht wird wenn Master unerreichbar
                        86400 )         ; minimale Zeit welche die DNS Einträge im Cache gehalten werden sollen von rekursiven Servern

                        IN NS           ns.poisonnuke.de.
                        IN NS           ns2.poisonnuke.de.
						;diese Einträge definieren die Hostnamen der authorativen Nameservern für diese Zone
						
                        IN MX           10 mail
						;Hostname des/der Mailservers. Für weitere Mailserver einen neuen Eintrag mit steigender Nummer (je niedriger diese, desto höher die Priorität des MX)
						
                        IN LOC          50 58 23.000 N 11 01 39.130 E 200m
						;optional, wo steht der Server
						
                        IN TXT          v=spf1 a mx -all
						;wird von vielen Mailanbietern vorrausgesetzt, der SPF Eintrag, gibt an welcher MX der zuständige Postausgangsserver ist
						
                        IN A            87.118.122.38
                        IN A            87.118.123.4
; diese beiden Einträge definieren die IPs der Zone selbst. Ist nötig, damit man auch bei Eingabe von "poisonnuke.de" etwas zu sehen bekommt
						
ns                      IN A            87.118.122.38
ns2                     IN A            87.118.123.4
; welche IP hat der Host "ns.poisonnuke.de", damit der Nameserver sich selbst auflösen kann

www                     IN A            87.118.123.38
; IP für die Subdomain "www". Andere Subdomains werden auf gleiche Weise definiert.


test                    NS              ns.example.com
; so würde eine Delegation aussehen, wenn eine Subdomain von einem anderen Nameserver verwaltet wird.





jetzt mit /etc/init.de/bind9 restart den Nameserver neustartet und im Log prüfen, ob keine Fehler ausgegeben wurden.

mit verschiedenen DNS Tools die man so im Internet findet kann man dann die Funktion seines Nameservers testen. Das ist sogar teilweise auch möglich ohne dass die Zone registriert ist oder sie auf diesen Nameserver auflöst. Man trägt dann als Nameserver den eigenen Namerserver ein und kann so z.B. seinen Nameserver prüfen BEVOR man einen Zoneupdate beim Registrar durchführt. Das ist natürlich dringend empfohlen, sonst kann es Probleme geben, bzw im schlimmsten Fall ist dann einfach die Homepage(s) nicht mehr korrekt erreichbar.



greetz
Poison Nuke

Daniel.Rieper

#5 Verfasst am 26.05.2011, um 03:51:00



Möchte noch etwas betreffend Debian(6) Squeeze + bind9 hinzufügen.

In der /etc/bind/named.conf wird hier kein Eintrag vorgenommen. Die Einträge der Zonen werden dafür in /etc/bind/named.conf.default-zones vorgenommen.

Die eigentliche Zonendatei bleibt wie zuvor.

Zitat:
IN MX 10 mail
;Hostname des/der Mailservers. Für weitere Mailserver einen neuen Eintrag mit steigender Nummer (je niedriger diese, desto höher die Priorität des MX)



hier sollte wahrscheinlich IN MX 10 mail.poisonnuke.de stehen. :)

Um am Ende nach dem neustart des DNS Servers zu überprüfen ob er auch richtig arbeitet könnt ihr u.a. in die shell

dig @localhost keyweb.de eingeben (könnt natürlich auch google.de etc auswählen), sofern ihr eine Meldung bekommt, dass "localhost" nicht existiert oder gefunden werden kann verwendet einfach an der Stelle 127.0.0.1 . Mithilfe von "dig @localhost ..." befragt ihr euren eigenen DNS-Server nach der dahinter folgenden Domain. Als Ergebnis solltet ihr die aufgelöste Domain sehen.

Sofern ihr "dig" nicht ausführen könnt, installiert einfach "dnsutils" nach. apt-get install dnsutils -y

Sollte dann wie in diesem Beispiel folgendermaßen aussehen.

Quellcode
root@xen01:/etc/bind# dig @127.0.0.1 keyweb.de

; <<>> DiG 9.7.3 <<>> @127.0.0.1 keyweb.de
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22530
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 0

;; QUESTION SECTION:
;keyweb.de.                     IN      A

;; ANSWER SECTION:
keyweb.de.              82239   IN      A       95.169.160.5

;; AUTHORITY SECTION:
keyweb.de.              82239   IN      NS      ns2.keyweb.de.
keyweb.de.              82239   IN      NS      ns.keyweb.de.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu May 26 03:47:08 2011
;; MSG SIZE  rcvd: 78





 Poison Nuke  *

#6 Verfasst am 26.05.2011, um 08:53:11




Daniel.Rieper schrieb:

Zitat:
IN MX 10 mail
;Hostname des/der Mailservers. Für weitere Mailserver einen neuen Eintrag mit steigender Nummer (je niedriger diese, desto höher die Priorität des MX)



hier sollte wahrscheinlich IN MX 10 mail.poisonnuke.de stehen.



nein, das wäre falsch. Dann würde der Mailserver nämlich im Endeffekt "mail.poisonnuke.de.poisonnuke.de" lauten. Wenn du einen abschließenden Punkt dahintermachst würde es funktionieren, aber es ist unnötig, weil du bist bereits in der Zone "poisonnuke.de", daher definiert man nur noch alle Subdomains, das Domainsuffix wird so oder so automatisch angehängt.
Die vollständige TLD definiert man bei MX oder NS z.B. nur, wenn diese nicht innerhalb der Domain liegen. Und wie gesagt nicht den root-Punkt hinter dem TLD vergessen.





das Tool "dig" ist standardmäßig ja nicht installiert,
nslookup hingegen schon, man muss ja nicht unnötig viel installieren wenn man es am Ende eh nur einmal braucht.


Quellcode
nslookup domain.tld 127.0.0.1


wenn man in der /etc/resolve.conf aber

Quellcode
nameserver 127.0.0.1
eingetragen hat, wie es auch sein sollte wenn der Server selbst DNS Server ist, dann reicht auch ein einfaches "ping"


greetz
Poison Nuke

bearbeitet von Poison Nuke, am 26.05.2011, um: 08:54:12


Daniel.Rieper

#7 Verfasst am 27.05.2011, um 00:01:11



Ach Poison Nuke, wie schön dass du das mit den IN MX 10 mail nochmal erwähnt hast :D

Hab mich mal wieder mit dem Mailserver auseinander gesetzt ;)

Quellcode
If you do so, please include this problem report. You can delete your own text from the attached returned message.

                   The mail system

<dm@xen01.keymachine.de>: Host or domain name not found. Name service error for
    name=mail.xen01.keymachine.de.xen01.keymachine.de type=A: Host not found



lol okay.. wäre auch ein Grund gewesen irgendwas scheint mit dem "type=A" Eintrag nicht zu stimmen.

edit die 2.

Quellcode
                   The mail system

<dm@xen01.keymachine.de>: unknown user: "dm"


Denke dazu muss ich mysql neustarten x)



bearbeitet von Daniel.Rieper, am 27.05.2011, um: 00:08:28

PN's Forum \ Kommunikation \ Netzwerke \ einrichten eines DNS Servers


- Zurück zur Homepage - Eigene Beiträge - Neue Beiträge - Wer ist online? - Impressum - Datenschutz - Statistiken -



Board coded and provided by: Poison Nuke
Copyright 2007-2014, Robert Menger