Startseite>RasPi als DHCP- und DNS-Server
Aus Raspberry Pi Geek 03/2014

RasPi als DHCP- und DNS-Server

© Foottoo, 123RF

Verteilen und verwalten

Friedrich Hotz

Es sprechen einige Gründe dafür, die Namensauflösung im heimischen Netz in die eigene Hand zu nehmen. Der RasPi erledigt nicht nur das, sondern betätigt sich nebenbei auch noch als Adressverteiler und Zeitserver.

README

Wegen seiner begrenzten Ressourcen eignet sich der Raspberry Pi nur bedingt für den Einsatz als Server. Für manche Aufgaben aber ist er geradezu prädestiniert: So übernimmt er problemlos die Namensauflösung sowie das Verteilen der IP-Adressen und Zeitinformationen.

Wo früher ein einzelner Rechner stand, der sich via Modem zeitweise ins Internet verband, arbeitet heute meist ein DSL-Router, mit dem sich das ganze Heimnetz verbindet. Nicht nur Netzwerkdrucker, sondern auch Fernseher, AV-Receiver und Blu-ray-Player besitzen inzwischen eine Internetanbindung. Da der Aufbau des LANs in der Regel mit der Zeit wuchs, fand nur im Ausnahmefall eine systematische Planung im Vorfeld statt. Ab einer gewissen Komplexität lohnt es sich dann aber durchaus, manche der so entstandenen Konzepte genauer unter die Lupe zu nehmen.

Server ohne Stromrechnung

Handelsübliche DSL-Router sind bereits mit dem Verwalten eines mittelgroßen Heim-Netzwerks durchweg überfordert. Das liegt daran, dass sie die feste Zuordnung von IP-Adressen zu Geräten nicht oder nur eingeschränkt beherrschen und schon gar nicht in der Lage sind, den Geräten Netzwerknamen zuzuordnen. Den Schritt zu einem vollwertigen Server fürs Heimnetz scheuen die meisten Anwender jedoch – zum einen wegen der damit verbundenen Investition in entsprechende Hardware, zum anderen wegen des Stromverbrauchs, die ein solcher Server verursacht.

Hier kommt der Raspberry Pi ins Spiel: Mit dem Minirechner steht ein äußerst kostengünstiges und doch vollständiges Linux-System bereit, das einen Gutteil der Dienste eines Heimnetz-Servers problemlos übernimmt. Die Leistungsaufnahme von 3,5 Watt verursacht einen Stromverbrauch von knapp 31 kWh pro Jahr, was bei einem Preis von 25 Cent pro kWh die jährlichen Kosten auf unter 8 Euro beschränkt. Wir zeigen im Folgenden, wie Sie einen Raspberry Pi so konfigurieren, dass er zum einen mittels DHCP IP-Adressen an die Clients verteilt und zum anderen die Namensauflösung übernimmt.

Feste IP-Adresse

Damit der RasPi als DHCP-Server arbeitet, benötigt er selbst eine feste IP-Adresse, die zum bestehenden Netzwerk beziehungsweise zum DSL-Router passen muss. Der Aufruf ifconfig ermittelt, welche Adresse der DHCP-Server des DSL-Routers unserem RasPi zuweist (Listing 1, erste Zeile). Um die IP-Adresse des Routers in Erfahrung zu bringen, tippen Sie route (Zeile 5).

Listing 1

$ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:80:7d:b8
          inet addr:192.168.100.73  Bcast:192.168.100.255  Mask:255.255.255.0
[...]
$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.100.1   0.0.0.0         UG    0      0        0 eth0
192.168.100.0   *               255.255.255.0   U     0      0        0 eth0

