Ausbildungsblock DHCP

DHCP-Server verteilen IP-Adressen an anfragende Clients. Das ist bekannt. Mit DHCP lassen sich allerdings mehr Informationen verteilen als nur Adressen.

Welche wichtigen Informationen (Optionen) kann man ausserdem verteilen?


Welche Vorteile hat das Zuweisen von Optionen via DHCP?

  • Zentrale Konfigurationsänderungen
  • Keine Fehlkonfig auf einzelnen Workstations
  • Übersicht über verwendeten IP-Bereich, keine Pflege in Tabellen

Wenn der Client zum ersten Mal eine IP-Adresse anfordert, muss dieser erstmal einen DHCP-Server finden.

Wie findet der Client einen DHCP-Server? (MAC- / IP-Broadcast?)

Per IP-Broadcast (DHCPDISCOVER).

Wenn der Client durch einen Router vom DHCP-Server getrennt ist, kann (im Normalfall) keine Kommunikation über Broadcast stattfinden.

Was muss auf den trennenden Komponenten konfiguriert sein?

DHCP Relay Agent, BOOTP-Relay, IP-Helper (Router)

Wie findet die weitere Kommunikation mit dem Server statt?

Client > Server : DHCP DISCOVER
Server > Client:  DHCP OFFER (Adressvorschlag)
Client > Server:  DHCP REQUEST (fordert Adressbestätigung)
Server > Client : DHCP ACK (Bestätigung)

Zu Beginn hat der Host noch keine IP-Adresse, und er weiss auch nicht die Adresse des Servers, den er anzufragen hat. Er verschickt deshalb beispielsweise das folgende Paket an alle:

Source: 0.0.0.0 (Anonym)
Source-Port: 68 (DHCP-Client-Port)
Destination: 255.255.255.255 (an alle)
Dest-Port: 67 (DHCP-Server-Port)
yi-Adresse: 0.0.0.0 (noch keine Adresse)
Anfrage-ID: 654 (Zufallszahl)

Ein DHCP-Server im lokalen Netzwerk bekommt nun diese Nachricht und antwortet darauf, da er keine explizite IP-Adresse hat, ebenfalls an alle mit folgendem Paket:

Source: 223.1.2.5 (Adresse des Servers)
Source-Port: 67 (DHCP-Server-Port)
Destination: 255.255.255.255 (an alle)
Dest-Port: 68 (DHCP-Client-Port)
yi-Adresse: 223.1.2.4 (vorgeschlagene Adresse)
Anfrage-ID: 654 (gleiche ID wie Host zur Identifizierung der Antwort)
Lifetime: 3600 (1 Stunde verfügbar)

Dieses Paket gelangt nun (nebst allen anderen Hosts) zum Host, der die Anfrage startete. Er identifiziert die Antwort anhand des Ports und der ID und antwortet wiederum dem gesamten Netz, dass er mit dieser Adresse einverstanden ist:

Source: 0.0.0.0 (Adresse noch nicht angenommen)
Source-Port: 68 (DHCP-Client-Port)
Destination: 255.255.255.255 (an alle)
Dest-Port: 67 (DHCP-Server-Port)
yi-Adresse: 223.1.2.4 (Adresse würde akzeptiert werden)
Anfrage-ID: 655 (nächste ID)
Lifetime: 3600 (Bestätigung der Verfügbarkeits-Zeit)

Falls nun mittlerweile ein anderer DHCP-Server auf die ursprüngliche Anfrage antwortete, so ignoriert der Host diese Antwort. Der Server, der die zweite Antwort sendete, sieht nun am letzten Paket, dass sein Vorschlag nicht angenommen wurde und kümmert sich wieder um andere Geschäfte. Der Server, der jedoch die akzeptierte Adresse anbot, antwortet nun dem Host noch mit einer ACK-Nachricht (er sendet sie wiederum an alle, um zu signalisieren, dass der Host nun versorgt ist):

Source: 223.1.2.5 (Adresse des Servers)
Source-Port: 67 (DHCP-Server-Port)
Destination: 255.255.255.255 (an alle)
Dest-Port: 68 (DHCP-Client-Port)
yi-Adresse: 223.1.2.4 (vergebene Adresse)
Anfrage-ID: 655 (gleiche neue ID wie Host)
Lifetime: 3600 (Repetition der Zeit)

Kann man die Anfrage über 2 oder mehrere Router leiten?

Ja.

DHCP gibt es nicht nur in der Windows sondern auch in der Unix/Linux-Welt. Es sind aber nicht alle möglichen, per DHCP verteilbaren Optionen in beiden Welten vorhanden.

Kann ein Linux-Client mit einem Windows-Server "DHCP sprechen"?

Ja (sofern RFC-konform)

Wie werden "artfremde" Optionen verarbeitet? (zB: WINS-Server für Linux-Client)

Sie werden ignoriert.

Stichwort "Hochverfügbarkeit" und "Performance". Wenn ein einzelner DHCP-Server ausfällt, kann kein DHCP-Client mehr am Netzwerk teilnehmen. Bei sehr großen Netzwerken ist unter Umständen eine höhere Performance gefragt.

Überlege Dir für Windows und Unix/Linux Möglichkeiten die Ausfallsicherheit zu erhöhen.

  • Mehrere DHCP-Server, in jedem Teilnetz einer (nicht so optimal)
  • Failover DHCP-Server (nur unter Linux, ISC), 2 Server gleichen Ihre Daten ab, Second springt ein, wenn Master ausfällt.
  • Mehrere DHCP-Server, Range aufgeteilt (Windows), wenn ein Server ausfällt wird mit der Range des anderen Servers weitergearbeitet.

