| Jedes in einem Netzwerk erreichbare Gerät verfügt heute über eine IP-(Internet Protocol)-Adresse | Ein DHCP-Server besorgt die automatische Zuteilung dieser Adresse. |
Netzwerk
|
Zusammenarbeit - Lokal und weltweit |
| OSI-Modell | Standard-Modell für Kommunikation: Ethernet, IP, Port, Router, .. |
| DHCP-Einstieg | Schnelle automatische Netzwerk-Konfiguration mit DHCP |
| DHCP-Prozess | Ablauf einer typischen IP-Zuweisung an einen DHCP-Client |
| Sonderfälle | im DHCP-Prozess |
| DHCP-Server | Konfiguration eine Linux DHCP Servers |
| Werkzeug | Selten verwendete Konsolen-Programme |
| RFC 3222 | Peg-DHCP |
| TCP | Organisation der Daten-Übertragung auf Sockets |
| Links |
Ausgewählte
|
Start mit DHCP |
|
| Die Einstellung von IP-Adresse, Netzwerk-Maske, Gateway und Name-Server war jahrelang ein Stolperstein für IT-AnfängerInnen. Seit DHCP-Server diese Arbeit übernehmen, ist der PC-Einstieg wesentlich einfacher geworden. |
Wenn sich ein DHCP-Server um ihr Netzwerk kümmert, dann entfällt
diese Arbeit komplett. Das ist in allen professionellen Netzwerken der Fall, ebenso beim Internet-Anschluss der meisten Provider. |
Quick & CleanDie meisten modernen Betriebssysteme konfigurieren eine Netzwerk-Schnittstelle automatisch als DHCP Client und bieten damit diesen Komfort:PC an das Netzwerk anschließen, einschalten, Installations-CD / DVD einlegen, starten. - Die gesamte Netzwerk-Konfiguration wird (soweit möglich) automatisch erledigt. |
Sie müssen nur dann eingreifen, wenn das Programm individuelle Daten (z.B. Name, Passwort) zur Anmeldung benötigt. Im Idealfall stehen nach Installation alle Resourcen des lokalen Netzwerks inkl. Internet-Zugang zur Verfügung. |
Interface-EigenschaftenWenn die automatische Einstellung aus irgendeinem Grund nicht (komplett) funktioniert hat, dann kontrollieren sie die Einstellung ihrer Netzwerk-Interface.Linux
Jede Linux-Distribution bietet dazu ein komfortables Programm. Auf SuSE-Linux verwenden
sieMarkieren sie eines der angezeigten Netzwerk-(Ethernet)-Interface und klicken sie . Wählen sie und nicht die manuelle Einstellung Static Address Setup. |
Windows
Wählen sie .Rechts-klicken sie eines der unter LAN angezeigten Netzwerk-(Ethernet)-Interface und wählen sie . Wählen sieund nicht die manuelle Einstellung Folgende IP-Adresse verwenden. Alle gängigen DHCP-Server besorgen auch die Einstellung des Name-Servers, daher wählen sie auch . |
| Nach einer Änderung der Einstellung müssen sie manchmal einen System - Neustart ausführen. Danach sollte der Zugang in das lokale Netzwerk und ins Internet funktionieren. | Wenn das nicht funktioniert, dann benötigen sie professionelle Hilfe oder sie versuchen selbst, den Netzwerk-Zugang mit Hilfe von Werkzeugen oder einer manuellen IP-Konfiguration. |
AlternativeJe nach System und Version kann zusätzlich eine alternative manuelle Adresse konfiguriert werden.Das dient als Reserve bei Ausfall des DHCP-Servers, hat jedoch meist nur begrenzten Nutzen. |
• In größeren Netzwerken herrscht ohne geregelte IP-Adressen bald das Chaos. • In kleinen LANs sind meist alle Server-Dienste auf einem einzigen PC installiert, bei dessen Ausfall auch eine funktionsfähige IP-Adresse keinen Nutzen hat. |
Wie funktioniert ein DHCP-Client |
|
● Voraussetzung:Ein DHCP-Server ist im Netzwerk erreichbar.
●
Software muss nicht installiert werden - Jedes gängige
Betriebssystem enthält DHCP-Client Software.► Das bedeutet im lokalen Netzwerk (LAN): Ein DHCP-Server muss laufen, das Netzwerk muss technisch funktionieren. Wenn die übrigen PC dieses LAN korrekt laufen, dann sind die Voraussetzungen normalerweise erfüllt. |
►
Das bedeutet bei Internet-Zugang: Ihr Provider muss einen DHCP-Server anbieten,
die technische Verbindung zum Provider muss eingeschaltet sein und funktionieren. ► Manche Provider verwenden zwangsweise DHCP. In manchen Fällen können sie zwischen DHCP und einer fixen IP-Adresse wählen. Die DHCP-Variante bietet mehr Sicherheit. Eine fixe Adresse benötigen sie nur dann, wenn ihr privater Webservers auch aus dem Internet erreichbar sein soll. Davon wird aus Sicherheits-Gründen abgeraten, außerdem untersagen das meist die Nutzungs-Bedingungen. |
|
Der gesamte hier demonstrierte Vorgang läuft auf jedem
(für DHCP eingestellten) PC als Teil des Start-Vorgangs (Boot Process) ab. Der Vorgang ist ein interessantes Beispiel für den Aufbau einer Kommunikation mit unbekannten Partnern. UDPAlle DHCP-Anweisungenen verwenden das 'verbindungslose' Protokoll → UDP. Damit lassen sich Nachrichten auch probeweise an Partner senden, von denen nicht genau bekannt ist, ob sie im Netzwerk erreichbar sind. |
Nur in seltenen speziellen Fällen wird die Adress-Vergabe per DHCP während des laufenden Betriebs wiederholt - Der PC erhält in diesem Fall eine neue IP-Adresse, die laufenden Verbindungen werden meistens unterbrochen. |
DHCPDISCOVERBeim Start hat ein Netzwerk-Interface keine IP-Adresse. Sie wird erst durch Software vergeben.► Dazu wird vom PC eine DHCPDISCOVER - Nachricht zum Suchen (Discover - Entdecken) von DHCP-Servern abgesendet. Da man die übrigen LAN-Teilnehmer noch nicht kennt, wird diese → UDP-Nachricht 'an alle' gesendet. Dazu dient die als → Limited Broadcast reservierte IP-Adresse mit Port 67: 255.255.255.255:67
Der DHCP-Server horcht (listen) auf Port 67.Als Absender wird die ebenfalls reservierte IP-Adresse 0.0.0.0
verwendet.
|
► Der Broadcast wird auch dann verwendet, wenn ein Client versucht, nach Neustart wieder die 'alte' IP-Adresse zu erhalten. Damit wird garantiert, dass die Entdeckung des DHCP-Servers auch dann funktioniert, wenn dieser auf eine andere IP-Adresse übersiedelt ist. ► Im Text der Anforderung kann auch die bisher verwendete IP-Adresse enthalten sein - Normalerweise wünscht der Client-PC, diese Adresse wieder zu erhalten. ► Der Broadcast wird von allen Geräten im LAN empfangen, jedoch von keinem Router weitergeleitet. Kein Gerät bzw. keine andere Software als der DHCP-Server reagiert darauf, da Port 67 für DHCP-Server reserviert ist. ► In größeren Netzwerken sind mehrere DHCP-Server möglich. Jeder einzelne davon reagiert auf DHCPDISCOVER |
DHCPOFFER► Der DHCP-Server antwortet mit einem Angebot (Offer) auf dem dafür reservierten → Port 68.Die → UDP-Nachricht enthält u.a. die eindeutige → MAC-Adresse des Clients, eine für diesen Client provorisch reservierte IP-Adresse, und weitere Daten zur Netzwerk-Konfiguration. Die Nachricht ist an die angebotene → IP-Adresse adressiert. |
► Da mehrere DHCP-Server antworten können, hat der Client evtl. die Auswahl unter mehreren Angeboten. ► Im DHCP-Angebot sind alle nutzbaren Daten enthalten, inklusive einer garantierten Nutzungs-Zeit (Lease Time). ► Während der (kurzen) Dauer der Reservierung wird diese IP-Adresse keinem anderen anfragenden PC angeboten. ► Der Client hat noch keine → IP-Adresse und nimmt in diesem Zustand jede Nachricht auf → Port 68 entgegen. |
DHCPREQUEST► Der Client nimmt ein Angebot eines DHCP-Servers an - im Normalfall das erste eintreffende Angebot.► Danach muss er die Bestätigung des Servers abwarten. ► Alle DHCP-Server erhalten diese Nachricht. Nur der angesprochene Server reagiert, alle anderen stornieren ihre Angebote. |
• Wenn kein DHCP-Angebot eintrifft, dann sendet der Client periodisch weitere DHCPDISCOVER-Anfragen. • Wenn innerhalb von ca. 1 Minute kein DHCPOFFER eintrifft, dann wird die DHCP-Möglichkeit verworfen und allfällig eingestellte Alternativen verwendet. |
DHCPACKDer DHCP-Server bestätigt (Acknowledge) die Annahme seines Angebots. Als Ziel-Adresse wird nun die angebotene → IP-Adresse verwendet, als Ziel-→ Port 68. |
► Die vorgeschlagene → IP-Adresse wird am Server für den betreffenden Client reserviert - Bis zum Ablauf seiner Lease Time. |
ARP-RequestNun hat der Client die Erlaubnis zur Verwendung der angebotenen → IP-Adresse. Diese ist normalerweise unbesetzt.• Zur Sicherheit versucht der Client jedoch, Nachricht auf eine eine ARP-(Address Resolution Protocol)-Anfrage an genau diese IP-Adresse zu erhalten. Die ARP-Anfrage ist nicht Teil des DHCP-Protokolls, aber eine nützliche Ergänzung. |
• Normalerweise antwortet niemand auf diese Anfrage. • Wenn eine Antwort eintrifft, dann ist der DHCP-Server falsch eingestellt, oder auf einem Gerät wurde manuell eine nicht genehmigte Adresse eingestellt. In diesem Fall sendet der Client an den Server eine DHCPDECLINE Ablehnung. Danach kann er eine neue Anforderung stellen. |
|
Nach Empfang der Bestätigung darf der Client die zugewiesene
IP-Adresse verwenden. Im Angebot des DHCP-Servers sind meist mehrere Daten enthalten, die der Client zur Konfiguration verwendet, z.B.:
•
IP-Adresse und
Netzwerk-(Subnetz)-Maske
• Gateway (Adresse des Routers / Proxy für den Internet-Zugang) • Domain-Name und Domain Name Server DNS • Zeit-(NTP)-Server • Mail-(SMTP + POP)-Server |
Der Client darf die erhaltene
IP-Adresse nicht unbegrenzt lange verwenden: Jedes DHCP-Angebot hat eine Gebrauchs-Zeit (Lease Time). Nach deren Ablauf muss der Client erneut eine DHCP-Anfrage starten. Die aktuellen Daten ihres PC erfahren sie mit dem Konsolen-Programm (Linux, Windows)
# ifconfig
C:\> ipconfig /all |
Sonderfälle |
|
Neben dem Standard-Ablauf einer DHCP-Anfrage sind einige seltener auftretende
Sonderfälle möglich:DHCPNAKDer DHCP-Server lehnt die DHCPREQUEST-Anforderung eines Client ab. Das kommt selten vor und ist für (erkannte) Missverständnisse reserviert. |
DHCPDECLINEDer Client lehnt das DHCPOFFER-Angebot eines Servers ab, z.B. wenn diese Adresse bereits illegal verwendet wird (↑ ARP-Request).Der DCHP-Server markiert diese IP-Adresse als nicht verwendbar und bietet sie nachfolgend nicht mehr an. |
DHCPRELEASEDer Client gibt die für ihn reservierte IP-Adresse frei, z.B. weil die Netzwerk-Verbindung getrennt wird. Je nach Betriebssystem und Version können Client-PC so konfiguriert werden, dass sie beim Herunterfahren (Shutdown) ihre IP-Adresse freigeben. |
DHCPINFORMDer Client benötigt keine IP-Adresse, möchte jedoch alle anderen Netzwerk-Daten vom DHCP-Server erfahren. Eine deratige Anfrage kann z.B. von einem Client mit fix eingestellter IP-Adresse oder von einem Browser-Programm des Client-PC kommen, welches auf automatische Netzwerk-Konfiguration eingestellt ist. |
Lease-VerlängerungFür die Verlängerung eines bereits genutzten Angebots kann ein einfacheres Protokoll verwendet werden:• Der Client sendet einen DHCPREQUEST, diesmal jedoch mit den mittlerweile bekannten IP-Adressen von Absender und Ziel = DHCP-Server (Unicast). • Der Server sendet normalerweise eine DHCPACK Betsätigung. Sie enthält die gleichen Daten, jedoch eine neue Nutzungszeit (Lease Time). |
• Die Verlängerung wird normalerweise nach Ablauf von 50% der Lease Time versucht. Wenn das nicht klappt, versucht es der Client wiederholt in kürzeren Abständen. • Wenn bis Ablauf der Lease Time keine Zusage eintrifft, dann muss der Client so wie beim Hochfahren (Boot) eine neue IP-Adresse beantragen. |
IPv6Mit Einführung von Internet Protocol Version 6 (→ IPv6) wird DHCP überflüssig. Die Einführung dieser neuen Version ist bereits im Gange, → IPv4 und damit auch DHCP wird aber voraussichtlich noch mehrere Jahre weiter verwendet.Jeder PC kann aus der Hardware→(MAC)-Adresse seines Netzwerk-Interface selbst eine gültige IPv6-Adresse berechnen. |
Dennoch ist eine Version DHCPv6 geplant. Sie sollte einige jener Funktionen übernehmen, die DHCPv4 zusätzlich zur Vergabe der IP-Adresse anbietet. DHCPv6 verwendet die Ports 546 und 547 zur Kommunikation. |
Mehrere DHCP-ServerIn größeren Netzwerken werden manchmal mehrere DHCP-Server angeboten. Das garantiert eine sichere Adressen-Verwaltung auch bei Ausfall eines Servers. Jeder DHCP-Server vergibt einen anderen Bereich von IP-Adressen. Bei 2 Servern ist daher nur die Hälfte der Adressen nutzbar. |
DHCP für mehrere Sub-NetzeNormale Router leiten keine Broadcast-Nachrichten weiter. Es ist trotzdem möglich, mit einem DHCP-Server mehrere Sub-Netzwerke über Router-Grenzen hinweg zu versorgen. Die dafür notwendigen Maßnahmen sind relativ komplex und kommen nur für größere Netzwerke in Frage. |
DHCP-Server |
|
|
▲
Jede professionelle Linux-Distribution enthält einen DHCP-Server.
(Ausgenommen sind reine AnwenderInnen-Distributionen) ▲ Der DCHP-Server kann wie die meisten anderen Dienste für alle PC im lokalen Netzwerk verwendet werden, unabhängig von deren Betriebssystem und Version. |
▲
Ein Linux DHCP-Server ist auch für ungeübte AdministratorInnen leicht
zu konfigurieren, da nur wenige Daten eingestellt werden müssen. ▲ Der DHCP-Server wird am besten (wie alle anderen Server) nicht abgeschaltet. Wenn er abgeschaltet ist, dann muss er vor allen anderen PC hochfahren und wird erst als letzter abgeschaltet. |
PlanungVor Beginn der Arbeit sollten sie die Adressen-Aufteilung in ihrem lokalen Netzwerk planen. Dieses Beispiel geht von der Annahme aus, dass sie ein privates Netzwerk der Klasse C verwenden, z.B.
Basis-Adresse = 192.168.123.0
oder besser in
→ CIDR-Syntax:
Maske = 255.255.255.0 192.168.123.0/24
Das bedeutet:Alle IP-Adressen in ihrem LAN lauten auf 192.168.123.* und alle Masken auf 255.255.255.* und sie unterscheiden sich jeweils nur in der letzten IP-Stelle. ► Die letzte Adresse 192.168.123.255 ist für den → Broadcast reserviert. ► Gemeinsam genutzte Geräte erhalten fix eingestellte IP-Adressen, z.B. Server, Router (Proxy-Server), Netzwerk-Drucker usw. Dafür reservieren sie z.B. die Adressen 192.168.123.0 bis 192.168.123.127 Kontrollieren sie die IP-Adressen dieser Geräte ! |
► Für alle anderen Geräte (Arbeits-PC) bleibt der Bereich 192.168.123.128 bis 192.168.123.254 ► Diese Wahl ist nicht zufällig: • Dieser Bereich bezeichnet sie alle fix adressierten Geräte (Server): 192.168.0.0/255.255.255.128
oder besser in CIDR-Syntax:
192.168.123.0/25
• Dieser Bereich bezeichnet alle mit DHCP variabel adressierten Arbeits-PC: 192.168.0.128/255.255.255.128
oder besser in CIDR-Syntax:
192.168.123.128/25
• So können sie die Zugriffs-Rechte verschiedener Einrichtungen nach Bedarf für jede der beiden Gruppen oder für das gesamte LAN einstellen. ♦ Details zu IPv4-Adressen und zur Definition von Bereichen mit Adresse / Maske |
Konfiguration des DHCP-Servers (Linux)► Sie müssen sich als Super-User root anmelden. |
► Auf SuSE-Linux starten sie das allgemeine Konfigurations-Programm YAST mit ► Auf jedem Linux-System können sie die DHCP-Server Konfigurations-Datei lesen oder mit einem Text-Editor ändern: /etc/dhcpd.conf
|
|
►
Einstellung von 'Start': ist sinnvoll, Manuell nur für einen Test. |
► Karten-Auswahl: Markieren sie jenes (Ethernet)-Interface, welches der DHCP-Server zur Kommunikation verwenden soll. |
|
►
Globale Einstellungen: • Hier werden einige Daten eingegeben, die vom DHCP-Server selbst nicht verwendet werden, sondern zur Weitergabe an die angemeldeten PC dienen: • Verwenden sie nur die IP-Adressen, keine Namen ! • Wenn sie unsicher sind, welche Daten zu verwenden sind, finden sie alle in der bisherigen Netzwerk-Konfiguration jedes manuell konfigurierten PC in ihrem Netzwerk. Domain-Name - Nur wenn sie eine Domain verwenden und über einen Domain Controller (z.B. Samba - in jeder Linux Distribution) verfügen. Name-Server: ( → DNS) IP-Adressen von einem oder mehreren Name-Servern (meist bei ihrem Provider, außerhalb des LAN). |
Standard-Gateway (→ Router): IP-Adresse jenes PC (Proxy-Server), welcher mit dem Internet verbindet. NTP-Zeitserver: Jede Linux-Distribution enthält → NTP (Network Time Protocol) Server + Client, die sie zur Synchronisation aller PC in ihrem LAN benutzen sollten. Druckserver: Jeder Linux-Distribution enthält einen (CUPS)-Druckserver, den sie für alle PC ihres Netzwerks verwenden können. (Paket → Samba), Alternativ auch die Adresse eines Netzwerk-Druckers. |
| ► Standard Leasing Zeit: Garantierte Nutzungs-Dauer einer mit DHCP vergebenen IP-Adresse. Typische Werte 3-6 Stunden. | Wählen sie die Zeit nicht zu groß - Die vergebenen IP-Adressen sollten für einen abgeschalteten PC ablaufen (z.B. zwischen 18:00 - 06:00 = 12 Stunden). |
|
►
Dynamisches DHCP Hier erfolgen die eigentlichen DHCP-Einstellungen: Stellen sie erste und letzte IP-Adresse ein, in diesem Beispiel z.B. 192.168.123.128 bis 192.168.123.254 |
Standard Leasing Zeit: 3-6 Stunden (Absatz oben) Maximale Leasing-Zeit: 1-2 Tage. Nach Ablauf dieser Zeit ist keine Verlängerung möglich, der Client muss eine neue IP-Adresse beantragen. |
|
►
Normalerweise wird der DHCP-Server mit Abschluss der Konfiguration bereits gestartet. Die Start-Einstellung kontrollieren sie z.B. mit |
►
Ändern sie anschließend die Netzwerk-Konfiguration eines beliebigen
PC und aktivieren sie DHCP. ► Kontrollieren sie die vergebene IP-Adresse mit dem Konsolen-Programm ifconfig / ipconfig ► Führen sie einen Neustart aus, falls noch keine DHCP-Adresse angezeigt wird. Kontrollieren sie nach Neustart: ► Wenn die DHCP-Adresse korrekt vergeben wurde, dann können auch alle anderen PC auf DHCP umgestellt werden. |
|
►
Sie können die DHCP-Konfiguration zu jedem späteren Zeitpunkt ändern. ► Ihre Einstellungen werden nach guter Linux-Tradition in dieser einfachen Text-Datei gespeichert: /etc/dhcpd.conf
►
Wenn sie ausreichend Erfahrung haben, dann können sie diese Datei ohne
Konfigurations-Programm direkt ändern.
|
►
An der Shell-Konsole können sie das Standard-Script zur Bedienung des
DHCP-Servers benutzen:
# /etc/init.d/dchpd status
# /etc/init.d/dchpd start # /etc/init.d/dchpd stop # /etc/init.d/dchpd restart |
|
Je größer ein lokales Netzwerk (LAN), desto größer die
Vorteile von DHCP: ▲ Sie brauchen sich nicht um die Netzwerk-Konfiguration der PC zu kümmern. Das freut die AnwenderInnen und entlastet AdministratorInnen von der ständig gleichen und doch immer falsch eingetippten Auskunft. |
▲
Sie können Änderungen an der Konfiguration einmalig am Server ausführen
und ersparen sich die Ochsentour zur Konfiguration jedes einzelnen PC.
▲ Es ist sinnvoll, DHCP auch in kleinen Netzwerken (Familien, Arbeitsgruppen) einzusetzen. Ein DHCP-Server ist kostenlos in jeder professionellen Linux-Distribution enthalten - Übliche Linux-Magazine um 10-20€ enthalten meist eine oder mehrere komplette Linux-Distributionen ... |
Peg-DHCP |
|
|
Diese DHCP-Variante besticht durch ihre einfache und robuste Technologie. Auf der Veranstaltung 'Hacking in Progress' wurde der Standard RFC 2322 (Management of IP numbers by peg-DHCP) entwickelt. Man schreibt IP-Adressen mit Filzstift auf Kleiderhaken oder Wäscheklammern und klemmt sie an das zugehörige Kabel. Eine höchst effiziente Methode, wie sie leicht ausprobieren können. ♣ Tipp: Auch wenn sie lieber das klassische DHCP verwenden, dann sollten sie trotzdem alle längeren und fix verlegten Kabel eindeutig beschriften... |
|
|
|
|
Pro-Linux:
Konfiguration eines DHCP-Servers Microsoft: TCP/IP-Grundlagen - DHCP
IETF:
Secure Dynamic DNSISC: Server-Software für DHCP und BIND |
Wikipedia (de) -
DHCP,
IPv4,
IPv6,
Port,
ARP
Elektronik-Kompendium (de): DHCP, ipconfig |