haneWIN DHCP Server
Version 3

Copyright © 1999-2019, Herbert Hanewinkel, Neuried

Aktualisiert: Feb 2019

Übersicht
Installation
Betrieb
Benutzung
Verfügbarkeit

Übersicht

Die Software implementiert einen DHCP/BOOTP Server nach RFC 2131 für Windows Betriebssysteme (32 Bit und 64 Bit). Der Server erlaubt die Konfiguration von Klienten aufgrund von

Integriert ist ein TFTP Server für Downloads nach RFC 1350, 2347-2349.

Der DHCP Server ist als benutzerunabhänigiger Dienst für Windows XP/VISTA/20xx/7/8/10 implementiert. Der Dienst kann über ein Kontrollfeld der Systemsteuerung konfiguriert und überwacht werden. Angezeigt werden können die Liste der registrierten Hardwareadressen oder Identifier, die vergebenen dynamischen IP Adressen, die ignorierten Klienten, sowie die aktiven TFTP Transfers.
Zusätzlich ist eine Konfiguration des Servers über eine Kommandozeilenschnittstelle möglich.

Alternativ ist der DHCP Server als Windows Anwendung realisiert.

Neben der Zuteilung dynamischer Adressen aus einem Adresspool können Klienten mit bekannter Hardwareadresse, Client Identifier oder Relay Agent Remote ID auch feste IP-Adressen zugewiesen werden. Bei Servern mit mehreren Schnittstellen ist pro Interface ein Adresspool zur Vergabe von dynamischen Adressen möglich.
Zur kontrollierten Verwendung von IP-Adressen in einem größeren LAN können nur ausgewählte Schnittstellen bedient oder auch auch nur Anfragen von registrierten Adressen oder Identifiern beantwortet werden. Anfragen von nicht registrierten Adressen oder Identifiern werden bei dieser Betriebsart mitprotokolliert, aber nicht beantwortet.

Mit dem integrierten TFTP Server können Klienten einen Download vorgegebener Dateien durchführen. Zum Schutz der Dateien gegen unberechtigten Zugriff kann der Download auf die dem DHCP Server bekannten Hardware Adressen und/oder die in den Profilen eingetragenen Boot Dateien limitiert werden.

Der DHCP Server kann Klienten automatisch bei einem DNS Server registieren, z.B. im haneWIN DNS Server.

Die haneWIN DHCP Server Software ist Shareware
Sie erhalten das Recht die Software bis zu 30 Tage testen. Zur weiteren legalen Nutzung muss die Software lizensiert werden. Einzelheiten zur Registrierung finden Sie in bestell.txt.


Installation

Voraussetzungen

Computer mit Windows XP oder höher.

Installation des DHCP Server Dienstes

  1. Installieren Sie die Software über das Setup Programm. Der DHCP Server Dienst wird installiert und gestartet.
  2. Legen Sie eine Firewallregel für den DHCP Server an. Ein Beispiel dazu finden Sie in der Datei firewall.bat
  3. Über das Kontrollfeld DHCP Server kann der DHCP Server Dienst konfiguriert und überwacht werden.
    Das Kontrollfeld muss mit Administratorrechten ausgeführt werden.

Kontrolle des Dienstes

Der DHCP Server Dienst ist für einen automatischen Start mit dem Start von Windows vorkonfiguriert. und kann über das Kontrollfeld selbst oder über die Diensteverwaltung beendet und gestartet werden.

  • Der DHCP Server Dienst wird intern mit dem Befehl :
    DHCP4NT -install
    installiert und gestartet.
  • Eine Deinstallation des Dienstes ist mit dem Befehl:
    DHCP4NT -remove
    möglich.
  • Der Startmenüeintrag DHCP Server entfernen beendet den DHCP Server Dienst und deinstalliert die Software vollständig.


Betrieb

Die InfoBox wird nur beim Start der nicht registrierten Version angezeigt.