Der Default-Gateway (Zeile 8) zeigt die Adresse des DSL-Routers, in unserem Beispiel 192.168.100.1. Alle Adressen lauten 192.168.100.x (Zeile 9). Die Adresse des DSL-Routers darf später nicht an ein anderes Gerät vergeben werden, da es sonst aus naheliegenden Gründen zu Adresskonflikten kommt. Um den RasPi an die Gegebenheiten des Netzwerks anzupassen, ändern Sie die Datei /etc/network/interfaces unter Berücksichtigung der lokalen Gegebenheiten (insbesondere der IP-Adressen) wie in Listing 2 gezeigt. Dabei weisen Sie ihm eine feste IP-Adresse zu, im Beispiel die 192.168.100.2.

Listing 2

auto lo
iface lo inet loopback
# iface eth0 inet dhcp
iface eth0 inet static
address 192.168.100.2
netmask 255.255.255.0
gateway 192.168.100.1
# nur für RasPi mit WLAN-Anbindung
# allow-hotplug wlan0
# iface wlan0 inet manual
# wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

Zeiteinstellung

Damit in Ihrem Netzwerk eine gemeinsame Zeitführung auf allen Geräten gewährleistet ist, richten Sie auf dem RasPi einen NTP-Server ein, den alle Geräte zur Zeitsynchronisierung verwenden. Das dem Artikel zugrunde liegende Raspbian-Image enthält diesen bereits. Allerdings empfiehlt es sich, den vorgegebenen Zeitserver zu ändern. Dazu tragen Sie in die Datei /etc/ntp.conf Server aus dem NTP-Pool ein [1] und kommentieren die anderen aus (Listing 3).

Listing 3

[...]
#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
server 0.de.pool.ntp.org iburst
server 1.de.pool.ntp.org iburst
server 2.de.pool.ntp.org iburst
server 3.de.pool.ntp.org iburst

Hier gibt es noch eine kleine Stolperfalle zu überwinden: Holt der RasPi die IP-Adresse via DHCP – was ja bis zum Umstellen auf die statische Adresse der Fall war – dann liest er die Konfiguration des Zeitservers nicht aus der Datei /etc/ntp.conf, sondern aus /var/lib/ntp/ntp.conf.dhcp. Das bleibt so lange der Fall, wie diese Datei existiert. Und in dieser steht der vom DHCP-Server vorgegebene Zeitserver, üblicherweise die Adresse des DSL-Routers.

Vergewissern Sie sich zunächst, dass der RasPi die statische IP-Adresse verwendet. Um das zu gewährleisten, starten Sie mit dem Befehl sudo init 6 den Rechner neu. Danach löschen Sie die Datei /var/lib/ntp/ntp.conf.dhcp und rebooten nochmals. Überprüfen Sie abschließend nach etwa zwei Minuten mit dem Befehl ntpq -p, ob der Zeitserver jetzt die richtigen Einstellungen verwendet (Listing 4).

Listing 4

$ ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+imap.immobilien .PPS.            1 u   41   64    1   79.383   -0.553   1.211
+195.50.171.101  145.253.2.212    2 u    5   64    1   11.553   -1.133   1.247
*stratum2-4.NTP. 129.70.130.70    2 u    9   64    1   17.939   -1.059   0.146
-ntp.uni-oldenbu 192.53.103.104   2 u   40   64    1   24.178   -0.018   0.811

Nameserver

Die Namensauflösung über einen eigenen Server gelingt mehr als drei Mal so schnell wie die über externe Nameserver – vor allem deshalb, weil der lokale DNS wiederholte Anfragen aus dem eigenen Cache beantwortet. Um das zu demonstrieren, fragen die Aufrufe in Listing 5 tausend Mal die Auflösung eines Domain-Namens ab, zuerst via Internet und danach lokal.

Listing 5

$ time (for i in `seq 1 1000`; do dig google.com @8.8.8.8 > /dev/null 2>>/dev/null; done)
real    0m24.156s
user    0m4.825s
sys     0m3.517s
$ time (for i in `seq 1 1000`; do dig google.com @127.0.0.1 > /dev/null 2>>/dev/null; done)
real    0m7.632s
user    0m4.305s
sys     0m2.736s
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland