Content
Dateianzeige für dhcpd (3.2.1)
usr/share/doc/dhcpd/dhcpd.txt
DHCP Server (ISC-DHCPD)
Copyrights
Der in diesem Paket enthaltene DHCP Server ist eine Open Source
Software und unterliegt dem Copyright des Internet Systems Consortium,
Inc. („ISC“). Die Verwendung erfolgt nach den Bestimmungen der
[1]ISC-Lizenz (ähnlich der BSD License).
Die ebenfalls enthaltenen Bestandteile des Syslinux Projekts und des
Etherboot Projekts unterliegen der [2]GNU General Public License
Version 2 oder aktueller.
Die in diesem eisfair -Paket zusätzlichen, eisfair -spezifischen
Bestandteile unterliegen ebenfalls der GNU General Public License
Version 2 oder aktueller.
Achtung: Ich gebe weder eine Garantie auf die Funktionsfähigkeit des
dhcpd Pakets, noch hafte ich für Schäden, z.B. Datenverlust, die durch
den Einsatz des dhcpd Pakets entstehen.
Einleitung
Das DHCP (Dynamic Host Configuration Protocol) wird zur Automatisierung
der Konfiguration von Computern in TCP/IP-Netzwerken genutzt. DHCP kann
dabei die IP-Adressen automatisch vergeben, TCP/IP-Stack
Konfigurationen wie die Subnet-Mask und den Standard-Gateway übergeben
und andere Konfigurationen wie Adressen der Drucker-, Zeit- oder
Newsserver verteilen.
(Übersetzt von [3]DHCP)
Dieses Paket enthält den Server (=Daemon) zur Vergabe von IP-Adressen
in lokalen und entfernten Netzwerken.
Leistungsmerkmale des Pakets:
* Vergabe von dynamischen und statischen IP-Adressen
* Vergabe von IP-Adressen an entfernte Netzwerke über einen DHCP
Relay Router
* Vollautomatische Unterstützung der auf dem eisfair Server bekannten
Services (Wins, NTP, ...)
* Fertig konfigurierte Verbindung zum Nameserver BIND9 für
Nameserver- Aktualisierungen (DDNS)
* Unterstützung von Netzwerk-Boot für Diskless Clients mittels PXE
* Plugin-Schnittstelle für Zusatzpakete oder fortgeschrittene,
individuelle Konfigurationsanforderungen
Ziel bei der Erstellung dieses Paketes war die möglichst
vollautomatische Erstellung der Konfigurationsdatei. Dazu werden die
auf dem Server bekannten Einstellungen und Dienste als Basis genutzt.
Ein Anwender soll im Sinne der Philosophie von eisfair möglichst „easy“
dieses Paket konfigurieren können. Deshalb wurde bewusst eine
minimalistische Konfiguration und ein weitreichender Automatismus
implementiert.
Für fortgeschrittene Anwender und individuelle Netztopologien bzw.
Anforderungen kann auf eigenes Risiko die Plugin-Schnittstelle genutzt
werden.
Der DHCP Server dhcpd
Der DHCP Server vergibt IP-Adressen in lokale Netzwerken. Dafür gibt es
einen Pool von Adressen, die vergeben werden dürfen. Zudem bestimmt der
Server eine Zeitspanne, für die die vergebenen Adressen gültig sind.
Nach dieser Zeit muss der Client die Adresse erneuern. Im Normalfall
bekommt der Client die selbe Adresse erneut, aber darauf kann man sich
nicht verlassen.
Zusätzlich zur IP-Adresse sendet der Server Informationen über das
Standard Gateway und den Nameserver. Daher müssen diese Werte nicht am
Desktop PC eingegeben werden, solange das am DHCP Server korrekt
konfiguriert wurde. In diesem Paket werden diese Werte für die
gängigsten Netztopologien automatisch ermittelt und müssen daher nicht
manuell gepflegt werden. Unter Windows muss eine Option wie „IP-Adresse
automatisch beziehen“ gewählt werden. Leider unterscheidet sich hier
die Konfiguration von Version zu Version.
Zusätzlich zu normalen dynamischen IP-Adressen hat der Server eine
Funktion um einem Client immer die selbe IP-Adresse zuzuweisen. „So ein
Unfug“ – werden nun viele denken, aber es gibt dafür gute Gründe. So
müssen nicht sämtliche Client PCs neu konfiguriert werden, falls sich
etwas in der Netzwerkkonfiguration geändert hat (z.B. die Adresse des
Standard Gateways oder der Nameserver).
Konfiguration
Die Konfiguration kann über den Menüpunkt „Edit Configuration“ geändert
werden. Nach dem beenden des Editors wird diese dann geprüft. Sofern
ein Fehler aufgetreten ist sollten Sie diesen dann beheben.
Allgemeine Einstellungen [Basic configuration]
START_DHCPD
Setzen Sie diesen wert auf 'yes' um den DHCP Server zu
aktivieren und IP-Adressen zu vergeben.
Gültige Werte: yes,no
Standardeinstellung: START_DHCPD='no'
Dynamische IP-Bereiche [Dynamic IP Ranges]
DHCPD_DYNAMIC_N
Hier wird die Anzahl der Bereiche von IP-Adressen angegeben, die
per DHCP vergeben werden sollen.
Standardeinstellung: DHCPD_DYNAMIC_N='1'
DHCPD_DYNAMIC_x_ACTIVE
Hier kann für jeden einzelnen Bereich die Verteilung der
IP-Adressen deaktiviert ('no') werden.
Gültige Werte: yes,no
Standardeinstellung: DHCPD_DYNAMIC_1_ACTIVE='yes'
DHCPD_DYNAMIC_x_RANGE
Hier werden die Bereiche der IP-Adressen angegeben, die der
Server vergeben darf. Achtung! Hier dürfen keine IP-Adressen
angegeben werden, die einem Client fest zugeteilt sind oder die
Gateways oder andere Server nutzen.
Standardeinstellung: DHCPD_DYNAMIC_1_RANGE='192.168.6.100
192.168.6.150'
Statische IP-Adressen [Static IP Adresses]
DHCPD_CLIENT_N
Hier wird die Anzahl der festen IP-Adressen angegeben, die per
DHCP zugeteilt werden sollen. Dies ist eine spezielle Verteilung
von IP-Adressen, die auf Basis der Hardware Adresse der
Netzwerkkarte des Clients geschieht.
Beispiel: DHCPD_CLIENT_N='2'
DHCPD_CLIENT_x_NAME
Hier wird der Hostname des Clients angegeben, dem eine feste
Adresse zugeteilt werden soll. Wenn diese Feld leer gelassen
wird, wird der Hostname automatisch generiert.
Beispiel: DHCPD_CLIENT_1_NAME='fixed-ip-1'
DHCPD_CLIENT_x_ACTIVE
Hier kann ein einzelner Client deaktiviert ('no') werden. Um
einen Client zu verwenden, muss diese Variable auf 'yes' gesetzt
werden.
Gültige Werte: yes,no
Standardeinstellung: DHCPD_CLIENT_1_ACTIVE='no'
DHCPD_CLIENT_x_MAC
Hier wird die Hardware Adresse der Netzwerkkarte angegeben, der
die IP-Adresse per DHCP zugeteilt werden sollen. (Ethernet
Karten habe eine Adresse der Form 00:10:A4:0B:4D:36). Die
Adresse kann mittels winipcfg unter Windows 95/98/Me, „ipconfig
-all“ unter Windows NT/2000/XP und „ip addr show“ unter Linux
ausgelesen werden.
Beispiel: DHCPD_CLIENT_1_MAC='00:01:02:03:04:06:07'
DHCPD_CLIENT_x_IPV4
Dieser Eintrag enthält die IP-Adresse zur korrespondierenden
DHCPD_CLIENT_%_MAC. Achtung: hier darf keine Adresse aus dem in
DHCPD_DYNAMIC_%_RANGE angegebenen Bereich verwendet werden!
Beispiel: DHCPD_CLIENT_1_IPV4='192.168.6.2'
DHCPD_CLIENT_x_IPV6
Dieser Eintrag enthält die IPv6-Adresse zur korrespondierenden
DHCPD_CLIENT_%_MAC. Achtung: hier darf keine Adresse aus dem in
DHCPD_DYNAMIC_%_RANGE angegebenen Bereich verwendet werden!
Als IPv6 Adressen können nur folgende Adresstypen verwendet
werden: * Site Local IPv6 Addresses der Form fecx, fedx, feex,
fefx * Unique Local IPv6 Addresses der Form fcxx, fdxx * Global
Unicast Addresses der Form 2xxx, 3xxx (x steht für beliebige
Hexadezimalzeichen 0-9 und a-f)
ACHTUNG: Diese Option ist noch nicht verfügbar!
Beispiel: DHCPD_CLIENT_1_IPV6='2001:db8:0:f101::123'
DHCPD_CLIENT_x_NETBOOT
Wenn diskless Clients (z.B. PCs ohne eingebaute Festplatte) zum
Einsatz kommen sollen, kann mit dieser Option das Image
angegeben werden, des dem Client übermittelt werden soll.
Für den Einsatz von pxelinux über die Optionen
DHCPD_CLIENT_x_PXE_KERNEL usw. muss diese Option leer bleiben.
Durch die Angabe von 'yes' wird der Standard pxelinux.0 (in
diesem Paket enthalten) aktiviert. Zur Verwendung des PXE-Menüs
muss diese Option auf 'yes' gesetzt werden und die zu diesem
Client gehörigen PXE-Parameter müssen leer bleiben.
Um ein spezielles Netboot-Image (z.B. Etherboot) booten zu
können, muss dieses im Verzeichnis /srv/tftpboot abgelegt werden
und der hier angegebene Dateiname darf das führende
/srv/tftpboot nicht enthalten (z.B.
DHCPD_CLIENT_1_NETBOOT='3c90x.zpxe').
Standardeinstellung: DHCPD_CLIENT_1_NETBOOT='yes'
DHCPD_CLIENT_x_PXE_KERNEL
Beim Booten über PXE wird mit dieser Option der Kernel
angegeben, der dem Client übermittelt werden soll.
Der Kernel muss im Verzeichnis /srv/tftpboot/DHCPD_CLIENT_x_NAME
abgelegt sein und den hier angegebenen Namen bekommen. Zur
Übertragung des Kernel wird pxelinux verwendet, die
Konfiguration von pxelinux wird automatisch erstellt.
Um von der lokalen Festplatte oder Diskette zu booten oder um
ein Image mittels memdisk zu booten, muss diese Option leer
gelassen werden.
Standardeinstellung: DHCPD_CLIENT_1_PXE_KERNEL=”
DHCPD_CLIENT_x_PXE_INITRD
Hier wird der Name der zu DHCPD_CLIENT_x_PXE_KERNEL gehörigen
initrd angegeben. Diese muss im selben Verzeichnis wie der
Kernel liegen.
Bei der Verwendung von memdisk wird hier in analoger weise das
zu bootende Image angegeben.
Um von der lokalen Festplatte oder Diskette zu booten, muss
diese Option leer gelassen werden.
Standardeinstellung: DHCPD_CLIENT_1_PXE_INITRD=”
DHCPD_CLIENT_x_PXE_ROOTFS
Hier wird der Name des zu DHCPD_CLIENT_x_PXE_KERNEL gehörigen
rootfs angegeben.
Standardeinstellung: DHCPD_CLIENT_1_PXE_ROOTFS=”
DHCPD_CLIENT_x_PXE_APPEND
Diese Option dient zur Angabe weiterer Optionen bei der
Verwendung von pxelinux.
Standardeinstellung: DHCPD_CLIENT_1_PXE_APPEND=”
Entfernte Netzwerke [Remote Networks]
DHCPD_EXTRA_N
Hier wird die Anzahl der entfernten Netzwerke angegeben, an die
der Server IP-Adressen über ein DHCP Relay vergeben soll.
Standardeinstellung: DHCPD_EXTRA_N='0'
DHCPD_EXTRA_x_ACTIVE
Hier kann für ein einzelnes entferntes Netzwerk die Vergabe von
IP-Adressen deaktiviert ('no') werden.
Gültige Werte: yes,no
Standardeinstellung: DHCPD_EXTRA_1_ACTIVE='no'
DHCPD_EXTRA_x_RANGE
Hier werden die zusätzlichen IP-Bereiche angegeben, die von
diesem DHCP Server verwaltet werden. Im Gegensatz zu
DHCPD_DYNAMIC_%_RANGE sind diese Netzwerke nicht direkt an
diesen Server angeschlossen. Der Router zu diesem Netzwerk muss
den DHCP–RELAY Service anbieten.
Beispiel: DHCPD_EXTRA_1_RANGE='192.168.70.100 192.168.70.150'
DHCPD_EXTRA_x_NETMASK
Netzmaske für das entfernte Netzwerk.
Standardeinstellung: DHCPD_EXTRA_1_NETMASK='255.255.255.0'
DHCPD_EXTRA_x_DNS_SERVER
DNS–Server für das entfernte Netzwerk.
Standardeinstellung: DHCPD_EXTRA_1_DNS_SERVER='192.168.6.1'
DHCPD_EXTRA_x_GATEWAY
Default Route das entfernte Netzwerk.
Standardeinstellung: DHCPD_EXTRA_1_GATEWAY='192.168.70.1'
Aktivierung der Plugins [DHCP Server Plugins –> Plugin Activation]
DHCPD_PLUGIN_x
Hier kann die Verwendung der einzelnen, separat zu
installierenden Plugins aktiviert werden.
ACHTUNG: Bei Aktivierung eines Plugins kann es zu
unvorhersehbaren Fehlfunktionen kommen. Die Sicherstellung der
korrekten Funktion obliegt dem Autor des jeweiligen Plugins.
Gültige Werte: yes,no
Standardeinstellung: DHCPD_PLUGIN_x='no'
Anwendungsbeispiel: Booten der System Rescue CD per PXE
Als Basis dieses Beispiels dient das ISO–Image der unter
[4]SystemRescueCD, heruntergeladen werden kann. Im weiteren wird von
der Version 2.0.1 ausgegangen.
Das ISO-Image wird unter /tmp/systemrescuecd-x86-2.0.1.iso abgelegt.
Dann werden die notwendigen Dateien extrahiert:
modprobe loop
cd /tmp
mkdir -m 0755 iso
mount -o loop -t iso96600 systemrescuecd-x86-2.0.1.iso iso
mkdir -p -m 0755 /srv/tftpboot/sysrcd
cp iso/isolinux/initram.igz /srv/tftpboot/sysrcd/initram.igz
cp iso/isolinux/rescuecd /srv/tftpboot/sysrcd/rescuecd
cp iso/sysrcd.md5 /srv/tftpboot/sysrcd/sysrcd.md5
cp iso/sysrcd.dat /srv/tftpboot/sysrcd/sysrcd.dat
umount iso
rmdir iso
Danach kann man in der Konfiguration des dhcpd Pakets die
entsprechenden Eintragungen vornehmen. Dazu wird zunächst ein neuer
Eintrag dem PXE-Menü hinzugefügt. Dann werden dort folgende
Einstellungen vorgenommen:
DHCPD_PXE_*_NAME sysrescd
DHCPD_PXE_*_ACTIVE yes
DHCPD_PXE_*_DESCRIPTION System Rescue CD
DHCPD_PXE_*_KERNEL sysrcd/rescuecd
DHCPD_PXE_*_INITRD initram.igz
DHCPD_PXE_*_ROOTFS
DHCPD_PXE_*_APPEND dodhcp netboot=tftp://192.168.6.1/sysrcd/sysrcd.dat
Anstatt der 192.168.6.1 muss hier natürlich die IP-Adresse des DHCPD
und TFTP Servers eingetragen werden.
Nach dem aktivieren der Konfiguration steht dann den per PXE bootenden
Clients die System Rescue CD als zusätzliche Option zur Verfügung.
Administration
Zur Administration des DHCP Servers gibt es ein Untermenü im Setup.
Dort kann die Konfiguration bearbeitet (Edit Configuration), der Status
des Servers angezeigt bzw. dieser gestartet oder gestoppt werden.
Der Server kann von der Kommandozeile aus mit dem Script in /etc/init.d
gesteuert werden:
/etc/init.d/dhcpd start|stop|status|restart
Beschreibung der Plugin-Schnittstelle
Die Plugin-Schnittstelle wurde geschaffen, um Paketen Zugriff auf die
Funktionalitäten des dhcpd Pakets zu ermöglichen. Ein Beispiel dafür
wäre ein Paket, das ein über PXE bootbares Betriebssystem enthält.
Mittels eines Plugins kann dieses Betriebssystem in das PXE-Menü
eingehängt werden, ohne dass dazu die Konfiguration des dhcpd Pakets
angepasst werden muss.
Als Beispiel hierfür steht das Paket dhcpd_pxe_diag zur Verfügung, das
ein paar einfache Tools zur Hardwarediagnose (z.B. memtest86+) enthält.
Als weiteres Beispiel könnte ein Paket spezielle Hardware direkt in die
dhcpd Konfiguration mit eintragen lassen, sodass der Anwender hier
nicht mehr eingreifen muss.
Als weitere Anwendungsmöglichkeit der Plugin-Schnittstelle kann über
ein Plugin die Erstellung der dhcpd Konfiguration beeinflusst werden.
So kann bei umfangreicheren Netztopologien z.B. ein veränderter Gateway
oder ein spezieller WINS-Server oder NTP-Server zugesteuert werden.
Notfalls kann sogar am Ende des Erstellungsprozesses die gesamte dhcpd
Konfiguration (dhcpd.conf) nochmals angepasst oder überschrieben
werden.
Alle Plugins werden im Verzeichnis /var/install/plugin.d abgelegt und
müssen einen Namen der Form
dhcpd.[function].[pos][plugin-name].[extra].sh haben.
Der Name (plugin-name) muss dabei dem package name des eisfair Pakets
des Plugins entsprechen, wobei dem eigentlichen Namen noch die
Startpriorität (pos) bei mehreren installierten Plugins mittels 2
führender Ziffern vorangestellt wird. Der optionale Block extra kann
paketspezifisch frei gewählt werden.
Als Exits (function) stehen derzeit folgende Einstiegspunkte zur
Verfügung:
* config.pre
Der Aufruf erfolgt nach dem Einlesen der dhcpd Konfiguration und
dem Setzen der zusätzlichen Default-Parameter. Hier können einfach
eigene Erweiterungen vorgenommen werden, die analog der Pflege der
Konfigurationsdatei erfolgen können. Hier kommen in der folgenden
Verarbeitung noch sämtliche Automatismen zur Anwendung.
* config.main
Der Aufruf erfolgt nach Verarbeitung der Konfiguration, aber noch
vor Ausgabe der PXE und dhcpd Konfigurationsdateien. An dieser
Stelle wurde die Konfiguration in ein erweitertes Zwischenformat
(ebenfalls Variablen des Musters DHCPD_*) überführt und mit den auf
dem Server ermittelten Zusatzinformationen (z.B. verfügbares
Gateway, WINS-Server; siehe unten) angereichert.
* write4.pre
Diese Plugins werden zu Beginn der Ausgabe der IPv4 DHCP
Konfiguration /etc/dhcpd.conf aufgerufen. Die Standardausgabe ist
auf diese Datei umgeleitet, daher können hier mittels echo Ausgaben
zusätzliche Konfigurationen im oberen Bereich der Datei angefügt
werden.
* write6.pre
Diese Plugins werden zu Beginn der Ausgabe der IPv6 DHCP
Konfiguration /etc/dhcpd6.conf aufgerufen. Die Standardausgabe ist
auf diese Datei umgeleitet, daher können hier mittels echo Ausgaben
zusätzliche Konfigurationen im oberen Bereich der Datei angefügt
werden.
* dynamic4.main
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 subnet
Blöcke. Als Parameter werden zusätzlich der Devicename des NIC
sowie die IP-Adresse des Subnetzes übergeben. Die Standardausgabe
ist auf /etc/dhcpd.conf umgeleitet.
* dynamic6.main
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv6 subnet6
Blöcke. Als Parameter werden zusätzlich der Devicename des NIC
sowie die IP-Adresse des Subnetzes übergeben. Die Standardausgabe
ist auf /etc/dhcpd6.conf umgeleitet.
* static4.pre
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 group
Blöcke der statischen Clients aber noch vor den host Definitionen.
Als Parameter wird zusätzlich der Devicename des NIC übergeben. Die
Standardausgabe ist auf /etc/dhcpd.conf umgeleitet.
* static6.pre
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv6 group
Blöcke der statischen Clients aber noch vor den host Definitionen.
Als Parameter wird zusätzlich der Devicename des NIC übergeben. Die
Standardausgabe ist auf /etc/dhcpd6.conf umgeleitet.
* static4.main
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 group
Blöcke der statischen Clients innerhalb der jeweiligen host
Definition. Als Parameter werden zusätzlich der Devicename des NIC
sowie der Name des Clients übergeben. Die Standardausgabe ist auf
/etc/dhcpd.conf umgeleitet.
* static6.main
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv6 group
Blöcke der statischen Clients innerhalb der jeweiligen host
Definition. Als Parameter werden zusätzlich der Devicename des NIC
sowie der Name des Clients übergeben. Die Standardausgabe ist auf
/etc/dhcpd6.conf umgeleitet.
* static4.pxe
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4
PXE-Konfiguration des jeweiligen statischen Clients. Als Parameter
werden zusätzlich der Devicename des NIC sowie der Name des Clients
übergeben. Die Standardausgabe ist auf die jeweilige PXE
Koniguration unter /srv/tftpboot/pxelinux.cfg umgeleitet.
* static4.post
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 group
Blöcke der statischen Clients aber nach den host Definitionen. Als
Parameter wird zusätzlich der Devicename des NIC übergeben. Die
Standardausgabe ist auf /etc/dhcpd.conf umgeleitet.
* static6.post
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv6 group
Blöcke der statischen Clients aber nach den host Definitionen. Als
Parameter wird zusätzlich der Devicename des NIC übergeben. Die
Standardausgabe ist auf /etc/dhcpd6.conf umgeleitet.
* write4.post
Diese Plugins werden am Ende der Ausgabe der IPv4 DHCP
Konfiguration /etc/dhcpd.conf aufgerufen. Die Standardausgabe ist
auf diese Datei umgeleitet. Hier können mittels echo Ausgaben
zusätzliche Konfigurationen am Ende der Konfigurationsdatei
angefügt werden.
* write6.post
Diese Plugins werden am Ende der Ausgabe der IPv6 DHCP
Konfiguration /etc/dhcpd6.conf aufgerufen. Die Standardausgabe ist
auf diese Datei umgeleitet. Hier können mittels echo Ausgaben
zusätzliche Konfigurationen am Ende der Konfigurationsdatei
angefügt werden.
* pxe4.pre
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 Default
PXE Konfiguration /srv/tftpboot/pxelinux.cfg/default vor der
Ausgabe der einzelnen Einträge des PXE Menüs. Die Standardausgabe
ist auf die PXE Konfiguration umgeleitet.
* pxe4.main
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 Default
PXE Konfiguration /srv/tftpboot/pxelinux.cfg/default während der
Ausgabe der einzelnen Einträge des PXE Menüs. Als Parameter wird
zusätzlich der Name des jeweiligen Menüeintrags übergeben. Die
Standardausgabe ist auf die PXE Konfiguration umgeleitet.
* pxe4.post
Hier erfolgt der Aufruf bei der Ausgabe innerhalb der IPv4 Default
PXE Konfiguration /srv/tftpboot/pxelinux.cfg/default nach der
Ausgabe der einzelnen Einträge des PXE Menüs. Die Standardausgabe
ist auf die PXE Konfiguration umgeleitet.
* config.post
Der Aufruf erfolgt nach Ausgabe der PXE-Konfigurationen
/srv/tftpboot/pxelinux.cfg/* und nach Ausgabe der dhcpd
Konfiguration /etc/dhcpd.conf. Mittels eines hier agierenden
Plugins können diese direkt angepaßt werden.
ACHTUNG: Die Plugins werden inline ausgeführt, somit stehen sämtliche
Funktionen der eislib direkt zur Verfügung und auch die Variablen der
dhcpd Konfiguration können direkt verändert werden. Allerdings darf das
Plugin keinesfalls mittels exit beendet werden. Der Rücksprung sollte
daher mittels return erfolgen.
Neben dem Hinzufügen weiterer Einträge in einem pre-Plugin ist wohl die
Modifikation der Konfiguration während der main-Phase der häufigste
Anwendungsfall. Ein wichtiger Punkt hierbei ist, daß die Konfiguration
der Vergabe der lokalen dynamischen und statischen IP-Adressen
(DHCPD_DYNAMIC_* und DHCPD_CLIENT_*) unterhalb der Konfiguration der
jeweiligen Netzwerkkarte (DHCPD_NIC_x_RANGE_x bzw.
DHCPD_NIC_x_STATIC_x) verschoben wurde.
In diese Phase stehen neben den bereits aus der Konfiguration bekannten
Variablen (unter anderen) noch die Folgenden zur Verfügung:
* DHCPD_NIC_x_DEVICE
* DHCPD_NIC_x_DOMAINSEARCH
* DHCPD_NIC_x_IPV4_DNS
* DHCPD_NIC_x_IPV4_DNSREV
* DHCPD_NIC_x_IPV4_GATEWAY
* DHCPD_NIC_x_IPV4_WINSSERVER
* DHCPD_NIC_x_IPV4_MASTERBROWSER
* DHCPD_NIC_x_IPV4_LPRSERVER
* DHCPD_NIC_x_IPV4_NTPSERVER
* DHCPD_NIC_x_IPV4_TIMESERVER
* DHCPD_NIC_x_IPV4_TIMEOFFSET
* DHCPD_NIC_x_IPV4_POPSERVER
* DHCPD_NIC_x_IPV4_SMTPSERVER
* DHCPD_NIC_x_LS_TIME_DYN
* DHCPD_NIC_x_LS_TIME_DYN_MAX
* DHCPD_NIC_x_LS_TIME_DYN_ADAPTIVE
* DHCPD_NIC_x_LS_TIME_FIX
* DHCPD_NIC_x_LS_TIME_FIX_MAX
Als interessantes Beispiel können die in diesem Paket unter
/usr/share/doc/dhcpd/dhcpd.config.*.99trace.sh beiliegenden Plugins
dienen. Diese schreiben die zum Abschluß der jeweiligen Phase
vorliegenden Konfigurationsvariablen in eine Datei /tmp/dhcpd.*.trace.
Plugins können ihre Benutzeroberflächen oder Konfigurationseditoren im
Untermenü „DHCPD Server Plugins“ einhängen indem sie das Menu wie folgt
benennen setup.services.dhcpd.plugins.${meinplugin}.menu damit werden
automatisch eigene Einträge in das Menü
setup.services.dhcpd.plugins.menu hinzugefügt.
__________________________________________________________________