DHCP - Informatik 4

Transcrição

DHCP - Informatik 4
Rheinisch-Westfälische Technische Hochschule Aachen
Lehrstuhl für Informatik IV
Prof. Dr. rer. nat. Otto Spaniol
Dynamic Host Configuration Protocol
Proseminar: Dynamic Host Configuration
Protocol
WS 2002/2003
Nils Gräf
Matrikelnummer: 232827
Betreuung: Mesut Günes
Lehrstuhl für Informatik IV, RWTH Aachen
DHCP-Proseminar
Inhaltsverzeichnis
1. Einführung .................................................................................................................. 2
1.1
Erklärung der Fachbegriffe .................................................................................. 2
2. BOOTP........................................................................................................................ 4
3. DHCP........................................................................................................................... 5
3.1
Aufbau eines DHCP-Pakets ................................................................................. 6
3.2
Arten der Anfragen............................................................................................... 7
3.3
Ablauf einer Zuordnung....................................................................................... 8
3.4
Leasezeiten........................................................................................................... 9
3.5
DHCP-Relay....................................................................................................... 11
4. Praktisches Beispiel.................................................................................................. 13
4.1
Konfigurationsdatei............................................................................................ 14
4.2
Manuelle Zuordnung.......................................................................................... 15
4.3
Automatische Zuordnung................................................................................... 16
4.4
Dynamische Zuordnung ..................................................................................... 16
5. Zusammenfassung .................................................................................................... 17
6. Quellenangabe .......................................................................................................... 18
1
DHCP-Proseminar
1. Einführung
Diese Ausarbeitung soll dem Leser das Dynamic Host Configuration Protocol näher
bringen. Was ist das DHCP und warum wurde es entwickelt? Diese beiden Fragen sind die
Hauptaspekte, worauf diese Arbeit eingeht. Die Motivation, die hinter diesem Protokoll steht,
ist schnell beschrieben und leicht verständlich. Man stelle sich ein großes
Softwareunternehmen mit mehreren tausend Rechnern vor. Dieses Netzwerk muss
administriert und gut strukturiert sein. In der Zeit vor DHCP musste, sobald etwas
Gravierendes im Netzwerk verändert wurde, zum Beispiel ein neuer Gateway wurde in
Betrieb genommen, ein Administrator an jeden einzelnen Rechner und die Konfiguration
geändert werden. In solch einem großen Unternehmen werden fast täglich neue PC´s in
Betrieb genommen und andere ausgetauscht. Auch hier musste jedes Mal ein Administrator
die Netzwerkeinstellungen konfigurieren. Bei so vielen Rechnern wird logischerweise auch
eine Unmenge von IP-Adressen benötigt. Diese sind aber im Zeitalter von IPv4 knapp. Dieses
Proseminar soll dem Leser verdeutlichen, wie mit DHCP diese Probleme gelöst werden. Dazu
wird erst das Prinzip von BOOTP, dem Vorgänger von DHCP, erläutert, um dann die Vorteile
von DHCP aufzudecken. Anhand von Grafiken wird dann auf den zeitlichen Ablauf einer
DHCP-Anfrage eingegangen und aufgezeigt, aus was ein einzelnes Paket besteht.
Abgerundet wird diese Ausarbeitung dann mit einem Beispiel aus der Praxis. Gezeigt wird
eine lauffähige Konfiguration, wie sie unter SuSE Linux 8.0 an einer Schule zum Einsatz
kommt. Darin werden die drei verschiedenen Vergabemodi verwendet und dazu erklärt,
warum der Administrator den jeweiligen Modus gewählt hat und welche Vorteile sich daraus
für die Administration dieses LANs ergeben. Um diese Ausarbeitung besser verstehen zu
können, steht am Anfang eine Erklärung der Fachbegriffe, die nicht als bekannt vorausgesetzt
werden können.
1.1 Erklärung der Fachbegriffe
Address Resolution Protokoll (ARP)
Das ARP setzt eine logische Netzwerkadresse in eine Hardwareadresse um. In Netzwerken
werden die physikalischen Adressen der Rechner nicht verwendet, sondern es handelt sich um
eine logische Adressierung. In TCP/IP-Netzwerken handelt es sich zum Beispiel um das IPAdresskonzept.
Broadcast
Wenn eine Nachricht an die Broadcast-Adresse gesendet wird, empfängt jeder angeschlossene
Rechner im Netzwerk diese Nachricht.
Domain Name System (DNS)
Alle Rechner in einem TCP/IP-Netz werden über eine eindeutige IP-Adresse identifiziert.
Diese 4 Byte lange Zahl ist kompliziert und anfällig für Tippfehler. Aus diesem Grund wurde
bereits 1984 das Domain Name System (DNS) geschaffen. Es ermöglicht, Hosts über den
zugehörigen Domainnamen, etwa rwth-aachen.de, zu erreichen. Das DNS ist eine verteilte
Datenbank, deren zentrale Komponenten die Nameserver sind.
2
DHCP-Proseminar
Hardwareadresse
Jeder Netzwerkadapter bekommt bei der Herstellung eine 6 Byte lange Adresse (zumeist in
hexadezimal angegeben) eingebrannt. Diese ist aufgrund von Herstellerabsprachen weltweit
einmalig. Jeder Rechner ist also über diese Adresse eindeutig zu identifizieren.
IPv4/IPv6
Der Unterschied dieser beiden Konzepte liegt hauptsächlich in der Länge der IP-Adresse. Im
alten und derzeit noch verwendeten Standard IPv4 hat eine Adresse die Länge von 4 Byte.
Eine Beispieladresse ist zum Beispiel die 192.168.0.5. Aufgrund der relativ geringen Anzahl
von diesen Adressen ist man nun dabei auf IPv6 zu migrieren. Bei IPv6 ist eine Adresse 16
Byte lang.
Network Information System (NIS)
Das Network Information System ist ein Verzeichnisdienst, der die Benutzung bestimmter
Konfigurationsdateien von verschiedenen Rechnern aus ermöglicht. Insbesondere in
Verbindung mit dem Network File System (NFS) wird NIS verwendet, um Benutzern
netzwerkweit dieselbe Umgebung zur Verfügung zu stellen.
Request For Comment (RFC)
Hierbei handelt es sich um eine fortlaufend durchnummerierte Dokumentensammlung, die
unter Verwaltung des Internet Architecture Board (IAB) steht. Die bestehenden Protokolle
werden gemäß ihres Entwicklungsstandes und Einsatzbereiches kategorisiert. Die RFC´s sind
für die Entwicklung und Bewertung von Protokollen im Internet verantwortlich.
Windows Internet Name Service (WINS)
Vergleichbar mit dem Verfahren, das bei DNS verwendet wird, um IP-Adressen in leichter
lesbarere Namen umzusetzen, stellt WINS eine Methode auf Windows-NT basierten
Systemen dafür zur Verfügung. Der Hauptunterschied zwischen WINS und DNS liegt darin,
dass DNS eine hierarchische Anordnung zur Verfügung stellt (die Namen können in einer
baumartigen Struktur angeordnet werden). WINS stellt einen "flachen" Name nsraum zur
Verfügung.
WINS unterscheidet sich vom Standard DNS in drei signifikanten Punkten:
1. WINS ist dynamisch. Wenn ein Microsoft-basierter Computer im Netzwerk
hochgefahren wird, sendet er einen Broadcast an alle physikalisch an diesem Segment
angeschlossenen Systeme. Dies ist ein dynamischer Prozess, bei dem Computer das
Netzwerk betreten und wieder verlassen ohne dass eine Intervention notwendig ist.
Bei DNS werden die IP-Mappings in einer Datenbank gehalten, die jemand
administrieren muss. DNS stellt Anfragen über einen Requestor namens BIND,
während NetBIOS über Broadcasts oder gerichtete Datagramme an den WINS-Server
anfragt.
2. Ein NetBIOS Name kann nicht ohne zusätzliche Software über DNS aufgelöst
werden. Microsofts DNS-Server integriert sich in seinen WINS-Service, der DNS
sagt, dass er WINS als eine Art 'hosts'-Datei behandeln soll.
3. Bei NetBIOS müssen Namen im ganzen Netzwerk eindeutig sein, während bei DNS
mehrfache Namen (sogar in derselben Domäne) zulässig sind.
3
DHCP-Proseminar
2. BOOTP – Bootstrap Protocol
Das Kapitel 2 ist frei nach dem Buch TCP/IP-Grundlagen von Gerhard Lienemann [3]
verfasst. Es ist nur auf die nötigen Bedürfnisse zu dem eigentlichen Thema gekürzt und die
Thematik sprachlich angepasst.
Das BOOTP-Protokoll ist ausschließlich dazu entwickelt worden, um Boot-Vorgänge von
Diskless-Workstations, also von Rechnern ohne Disketten- und Festplattenlaufwerk, zu
realisieren.
Mit BOOTP wird nicht das eigentliche Netzwerk-Booten sondern lediglich die Übernahme
der relevanten Netzwerkdaten (z. B. der eigene n IP-Adresse) bewerkstelligt. Der Ladevorgang
selber wird dann von herkömmlichen Transferprotokollen wie TFTP (Trivial File Transfer
Protocol) übernommen.
Der BOOTP-Client beginnt den Bootvorgang mit einem IP-Broadcast, womit er seine
Hardwareadresse dem Server übermittelt. Derjenige Bootserver, dem diese Adresse „bekannt“
ist, antwortet und schickt ihm seine IP-Adresse, den Namen vom Bootserver und den Namen
des Bootfiles, welches geladen werden soll. Nach dem Ladevorgang des Bootfiles und dem
Booten ist dieser Rechner ein vollwertiges Mitglied des Netzwerkes.
Nach dem RFC 951 [1] kann man die Aktivitäten eines BOOTP-Clients folgendermaßen
charakterisieren:
Wie lautet mein Name?
Die Hardwareadresse ist in einem Netzwerk letztlich für die physikalische Adressierung
verantwortlich. Diese ist in der Regel auf dem ROM der Netzwerkkomponente eingebrannt,
ist im Netzwerk eindeutig und wird durch einen separaten BOOTP-Vorgang vor dem
Bootvorgang ausgelesen.
Wie erreiche ich volle Netzwerkfähigkeit?
Die Frage „Wer kennt mich“ stellt der BOOTP-Client netzwerkweit mit einem BootPRequest. Die bereits ausgelesene Hardwareadresse ist Teil dieses Requests, wodurch der für
diesen Client verantwortliche Server seinen „Kunden“ eindeutig erkennt und ihm einen Reply
sendet. Dieser Reply enthält die eigene IP-Adresse, die IP-Adresse des Servers, den Namen
des Bootfiles und gegebenenfalls auch noch die IP-Adresse eines Routers. Mit dieser BasisKonfiguration lassen sich nun auch ARP-Requests und -Replies bearbeiten, und das TFTProtokoll kann zur Übertragung des Bootfiles verwendet werden.
Wie erhalte ich die erforderliche „Kommunikations-Intelligenz“?
Da nun alle notwendigen Informationen für den „remote“-Bootvorgang vorliegen, kann dieser
über TFTP vorgenommen werden. Während des Ladevorganges erfolgt auch die Übernahme
weiterer Netzwerkinforma tionen. Der Client wird initialisiert, und nach der Etablierung der
Netzwerkverbindungen ist der Client einsatzbereit.
4
DHCP-Proseminar
3. DHCP – Dynamic Host Configuration Protocol
Die Möglichkeiten von BOOTP stießen schnell an ihre Grenzen, und auf Grund der
technischen Entwicklung kamen neue Probleme auf. Ein Netzwerk ist lange nicht mehr so
statisch wie es früher einmal war. Wie oft kommt es vor, dass z.B. auf einer Tagung jemand
mit einem Notebook kommt und sich „mal eben“ in das Intranet einloggen will? Soll dazu
jedes Mal der Administrator gerufen werden, um die richtige Konfiguration des Clients
vorzunehmen? In großen Unternehmen trat mit der Zeit aber auch ein anderes Problem auf.
Die IP-Adressen wurden knapp. Jeder PC hatte seine eigene IP-Adresse, aber nie waren alle
Rechner im Einsatz, und einige IP-Adressen lagen die meiste Zeit brach. Diese beiden
Probleme waren die Hauptmotivation, um BOOTP weiterzuentwickeln. Das Ergebnis ist
DHCP. Alle Funktionen von BOOTP wurden übernommen, dieselben Ports, verwendet und
jeder BOOTP-Client kann mit einem DHCP-Server kommunizieren. DHCP ist nicht nur für
Diskless-Workstations gedacht, sondern soll allgemein die Netzwerkkonfigurationen der
Clients zentralisieren, und damit sind diese viel leichter zu administrieren. Außerdem kann
DHCP die ihm zur Verfügung stehenden IP-Adressen dynamisch vergeben, so dass wirklich
immer nur so viele IP-Adressen vergeben sind wie es aktive PC´s im Netzwerk gibt.
Insgesamt gibt es drei verschiedene Arten wie das Dynamic Host Configuration Protocol
seine Clients bedienen kann. Auf diese Varianten mit ihren Vor- und Nachteilen wird in
Kapitel 4 anhand eines praktischen Beispiels eingegangen. DHCP ist in dem RFC 2131 [4]
festgelegt. Es gibt einige weitere RFC´s, die das Verhalten von diesem Protokoll beschreiben,
wie das RFC 2132 [5]. Ein Weiteres, welches erwähnt werden sollte, ist das RFC 1534 [2],
welches die Interaktion zwischen BOOTP und DHCP beschreibt. Das Dynamic Host
Configuration Protocol ist nur in TCP/IP-Netzwerken implementiert und dafür optimiert. Ein
Einsatz in nicht IP-basierten Netzen, wie zum Beispiel Novell Netware-Netzwerke, ist aber
auch gar nicht sinnvoll, da ja eine der Hauptaufgaben von DHCP das dynamische Verwalten
von eben diesen IP-Adressen ist.
DHCP ist aber wohl auch einer der Hauptgründe, warum IPv6 sich noch bis heute nicht weiter
durchsetzen konnte. Denn die durch das große Wachstum des Internet knapp werdenden
IPv4-Adressen werden nun effektiver verwendet, und ein Umstieg auf ein neues System mit
mehr Adressen ist so nicht mehr ganz so dringend. Stellen Sie sich nur mal vor, es gäbe kein
DHCP und jeder private PC, der mit dem Internet verbunden ist, hätte eine eigene Adresse.
Leicht vorstellbar, dass da die 4 Milliarden möglichen Adressen schnell verbraucht wären.
Dem Internet stehen aber ungefähr nur die Hälfte dieser Adressen zur Verfügung, da aufgrund
von großen Firmen, denen Class A-Netze gehören, einige Adressen vergeben sind, aber
niemals im wirklichen Gebrauch sein werden.
Nach dieser Motivation wird nun die technische Umsetzung dargestellt. Begonnen wird im
nächsten Abschnitt mit dem Aufbau einer einzelnen DHCP-Nachricht.
5
DHCP-Proseminar
3.1 Aufbau eines DHCP-Pakets
In diesem Abschnitt soll der Aufbau eines einzelnen DHCP-Message-Paketes verdeutlicht
werden. Die Zahlen in den Klammern geben die Länge des jeweiligen Feldes in Bytes an.
Fig. 1: Aufbau eines DHCP-Pakets
Erläuterung der einzelnen Felder:
Name
Bytes
Op
Htype
Hlen
Hops
Xid
1
1
1
1
4
Secs
Flags
2
2
Ciaddr
4
Yiaddr
Siaddr
Giaddr
4
4
4
Chaddr
Sname
File
Options
16
64
128
var
Erklärung
Typ der Nachricht
Art der Hardwareadresse
Länge der Hardwareadresse
Anzahl der zu überwindenden Relays
Zufallszahl, die vom Client und vom Server als
Transaktions ID verwendet wird. Diese ID wird vom
Client generiert.
Zeit seit Beginn des Dialogs
Beinhaltet ein Broadcastflag und der restliche Teil
muss noch auf Null gesetzt sein. Dieser Bereich ist
für Erweiterungen reserviert.
Client IP-Adresse, nur gesetzt wenn es sich um eine
Erneuerung handelt z.B. bei einem Reboot
Enthält die vom Server vorgeschlagene IP-Adresse.
Serveradresse, nur in DHCPOFFER und DHCPACK
Enthält gegebenenfalls die IP-Adresse eines DHCPRelays
Die Hardwareadresse des Clients
Optional der Hostname des Servers
Name eines eventuellen Bootfiles
Optionale Parameter
6
DHCP-Proseminar
3.2 Arten der Anfragen
In diesem Abschnitt werden nun die verschiedenen Arten der Nachrichten in einem DHCPDialog zwischen Server und Client vorgestellt. Die Nachrichten sind so genannte UDP-Pakete
und nutzen die Ports 67 und 68. Port 67 wird auch der „DHCP-Server-Port“ genannt und dem
entsprechend Port 68 der „DHCP-Client-Port“. Dies besagt, dass alle Nachrichten vom Server
an den Client auf Port 68 und die Anfragen vom Client zum Server auf Port 67.
DHCPDISCOVER Bei diesem Paket handelt es sich um einen Broadcast des Clients zum
auffinden eines Servers. Als Absender IP-Adresse wird die 0.0.0.0
(wird solange verwendet bis der PC eine IP-Adresse zugewiesen
bekommen hat) und als Empfänger-IP-Adresse die 255.255.255.255
(Broadcast) verwendet.
DHCPOFFER
Dies ist die Serverantwort auf einen DHCPDISCOVER. Darin wird
eine mögliche IP-Adresse angeboten und weitere Paramter, wie z.B. ein
DNS-Server könne n übergeben werden. Auch diese Nachricht hat als
Empfänger IP-Adresse die 255.255.255.255.
DHCPREQUEST
Dieses Paket kann drei verschiedene Verwendungen haben, die aber
sehr stark zusammenhängen:
(a) Bestätigung an einen der Server, dass dieser ausgewählt wurde und
damit gleichzeitig auch die Absage an die anderen Server.
(b) Bestätigung der vorhandenen Daten, zum Beispiel nach einem
Reboot.
(c) Zum Verlängern einer Leasezeit.
DHCPACK
Hierbei handelt es sich wieder um eine Servernachricht, die dieser zum
Bestätigen der Daten eines DHCPREQUEST´s sendet.
DHCPNAK
ist das Gegenstück zum DHCPACK. Hiermit teilt der Server dem
Client mit, dass seine IP-Adresse nicht korrekt ist (z.B. weil der Client
in einem neuen Subnetz ist), oder das seine Leasezeit abgelaufen ist.
DHCPDECLINE
Diese Nachricht ist ähnlich DHCPNAK, jedoch gibt diese Anfrage an,
dass seine IP-Adresse schon verwendet wird.
DHCPRELEASE
Ein solches Paket wird vom Client zum Server geschickt, wenn dieser
sich abmeldet und so seine IP-Adresse wieder freigibt.
DHCPINFORM
Dieses Paket sendet der Client dem Server um eine Konfiguration
abzufragen, wenn er extern schon eine IP-Adresse zugewiesen
bekommen hat.
7
DHCP-Proseminar
3.3 Ablauf einer Zuordnung
Fig. 2: Zeitlicher Ablauf eines DHCP-Dialogs
Der Client sendet zu Beginn eines DHCP-Dialogs ein Signal, das so genannte
„DHCPDISCOVER“. Da er selber keine IP-Adresse besitzt und er auch keine Adresse eines
Servers kennt wird dieses Signal per Broadcast in das lokale Subnetz gesendet. Befinden sich
in diesem Bereich ein oder mehrere DHCP-Server, so antworten alle mit einem
8
DHCP-Proseminar
„DHCPOFFER“ als Antwort. Aufgrund von Redundanz ist es gar nicht so selten, dass es
nicht nur einen DHCP-Server gibt. Dieses DHCPOFFER besagt nur, hier ist ein Server, der
dem anfragenden Client Dienste anbietet. Falls es also mehr als einen Server gibt, erreichen
logischerweise auch mehrere Antworten den Client. Welcher Server nun ausgewählt wird, ist
nicht in der RFC 2131 [4] festgelegt. Es kommt also auf die Implementierung und deren
Auswahlkriterien an. In den meisten Fällen ist es jedoch so, dass nach dem FIFO-Prinzip
vorgegangen wird, also die erste Antwort die den Client erreicht verwendet wird. Daraufhin
sendet der Client einen DHCPREQUEST wiederum per Broadcast in sein Subnetz. Diese
Nachricht enthält die IP-Adresse des ausgewählten Servers. Dieser Server sieht diese Message
als Bestätigung an, alle anderen Server als Absage.
Der Server wiederum bestätigt dies noch mit einem DHCPACK. Damit hat der Client seine
IP-Adresse erhalten, und der Server markiert diese in seiner internen Datenbank als „derzeit
verwendet“. Der Server überträgt noch die restlichen Parameter, wie Gateway oder DNSServer, und der Client braucht nur noch diese Daten in seine Konfiguration eintragen und ist
damit fertig für den Netzwerkbetrieb.
3.4 Leasezeiten
In diesem Abschnitt beschäftigen wir uns mit den Leasezeiten und dem dazu gehörenden
Mechanismus.
Im letzten Abschnitt wurde erläutert, wie ein Client seine Konfiguration erhält. Diese erhält er
aber bei der dynamischen Zuteilung nicht auf unbestimmte Zeit. Es wäre nicht sinnvoll eine
Adresse so lange einem Client zu überlassen bis dieser sich abmeldet und damit die Adresse
wieder freigibt. Wie oft saß man schon vor einem Rechner und es ging nichts mehr? Von
einem Restart bekommt der Server nichts mit, so dass diese IP-Adresse nie mehr freigegeben
würde. Es gibt aber auch Implementierungen von DHCP, die ein Abmelden vom Server gar
nicht beinhalten. Daher hat man sich für den so genannten Leasezeitmechanismus
entschlossen.
Mit der Bestätigung des Servers, also mit dem DHCPACK, übersendet dieser dem Client
auch die Gültigkeitsdauer dieser IP-Adresse. Der Client speichert sich zwei Werte T1 und T2,
in der Regel ist T1 50% und T2 87,5% der Gesamtdauer. Es ist jedoch festgeschrieben, dass
T1 kleiner als T2 und T2 kleiner der Leasezeit sein muss.
Nach Ablauf von T1 beginnt der Client mit dem Versuch seine Leasezeit zu verlängern und
sendet dem Server einen DHCPREQUEST. Daraufhin bekommt dieser vom Server wiederum
einen DHCPACK, welcher eine neue Leasetime beinhaltet. Der Client speichert die neuen
Werte T1 und T2 und der Zyklus beginnt von vorne. Dieser Mechanismus wird beendet,
sobald der Client sich explizit abmeldet oder der Server keine neue Leasezeit schickt. Wenn
aber der Client zwischen T1 und T2 keine neue Leasezeit empfangen hat sendet dieser zwar
auch noch mal einen DHCPREQUEST, diesmal jedoch wieder an alle Server. Der Client
startet eine neue Initialisierungsanfrage und bekommt eine neue IP-Adresse zugeteilt.
9
DHCP-Proseminar
Fig. 3: Ablaufdiagramm zum Verlängern einer Leasezeit
10
DHCP-Proseminar
3.5 DHCP-Relay
Jedes etwas größere Netzwerk wird heutzutage in verschiedene Subnetze aufgeteilt. Dafür
gibt es die verschiedensten Gründe. Manchmal sind es Sicherheitsaspekte, die die
Administratoren, dazu veranlassen ihr Netz in kleinere Netze aufzuspalten. Es können aber
auch ganz einfach unterschiedliche Bedürfnisse für verschiedene Abteilungen in einer Firma
der Grund für Subnetze sein. Um diese Subnetze zu verbinden werden Router eingesetzt. Nur
was passiert wenn man DHCP in einem solchen aufgesplitteten Netzwerk einsetzen will? In
jedem Subnetz einen eigenen DHCP-Server aufzustellen würde den Administrationsaufwand
um ein Vielfaches erhöhe n. Bei Änderungen in den Netzwerkkonfigurationen zum Beispiel
müsste man doch jeden Server umkonfigurieren, welches dem Sinn von DHCP, nämlich die
Konfiguration zentral an einem Ort zu haben, widerspricht.
Die dafür gefundene Lösung soll an dem Beispiel vo n Abbildung Vier erläutert werden.
Fig. 4: Beispiel für DHCP-Relays mit drei verschiedenen Subnetzen
11
DHCP-Proseminar
Das Beispiel demonstriert ein Netzwerk mit drei verschiedenen Subnetzen. In der Realität
entspricht jeder der drei Bereiche einem separaten Raum. Bereiche eins und drei sind zwei
CIP-Pools, die über DHCP verwaltet werden. Es soll auch verdeutlicht werden, dass DHCP
nicht nur auf Computer beschränkt ist. Alle Geräte, die TCP/IP verstehen und eine IP-Adresse
haben, können mit DHCP konfiguriert werden. In diesem Beispiel ist es ein Drucker im
dritten Bereich. Bereich zwei zeigt den Serverraum. Hier ist der DHCP-Server untergebracht.
Damit dieser Server auch Clients in anderen Subnetzen bedienen kann gibt es in jedem dieser
einen sogenannten DHCP-Relay.
Warum braucht man einen DHCP-Relay?
Die Antwort ist schnell gefunden, wenn man sich noch einmal Abschnitt 3.2 ansieht. Hieraus
geht hervor, dass ein Client einen Broadcast in seinem Netz abgibt. Davon würde der DHCPServer nichts mitbekommen, da er ja in einem anderen Netz ist. Man braucht also ein Gerät,
dass einen Broadcast in in das andere Netz weiterleitet. Dies ist in der Regel ein normaler
DHCP-Server, der aber keine eigene Konfiguration besitzt, sondern nur entweder den
nächsten Relay oder die Adresse vom eigentlichen Server kennt. Dieser „Gateway“ ist das
Bindeglied zwischen Server und Client. Er nimmt die Anfrage eines Clients entgegen, gibt
diese weiter und wartet auf die Antwort des Servers, um dann dem Client seine Daten
weitergeben zu können.
Mit diesem Prinzip hat man es doch geschafft, die Konfiguration zentral zu halten und die
Anzahl der wichtigen Server auf das Minimum zu reduzieren, welches aus Kostengründen,
aber nicht in Sachen Ausfallsicherheit, anzustreben ist.
12
DHCP-Proseminar
4. Praktisches Beispiel
Das zuvor erlangte theoretische Wissen soll nun an einem praktischen Beispiel erklärt
werden. Zum Einsatz kommt eine Konfiguration eines Kölner Gymnasiums. Die folgende
Konfigurationsdatei läuft auf einem AMD Athlon XP 1800+ unter SuSE Linux 8.0. Die
Konfigurationsdatei des DHCP-Dämons ist in der Regel unter Linux im Verzeichnis /etc zu
finden und hat den Namen „dhcpd.conf“. Die Beispielkonfiguration zeigt jedoch nur die
manuelle Verteilung, um das Dokument originalgetreu zu belassen. Automatische und
Dynamische Verteilungen werden in den beiden dazugehörigen Abschnitten mit Ausschnitten
relevanter Konfigurationen erklärt. Es ist jedoch zu erwähnen, dass es auch durchaus möglich
ist, verschiedene Vergabemodi gleichzeitig zu verwenden. In der Praxis findet man zum
Beispiel oft den Fall, dass die manuelle Verteilung mit der dynamischen oder der
automatischen kombiniert wird. Drucker zum Beispiel müssen immer dieselbe IP-Adresse
haben, da sonst die Druckertreiber diesen nicht mehr finden würden. Das Chaos wäre
vorprogrammiert. Man kann nun diesen Drucker entweder eine feste IP-Adresse per Hand
geben, oder man nimmt hierfür die manuelle Verteilung. Die Rechner können jedoch
trotzdem dynamisch ihre Daten erhalten. Man mag sich fragen, warum diese Schule
überhaupt DHCP einsetzt, da es sich mit insgesamt ca. 70 Rechnern um ein kleines statisches
Netz handelt. Der Mangel an IP-Adresse war sicher nicht der Grund dafür DHCP einzusetzen,
was man auch schnell an der Konfiguration erkennen kann, da ja das Dynamische des
DHCP´s gar nicht verwendet wird. Die Motivation lag einfach und allein in der
Zentralisierung der Netzwerkkonfigurationen. Jeder, der auch nur mal ein kleines Netz
administriert hat, weiß wie undankbar es ist, an jeden einzelnen Rechner zu müssen, nur um
eine einzige Einstellung zu ändern.
Der folgende Abschnitt zeigt nun die oben erwähnte, lauffähige und kommentierte Beispielkonfiguration.
13
DHCP-Proseminar
4.1 Konfigurationsdatei
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#************************************************
#*
DHCP - Konfigurationsskript
*
#*
*
#*
verwendet auf a027fs01.irmgardis
*
#*
erstellt von Nils Gräf
*
#*
am 17.03.2002
*
#*
letzte Änderung am 11.05.2002
*
#************************************************
# Allgemeine Konfiguration:
ddns-update-style interim;
# Servername
server-identifier a027fs01;
# Leasezeiten
default-lease-time 216000;
max-lease-time 432000;
# Subnetmaske
option subnet-mask 255.255.255.0;
# Broadcastadresse
option broadcast-address 192.168.0.255;
# Gateway
option routers 192.168.0.1;
# DNS
option domain-name "irmgardis";
option domain-name-servers 192.168.0.5;
# WinS
option netbios-name-servers a027fs01.irmgardis;
# Nis Domain
option nis-domain "irmgardis";
authoritative;
log-facility local7;
# Vergabe von festen Adressen an den jeweiligen PC:
subnet 192.168.0.0 netmask 255.255.255.0
{
}
# E03
host e03-ws01
{
hardware ethernet 00:04:75:79:8E:13;
fixed-address 192.168.0.20;
}
# E04
host e04-ws01
{
hardware ethernet 00:50:DA:3C:E7:F5;
fixed-address 192.168.0.21;
}
14
DHCP-Proseminar
Diese Beispie lkonfiguration ist in zwei Teile aufzuspalten. Die Zeilen 1-30 stellen die
allgemeinen Netzwerkinformationen dar, und die Zeilen 31-46 zeigen die Parameter zur
manue llen Vergabe der IP-Adressen. Auf den zweiten Bereich wird im Abschnitt 4.2
eingegangen. Zeilen, die mit einer Raute beginnen, gelten als Kommentar und dienen nur zur
besseren Lesbarkeit der Datei. Mit der folgenden Tabelle wird nun der erste Teil der Datei
erklärt.
Zeile
Bedeutung
1-8
10
11-12
13-15
16-17
18-19
20-21
22-24
Kopf der Konfigurationsdatei
Gibt an, wie der DHCP den DNS updaten soll
Servername
Definition der Leasezeiten
Subnetmask
Broadcastadresse
Angabe des Gateways
DNS - Hier wird der Name der Domain sowie die Adresse des Servers festgelegt.
Es ist darauf zu achten, dass es sich bei diesem Beispiel um denselben PC handelt.
WINS-Server, hier ebenfalls derselbe Rechner, dies ist aber nicht zwingend
notwendig.
Legt den NIS-Domainnamen fest (irmgardis)
Macht diesen Server zu dem DHCP-Hauptserver von diesem Netz
Legt das Log- Level des Sytemlogs (syslog) fest
25-26
27-28
29
30
Diese Werte stellen Default-Werte dar, welche, falls dies aus irgendwelchen Gründen
notwendig ist, überschrieben werden können. Ein möglicher Grund wäre zum Beispiel, das
ein PC über eine extra Leitung mit dem Internet verbunden werden soll und daher dieser
einen anderen Gateway zugewiesen bekommen muss.
4.2 Manuelle Zuordnung
Der zweite Teil dieser Beispielkonfiguration zeigt nun, wie man DHCP dazu nutzt einem
Client immer dieselbe IP-Adresse zukommen zu lassen. Die Schule verwendet nur diesen
Vergabemodus. Dieser ist praktisch, wenn man eine feste Anzahl an Rechnern hat und die
Zahl der Rechner sich auf einem relativ geringen Niveau liegt. Die Anzahl der Rechner sollte
aus mehreren Gründen nicht so hoch liegen, da man immer die Hardwareadresse bestimmen
und in die Konfiguration eingeben muss; man schaue sich dazu zum Beispiel mal die Zeilen
36 – 40 an. Hier wird einem einzelnen Rechner, nämlich dem Client „e03-ws01“ die IPAdresse 192.168.0.20 zugewiesen. DHCP erkennt den dazugehörigen Rechner an der
Hardwareadresse, die in Zeile 39 angegeben ist.
15
DHCP-Proseminar
4.3 Automatische Zuordnung
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.199;
}
Die Automatische Zuordnung ist eine Zuteilung ohne zeitliche Beschränkung. Der Rechner
erhält einmalig eine IP-Adresse und behält diese auf unbegrenzte Zeit. In diesem Beispiel ist
der zur Verfügung stehende Pool von Adressen von 192.168.0.100 bis 192.168.0.199. Eine
solche Zuteilung ist zum Beispiel sinnvoll, wenn es einen großen Pool von Rechnern gibt, die
jeweilige IP-Adresse im Prinzip egal ist und es nur darauf ankommt, dass die IP-Adressen
nicht mehrfach vergeben werden. Im Gegensatz zu der manuellen Zuordnung, die nur für
kleine Netzwerke oder Subnetze sinnvoll ist, ist diese in mittelgroßen Netzwerken sinnvoll.
Solange es nicht mehr Rechner gibt als IP-Adressen zur Verfügung stehen, ist diese Zuteilung
die bequemste, da man die Log-Dateien nachvollziehen kann.
4.4 Dynamische Zuordnung
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.100 192.168.0.199;
default-lease-time 21600;
max-lease-time 43200;
}
Diese Zuteilung ist das eigentliche Herz von DHCP. Die spärlich vorhandenen IP-Adressen
werden effizient ausgenutzt. Die IP-Adressen werden spätestens nach Ablauf der Leasezeit
neu vergeben. Es sind immer nur so viele IP-Adressen vergeben, wie Rechner in Gebrauch
sind. So ist es möglich auf einen relativ kleinen IP-Bereich viele Rechner zu verwenden. Das
beste Beispiel dafür sind wohl die Internetprovider. Nie sind alle Kunden gleichzeitig online,
so dass es viel zu teuer wäre, für jeden eine feste IP-Adresse zu besitzen. Der größte Nachteil
liegt wohl genau in diesem Detail. Man weiß nie, welche IP-Adresse gerade ein Client hat,
welches das Konfigurieren einer Firewall unter Umständen unmöglich machen kann. Bei dem
oben gezeigten Beispiel werden die IP-Adressen von 192.168.0.100 bis 192.168.0.199
vergeben. Die normale Leasezeit wird hier mit 21600 Sekunden, also 6 Stunden angegeben,
die Maximale ist mit 43200 genau doppelt so groß.
16
DHCP-Proseminar
5. Zusammenfassung
Das Dynamic Host Configuration Protocol ist die optimale Lösung für die Probleme, welche
die Motivation zur Entwicklung von diesem Protokoll darstellten. Eine effiziente Verwaltung
der zur Verfügung stehenden IP-Adressen wurde mit den drei verschiedenen Vergabemodi
realisiert. Die Fernkonfiguration der Clients im Netzwerkbereich wurde ebenfalls realisiert,
wie man im Kapitel 4.1 sehen kann. Auf der anderen Seite werden aber auch Nachteile
deutlich und aufgedeckt.. Nach einer kurzen Einführung in das Thema beschäftigt sich das
zweite Kapitel mit dem Vorgänger von DHCP, dem Bootstrap Protocol (kurz BOOTP). Im
dritten Kapitel, dem eigentlichen Proseminar, wird erst auf die Entwicklung von BOOTP zu
DHCP und deren Motivation eingegangen. Weiterhin werden mögliche Einsatzgebiete
vorgestellt. Die Problematik mit dem verzögerten Vorstoß von IPv6 aufgrund der Vorzüge
von DHCP wird am Ende der Einführung in das dritte Kapitel vorgestellt. Danach wird
anhand eines Schemas ein DHCP-UDP-Paket erklärt und veranschaulicht. Nachdem der Leser
erfahren hat wie ein einzelnes Paket aussieht, werden die einzelnen Arten der Anfragen
erläutert. Abschnitt 3.3 zeigt den Ablauf eines Dialoges zwischen einem Client und dem
Server dargestellt. Der Leasezeitmechanismus ist Bestandteil des folgenden Abschnittes.
Danach folgt die Erklärung von DHCP-Relay in 3.5 anhand eines Beispiels. Dieses Beispiel
wird in Kapitel 4 dann fortgeführt und anhand einer Konfigurationsdatei erklärt. Auf die
Vorzüge und die Arbeitsweisen der drei Vergabemodi wird abschließend genauso
eingegangen wie auf deren verschiedene Einsatzmöglichkeiten.
Damit wird die Darstellung von diesem wichtigen Internetprotokoll abgerundet. Arbeitsweise
und Prinzipien wurden dargestellt, sowie auf die Geschichte eingegangen.
17
DHCP-Proseminar
6. Quellenangabe
BOOTP:
[1]
[2]
[3]
Bill Croft, John Gilmore, RFC 951 – “Bootstrap Protocol (BOOTP)”, September
1985, http://www.freesoft.org/CIE/RFC/951/
R. Droms,RFC 1534 – “Interoperation Between DHCP and BOOTP ”,Oktober 1993,
ftp://ftp.isi.edu/in-notes/rfc1534.txt
Gerhard Lienemann, „TCP/IP-Grundlagen“, 1996, ISBN: 3-88229-070-6
DHCP:
[4]
[5]
[6]
[7]
[8]
[9]
[10]
R. Droms, RFC 2131 – „Dynamic Host Configuration Protocol“, März 1997,
ftp://ftp.isi.edu/in-notes/rfc2131.txt
S. Alexander, R. Droms, RFC 2132 – „DHCP Options and BOOTP Vendor
Extensions “, März 1997, ftp://ftp.isi.edu/in- notes/rfc2132.txt
http://www.dhcp.org
Uni Marburg, 22.04.2002, http://www.uni- marburg.de/hrz/komm/dhcp.html
Thomas Eicker, 21.04.2001, http://www.kleines-lexikon.de/w/d/dhcp.shtml
AWi Aktuelles Wissen Verlagsgesellschaft mbH,
http://www.lanline.de/lexikon/lex/dhcp.htm
SONIK GmbH, http://www.sonik.ag/knowledgebase/d/dhcp.htm
Praktisches Beispiel:
[11]
[12]
[13]
Red Hat, Inc. , Red Hat Linux 7.2 Handbuch, 2001, http://www.tuchemnitz.de/linux/Dokumentation/redhat-7.2/RH-DOCS/de/rhl-cg-de-7.2/dhcp.html
SuSE AG, SuSE Linux 8.0 Handbuch, 2002
Linux Manpages
18

Documentos relacionados