Der DHCP Server verwaltet die Adressen in drei Listen:
Die statische Liste enthät Klienten mit bekannter Hardwareadressen oder Identifier. Sie dient im wesentlichen dazu Klienten mit einer festen (statischen) IP-Adresse zu vesorgen.
Die dynamische Liste enthält alle Hardwareadressen oder Identifier von Klienten, denen vom Server dynamisch eine IP-Adresse zugewiesen worden ist.
Die Liste ignoriert enthät Adressen oder Identifiern von Anfragen, die aufgrund der Serverkonfiguration nicht bedient wurden.

Die Einträge der jeweils angezeigten Liste können durch Klick auf den Titel der Spalte sortiert werden.
Durch Verwendung der rechten Maustaste können Einträge in die statische Liste transferiert werden oder aus den Listen entfernt werden.

Hardwareadressen und Identifier werden Byte für Byte als Hexadezimalzahl dargestellt. Bei Hardwareadressen werden die Bytes durch Doppelpunkte getrennt angezeigt. Identifier, die aus einer reinen ASCII-Zeichenkette bestehen, können optional mit einem führenden " als Text ausgegeben werden.
Es werden drei Arten von Identifiern unterschieden:

Der Server bietet die folgenden Möglichenkeiten für die Behandlung der empfangenen Relay-Agent Informationen:

  1. Circuit-ID und Remote-ID auswerten.
  2. Nur Circuit-ID auswerten, Remote-ID ignorieren.
  3. Nur Remote-ID auswerten, Circuit-ID ignorieren.
  4. Remote-ID und Circuit-ID ignorieren aber zurücksenden.
  5. Relay-Agent Informationen ignorieren.

Akzeptierte Relay-Agent Informationen werden nach folgenden Schema mit den konfigurierten Einträgen verglichen:


Benutzung

Menüeinträge

Datei
Dienst

aktivieren startet den Server.
terminieren stoppt den Server.

Protokoll anzeigen

zeigt ein Protokoll der Serverzugriffe an. Es wird automatisch jeden Monat eine neue Protokolldatei erstellt.

Beenden

beendet das Programm.

Optionen
Einstellungen

zur Konfiguration allgemeiner Programmeinstellungen.

Der Server kann sich selbst deaktivieren, wenn ein anderen DHCP Server aktiv ist. Dazu sendet der Server alle 30 Sekunden eine Anfrage, kommt eine Antwort von einem anderen DHCP Server bleibt der Server deaktiviert, bleibt zweimal eine Antwort aus, wird der Server aktiv.

In der Einstellung Nur Anfragen von registrierten Adressen beantworten reagiert der Server nur auf bekannte Hardwareadressen oder Identifier. Ansonsten bearbeitet der Server alle Anfragen, also auch von Klienten mit unbekannter Hardwareadresse oder Identifier, denen dynamisch eine IP-Adresse zugeteilt werden soll.

Anfragen die von einem Relay ankommen werden an die im Paket eingetragene Gatewayadresse beantwortet. Mit der Einstellung Anfragen von Relays an den Sender beantworten sendet der Server die Antwort stattdessen an die Senderadresse der Anfrage.

Bei multi-homed Servern (Computer mit mehreren Schnittstellen) kann der DHCP Server nur Anfragen auf bestimmten Schnittstellen beantworten. Unerwünschte Schnittstellen können ausgeschlossen werden oder es können nur genau die ausgewählten Schnittstellen verwendet werden.

