DNS-Server

Aus Programmers Guide

(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „== Einen eigenen DNS-Server betreiben<br> == Okay, fangen wir mit der Problemstellung an:<br> === Die Idee:<br> === Eine eigene DNS-Auflösung zu betreiben,…“)
Zeile 3: Zeile 3:
Okay, fangen wir mit der Problemstellung an:<br>  
Okay, fangen wir mit der Problemstellung an:<br>  
-
=== Die Idee:<br>  ===
+
=== Die Idee<br>  ===
Eine eigene DNS-Auflösung zu betreiben, genau wie bei den "großen" wie "T-Online (Speedport)" oder "Fritz!-Box". <br>  
Eine eigene DNS-Auflösung zu betreiben, genau wie bei den "großen" wie "T-Online (Speedport)" oder "Fritz!-Box". <br>  
Zeile 17: Zeile 17:
...<br>  
...<br>  
-
=== Das Sekundärziel:<br>  ===
+
=== Das Sekundärziel<br>  ===
Sekundärziel war, vielleicht eine später zu verwendende allgemeine DNS-Weiterleitung zu realisieren, welche JEDEN ankommenden HTTP-Request auf einen bestimmten Server weiterleiten, wie bei T-Online bei MC Donalds, dort wird, sobald ein Nutzer nicht angemeldet ist, egal welche Webseite er aufruft, auf eine Anmeldeseite weitergeleitet wird. Dies hätte ich auch gern als kleinen Zusatz mit umgesetzt.<br>  
Sekundärziel war, vielleicht eine später zu verwendende allgemeine DNS-Weiterleitung zu realisieren, welche JEDEN ankommenden HTTP-Request auf einen bestimmten Server weiterleiten, wie bei T-Online bei MC Donalds, dort wird, sobald ein Nutzer nicht angemeldet ist, egal welche Webseite er aufruft, auf eine Anmeldeseite weitergeleitet wird. Dies hätte ich auch gern als kleinen Zusatz mit umgesetzt.<br>  
Zeile 23: Zeile 23:
<br>  
<br>  
-
=== Die Verständnisfrage DNS:<br>  ===
+
=== Die Verständnisfrage DNS<br>  ===
Okay, was ist eigentlich eine DNS-Namensauflösung? Ich möchte versuchen es auf einer ganz einfachen Ebene zu erklären.<br>  
Okay, was ist eigentlich eine DNS-Namensauflösung? Ich möchte versuchen es auf einer ganz einfachen Ebene zu erklären.<br>  
Zeile 29: Zeile 29:
Die DNS-Namensauflösung brauchen wir bei jedem Aufruf einer Internetseite.<br>  
Die DNS-Namensauflösung brauchen wir bei jedem Aufruf einer Internetseite.<br>  
-
'''Beispiel zur DNS-Namensauflösung:'''<br>  
+
'''Beispiel zur DNS-Namensauflösung'''<br>  
Klaus würde gern, um seine Emails zu checken die Webseite "web.de" öffnen. Also gibt er in seinen Browser:<br>  
Klaus würde gern, um seine Emails zu checken die Webseite "web.de" öffnen. Also gibt er in seinen Browser:<br>  
Zeile 35: Zeile 35:
"http://www.web.de" ein. Nun besteht das Internet ja nur aus Servern mit IP-Adressen in der Form: xxx.xxx.xxx.xxx also ist es nötig, den Server von "web.de" mit der zugehörigen IP-Adresse "213.165.64.75" zu verknüpfen.<br>  
"http://www.web.de" ein. Nun besteht das Internet ja nur aus Servern mit IP-Adressen in der Form: xxx.xxx.xxx.xxx also ist es nötig, den Server von "web.de" mit der zugehörigen IP-Adresse "213.165.64.75" zu verknüpfen.<br>  
-
'''Anmerkung:'''''Für Deutschland (irgendwas.de) ist IMMER die ''[[Www.denic.de|''DENIC'']]''verantwortlich.''<br>  
+
'''Anmerkung '''
 +
