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