Wenn Relay Agent Informationen ausgewertet werden, unterscheidet der Server zwischen einfachen und vertrauenswürdigen Schnittstellen:

  • Von einer einfachen Schnittstelle werden Relay Agent Informationen nur von einem sichtbaren Gateway (DHCP/BOOTP Relay, BOOTP gw-Feld entspricht der Absende IP-Adresse) akzeptiert.
  • Von einer vertrauenswürdigen Schnittstelle (symbolisiert durch ein Schloß ) werden Relay Agent Informationen immer akzeptiert. Ein Schnittstelle sollte nur dann als vertrauenswürdig konfiguriert werden, wenn Klienten selbst nicht in der Lage sind Relay Agent Informationen einzufügen sondern die Relay Agent Informationen z.B. von einem Layer-2 Router mit transparentem Gateway (DHCP/BOOTP-Relay, BOOTP gw-Feld hat den Wert null) eingefügt werden.

Der Server kann ausschliesslich zur Beantwortung von DHCP oder BOOTP Anfragen eingesetzt werden. Wird sowohl DHCP als auch BOOTP deaktiviert, werden keine Anfragen beantwortet (dies entspricht dem Monitormodus früherer Versionen).

Zur Unterscheidung von Klienten kann der Server folgende Informationen auswerten:

  1. Relay Agent Informationen. Sowohl Hardwareadresse als auch Client Identifier können auf einem Klienten manipuliert werden. Durch die Vergabe eines Identifiers für einen angeschlossenen Computer auf einem Relay Agent kann eine Manipulation ausgeschlossen werden.

  2. Client Identifier, eine auf dem Klienten festgelegte Bytefolge oder Zeichenkette die den Computer eindeutig identifiziert.

  3. Hardwareadresse der Schnittstellenkarte eines Klienten.

Wenn der Server als einziger Server im Netz betrieben wird, können Init-Reboot Anfragen auch dann beantwortet werden, wenn von einem Klienten nach einem Standortwechsel noch eine IP-Adresse ausserhalb der verwalteten IP-Adressen angefordert wird. Dieses Verhalten ist nicht rfc-konform, beschleunigt aber den Zuteilungsvorgang.

Antworten können entweder gezielt an die Hardwareadresse des Klienten adressiert werden oder als "Broadcast"-Paket versandt werden. Wenn der Klient eine Antwort mit gesetztem "Broadcast"-Bit anfordert, erfolgt die Antwort unabhängig von der Einstellung immer als "Broadcast"-Paket.

Windows Rechner können automatisch eine zufällige IP-Adresse konfigurieren, wenn kein DHCP Server bereit ist eine IP-Adresse zuzuteilen. Der Server kann Klienten mitteilen das eine automatische Konfiguration unerwünscht ist.

Der DHCP Server enthät einen integrierten TFTP Server zum Download von Dateien. Ein aktiver TFTP Server wird mit einem blauen TFTP Symbol angezeigt. Während eines aktiven TFTP Downloads wechselt die Farbe der Anzeige auf rot.

Ein Klient kann den Namen einer Datei entweder relativ zum TFTP Hauptverzeichnis oder absolut spezifizieren. Im zweiten Fall muss eine durch Semikolon getrennte Liste mit den erlaubten Pfadpräfixen angelegt werden. Ein Präfix muss in voller Länge mit dem Anfang des angeforderten Dateinamens übereinstimmen.

Zum weiteren Schutz von Bootdateien vor unberechtigetem Download stehen zwei Optionen zur Verfügung:

  • Nur die im Profil konfigurierte Boot Datei darf gelesen werden.
  • Nur Klienten mit konfigurierter Boot Datei im Profil dürfen Dateien downloaden.
  • Nur registrierte Hardwareadressen oder Identifier (statische Einträge) mit fester IP-Adresse dürfen Dateien downloaden.
  • Nur vom DHCP Server verwaltete IP Adressen dürfen TFTP downloads durchführen.