''Für Deutschland (irgendwas.de) ist IMMER die ''[[Www.denic.de|''DENIC'']]''verantwortlich.''<br>  
-
'''Zurück zum Thema'''. Ziel ist, Klaus, welcher "http://www.web.de" eintippt auf den zugehörigen Webserver "213.165.64.75" zu verweisen. Und genau dort tritt die DNS-Namensauflösung in Kraft. Diese ordet also jedem Webserver einen oder mehrere Namen zu. Aufgebaut ist dies einfach wie eine Tabelle: <br>  
+
'''Zurück zum Thema'''
 +
 
 +
Ziel ist, Klaus, welcher "http://www.web.de" eintippt auf den zugehörigen Webserver "213.165.64.75" zu verweisen. Und genau dort tritt die DNS-Namensauflösung in Kraft. Diese ordet also jedem Webserver einen oder mehrere Namen zu. Aufgebaut ist dies einfach wie eine Tabelle: <br>  
{| cellspacing="1" cellpadding="1" border="1" align="center" style="width: 240px; height: 58px;"
{| cellspacing="1" cellpadding="1" border="1" align="center" style="width: 240px; height: 58px;"
Zeile 55: Zeile 58:
<br>  
<br>  
-
=== Das DNS-Server-Netz:<br>  ===
+
=== Das DNS-Server-Netz<br>  ===
Jeder größere Anbieter, darunter auch T-Online und Vodafone, bieten mittlerweile Ihren eigenen DNS-Server an. Welcher die Nutzeranfragen der verbundenen Nutzer beantwortet. Das heißt, es versucht jeder DNS-Server ersteinmal alle anfragen, welche auf Ihn treffen zu beantworten, kann er es nicht, so gibt er die Arbeit einfach an den nächsten DNS-Server ab, in der Hoffung, dass er diese beantworten kann.<br>  
Jeder größere Anbieter, darunter auch T-Online und Vodafone, bieten mittlerweile Ihren eigenen DNS-Server an. Welcher die Nutzeranfragen der verbundenen Nutzer beantwortet. Das heißt, es versucht jeder DNS-Server ersteinmal alle anfragen, welche auf Ihn treffen zu beantworten, kann er es nicht, so gibt er die Arbeit einfach an den nächsten DNS-Server ab, in der Hoffung, dass er diese beantworten kann.<br>  
-
=== Unser DNS-Server:<br>  ===
+
=== Unser DNS-Server<br>  ===
Wir müssen also unseren DNS-Server vor allen anderen positionieren, um die Nutzeranfragen vorab "wegzuschnappen". Genauso macht es "speedport.ip" oder "fritz.box". Sie sagen einfach, dass, wenn der Nutzer diese URL's eingibt, immer auf den Router verwiesen werden.  
Wir müssen also unseren DNS-Server vor allen anderen positionieren, um die Nutzeranfragen vorab "wegzuschnappen". Genauso macht es "speedport.ip" oder "fritz.box". Sie sagen einfach, dass, wenn der Nutzer diese URL's eingibt, immer auf den Router verwiesen werden.  
-
=== Fazit: ===
+
=== Fazit  ===
Wir brauchen einen DNS-Server, der alle Nutzeranfragen beantwortet und die anderen zu nächsten DNS-Server schickt.  
Wir brauchen einen DNS-Server, der alle Nutzeranfragen beantwortet und die anderen zu nächsten DNS-Server schickt.  
-
== Die Einrichtung: ==
+
== Die Einrichtung  ==
-
=== Paketinstallation ===
+
=== Paketinstallation ===
-
Ich habe einen Ubuntu-Server und installiere das Softwarepaket für den DNS-Server wie folgt:
+
Ich habe einen Ubuntu-Server und installiere das Softwarepaket für den DNS-Server wie folgt:  
<source lang="bash">
<source lang="bash">
Zeile 77: Zeile 80:
</source>  
</source>  
-
=== Einrichtung ===
+
=== Einrichtung ===
-
Soweit so gut, als erstes möchten wir nun entscheiden, was mit den DNS-Anfragen passiert, die nicht beantwortet werden können.
+
Soweit so gut, als erstes möchten wir nun entscheiden, was mit den DNS-Anfragen passiert, die nicht beantwortet werden können.  
-
Dies geschieht folgendermaßen:
+
Dies geschieht folgendermaßen:  
 +
<br>
 +
Die eigenen DNS-Einträge werden nun in sogenannte Zonen unterteilt. Also ich möchte zum Beispiel, dass der Nutzer, wenn er "web.server" eingibt auf den hauseigenen Webserver geleitet wird. In dem Fall heißt die Zone "web.server" in den Zonennamen kann man die gewohnten Zeichen der URL's verwenden.
-
Die eigenen DNS-Einträge werden nun in sogenannte Zonen unterteilt. Also ich möchte zum Beispiel, dass der Nutzer, wenn er "web.server" eingibt auf den hauseigenen Webserver geleitet wird. In dem Fall heißt die Zone "web.server" in den Zonennamen kann man die gewohnten Zeichen der URL's verwenden.
+
Eine neue Zone definiert man so:
-
Eine neue Zone definiert man so:
+
<br>
 +
=== Wildcards  ===
 +
Auch hier können sogenannte Wildcards für die Zonen verwandt werden. Zum Beispiel steht "." für alle Aufrufe (Sekundärziel) und "*" für ein bestimmtes Zeichen oder eine bestimmte Zeichenkette.
-
=== Wildcards: ===
+
<br>
-
 
+
-
Auch hier können sogenannte Wildcards für die Zonen verwandt werden. Zum Beispiel steht "." für alle Aufrufe (Sekundärziel) und "*" für ein bestimmtes Zeichen oder eine bestimmte Zeichenkette.
+
-
 
+
=== Neustart des DNS-Servers ===
-
 
+
-
=== Neustart des DNS-Servers ===
+
<source lang="bash">
<source lang="bash">
sudo service bind9 restart
sudo service bind9 restart
-
</source>
+
</source>  
 +
 
 +
=== Testen der Konfiguration  ===
-
=== Testen der Konfiguration ===
 
<source lang="bash">
<source lang="bash">
-
dig web.server
+
roy@testserver:~$ dig roy-bohn.de
 +
 
 +
; <<>> DiG 9.5.1-P2.1 <<>> roy-bohn.de
 +
;; global options:  printcmd
 +
;; Got answer:
 +
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31451
 +
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 +
 
 +
;; QUESTION SECTION:
 +
;roy-bohn.de.                  IN      A
 +
 
 +
;; ANSWER SECTION:
 +
roy-bohn.de.            3600    IN      A      193.202.110.164
 +
 
 +
;; Query time: 104 msec
 +
;; SERVER: 192.168.1.253#53(192.168.1.253)
 +
;; WHEN: Wed Oct 27 22:05:03 2010
 +
;; MSG SIZE  rcvd: 45
 +
 
</source>
</source>

Version vom 20:08, 27. Okt. 2010

Inhaltsverzeichnis

Einen eigenen DNS-Server betreiben

Okay, fangen wir mit der Problemstellung an:

Die Idee

Eine eigene DNS-Auflösung zu betreiben, genau wie bei den "großen" wie "T-Online (Speedport)" oder "Fritz!-Box".

Die erweiterte Konfiguration der beiden DSL-Router kann über eine Weboberfläche realisiert werden. In der Bedienungsanleitung steht:

...

- verbinden Sie Ihren Rechner mit dem WLAN der Box

- geben Sie in die Adresszeile Ihres Browsers "speedport.ip" oder "fritz.box" ein.

...

Das Sekundärziel

Sekundärziel war, vielleicht eine später zu verwendende allgemeine DNS-Weiterleitung zu realisieren, welche JEDEN ankommenden HTTP-Request auf einen bestimmten Server weiterleiten, wie bei T-Online bei MC Donalds, dort wird, sobald ein Nutzer nicht angemeldet ist, egal welche Webseite er aufruft, auf eine Anmeldeseite weitergeleitet wird. Dies hätte ich auch gern als kleinen Zusatz mit umgesetzt.


Die Verständnisfrage DNS

Okay, was ist eigentlich eine DNS-Namensauflösung? Ich möchte versuchen es auf einer ganz einfachen Ebene zu erklären.

Die DNS-Namensauflösung brauchen wir bei jedem Aufruf einer Internetseite.

Beispiel zur DNS-Namensauflösung

Klaus würde gern, um seine Emails zu checken die Webseite "web.de" öffnen. Also gibt er in seinen Browser:

"http://www.web.de" ein. Nun besteht das Internet ja nur aus Servern mit IP-Adressen in der Form: xxx.xxx.xxx.xxx also ist es nötig, den Server von "web.de" mit der zugehörigen IP-Adresse "213.165.64.75" zu verknüpfen.

Anmerkung Für Deutschland (irgendwas.de) ist IMMER die DENICverantwortlich.

Zurück zum Thema

Ziel ist, Klaus, welcher "http://www.web.de" eintippt auf den zugehörigen Webserver "213.165.64.75" zu verweisen. Und genau dort tritt die DNS-Namensauflösung in Kraft. Diese ordet also jedem Webserver einen oder mehrere Namen zu. Aufgebaut ist dies einfach wie eine Tabelle:

vereinfachter DNS-Eintrag
www.web.de
213.165.64.75
www.roy-bohn.de
193.202.110.164

Also wäre es das Selbe, wenn Klaus statt "http://www.web.de" "http://213.165.64.75" eingeben würde.

Die Verwaltung der DNS-Tabelle übernimmt die Denic und verlangt natürlich Geld dafür.


Das DNS-Server-Netz

Jeder größere Anbieter, darunter auch T-Online und Vodafone, bieten mittlerweile Ihren eigenen DNS-Server an. Welcher die Nutzeranfragen der verbundenen Nutzer beantwortet. Das heißt, es versucht jeder DNS-Server ersteinmal alle anfragen, welche auf Ihn treffen zu beantworten, kann er es nicht, so gibt er die Arbeit einfach an den nächsten DNS-Server ab, in der Hoffung, dass er diese beantworten kann.

Unser DNS-Server

Wir müssen also unseren DNS-Server vor allen anderen positionieren, um die Nutzeranfragen vorab "wegzuschnappen". Genauso macht es "speedport.ip" oder "fritz.box". Sie sagen einfach, dass, wenn der Nutzer diese URL's eingibt, immer auf den Router verwiesen werden.

Fazit

Wir brauchen einen DNS-Server, der alle Nutzeranfragen beantwortet und die anderen zu nächsten DNS-Server schickt.

Die Einrichtung

Paketinstallation

Ich habe einen Ubuntu-Server und installiere das Softwarepaket für den DNS-Server wie folgt:

sudo apt-get install bind9

Einrichtung

Soweit so gut, als erstes möchten wir nun entscheiden, was mit den DNS-Anfragen passiert, die nicht beantwortet werden können.

Dies geschieht folgendermaßen:


Die eigenen DNS-Einträge werden nun in sogenannte Zonen unterteilt. Also ich möchte zum Beispiel, dass der Nutzer, wenn er "web.server" eingibt auf den hauseigenen Webserver geleitet wird. In dem Fall heißt die Zone "web.server" in den Zonennamen kann man die gewohnten Zeichen der URL's verwenden.

Eine neue Zone definiert man so:


Wildcards

Auch hier können sogenannte Wildcards für die Zonen verwandt werden. Zum Beispiel steht "." für alle Aufrufe (Sekundärziel) und "*" für ein bestimmtes Zeichen oder eine bestimmte Zeichenkette.


Neustart des DNS-Servers

sudo service bind9 restart

Testen der Konfiguration

roy@testserver:~$ dig roy-bohn.de
 
; <<>> DiG 9.5.1-P2.1 <<>> roy-bohn.de
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31451
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
 
;; QUESTION SECTION:
;roy-bohn.de.                   IN      A
 
;; ANSWER SECTION:
roy-bohn.de.            3600    IN      A       193.202.110.164
 
;; Query time: 104 msec
;; SERVER: 192.168.1.253#53(192.168.1.253)
;; WHEN: Wed Oct 27 22:05:03 2010
;; MSG SIZE  rcvd: 45
Persönliche Werkzeuge