26.11.2001

Netzwerk-Infrastruktur

Bei einer DHCP-Zuweisung bekommt ein Client aus einem vorgefertigten Pool von IP-Adressen eines DHCP-Servers eine ab. Der Client kann sowohl Windows ab Version 3.11 (mit dem TCP/IP-Stack) sein, als auch normalerweise jeder andere Client wie Mac, Unix (Linux) und Novell. Der DHCP-Server kann ebenfalls irgendein System sein (Mac, Unixartige, Novell). Wir schauen uns aber den DHCP anhand von W2k-Server an.

Der Vorteil eines DHCP-Servers liegt grösstenteils in der Verwaltung. Es ist eine zentrale Konfiguration. Weiterhin vermeidet man ziemlich schnell Adresskonflikte. Es ist eine grössere Mobilität der Clients möglich.

Um einen DHCP-Server einzurichten, ist W2k-Server notwendig. Weiterhin ist eine statische IP-Adresse und das Gateway sinnvoll. Der DHCP-Serverdienst muss eingerichtet, gestartet und der Adressbereich für die Clients vergeben werden. Der Adressbereich muss aktiv sein und in gewissen Vorraussetzungen ist eine Autorisierung notwendig.

Der Client schickt eine Anforderung (Request) raus, um einen DHCP-Server zu erreichen. Dieses Paket ist ein DHCP-Discover Paket und ein Broadcast-Signal.

Hier sehen wir so ein Paket und stellen fest, dass das Protokoll UDP ist und die Ports 67 und 68 benutzt werden. Auf MAC-Ebene wird ein Broadcast gesendet, mit der Quelle, also der MAC-Adresse des Clients. Auf IP-Ebene wird ebenfalls ein Broadcast gesendet, aber die Quelle ist 0.0.0.0. Unter den DHCP-Options findet man den Clientnamen, wichtig für DDNS, und die vorherige IP-Adresse. Der Client versucht, diese wiederzubekommen. Auf so ein Discover-Paket gibt es zwei mögliche Antworten: ein DHCP-Offer von allen DHCP-Servern mit gültigen Adressbereich oder gar keine. Bekommt der Client keine Antwort, sendet der Client noch vier mal sein Discover-Paket, und zwar nach jeweils zwei Millisekunden plus einer beliebigen Zeitspanne zwischen 0,1 und 1 Millisekunde. Bekommt der Client immer noch keine Antwort, nimmt sich der Client eine APIPA-Adresse, sofern diese in der Registry nicht deaktiviert wurden. In dem Fall erhält der Client gar keine Adresse (0.0.0.0). Bei APIPA (169.254.x.x /16) arbeitet der Client zehn Versuche mit Konflikterkennung ab. Zusätzlich wird alle fünf Minuten nach einem DHCP-Server gesucht. Findet er den Server, auf dem der DHCP auch aktiviert und welcher für ihn zuständig ist, antwortet dieser mit einem Offer-Paket. Auf der MAC-Ebene ist das Ziel ein Broadcast und die Quelle die Server-MAC-Adresse. Auf IP-Ebene ist ebenfalls ein Broadcast ersichtlich und die Quelle ist die Server-IP-Adresse. In diesem Paket ist natürlich auch die angebotene IP-Adresse enthalten. Weil dieses Paket ein Broadcast ist, könnte es ja von jedem Client abgefangen werden, das wird verhindert, indem die Client-MAC-Adresse im Options-Teil des Pakets enthalten ist. Weiterhin wird die Server-Adresse und die Release-Time übermittelt. Nach der Hälfte der Zeit wird der Client nach einer neuen IP-Adresse schon fragen. Der DHCP-Select-Vorgang verwendet (unglücklicherweise) ein DHCP-Request-Paket, mit dem der Client das Angebot des Servers akzeptiert. Auf MAC-Ebene ist immer noch ein Broadcast zu sehen, die Client-MAC-Adresse ist obligatorisch. Auf IP-Ebene ist ebenfalls ein Broadcast, aber die Quelle ist immer noch 0.0.0.0. Der Broadcast hat den Grund, dass der Client immer noch nichts von Netzen oder so weiss, und andere Clients und Server bekommen mit, dass der Client keine Adresse mehr braucht. In dem Paket ist die Zieladresse des gewählten DHCP-Servers enthalten; die Server schauen, ob sie das selber sind und reservieren in dem Fall die Adresse fest zu. Der Server schickt daraufhin ein ACK-Paket in einem Acknowledge-Vorgang zu. Auf MAC-Ebene immer noch ein Broadcast mit der Server-Quelle und auf IP-Ebene ebenfalls. In diesem Paket sind die Optionen wie Gateway und DNS-Server enthalten, mit der ihm zugewiesenen Adresse natürlich.

Nach der Hälfte der Lease-Time sendet der Client an SEINEN DHCP-Server ein Request-Paket (Select-Vorgang). Der Server hat mehrere Antwortmöglichkeiten zur Auswahl: eine Möglichkeit ist die Antwort ACK mit den neuen Optionen.