Ein TFTP Klient kann die Verwendung von Optionen anfordern. Der Server kann eine angeforderte Option nur akzeptieren oder ablehnen. Die Optionen des TFTP Protokolls können einzeln deaktiviert werden.

  • Mit der blocksize Option kann ein Klient eine andere Paketgrösse vorgeben. Der Standardwert ist 512 Bytes pro Paket. Grössere Werte reduzieren die Zahl der Pakete für einen Download und verbessern damit die Performance. Sinnvoll ist über Ethernet eine Paketgrösse von 1400 Bytes, da diese Pakete noch ohne Fragmentierung übertragen werden können.
  • Mit der timeout Optione kann ein Klient die Zeit bis zur Wiederholung nicht bestätigter Pakete festlegen. Der Standardwert ist im Server einstellbar.
  • Mit der tsize Option wird die Gesamtgrösse der zu transferierenden Datei vorab übermittelt. Dies erlaubt eine effizientere Handhabung im Klient oder Server.
  • Mittels TFTP Multicast ist der simultane Download einer Datei an mehrere Klienten möglich.

Statische Einträge hinzufügen

zum Eintragen bekannter Hardwareadressen oder von Identifiern. Hardwareadressen müssen Byte für Byte als Hexadezimalzahl eingetragen werden. Die Bytes sind durch Doppelpunkte zu trennen (z.B. 00:01:02:03:04:05). Identifier können hexadezimal oder als Zeichenkette eingetragen werden. Bei einer Zeichenkette muss ein " vorangestellt werden, bei einer hexadezimalen Eingabe kann ein 0x vorangestellt werden (z.B. "abcdef entspricht 0x616263646566 oder 616263646566). Identifier können bis zu 64 Bytes lang sein.
Jedem Eintrag kann eine feste IP-Adresse und ein Konfigurationsprofil zugeordnet werden. Wird als IP-Adresse 0.0.0.0 eingetragen wird dem Klienten eine IP-Adresse aus dem Pool der dynamischen Adressen des eingestellten Profils zugeteilt.
Bei einem IP Adresseintrag 255.255.255.255 werden Anfragen von diesem Klienten (Hardwareadresse/Identifier) ignoriert.
Die statischen Adressen/Identfier werden in einer Datei ethers gespeichert. Zur Konfiguration des Servers kann eine von einem Unix Computer vorhandene ethers Datei direkt übernommen werden.

Konfigurationsprofile verwalten

Zur Vorgabe der Parameter für Klienten können beliebig viele Konfigurationsprofile erstellt werden. Mit diesem Dialog können neue Konfigurationsprofile hinzugefügt, umbenannt und bearbeitet werden, sowie nicht mehr benötigte Konfigurationsprofile entfernt werden.

Profilkonfiguration

Profile können für 6 Kategorieren eingerichtet werden.

  1. Profile können ausschliesslich für bekannte Hardwareadressen oder Identifier angelegt werden.

  2. Profile können für einen Hardwareadressblock angelegt werden, z.B. gleiche Herstellerbytes in der Adresse. Der Addressblock ist als partielle Hardwareadresse einzutragen (zum Beispiel: 00-80-02)

  3. Es können Profile für Benutzerklassen (nach RFC 3004) angelegt werden. Ab Windows 2000 kann mit dem Befehl ipconfig /setclassid ... eine Benutzerklasse für einen Computer als DHCP-Klient definiert werden.

  4. Es können Profile für Herstellerklassen angelegt werden. z.B. Microsoft sendet DHCP-Anfragen ab Windows 98SE/ME mit der Herstellerklasse MSFT 98 und ab Windows 2000/XP mit der Herstellerklasse MSFT 5.0

  5. Für Anfragen, die über ein DHCP/BOOTP-Relay weitergeleitet wurden, kann pro Relay/Circuit ID ein eigenes Profil angelegt werden. Die Angabe einer Circuit ID ist nur möglich, wenn die Auswertung von Relay Agent Informationen nach RFC 3046 aktiviert wurde.

  6. Bei Servern mit mehreren Schnittstellen kann je Schnittstelle ein eigenes Konfigurationsprofil erstellt werden.

