fte-CISCO DHCP – Dynamic Host Configuration Protocoll Vorwort In den letzten Jahren wurden rapide technische Fortschritte in der Entwicklung tragbarer Computersysteme, bei Funk- und Satellitennetzen und bei der weltweiten Vernetzung von Rechnern erzielt. Damit wurde die Voraussetzung für das sogenannte Mobile Computing geschaffen. Heute ist es fast schon üblich, daß Anwender ihre persönlichen Computersysteme wie Notebooks stets bei sich tragen. Vielerorts besteht aber noch die Schwierigkeit, diese Systeme auch problemlos in Netze zu integrieren (sprich zu konfigurieren), die nicht zum heimatlichen Netz gehören, wenn man die Ressourcen des fremden Netzes nutzen will. Dies wirft viele neue Fragen für das Netz- und Systemmanagement auf, für die größtenteils noch keine angemessenen Lösungen existieren. Die gängigen Konfigurationsprotokolle für TCP/IP-Systeme (RARP, BOOTP) haben den Nachteil, daß sie sich nur bedingt bzw. überhaupt nicht für den Einsatz mit Mobilsystemen eignen. Als Abhilfe für diese Problemsituation wurde eine Erweiterung des BOOTP-Protokolls entwickelt, welches diese Probleme löst. Das Dynamic Host Configuration Protocol (DHCP) wird heute schon in vielen Bereichen zur Konfiguration von Computersystemen eingesetzt, die an ein Rechnernetz angeschlossen werden, zum Beispiel auch unter Windows NT. Bei DHCP handelt es sich um einen offenen Industriestandard, der die Verwaltung von TCP/IP-Netzwerken erleichtert. DHCP bietet verschiedene Verfahren für eine einfache und Dynamische Konfiguration von Computern in TCP/IP-Netzwerken und reduziert außerdem den Verwaltungsaufwand, der durch Hinzufügen, Verlagern und Konfigurieren von Computern in diesen Netzwerken entsteht. Einleitung In einem TCP/IP-Netzwerk muß jedem Computer ein eindeutiger Computername sowie eine eindeutige IPAdresse zugewiesen werden. Die IP-Adresse identifiziert sowohl den Computer, als auch das Subnetz, mit dem dieser Computer verbunden ist. Wird zum Beispiel der Computer in ein anderes Subnetz verlagert, muß die IPAdresse entsprechend der neuen Subnet-ID geändert werden. Daß die Vergabe von statischen IP-Adressen vor allem in großen Netzwerken nicht sehr effektiv, unter Umständen sogar problematisch ist, soll anhand zweier Beispiele verdeutlicht werden: • • In einem TCP/IP-Netzwerk mit mehreren hundert Computern wird bei einer statischen IP-Adressierung für jeden Computer eine eigene IP-Adresse beansprucht. Selbst in Zeiten in denen diese Rechner nicht in Betrieb sind, sind diese IP-Adressen „verbraucht“. Da IP-Adressen bereits einen nicht mehr zu vernachlässigenden Kostenfaktor für größere Unternehmen darstellen, sind statische RechnerAdressierungen in Netzwerken bei denen ein Großteil der Computer nicht ständig in Betrieb sind, schlicht zu teuer. In Unternehmen mit hohem Außendienst-Mitarbeiteranteil, welcher gelegentlich über eine DFÜ-Verbindung Kontakt mit dem Firmennetz aufnimmt, oder sich vielleicht sogar an unterschiedlichen Standorten im Netzwerk (mit differenzierter Subnetstruktur) einbindet, stellt dies einen erheblichen Arbeits- und Verwaltungsaufwand sowohl auf der Client- als auch auf der Serverseite dar, für eine kontinuierlich funktionierende Netzwerkverbindung zu sorgen. Das DHCP-Protokoll löst diese Probleme nun, indem Computer, die TCP/IP verwenden, automatisch die Protokollkonfiguration über das Netzwerk beziehen können. DHCP ist ein offener Standard, der von der Dynamic Host Configuration working group (http://www.ietf.org/html.charters/dhc-charter.html) und der Internet Engineering Task Force (http://www.ietf.org/) entwickelt wurde. DHCP basiert auf einem Client-Server-Prinzip, bei welchem der DHCP-Client z.B. ein Desktop-Rechner Kontakt zu einem DHCP-Server aufnimmt, um von diesem Konfigurationsparameter zu beziehen. Der DHCP-Server befindet sich üblicherweise an einem zentralen Standort innerhalb des Netzwerks. Da der Server vom Netzwerkadministrator verwaltet wird, besteht die Gewähr, daß die DHCP-Clients zuverlässig mit den Parametern versehen werden die der gegenwärtigen Netzwerkarchitektur entsprechen. Die wichtigste Information, die durch DHCP übertragen wird, ist die IP-Adresse. Ein Computer muß mit einer IPAdresse versehen werden, die zur Netzwerkadresse paßt, in welcher der Rechner sich befindet und die noch nicht an einen anderen Rechner vergeben wurde. Über das DHCP-Protokoll können diese wichtigen Parameter automatisch den Rechnern zugewiesen werden. Das DHCP-Protokoll überträgt auch noch andere wichtige Parameter, wie z.B. Subnet Mask, Default Router und DNS-Server. Ab dem Internet Explorer 5.5 kann auch ein evtl. Proxy-Konfigurationsscript per DHCP übermittelt werden, das die LAN-Einstellungen automatisch konfiguriert. Durch die Verwendung von DHCP vermeidet der Netzwerkadministrator komplizierte, zeitaufwendige und fehlerträchtige, manuell zu erledigende Einstellungen an einzelnen Rechnern. Stattdessen beziehen die Clients automatisch alle nötigen Informationen automatisch ohne manuellen Eingriff direkt von einem zentralverwalteten DHCP-Server. 1 von 5 munz fte-CISCO Anforderungen an das DHCP-Protokoll Folgende Ziele sollen durch DHCP erreicht werden: • • • • • • • • • • • DHCP sollte als Hilfsmittel für den Netzwerkadministrator angesehen werden. Es muß Administratoren erlauben, wo nötig Kontrolle über Konfigurationsparameter zu haben, andererseits deren Zuweisung weitestgehend zu automatisieren. Clients sollten keine manuelle Konfiguration benötigen. Jeder Client soll in der Lage sein, ohne Eingriff eines Users seine Konfigurationsparameter zu erhalten und diese in seine Konfiguration zu implementieren. Netzwerkclients sollten unter normalen Umständen keine manuelle Konfiguration durch den Administrator benötigen. DHCP sollte nicht für jedes Subnet einen eigenen Server benötigen d.h. DHCP muß auch über Router funktionieren. Ein DHCP-Client muß damit umgehen können, wenn auf einen Request mehrere Offers zurückkommen. Neben DHCP muß der Betrieb mit statisch konfigurierten Hosts weiterhin möglich sein. Der DHCP-Server muß dafür sorgen, daß jede vergebene IP-Adresse nur von jeweils einem Client im Netzwerk verwendet wird. Automatische Zuweisung von Adressen an neue Clients, zur Vermeidung von manueller Konfiguration. Unterstützung fester oder permanenter Zuweisungen von Parametern an bestimmte Clients. Wiederherstellung der Client-Konfiguration nach einem Client Reboot. Clients sollte wenn möglich, nach einem Request die gleiche Konfiguration (z.B. IP-Adresse) zugewiesen werden. Wiederherstellung der Client-Konfiguration nach einem Server Reboot. Trotz Restart des DHCP-Servers sollte den Clients die gleiche Konfiguration wieder zugewiesen werden. Funktionsweise von DHCP: Während dem Startvorgang schickt der DHCP-Client ein Discover-Packet (direkt oder über einen Relay-Agent) an einen DHCP-Server. Anschließend schickt der DHCP-Server eine DHCP-Offer zurück. Der Client akzeptiert die Offer durch ein Quittieren der angebotenen IP-Adresse, was der DHCP-Server seinerseits schließlich durch ein Acknowledge beantwortet. DHCP unterstützt drei Mechanismen zur Zuweisung von IP-Adressen: 1. 2. 3. Automatische Zuweisung Dabei erhält ein DHCP-Client permanent eine IP-Adresse zugewiesen Dynamische Zuweisung Bei der Dynamischen Zuweisung erhält der DHCP-Client für eine begrenzte Zeit (oder bis der Client auf diese explizit verzichtet) eine IP-Adresse zugewiesen. Manuelle Zuweisung Dabei wird dem Client durch den Netzwerkadministrator eine IP-Adresse zugewiesen. Dabei wird DHCP dazu nur verwendet, um die Adresse dem Client zu übermitteln. In vielen Netzwerken werden eine oder mehrere dieser Mechanismen verwendet, abhängig von den Anforderungen, die vom Administrator an dieses Netz gestellt werden. Zu 2.: Die Dynamische Zuweisung ist der einzige Mechanismus, bei dem eine Adresse, die vom Client nicht mehr weiter benötigt wird, automatisch wiederverwendet werden kann. Daher wird die dynamische Zuweisung sinnvollerweise dort eingesetzt, wo Clients nur zeitweise mit dem Netzwerk verbunden sind, oder wo ein begrenzter Pool an Adressen unter einer Gruppe von Rechnern vergeben werden soll, die keine permanenten IP-Adressen benötigen. Bei der Dynamischen Zuweisung besteht weiterhin die Möglichkeit, IP-Adressen für eine beschränkte Zeit an einen Host zu vergeben. Dabei sendet der Client einen Request an den DHCP-Server, mit der Bitte eine Adresse für eine bestimmte Zeitdauer zu erhalten. Der Server seinerseits garantiert, diese Adresse innerhalb dieses Zeitraumes an keinen anderen Client zu vergeben. Im Falle eines Reboots des Clients versucht der DHCP-Server bei einer erneuten Anfrage des Clients, diesem die ihm zuvor zugeteilte IP-Adresse wieder zu erteilen. Dabei bezeichnet man die Zeit, in der diese Adresse einem bestimmten Host zugeteilt wird als Lease-Dauer. Der Client kann außerdem die Lease-Dauer durch anschließende Requests verlängern. Weiter kann der Client seine Adresse an den Server zurückgeben, wenn er sie nicht mehr benötigt. Es besteht ebenfalls die Möglichkeit durch einen weiteren Request, eine infinite Lease, oder unbegrenzte Lease-Dauer für seine Adresse zu bekommen. Dies entspricht sozusagen einer permanenten Zuweisung einer IPAdresse. Jedoch wird der Server versuchen, dennoch zeitlich begrenzte Leases zu vergeben, schon allein deswegen, um regelmäßig feststellen zu können, ob ein Host noch aktiv im Netzwerk vorhanden ist oder nicht. Zu 3.: Manuelle Zuweisung erfolgt dort, wo es erwünscht ist, in einer DHCP-Umgebung zusätzlich statisch adressierte Hosts zu betreiben, schon allein um eventuelle Adreßkonflikte zu vermeiden. In manchen Umgebungen ist es nötig, besonders wenn IP-Adressen zu Neige gehen, bereits vergebene Adressen, erneut zu vergeben. Dabei benutzt der DHCP-Server IP-Adressen deren Lease abgelaufen ist. 2 von 5 munz fte-CISCO Kommunikation zwischen Client und Server – Zuordnung der Netzwerkadressen: Die folgende Zusammenfassung des Protokollaustauschs zwischen Client und Server bezieht sich auf die DHCPMessages, die in Abbildung 2 bzw. Tabelle 2 beschrieben werden. Das Zeitdiagramm in Abbildung 2 veranschaulicht die zeitlichen Beziehungen während der Kommunikation zwischen Client und Server. Wenn der Client-Rechner seine Adresse bereits weiß, so sind einige Schritte hinfällig (Dies wird im nächsten Abschnitt behandelt). Abbildung 2 zeigt das Format einer DHCPMessage. In Tabelle 1 werden die einzelnen Felder erläutert. Die Zahlen in Klammern geben die Größe jedes Feldes in Bytes an. 3 von 5 munz fte-CISCO Message ----------DHCPDISCOVER DHCPOFFER DHCPREQUEST DHCPACK DHCPNAK DHCPDECLINE DHCPRELEASE DHCPINFORM Verwendung ---------------Beim ersten Startversuch eines DHCP-Clients in einem Netzwerk fordert der Client durch Rundsendung einer DHCPDISCOVER-Message eine IP-Adresse von einem DHCP-Server an. Die gegenwärtige IP-Adresse des Clients ist zu diesem Zeitpunkt 0.0.0.0. Server an Client als Antwort auf DHCPDISCOVER mit einem Angebot von Konfigurationsparametern. Client Message an Server, entweder (a) Annahme der angebotenen Parameter eines Servers und gleichzeitige Ablehnung der Angebote anderer Server. (b) Bestätigung der Korrektheit einer schon früher zugewiesenen Adresse z.B. nach einem Reboot oder (c) Verlängern der Lease-Dauer einer bestimmten IP-Adresse. Server an Client mit Konfigurationsparameter, inklusiv der übergebenen IP-Adresse. Server an Client mit dem Hinweis, die von ihm erwünschte Adresse ist nicht korrekt (z.B.: Client befindet sich im falschen Subnetz oder Lease-Dauer ist abgelaufen). Client an Server besagt, daß Adresse bereits in Gebrauch ist. Client an Server: Freigabe der IP-Adresse und Storno der bestehenden Leases. Client an Server, wenn dieser nur lokale Konfigurationsparameter benötigt und bereits durch externe Konfiguration eine IP-Adresse zugewiesen bekommen hat. Liste aller DHCP-Messages 1. 2. 3. 4. 5. 6. Der Client sendet eine DHCPDISCOVER-Message in sein lokales Subnetz. Diese DHCPDISCOVERMessage kann Optionen enthalten, wie z.B.: vorgeschlagene Werte für eine IP-Adresse und LeaseDauer. Relay Agents routen diese Message an DHCP-Server sowie sich diese nicht im selben Subnetz befinden. Jeder Server kann nun mit einer DHCPOFFER-Message (eventuell wieder über einen Relay Agent) antworten. Diese enthält im ‘yiaddr‘-Feld eine IP-Adresse für den Client, sowie einige andere Konfigurationsparameter im ‘Optionen‘-Feld. Zu diesem Zeitpunkt müssen die Server diese IP-Adresse für den Client noch nicht reservieren, können dies aber. Bevor diese Adresse für einen Client reserviert wird sollten die Server vorher durch einen ICMP Echo Request überprüfen, ob diese Adresse eventuell bereits vergeben wurde. Der Client empfängt eine oder mehrere DHCPOFFER-Messages von einem oder mehreren Servern. Dabei kann der Client auswählen, welche Konfiguration er von welchem Server akzeptiert, basieren auf der Konfiguration aus der DHCPOFFER-Message. Der Client sendet eine DHCPREQUEST-Message, welche die 'server identifier'-Option enthalten muß, um anzuzeigen, welchen Server er gewählt hat – optional sind noch Angaben über erwünschte Konfigurationswerte. Die 'requested IP address' Option muß auf den Wert des 'yiaddr'-Feld in der DHCPOFFER-Message des Servers gesetzt werden Die Server empfangen die DHCPREQUEST-Message vom Client. Die Server, die in der DHCPREQUESTMessage des Clients nicht erwähnt werden, sehen diese Message als Hinweis, daß der Client Ihre Offer abgelehnt haben. Der Server, der in der DHCPREQUEST-Message erwähnt wurde, stellt die Bindung von Client an die entsprechende IP-Adresse sicher und antwortet mit einer DHCPACK-Message, die die Konfigurationsparameter für den Client enthält. Der Client empfängt nun die DHCPACK-Message mit Konfigurationsparameter. Der Client übt nun einen letzten Check der Parameter aus (z.B.: ARP der zugewiesenen IP-Adresse), und vermerkt die Dauer der Lease, welche in der DHCPACK-Message übermittelt wurde. Zu diesem Zeitpunkt ist der Client konfiguriert.. Falls der Client feststellen sollte, daß die IP-Adresse bereits benutzt wird, muß der Client eine DHCPDECLINE-Message an den Server schicken und den Konfigurationsprozess von vorne beginnen. Dabei wartet der Client etwa 10 Sekunden, um den Netzwerkverkehr nicht unnötig zu belasten. Bei einem Shutdown verzichtet der Client auf den Rest einer Lease, indem er eine DHCPRELEASEMessage an den Server schickt. Der Client identifiziert die Lease auf die verzichtet wird, mit seinem 'client identifier', oder 'chaddr' und der IP-Adresse in der DHCPRELEASE-Message. Wann sollten Clients DHCP benutzen? Ein Client sollte DHCP jedesmal dann zur Bestätigung bzw. zur Wiedererlangung seiner IP-Adresse benutzen, wenn sich lokale Netzwerkparameter geändert haben z.B.: Reboot von Client bzw. Server, nach einer Trennung des Clients vom Netzwerks oder wenn sich die Netzwerkkonfiguration ohne Wissen des Users oder Clients grundlegend geändert hat. Kann der Client mit seiner bisherigen IP-Adresse den lokalen DHCP-Server aufgrund solcher Änderungen nicht mehr erreichen, so sollte der Client diese bis zum Ablauf der Lease benutzen. Wenn die Lease-Dauer abläuft, ohne den DHCP-Server bis dahin zu erreichen, muß der Client unmittelbar die Benutzung dieser Konfiguration beenden und lokale Anwender auf dieses Problem hinweisen. 4 von 5 munz fte-CISCO Sicherheitsüberlegungen: DHCP baut direkt auf UDP und IP auf, welche immer noch als unsicher angesehen werden müssen. Weiter wurde DHCP entwickelt, um die Wartung von reinen Terminals bzw. entfernten Hosts erheblich zu vereinfachen. Obwohl es sicherlich nicht unmöglich wäre solche Rechner mit Paßwörtern oder Schlüssel zu sichern, stellt dies eine eher umständliche Aufgabe dar. Daher muß DHCP ebenfalls als sicherheitskritisches Protokoll angesehen werden. VORTEILE • • • • • • weniger administrativer Auwand als bei festen IP Adressen bei eventuellen IP-Adressen Umstellungen sind diese nur im DHCP-Server zu ändern NACHTEILE • • einmalig hoher Aufwand zur Einrichtung bei Ausfall des DHCP Servers kein Netzwerkzugriff aller NWKompoenten möglich (!Daher zuverlässige Backup-Funktion einrichten!) leichte Einbringung temporärer Rechner in das Netzwerk Übertragung anderer Parameter (z.B. Subnet Mask, Default Router, DNS Server) ab dem IE 5.5 kann auch das automatische Konfigurationsscript für den Proxy-Server übertragen werden. Einrichtung von statischen Adressen ausserdem möglich 5 von 5 munz