Eine andere Möglichkeit ist, dass der Server garnicht antwortet (weil er nicht mehr dort zur Verfügung steht). Passiert das, sendet der DHCP-Client nach insgesamt 87,5% der Zeit ein Discover-Paket.

Das NACK (Negative Acknowledge) ist noch eine Antwortmöglichkeit des Servers. Der Client darf damit die Leasedauer nicht verlängern. Er gibt die Adresse sofort frei und fordert eine neue an. Diese Möglichkeit tritt selten und nur in speziellen Fällen auf, beispielsweise wenn der komplette Adressbereich auf dem DHCP-Server geändert wurde.

Dieses Bild stellt nur einen Teil der Daten wieder, die übertragen werden.

Windows versucht beim Start automatisch, eine Erneuerung der IP zu beantragen, d.h. er fährt gleich mit dem Schritt 3 fort.

An der Kommandozeile existiert das Tool ipconfig. Mit dem Schalter /release wird die alte IP-Adresse definitiv freigegeben, mit dem Schalter /renew versucht der Client, seine IP-Adresse zu erneuern. Einen Server besitzt den Befehl netsh. Dieser startet eine NetShell.

Es gibt auch noch ein DHCP-Inform-Paket. Dieses wird benutzt, falls ein DHCP-Server eine Active-Directory-Domäne im Netzwerk findet. Dann startet der DHCP nur nach einer Autorisierung in dieser. Klickt man mit der rechten Maustaste auf die Domäne und wählt den Punkt Autorisieren, sollte man sicherstellen, dass man mindestens der Gruppe Organisations-Administratoren in der Domäne angehören. Mit diesem Vorgang sollen Konflikte zwischen mehreren DHCP-Servern verhindert werden. Der Nachteil ist, dass das nur für W2k-Server gilt. Als Features eines DHCP-W2k-Servers gilt, dass dieser Multicastbereiche und Bereichsgruppierungen (Superscope) vornehmen kann. Obligatorisch, dass Dieser Adress-Bereiche (Scope) festlegen und Optionen wie das Gateway an den Client übermitteln kann.

In einem DHCP-Server müssen folgende Bereiche eingestellt werden:

- Adressbereich (Pool), die IP-Adressen, die den Clients zugewiesen werden können
- SubnetMask
- Reservierungen, bestimmte IP-Adressen für bestimmte Rechner (Bindung zwischen MAC und IP-Adresse)
- Ausschlussbereiche, Adressen, die aus dem Pool ausgeschlossen werden
- Optionen, wie das Standardgateway, DNS-Server, etc.
- Name, Beschreibung
- Leasedauer (Standard 8 Tage)

Ein DHCP kann mehrere Bereiche verwalten, diese müssen aber unterschiedliche Teilnetze sein. Die Clients erhalten auch nur Adressen aus dem Bereich, der mit der IP-Adresse der empfangenen Netzwerkkarte übereinstimmt. Damit man nicht für vier Teilnetze vier Netzwerkkarten installieren muss, bekommen die Clients auch aus dem Bereich Adressen, aus dem der Relay-Agent stammt. Vorraussetzung ist natürlich, das dieser Bereich im DHCP-Server angelegt und aktiviert wurde.

konfigurierbare Optionen für den Client:

003 Router IP-Adresse
006 DNS-Server IP-Adresse
015 DNS-Domänenname Domänenname
044 WINS-Server IP-Adresse
046 NetBIOS-Knotentyp
0x1 Broadcast
0x2 Peer
0x4 Mixed
0x8 Hybrid

Diese sind konfigurierbar auf Serverebene, Bereichsebene, Klassenebene und Reservierungsebene. Die zuletzt abgearbeitete Option gewinnt. Ausserdem sind diese vererbbar.

Server gilt für alle Bereiche des Servers
Bereich gilt für alle Clients dieses Bereichs
Klassen gilt nur für diese Klasse (Hersteller/Benutzerklasse ersichtlich am Client mit ipconfig /showclassid) oder /setclassid
Reservierung gilt nur für diese Reservierung

Bereichsgruppierung: Damit kann man Bereiche zusammenfassen, die dann als ein grosser Bereich erkannt werden, somit kann man einen Adresspool über Netzwerkgrenzen hinaus erweitern. Das erfolgt über die rechte Maustaste des DHCP-Servers \ Neue Bereichsgruppierung.

Im Multicastbereich (D-Klasse 224.0.0.0- 239.255.255.255 /32) kann man auch eine automatische IP-Adresszuweisung für Multicastclients einrichten. Den Client nennt man MADCAP-Client (Multicast-Adress-Dynamic-Client-Alloquation-Protokoll), damit ist eine Software gemeint, die Multicastadressen anfordert. Ebenfalls RM DHCP-Server \ Neuer Multicastbereich.