Welche Konzepte werden tatsächlich in Produktionsumgebungen eingesetzt?

Failover oder Rangeaufteilung.

DHCP-Server bieten die Möglichkeit, Clients anhand ihrer MAC-Adressen feste IP-Adressen zuzuweisen.

In welchen Situationen ist eine statische IP-Adresse sinnvoll?

  • Server
  • Printserver
  • Geräte mit festen Funktionen, die ständig zur Verfügung stehen.

Wie wird das bei Windows und bei Linux konfiguriert?

  • Windows: Reservierungen
  • Linux: dhcpd.conf

Dhcpd.conf:

ddns-update-style none;
one-lease-per-client true;
option domain-name "netzwerk.de";
option domain-name-servers 192.168.128.25;
option subnet-mask 255.255.255.0;
default-lease-time 18000 ; max-lease-time 18000;
authoritative;
failover peer "dhcp" {
 primary;
 address 192.168.128.25;
 port 519;
 peer address 192.168.128.1;
 peer port 520;
 max-response-delay 60;
 max-unacked-updates 10;
 mclt 600;
 split 128;
 load balance max seconds 3;
}
include "/etc/dhcpd.master";

dhcpd.master :

subnet 192.168.128.0 netmask 255.255.255.0 {
  pool {
    failover peer "dhcp";
    range 192.168.128.50 192.168.128.254;
    deny dynamic bootp clients;
  }
}

Die Konfiguration ist auf zwei DHCP-Server ausgelegt, nicht mehr und sinnvollerweise auch nicht weniger. Die Konfigurationsdateien sind auf beiden Rechnern fast identisch, nur der gelbmarkierte Teil ist ausschliesslich auf dem "master" vorhanden bzw. heißt auf dem zweiten Server "secondary" . Die Konfigurationsdateien legen fest auf welchen Ports die DHCP-Server mit ihrem Gegenstück kommunizieren und unter welche IP-Adresse sie zu erreichen sind. Weiterhin wird festgelegt, nach welchem Zeitlimit die Server die Verbindung zum Partner als unterbrochen betrachten.

Spezielle Optionen bewirken folgendes :

Mclt: Maximum Client Lead Time, die Zeit in der ein Lease für einen Client erneuert werden kann ohne das ein Peer den anderen kontaktiert.

Split: Anhand der Client-identifikation wird ein Hash gebildet und mit der angegebenen Zahl verglichen, ist der Hash kleiner als die Zahl übernimt der eine Peer die Anfrage, ist sie größer der andere Peer.

Load balance max seconds: Die Zeit bis ein Peer davon ausgeht das der andere Peer eine DHCP-Anfrage nicht beantwortet hat/kann und die Anfrage selbst beantwortet.

Windows bietet seit der Version 2000 die Möglichkeit, dass Namen und IP-Adressen der Clients dynamisch im DNS eingetragen werden.

Welchen Vorteil bringen DHCP und DDNS?

Bietet erstmalig die Möglichkeit Rechner nicht nur mit IP-Adressen per DHCP zu versorgen, sondern auch gleichzeitig eine Registrierung im DNS zu erhalten. 

Wann ist es nötig, dass DNS ADS-integriert ist?

Wenn es mehrere DNS-Server gibt, da deren Abgleich untereinander über DS-Abgleich läuft. (Kein Primary und Secondary DNS mehr ab Windows 2000)

Geht das auch unter Linux?

Ja. Die Kombination von BIND und dem ISC-DHCP lässt ebenfalls dynamische Updates des DNS zu.

Welche Produkte muss/kann man dazu einsetzen?

  • ISC-DHCP
  • ISC-DNS
  • BIND ver. 8

Wie sieht die Konfiguration aus?

Named.conf :

options {
 directory "/var/lib/named";
 dump-file "/var/log/named_dump.db";
 statistics-file "/var/log/named.stats";
 listen-on-v6 { any; };
 notify no;
};
logging {
 channel syslog_errors {
  syslog user;
  severity debug;
 };
};
zone "." in {
 type hint;
 file "root.hint";
};
zone "localhost" in {
 type master;
 file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" in {
 type master;
 file "127.0.0.zone";
};
zone "128.168.192.in-addr.arpa" in {
 type master;
 file "master/128.168.192.zone";
 allow-update {127.0/16; 192.168.128/24; };
};
zone "netzwerk.de" in {
 type master;
 file "master/netzwerk.de.zone";
 allow-update {127.0/16; 192.168.128/24; };
};
include "/etc/named.conf.include";
netzwerk.de.zone :
$ORIGIN .
$TTL 10800 ; 3 hours
azubi.de  IN SOA server. admin. (
    18         ; serial
    60         ; refresh (1 minute)
    60         ; retry (1 minute)
    86400      ; expire (1 day)
    3600       ; minimum (1 hour)
    )
   NS server.netzwerk.de.
$ORIGIN netzwerk.de.
server  A 192.168.128.25
192.168.128.zone :
$ORIGIN .
$TTL 10800 ; 3 hours
128.168.192.in-addr.arpa IN SOA server.netzwerk.de. admin.netzwerk.de. (
    16         ; serial
    60         ; refresh (1 minute)
    60         ; retry (1 minute)
    86400      ; expire (1 day)
    3600       ; minimum (1 hour)
    )
   NS server.netzwerk.de.
$ORIGIN 128.168.192.in-addr.arpa.
25   PTR server.netzwerk.de.

Kommentare Anregungen und Kritik zu diesem Artikel können gerne im Forum geäußert werden.
(Bitte gebt den Titel der Seite oder einen Link zu der Seite im Thread mit an)



Menü