UserClass-, VendorClass- oder Circuit-Identifier können als Zeichenkette oder hexadezimal eingetragen werden. Bei hexadezimaler Eingabe ist 0x voranzustellen. Ohne 0x wird eine Zeichenkette angenommen. (z.B. abcdef entspricht "abcdef oder 0x616263646566).

Enthät eine DHCP-Anfrage mehrere Kriterien zur Auwahl eine Konfigurationsprofils wird das Konfigurationsprofil in der folgenden Reihenfolge ermittelt:

  1. Bei bekannter Hardwareadresse oder bekanntem Identifier wird das zugeordnete Profil verwendet.

  2. Wurde von einem Relay eine Circuit-ID übermittelt wird ein entsprechendes Profil gesucht.

  3. Fällt die Hardwareadresse in den MAC-Adressbereich eines Profils wird das Profil verwendet.

  4. Wurde eine Benutzerklasse übermittelt wird ein entsprechendes Profil gesucht.

  5. Wurde eine Herstellerklasse übermittelt wird ein entsprechendes Profil gesucht.

  6. Existiert ein Profil für die Schnittstelle oder das uebermittelnde Relay wird das Profil verwendet.

  7. Ansonsten wird die Anfrage ignoriert.

Das ermittelte Profil legt die Parameter für den Klienten fest. Wenn das Profil mit einem Adresspool für die dynamische Zuteilung von IP-Adressen ausgestattet ist, wird diese dem Pool des Profisl entnommen. Wenn kein Adresspool für das Profil konfiguriert wurde, gilt folgende Hierarchie:

  • Wird ein Hardwareadress- oder Identifier-eintrag ohne IP-Adresse (0.0.0.0) angelegt, wird die IP-Adresse dem Adresspool des zugeordneten Profiles entnommen. Wurde das Profil ohne Adresspool angelegt, wird eine Adresse aus dem Profil des Relay oder Interface Profils zugeteilt.

  • Fällt die Hardwareadresse in einen vorgegebenen MAC-Adressbereich oder übermittelt der Klient eine Benutzer- oder Herstellerklasse, wird die IP-Adresse dem Adresspool des zugeordneten Profiles entnommen. Wurde das Profil für den Adressblock oder die Benutzer-/Herstellerklasse ohne Adresspool angelegt, wird eine Adresse aus dem Profil des Relays oder Interfaces zugeteilt.

Wird nur eine Start-IP-Adresse und KEINE End-IP-Adresse eingetragen, wird ein Adresspool der Länge 0 angelegt. Klienten für die dieses Profil zutrifft können damit von der Bedienung duch den DHCP Server ausgeschlossen werden.

Das DHCP Protokoll erfordert die Angabe eines Zuteilungszeitraums für die IP-Adresse. Profile mit einem Zuteilungszeitraum 0 werden deshalb nur für Anfragen von BOOTP Klienten verwendet, DHCP Anfragen werden in diesem Fall ignoriert.

DNS

Die Hostname Option ist im DHCP-Klient von Windows NT 4.0 nicht implementiert. Wird die Option aktiviert bzw. konfiguriert, generiert ein Windows NT 4.0 Klient eine Error-Log Meldung "Unbekannte Option 012".

NetBios

Zur Übermittlung von Einstellungen des NetBios Protokolls.

Zeit

Zur Übermittlung von Zeitzone, time-Server oder ntp-Server Adresse.

"Next Server IP Adresse" spezifiziert die IP-Adresse eines Rechners, der für den weiteren Bootprozess kontaktiert werden soll, normalerweise ein TFTP Server. Er muss nur dann eingetragen werden, wenn dies nicht der lokale Rechner ist.

Boot Server Name und Datei werden wie im RFC spezifiziert übertragen:

  • Der Server-Name wird im sname Feld des BOOTP Paketes eingetragen.

  • Der Datei-Name wird im file Feld des BOOTP Paketes eingetragen.

  • Wenn die Gesamtlänge der Optionen die maximale Länge überschreitet, wird überprüft ob Server- oder Datei-Name kürzer als 64 bzw. 128 Bytes sind. Wenn ja, werden Server- oder Datei-Name als Option 66 bzw. 67 eingetragen und das entsprechende Bit in der "Overload" Option gesetzt.

Mit der Einstellung Immer Option 66/67 für Name/Datei verwenden kann das Standardverhalten deaktiviert werden und Server- und Datei-Name werden immer als Option 66 bzw. 67 eingetragen.
Die feste Übermittlung von Server- und Datei-Name als Option 66/67 ist nicht rfc-konform.

Optionen, die nicht über die Dialoge erreichbar sind, können unter Weiteres eingetragen werden. Das DHCP/BOOTP Protokoll spezifiziert Optionen im Format Code Länge Wert(e) ...
Selektieren Sie den Code aus der Liste mit den möglichen Optionen, selektiren Sie das Format der Werte und tragen sie die Werte ein. Die Länge wird automatisch aus den eingegebenen Werten ermittelt.

Ist der Wert der Option eine Zeichenkette kann diese direkt eingetragen werden.

  • Optionsnummer: 133
    Optionswert ist die Zeichenkette: PXopt=03;PXfile=pxboot;PXserv=192.168.1.12
    ergibt:
    133 42 "PXopt=03;PXfile=pxboot;PXserv=192.168.1.12
Für den Namen bzw. die IP-Adresse des Klienten können die Platzhalter %N und %A eingefügt werden. Die Länge wird bei der Substitution automatsich korrigiert.

Besteht der Wert der Option aus einer oder mehreren IP Adressen können diese mit Leerzeichen getrennt eingetragen werden.z.B.:

  • Optionsnummer: 70
    Optionswert zwei IP Adressen: 192.168.1.2 192.168.2.2
    ergibt:
    70 8 192.168.1.2 192.168.2.2

Besteht der Wert der Option aus einem oder mehreren Bytes (Binärwerten), müssen die Werte Byte für Byte dezimal oder mit 0x beginnend hexadezimal eingetragen werden. Nicht numerische Werte mit ASCII-Code>32 können zur Vereinfachung direkt eingetragen werden, z.B:

  • Optionsnummer: 26
    Optionswert sind zwei Bytes: 4 0
    ergibt:
    26 4 0
  • Nochmals obiges Beispiel nun als Binärwert eingegeben:
    Optionsnummer: 133
    Optionswert ist ein Textstring: PXopt=03;PXfile=pxboot;PXserv=192.168.1.12
    ergibt:
    133 42 PXopt=0x30 0x33 ;PXfile=pxboot;PXserv= 0x31 0x39 0x32 . 0x31 0x36 0x38 . 0x31 . 0x31 0x32

Ansicht
Namen anzeigen

Statt der IP-Adressen werden Namen angezeigt. (Soweit die Namen bekannt sind.)

Bemerkungen anzeigen

Bemerkungen zu statischen Einträgen werden angezeigt.

Autom. aktualisieren

Die angezeigte Liste wird nach jeder Anfrage automatisch aktualisiert. Die aktuelle Sortierung geht dabei verloren.

Hilfe
Inhalt

startet den HTML-Browser mit der Dokumentation.

Registrieren

über diesen Dialog wird die Software registriert. Geben Sie bitte dort den Lizenzschlüssel und die Lizenzkennung ein. Nach erfolgreicher Registrierung wird unter Hilfe-Info die Lizenzkennung angezeigt.

Lizenz anzeigen

zeigt die Lizenzbedingungen an.

Infomationen

zeigt Version und Urheberrecht an.


Verfügbarkeit

Die jeweils aktuelle Version des haneWIN DHCP Servers ist unter www.hanewin.net zu finden. Bitte senden Sie Kommentare, Anregungen und beobachtete Probleme zum Programm an .