SelfLinux Linux im Netzwerk Dynamic Host Configuration Protocol Abschnitt 2 | SelfLinux-0.13.0

| Dynamic Host Configuration Protocol | Autor Formatierung GFDL

#### 6 DHCP-Server (www.isc.org)

Die Installation des Servers sollte in den gängigen Distributionen kein Problem sein. Bei Debian z.B. sieht sie folgendermaßen aus:

root@linux # apt-get install dhcp3-server

Bei Debian befindet sich nach der Installation die Konfigurationsdatei /etc/dhcp3/dhcpd.conf auf dem System.

Die Datei ist gut kommentiert, und man sollte sie den eigenen Bedürfnissen anpassen (Domain-Name, IP-Adressen usw.)

Falls man den Server in der Testphase nur von Hand starten möchte, sollte man die Links in den entsprechenden Runleveln löschen.
Debian:

root@linux # update-rc.d -f dhcp3-server remove

Nach der Testphase kann man diese wieder aktivieren, bei Debian z.B. folgendermaßen:

root@linux # update-rc.d dhcp3-server defaults

#### 6.1 Eine erste Konfigurationsdatei

Alles, was man nicht versteht, kommentiert man zunächst einmal aus. Ich habe das meiste der Übersichtlichkeit halber gelöscht.

minimal dhcp.conf file

    #
    # Beispielkonfigurationsdatei für ISC dhcpd3
    # Debian 3.0 Woody
    #

    # Optionsdefinitionen für alle unterstützten
    # Netzwerke...
    # option domain-name "local.invalid";

    subnet 192.168.0.0 netmask 255.255.255.0 {
      range dynamic-bootp 192.168.0.31 192.168.0.40;
    }

Nun kann der DHCP-Server den DHCP-Clients zehn Adressen dynamisch zuweisen.

#### 6.2 Testen des Servers

Auf einem Debian-System sollte nochmals geprüft werden, ob in /etc/default/dhcp3-server das richtige Interface angegeben ist (z.B. eth0).

Danach kann man zum Testen (Debuggen) übergehen.

Starten des Servers:

root@linux # /etc/init.d/dhcp start

bzw.

root@linux # /etc/init.d/dhcp3-server start

Es empfiehlt sich, mit tail -f /var/log/syslog den Startvorgang zu verfolgen, um zu sehen, ob der Server korrekt läuft. "ps ax" bzw. "pidof dhcpd3"

Der folgende Aufruf ist zum Debuggen besser geeignet:

root@linux # dhcpd3 -d -f

Bitte unbedingt die Fehlermeldungen beachten!

Auch ein Blick in die Dateien unter /var/log lohnt sich!

Wird auf einem zweitem Rechner, z.B. Knoppix (Debian von CD), getestet, so verwendet man pump:

root@linux # pump -s

Auf dem Server kann die Anfrage mit

root@linux # tcpdump -e

verfolgt werden.

Dabei muss der Client eine Anfrage absetzen, die vom Server beantwortet wird.

tcpdump Ausgabe

    (ist leider eine lange Zeile mit \ getrennt)
    09:47:32.690249 0:48:54:12:4c:df Broadcast ip 342: \
    0.0.0.0.bootpc > 255.255.255.255.bootps:  \
    xid:0x1c97abed [|bootp] [tos 0x10]

    09:47:32.700021 8:0:46:49:60:8d 0:48:54:12:4c:df \
    ip 62: lapwoody.local.invalid > 192.168.0.40: \
    icmp: echo request (DF)

Der erste Abschnitt ist die Broadcast-Anfrage des Clients. Danach folgt die Antwort des Servers, in der dieser dem Client eine IP-Adresse mitteilt.

Anmerkung: Wer die Pakete mit ganzem Inhalt sehen möchte, kann für die Aufzeichnung auch ngrep verwenden.

Nun sollte ein einfacher DHCP-Server laufen.

#### 6.3 Der Server bekommt weitere Fähigkeiten

Als Nächstes sollten die sinnvollen Standard-Angaben wieder aktiviert werden. Die Optionen, die nicht "ausgeklammert" sind, gelten als Vorgaben für alle späteren Angaben.

config-datei

    ddns-update-style none;
    # Wir haben unseren DHCP- nicht mit einem
    # DNS-Server kombiniert.

    option domain-name "local.invalid";
    option domain-name-servers 192.168.0.1;
    # Unsere Domain und die Nameserver

    default-lease-time 600;
    max-lease-time 7200;
    # Wann müssen die Adressen, die wir verteilt haben,
    # erneuert werden? Die Laufzeit ist in Sekunden angegeben,
    # d.h. alle DHCP-Rechner sollten nach 10 min anfangen,
    # sich neue Adressen zu holen. Falls die Adresse innerhalb
    # von 2 Stunden nicht erneuert werden konnte, liegt
    # irgendein Fehler vor und der Client-Rechner sollte
    # seine IP-Adressen nicht mehr benutzen.

    authoritative;
    # Regelt, welcher DHCP-Server Priorität hat. :-)
    # Aktivieren, sobald wir fertig sind.

#### 6.4 Weitere Möglichkeiten mit DHCP

Es gibt globale Angaben, die von lokalen Angaben überschrieben werden können.

Einige Optionen aus: "man dhcpd.conf" und "man dhcp-conf" (offizielle Optionen sind in RFC 2132 beschrieben):

config-datei

    option domain-name "local.invalid";
    option domain-name-servers 192.168.0.1, 192.168.0.2;

Übertragung des Domain-Namens und der DNS-Server.

config-datei

    option routers 192.168.0.1;

Angabe des Default-Gateway.