DHCP - Informatik 4 - RWTH

Werbung
DHCP
Proseminar Kommunikationsprotokolle
Lehrstuhl für Informatik 4
Prof. Dr. O. Spaniol
Autor : Christoph Halmes
Betreuer : M. Günes
Inhaltsverzeichnis
1. KURZBESCHREIBUNG......................................................................................................3
2. KURZEINFÜHRUNG : IPV4 UND IPV6 ........................................................................4
2.1 IP V4 ...............................................................................................................................4
2.2 IP V6 ...............................................................................................................................7
3. MOTIVATION : WARUM DHCP? WELCHE PROBLEME LÖST MAN? ........7
3.1 SZENARIO : NETZWERKADMINISTRATION................................................................7
3.2 SZENARIO : PROVIDER.................................................................................................8
4. DHCP: ERSTE VORSTELLUNG......................................................................................9
5. BOTTOM - TOP - ANSATZ : DER DHCP - CLIENT ................................................9
5.1 INITIALISIERUNGSPHASE .............................................................................................9
5.2 ZUWEISUNG DER DATEN...........................................................................................10
6. TOP - DOWN - ANSATZ : DER DHCP - SERVER .................................................. 11
6.1 KONFIGURATIONSDATEN : IP - A DRESSEN.............................................................11
6.1.1 Statische Adresszuweisung ........................................................................... 11
6.1.2 Dynamische Adresszuweisung..................................................................... 12
6.2 KONFIGURATIONSDATEN : SONSTIGE PARAMETER..............................................12
6.3 BEISPIELKONFIGURATION.........................................................................................13
7. ABLAUFSCHEMA UND DIE DHCP - MESSAGES ................................................ 14
7.1 DHCPDISCOVER....................................................................................................14
7.2 DHCPOFFER ............................................................................................................14
7.3 DHCPREQUEST ......................................................................................................14
7.4 DHCPACK.................................................................................................................14
7.5 DHCPRELASE .........................................................................................................14
7.6 DHCPNACK .............................................................................................................15
7.7 DHCPDECLINE.......................................................................................................15
7.8 DHCPINFORM .........................................................................................................15
8. WAS IST EIN DHCP - RELAY? ..................................................................................... 17
9. LEASEN UND LEASE - TIME........................................................................................ 18
9.1 DER LEASE - TIME - M ECHANISMUS.......................................................................18
9.2 A BLAUFDIAGRAMM ...................................................................................................19
10. EIN DHCP - UDP - PAKET ............................................................................................ 20
10.1 S CHEMATISCHE DARSTELLUNG ............................................................................20
10.1 ERLÄUTERUNG DER EINZELNEN FELDER.............................................................21
11. LITERATURVERZEICHNIS ........................................................................................ 22
2
Proseminar 16.05.02
Proseminar DHCP
Dynamic Host Configuration Protocol
1. Kurzbeschreibung
Diese Ausarbeitung führt die Zuhörer an Hand von Beispielen zu Problemen der
Netzwerkadministration, bei denen sich die Frage nach einer effizienten Lösung stellt.
Als Lösung dieser Probleme wird das DHCP -Protokoll vorgestellt. Hiervon wird die
globale Architektur der DHCP - Server, DHCP-Relay und Clients in Netzen und
Subnetzen beschrieben. Im einzelnen werden die Probleme, die ein DHCP - Client bei
dem Empfang von Konfigurationsdaten hat, auf was der DHCP - Server bei Vergabe
der Konfigurationen zu beachten hat, und wozu der DHCP-Relay dient, betrachtet. Der
Aufbau eines einzelnen DHCP-UDP-Pakets wird anhand einer Schemazeichnung
erläutert.
Proseminar 16.05.02
3
2. Kurzeinführung : IPv4 und IPv6
2.1 IPv4
Um einen Rechner in einem Netzwerk adressieren zu können, braucht jeder Rechner
eine eindeutige Adresse. Als Standard für die Übertragung von Daten in LAN’s und
WAN’s hat sich das Protokoll TCP/IP durchgesetzt. TCP/IP steht für „Transmission
Control Protocol“ und „Internet Protocol“. IP deckt den 3. (Vermittlungs-) und TCP den
4. (Transport-) Layer des Iso-7-Layermodells ab.
Jeder Rechner im Netz erhält eine eindeutige Adresse, IP-Adresse genannt. Eine IPAdresse ist 32 Bit lang, z.B.
11000000 10101000 00000000 00010100
Diese Form ist jedoch nicht gut handhabbar, deshalb wird normalerweise eine
Dezimaldarstellung in 4 Byte-Blöcken gewählt, für unser Beispiel wäre das
192.168.0.20
Der aus diesen IP-Adressen bestehende sog. Adressraum umfasst ca. 4 Milliarden
potenzielle Adressen. Diese 4 Milliarden Adressen werfen zwei Probleme auf:
1. Einen Rechner in der Riesenmenge an Adressen zu finden, würde viel zu lange
dauern. Daher hat man den Adressraum in Klassen, diese in Subnetze und in
einige besondere Adressen unterteilt.
Es gibt drei Klassen:
Class A: 1.x.x.x – 127.x.x.x
( 127.0.0.1 fällt z.B. raus)
Class B: 128.x.x.x – 191.255.x.x
Class C: 192.0.0.x – 223.255.255.x ( 192.168.0.x)
Der Unterschied zwischen den Klassen liegt in der Anzahl der verwendbaren
Subnetze und Hosts. In einem Class A Netz hat man nur ein Subnetz, die
restlichen Stellen können Rechner adressieren, in einem Class C Netz gibt es
nur einen 4 –Byte-Block = 254 Rechner zu adressieren.
2. Da immer mehr IP - Adressen zum Ausbau des Internets gebraucht werden,
sind 4 Milliarden Adressen zu wenig. Eine Lösung für dieses Problem stellt
DHCP dar.
Jeder Rechner, der in einem gewissen Subnetz hängt, kann nur Rechner, die im selben
Subnetz hängen, direkt erreichen. Will man nicht einen speziellen Rechner, sonder das
ganze Subnetz ansprechen, wird eine sog. Broadcastadresse verwendet. Eine
Broadcastadresse sieht aus wie eine Adresse des Subnetzes, hat jedoch als
Hostbezeichner den Wert 255 eingetragen.
4
Proseminar 16.05.02
Proseminar DHCP
Beispiel:
Eine Adresse des Subnetzes 192.168.0.x wäre 192.168.0.20
Die Broadcastadresse für 192.168.0.x ist 192.168.0.255
Um festzustellen, welche IP-Adresse zum eigenen Subnetz oder zu einem anderen
gehört, braucht ein Rechner noch die Netmask. Diese ist in der Regel 255.255.255.0.
Die Netmask wird per AND mit der eigenen IP-Adresse verknüpft und man erhält so zu
jeder IP-Adresse das passende Subnetz.
Workstation
Server
ID C
192.168.0.50
Workstation
UnternehmensLAN
Adressbereich
192.168.0.0
192.168.0.100
Workstation
Drucker
iMa c
192.168.0.10
192.168.0.20
192.168.0.40
Fig. 1: IP - Adressen im LAN
Nun braucht man aber auch die Möglichkeit, Rechner, die nicht im eigenen Subnetz
hängen, ansprechen zu können. Hierzu bedient man sich sog. Router, das sind Rechner
oder extra Hardware, die über mehrere Netzwerkanschlüsse verfügen. Die
Netzwerkanschlüsse sind für die verschiedenen Subnetze konfiguriert, und eine
spezielle Software sorgt dafür, dass die Datenpakete von einem zum anderen Subnetz
geschickt werden. Manchmal werden Router auch Gateways genannt, da sie das „Tor“
zum nächsten Netz darstellen.
Proseminar 16.05.02
5
Router/
Gateway
Class B
CI SC OS YS TEM S
Class A
189.90.3.0
10.0.50.0
Router/
Gateway
C IS CO S Y STE MS
Class C
192.168.0.0
Fig. 2: Unterschiedliche Adressklassen in einem Netz
Bekanntlich adressiert man im Internet einzelne Rechner aber nicht mit ihrer IP-Adresse
sondern mit einem Namen, hinter dem die richtige IP-Adresse verborgen liegt. Diesen
Dienst stellt ein sog. DNS (= Domain Name Server) zu Verfügung.
Beispiel:
6
Man will die Website der RWTH-Aachen aufrufen. Im Browser gibt
man die Adresse www.rwth-aachen.de ein. Der Rechner erfragt beim
DNS-Server die IP-Adresse von www.rwth-aachen.de und erhält
134.130.4.33. Zu dieser Adresse wird nun die Verbindung aufgebaut.
Proseminar 16.05.02
Proseminar DHCP
Provider
Kunde
WAN / Internet
Fig. 3: Verbindung vom Endkunden ins Internet
Fazit: Zum erfolgreichen Aufbau einer Verbindung von einem Rechner aus ins Internet
oder in ein anderes Netzwerk sind folgende Konfigurationsdaten nötig:
1.
2.
3.
4.
Eigene IP - Adresse
Netmask
Router
Nameserver
2.2 IPv6
IPv6 ist eine Weiterentwicklung von IPv4, die hauptsächlich das Problem der nicht
ausreichenden Anzahl von Adressen lösen soll, und mit dessen Hilfe sich die
Konfiguration von Rechnern erheblich vereinfachen soll. Eine IPv6-Adresse ist 128 Bit
lang und wird in 8 Blöcke von je 2 Byte in Hexadezimal aufgeschrieben. Die einzelnen
Blöcke werden durch Doppelpunkte abgetrennt. Im Gegensatz zu IPv4 stellen bei IPv6
die ersten 2 Byte eine Art „Typ“ für die Adresse dar. Die verschiedenen Typen der
Adressen bedeuten z.B. Broadcast auf alle DNS-Server. Hierzu sei aber auf den Vortrag
„IP“ verwiesen.
3. Motivation : Warum DHCP? Welche Probleme löst man?
3.1 Szenario : Netzwerkadministration
In einem größeren Unternehmen muss ein Netzwerkadministrator fast ständig
neue Rechner in sein Netzwerk aufnehmen oder ältere Betriebssysteme
ersetzen. Dies ist jedesmal mit der Konfiguration der Netzwerkumgebung
verbunden, einem Rechner müssen seine IP-Adresse, ein Router, ein DNSServer und eventuell noch mehr Parameter mitgeteilt werden. Jetzt kann es in
laufendem Betrieb aber auch vorkommen, dass allen Rechnern z.B. aufgrund
Proseminar 16.05.02
7
eines Providerwechsels ein neuer Nameserver und ein neuer Router mitgeteilt
werden müssen.
Wie kann man diese Aufgaben effizient erledigen?
Findet in dem Unternehmen z.B. eine Konferenz statt, zu der die Teilnehmer
mit ihrem Laptop anreisen und ins Unternehmens-LAN eingeklinkt werden
müssen, stellt sich die Frage, wie man
1. temporär IP-Adressen vergeben kann, denn die Adressen brauchen nicht für
die nächste Konferenz erhalten bleiben.
2. die Inhouse-Konfiguration ohne viel Aufwand an die Clients verteilen kann.
Verkauft ein Unternehmen Serviceleistungen an Kunden, die mit einem
Vororteinsatz eines Servicetechnikers verbunden sind, kann es sein, das der
Techniker vom Laptop aus einen Zugang ins Firmennetz braucht. Hierfür
benötigt sein Laptop auch wieder eine gültige IP-Adresse des UnternehmensLAN’s. Natürlich besteht die Möglichkeit, jedem Rechner, also auch dem
Laptop, eine feste IP -Adresse zuzuweisen. Dies würde jedoch bedeuten, dass
auf einen Mitarbeiter immer mehrere Adressen entfallen, wovon er jedoch nur
immer eine gleichzeitig nutzen kann. Also stellt sich auch hier wieder die Frage
nach einer einfachen und adressensparenden Realisationsmöglichkeit.
3.2 Szenario : Provider
Ein Provider (z.B. die RWTH) will seinen Kunden Einwahlzugänge zur
Verfügung stellen. Dazu benötigt die RWTH IP-Adressen, um sie den Kunden
als IP-Adresse für ihre Rechner zu Verfügung zu stellen. Um die Dienste des
Providers nutzen zu können, brauchen die Kunden noch mehr Informationen,
die schon oben erwähnten Konfigurationsparameter. Da die IP-Adressen nicht
frei zu haben und sehr teuer sind, versucht der Provider natürlich mit möglichst
wenigen Adressen auszukommen. Da nicht immer alle Kunden gleichzeitig
eingewählt sind, ist es auf keinen Fall sinnvoll, die Adressen statisch (d.h.
jedem Kunden eine Adresse) zu vergeben. Man ist vielmehr bemüht, mit einer
Adresse möglichst viele Kunden zu versorgen.
Auch hier stellt sich wieder die Frage nach einem effektiven System der IPAdressen und Informationsverteilung.
8
Proseminar 16.05.02
Proseminar DHCP
4. DHCP: Erste Vorstellung
Nehmen wir einmal das Beispiel unseres Firmen-LAN’s: Aufgrund der Gegebenheiten
des Beispiels entscheidet sich die Firma für die Installation eines DHCP - Servers.
DHCP steht als Abkürzung für „Dynamic Host Configuration Protocol“ und ist ein
offener Standard, der im RFC („Request for Comments“) 2131 festgehalten ist. Der
RFC definiert ein System von Servern und Clients, das in einem auf TCP/IP
basierenden Netzwerk den Austausch von Konfigurationsinformationen ermöglicht.
Was als Konfigurationsdaten übertragen wird, ist weitgehend offen gelassen worden, es
gehört jedoch mindestens die IP-Adresse für den Client dazu. Zusätzlich haben sich
noch einige „Standardinformationen“ entwickelt, wie z.B. das Standardgateway
(Router), DNS-Server, in Windowsnetzen der WINS-Server etc. Betrachten wir
zunächst den Client des DHCP -Systems.
5. Bottom - Top - Ansatz : Der DHCP - Client
Ein Rechner gilt als DHCP - Client, wenn er a) bei der Installation der
Betriebssystemsoftware die IP-Adresse auf 0.0.0.0 gesetzt bekommen hat, oder b) eine
spezifische Option in den Netzwerkeigenschaften eingeschaltet worden ist. Ganz ohne
Softwareunterstützung geht der Austausch der Daten natürlich nicht, denn auf der
Clientseite müssen die Protokolldaten interpretiert und ggf. darauf reagiert werden. Fast
alle gängigen Betriebssysteme bringen heute standardmäßig einen DHCP - Client im
Kernel (Windows, div. Unix) oder als Modul (div. Linux) mit.
Gehen wir davon aus, dass der Rechner gerade gestartet wurde. Der Kernel des
Betriebssystems wird geladen, ebenso die Netzwerkmodule und/oder Treiber. Der
Rechner stellt fest, dass ihm keine feste IP -Adresse zugeteilt wurde, erkennt aufgrund
der Konfiguration aus dem vorrangegangenem Absatz, dass er ein DHCP - Client ist.
5.1 Initialisierungsphase
Der Client sendet ein Signal, das „DHCPDISCOVER“, per Broadcast in sein lokales
Subnetz. Broadcasten muss er, weil er weder selber eine IP hat noch die IP eines DHCP
- Servers kennt. Sind in dem Subnetz jetzt ein oder mehrere DHCP - Server, so senden
alle auf die „DHCPDISCOVER“-Nachricht ein „DHCPOFFER“, d.h. heißt sie sagen
dem Client: Hier gibt es einen DHCP - Server, von dem du Dienste beziehen kannst.
Sind in einem Subnetz mehrere DHCP - Server vorhanden, was z.B. aus Gründen der
Ausfallsicherheit durchaus sein kann, kommen natürlich bei dem Client mehrere
„DHCPOFFER“ an. Im RFC2131 ist nur gesagt, dass der Client einen Server auswählt,
jedoch ist offen nach welchem Kriterium. Das ist den Programmierern von DHCP -
Proseminar 16.05.02
9
Clients selbst überlassen, in fast allen gängigen Implementationen wird einfach der
„DHCPOFFER“ genommen, der beim Client ankommt, kommen mehrere gleichzeitig
an, wird einer per Zufallsgenerator ausgewählt. Hat der Client sich einmal für einen
DHCP - Server entschlossen, sendet er per Broadcast ein „DHCPREQUEST“ ins
Subnetz. Dieses Paket enthält als Zieladresse den gewünschten DHCP - Server, alle
anderen, an denen das Paket vorbeikommt, interpretieren es als Ablehnung ihres
„DHCPOFFER“’s.
5.2 Zuweisung der Daten
Der Client hat sich nun einen Server ausgesucht. Dieser bestätigt nocheinmal mit
DHCPACK, dass der Client die ihm zugewiesene IP - Adresse behalten darf. Der Server
markiert sie in seiner internen Datenbank als „in Benutzung“ und sendet die restlichen
Konfigurationsparameter wie Router - Adresse, Nameserveradresse, Zeitserver und
eventuell andere spezifische Daten in einem weiteren Datenpaket an den Client. Jetzt
braucht der Client für einen reibungslosen Netzbetrieb diese Daten nur noch in seinem
Netzwerkinterface einzutragen.
10
Proseminar 16.05.02
Proseminar DHCP
6. Top - Down - Ansatz : Der DHCP - Server
Betrachten wir nun einmal die Serverseite.
Ein DHCP - Server ist ein Server oder auch eine Workstation, auf der ein Softwarepaket
„DHCP - Server“ installiert ist. Dieser Server braucht in den Adressraum des Subnetzes,
in dem er hängt, keine spezielle IP - Adresse oder ähnliches, da der erste Teil der
Initialisierung mit dem Client über das Protokoll UPD, also Broadcast abläuft, somit
quasi „öffentlich“ geführt wird.
Als elementare Frage wirft sich natürlich auf, woher ein Server, wenn er
Konfigurationsdaten verteilen soll, diese nimmt. Diese Frage ist nur teilweise einfach zu
beantworten.
6.1 Konfigurationsdaten : IP - Adressen
Es gibt zwei Möglichkeiten, einem Server mitzuteilen, welche IP - Adressen er wie
vergeben darf:
6.1.1 Statische Adresszuweisung
Für kleine Netze reicht es auch, dem Server ein festes Mapping, also eine
Zuweisungstabelle zu erstellen. Sie enthält Einträge der Art
00-03-ba-04-b0-f5
…
192.168.0.10
„00-03-ba-04-b0-f5“ ist eine MAC - Adresse, eine Hardwareadresse der Netzwerkkarte.
Der Server kann sie aus einem Datenpaket des Clients auslesen und somit feststellen,
welcher Client seine IP - Adresse haben will, guckt in der Zuweisungstabelle nach und
verschickt die entsprechende Adresse an den Client.
Für kleine LAN’s ist diese Methode durchaus sinnvoll, sie funktioniert jedoch nur ,
wenn auch alle MAC - Adressen der Rechner bekannt sind.
Ein wichtiger Vorteil ist, dass bei diesem Verfahren jeder Client immer dieselbe IP Adresse erhält, was bei der Konfiguration von Firewalls und Routern eine wichtige
Rolle spielen kann.
Proseminar 16.05.02
11
6.1.2 Dynamische Adresszuweisung
Verfügt man nicht über alle MAC - Adressen, wie in unserem Beispiel ein Provider, so
kann man die Adressen dynamisch zuweisen lassen. Das bedeutet dass man dem Server
mitteilt, dass er eine Adresse für einen Client selbstständig aus einem Adressbereich
heraussucht. Gibt man z.B. an, dass der Server die Adressen von 134.130.4.0 bis
134.130.4.254 nutzen darf, so sucht er eine freie IP mittels „Ping“ und einem Blick in
seine Statusdatenbank heraus und schickt sie dem Client. In dem vom Server
verwendeten Adresse gibt es einige Einschränkungen, die Adressen von vorneherein
ausklammern. Es gibt keinen Sinn, den DHCP - Server selber Web-, Mail -, DNS Server per DHCP Adressen zuweisen zu lassen, das diese in der Konfiguration des
DHCP - Server fest eingetragen sind. Damit der Server auf der Suche nach einer
unbenutzten IP - Adresse nicht immer auch diese Adressen ausprobiert kann man sie
von vorne herein sperren, in dem man sie auf eine Ausschlussliste schreibt.
Der Vorteil liegt bei dieser Art der Adresszuweisung eindeutig darin, dass man außer
dem Einstellen des Adresspools keinen Administrationsaufwand hat.
Eventuell kann es aber nachteilig sein, wenn die Clients nicht immer dieselbe IP Adresse erhalten.
Welche der Adresszuweisungsarten man letztendlich bei der Konzipierung eines DHCP
- Servers wählt, hängt im wesentlichen von der Anforderung der Clients ab.
6.2 Konfigurationsdaten : Sonstige Parameter
Da ein DHCP -Server Clients ausser ihren IP - Adressen auch noch weitere
Konfigurationsparameter mitgeben kann, braucht der Server eine Wissensbasis, aus der
er wiederum die Parameter entnehmen kann. Als Wissensbasis dient die
Konfigurationsdatei des DHCP - Servers, die alle relevanten Einträge enthält, z.B.
Nameserver, Router etc.
Stellt der Server ein DHCPOFFER - Paket zusammen, so lie st er die Informationen aus,
und füllt sie in die entsprechenden Felder des Datenpaketes.
12
Proseminar 16.05.02
Proseminar DHCP
6.3 Beispielkonfiguration
Im Folgenden wird eine Konfiguration eines DHCP - Servers mit fester
Adresszuweisung gezeigt.
/etc/dhcpd.conf
# dhcpd.conf
#
# configuration file for dhcpd
#
option domain-name "my-net.org";
option
domain-name-servers
134.130.4.3,
134.130.4.7,
134.130.4.20, 212.117.67.2, 212.117.64.86, 192.109.159.1;
option subnet-mask 255.255.255.0;
option broadcast-address 134.130.4.255;
option routers defrouter.my-net.org;
option netbios-name-servers 134.130.4.20;
default-lease-time 72000;
max-lease-time 86400;
deny unknown-clients;
subnet 134.130.4.0 netmask 255.255.255.0 {
# range 134.130.4.252 134.130.4.254;
}
# Fixed IP addresses can also be specified for hosts.
These addresses
# should not also be listed as being available for dynamic
assignment.
# Hosts for which fixed IP addresses have been specified
can boot using
# BOOTP or DHCP.
Hosts for which no fixed address is
specified can only
# be booted with DHCP, unless there is an address range on
the subnet
# to which a BOOTP client is connected which has the
dynamic-bootp flag
# set.
host myclient {
hardware ethernet 00:A0:24:4D:04:40;
fixed-address myclient.my-net.org;
}
Proseminar 16.05.02
13
7. Ablaufschema und die DHCP - Messages
In diesem Kapitel wird der Ablauf der Kommunikation zwischen Client und Server
graphisch dargestellt, sowie die Bedeutung der einzelnen DHCP - Messages aufgeführt
7.1 DHCPDISCOVER
Diese Message wird von einem Client als UDP - Broadcast ins lokale Subnetz gesendet,
um einen DHCP - Server zu finden. Als Absender - IP wird 0.0.0.0, als Ziel - IP
255.255.255.255 verwendet.
7.2 DHCPOFFER
Diese Message ist die Antwort eines DHCP - Servers auf ein DHCPDISCOVER, der
Server bietet dem Client eine IP - Adresse weiter Parameter an. Besonderheit ist, dass
das Packet auch per UDP versendet wird und als Ziel- IP 255.255.255.255 hat.
7.3 DHCPREQUEST
Mit dieser Message wählt der DHCP - Client einen DHCP - Server aus und alle anderen
Server erhalten dadurch implizit eine Absage. Hat ein Client schon eine Konfiguration
erhalten, so kann er mit dieser Meldung seine Gültigkeit verlängern.
7.4 DHCPACK
Diese Meldung sendet ein DHCP - Server nach dem Erhalten von DHCPREQUEST an
den Client, um seine Konfiguration zu bestätigen.
7.5 DHCPRELASE
Mit dieser Meldung gibt der Client dem Server bekannt, dass er sich abmeldet und seine
IP wieder freigegeben ist.
14
Proseminar 16.05.02
Proseminar DHCP
7.6 DHCPNACK
Diese Meldung zeigt dem Client, dass die von ihm geforderte IP - Adresse ungültig
(z.B. schon belegt) ist, oder das seine Lease Time abläuft.
7.7 DHCPDECLINE
Diese Meldung schickt der Client dem Server, wenn er feststellt, dass seine IP - Adresse
schon gelegt ist.
7.8 DHCPINFORM
Mit dieser Meldung fordert der Client weitere Konfigurationsparameter vom Server an.
Proseminar 16.05.02
15
Ablaufdiagramm
Server
(nichtselekiert)
Server
(selekiert)
Client
Beginder
Initialisierung
DHCPDISCOVER
DHCPDISCOVER
Bietet
Konfiguration
an
Bietet
Konfiguration
an
DHCPOFFER
DHCPOFFER
Sammelt Antworten
SuchteineKonfiguration
aus
DHCPREQUEST
DHCPREQUEST
Zeit
Bestätigt
Konfiugration
DHCPACK
Initialization
komplett
...
Beenden
des Clients
DHCPRELEASE
Freigeben
der
Resourcen
Fig. 4: Ablauf der Kommunikation zwischen Client und Server
16
Proseminar 16.05.02
Proseminar DHCP
8. Was ist ein DHCP - Relay?
In großen Netzen ist es die Regel, dass es mehrere Subnetz gibt. Oft werden pro
Abteilung oder Niederlassung Subnetze eingerichtet, um den Datenverkehr besser
kontrollieren zu können. Die Subnetze werden durch Router verbunden, damit die
einzelnen Workstations und Server miteinander kommunizieren können.
Will man in dem Unternehmensnetz jetzt DHCP zur Konfiguration der Clients
einsetzen, stellt sich die Frage, ob es sinnvoll ist, in jedem Subnetz einen DHCP Server einzurichten. Jeder Server mehr bedeutet mehr Aufwand beim Administrieren
des Netzes und führt bei Ausfall zu erheblichen Einschränkungen im Netzbetrieb. Daher
ist man daran interessiert, möglichst wenige, ausfallsichere Server zu betreiben.
Sieht man sich noch einmal an, wie der Client versucht, einen DHCP - Server zu finden,
entdeckt man schnell das Problem: der Client kann nur in seinem eigenen Subnetz nach
einem Server suchen. Man braucht also einen Rechner in jedem Subnetz, der die
Anfragen der Clients aufnimmt, an das nächste Subnetz (oder direkt an den DHCP Server) weitergibt, seine Antwort abwartet und diese wiederum ins eigene Subnetz zu
dem Client schickt. Diese Aufgaben werden von einem DHCP - Relay übernommen.
Ein DHCP - Relay, in der Praxis ein DHCP - Server ohne eigene Konfigurationsdaten,
der nur die Adresse des „richtigen“ DHCP - Servers kennt. Die hier eingesetzte Technik
entspricht der eines BOOTP - Relays.
Subnetz A
Client A
DHCP - Server
Subnetz B
DHCP - Relay
Client B
Fig. 5: DHCP - Relay zwischen zwei Netzen
Proseminar 16.05.02
17
9. Leasen und Lease - Time
In diesem Kapitel wollen wir uns mit der Lease - Time eines DHCP - Clients befassen.
Ein DHCP - Client tritt an einen DHCP - Server heran und bezieht eine Konfiguration
von ihm. Jetzt ist es aber nicht sinnvoll, einem Client eine Konfiguration solange zu
überlassen, bis er sich wieder abmeldet, denn es kann sein, dass sich der Client nie
wieder abmelden kann, wenn er z.B. abgestürzt ist. Normalerweise kommt das nicht
vor, aber einige Betriebsysteme sind nicht für einen Dauerbetrieb ausgelegt, andere
können sich zwar selber beenden, der Mechanismus zum Abmelden vom DHCP Server ist jedoch nicht implementiert.
Aus diesen Gründen hat man sich entschieden, jedem Client, der sich bei einem DHCP Server anmeldet, die Konfiguration für einen bestimmten Zeitraum, der so genannten
Lease - Time zu überlassen. Meldet sich der Client innerhalb der Lease - Time nicht
wieder beim DHCP - Server, so wird seine IP - Adresse als „unbenutzt“ in der
serverinternen Datenbank markiert und andere Clients können sie beziehen.
9.1 Der Lease - Time - Mechanismus
Beim Empfang der Konfiguration teilt der Server dem Client über DHCPACK mit, wie
lange seine Konfiguration gültig ist. Der Client liest diese Zeit aus, und speichert sich
zwei Zeitgeber: T1 = 50% der Lease - Time und T2 = 87,5% der Lease - Time. Diese
Werte für T1 und T2 sind der Default, je nach Implementation des Client können sie
variieren, T1 muss jedoch immer kleiner als T2 sein.
Ist die in T1 gespeicherte Zeit verstrichen, versucht der Client seine Konfiguration zu
verlängern. Dazu schickt er eine DHCPREQUEST-Message an den Server, der ihm die
Konfiguration zugewiesen hat. Der Server antwortet mit einer DHCPACK-Messages,
die wiederum eine neue Lease - Time enthält, und T1 und T2 werden neu gesetzt.
Dieser Vorgang wiederholt sich solange, bis der Client sich vom Server explizit
abmeldet oder der Server aus irgendeinem Grund kein DHCPACK mehr schickt.
Schafft der Client es nicht, in der Zeit zwischen T1 und T2 (d.h. T2 wird überschritten)
sich eine neue Lease - Time zu besorgen, so sendet der Client auch wieder eine
DHCPREQUEST-Message, aber diesmal per Broadcast, so dass alle DHCP - Server in
seinem Subnetz sie mitbekommen. Alle Server schauen nach, ob sie die Lease - Time
verlängern können und schicken eine DHCPACK - Message. Kann kein Server die
Lease - Time verlängern, so schicken alle „DHCPDISCOVER“ um zu signalisieren,
dass der Client von ihnen eine komplett neue Konfiguration beziehen kann.
18
Proseminar 16.05.02
Proseminar DHCP
9.2 Ablaufdiagramm
Im Ablaufdiagramm sieht die Verlängerung der Lease - Time wie folgt aus:
Server
Server
Client
Beginn der
Initialisierung
DHCPREQUEST
DHCPREQUEST
Sucht nach
der
Konfiguration
für diesen
Client
Sucht nach
der
Konfiguration
für diesen
Client
DHCPACK
Zeit
Entnimmt dem ersten
DHCPACK die neue
DHCPACK
Lease - Time
Weitere
DHCPACK
werden
verworfen
Fig. 6: Lease - Time - Erneuerung
Proseminar 16.05.02
19
10. Ein DHCP - UDP - Paket
Nachdem wir einen Grossteil der Möglichkeiten und Funktionen von DHCP betrachtet
haben, schauen wir uns zum Schluss ein DHCP - Message - Paket an. Eine DHCP Message ist ein UPD - Paket, das für IPv4 typisch, 32 Bit = 4 Byte lang ist.
10.1 Schematische Darstellung
Die schematische Darstellung sieht wie folgt aus:
Byte 0 - 7
8 - 15
16 - 23
24 - 31
op (1)
htype (1)
hlen (1)
hops (1)
xid (4)
secs (2)
flags (2)
ciaddr (4)
yiaddr (4)
siaddr (4)
giaddr (4)
chaddr (16)
sname (64)
file (128)
options (var)
Die Zahl hinter den Bezeichnern der Felder gibt an, wie „lang“ (in Byte) sie sind.
20
Proseminar 16.05.02
Proseminar DHCP
10.1 Erläuterung der einzelnen Felder
Die Bedeutung der Felder im „Klartext“:
op
: Message Typ
htype : Hardwareadresstyp
hlen
: Hardwareadressenlänge
hops
: Anzahl der Sprünge über Relay’s
xid
: Eine Zufallszahl, vom Client ausgewählt, die sich der Server nach dem ersten
Datenpaket eines Clients merkt. An Hand dieser Zahl kann der Server immer
eindeutig feststellen, von welchem Client das Datenpaket kommt. Dies ist
wichtig, da zur selben Zeit mehrere Clients sich mit demselben Server
unterhalten können.
ciaddr : Die Client - IP - Adresse. Wird nur dann vom Client ausgefüllt, wenn er schon
eine zugewiesen bekommen hat, z.B. wenn er versucht seine Lease zu
verlängern.
yiaddr : „your“ (Client) IP - Adresse. Enthält die vom DHCP - Server für den Client
zur Verfügung gestellte IP - Adresse
siaddr : Die Server - IP - Adresse.
giaddr : „Gateway“ - IP - Adresse. Enthält eventuell die Adresse eines DHCP - Relay’s
chaddr : „Client Hardwareadresse“. Enthält die MAC - Adresse des Clients
sname : Kann den Serverhostname enthalten, optionales Feld.
file
: Boot file name
options : Ein Feld von variabler Länge. Hier werden vom Server die Informationen wie
IP - Adresse des Routers etc. eingetragen.
Proseminar 16.05.02
21
11. Literaturverzeichnis
Als Basis für diese Ausarbeitung dienten:
- RFC 2131 „Dynamic Host Configuration Protocol“, März 1997
- Ross Keith, Kames F. Kurose, "Computer networking: a top-down approach
featuring the Internet"
22
Proseminar 16.05.02
Herunterladen