Ansatz:
- ein DHCP-Server wird primary, einer secondary 
- dyn. range nur auf primary
	- Vorteile:	Keine Teilung der dyn. range ntig
				leases2ldap mu nur auf einem Rechner laufen
	- Nachteil: Ausfall primary => keine neuen Gerte installierbar

Anforderungen:
- secondary:
	- es mu immer mglichst zeitnah der gleiche Zustand wie
		wie auf dem primary (nur ohne dyn. range) hergestellt werden
	- darf keine DHCPNAKs schicken (dhcpd.conf: not authoritative)
		Grund: der secondary wrde Anfragen, die keinen fixed-address
		Eintrag haben mit DHCPNAKs beantworten, das mu unterbunden
		werden, da der primary diese Antwort schickt.
	- mu auch unabhngig vom primary laufen
	- ldap2dhcp mu in der Lage sein, eine dhcpd.conf ohne dyn. ranges
	  zu erstellen

Ablauf:
- Solange der primary luft, sorgt dieser fr die Aktualisierung des
	secondary, d.h. nachdem leases2ldap den dhcp-Daemon erfolgreich
	neu gestartet hat, wird per ssh auf dem secondary die Aktualisierung
	durch Aufruf von ldap2dhcp aktiviert. So ist gewhrleistet, da nicht
	beide DHCP-Server zur gleichen Zeit den Daemon neu starten, was die
	Verfgbarkeit des Dienstes einschrnken wrde.
- Auf dem secondary luft ein Script per cron alle z.B. alle 5 Minuten,
	welches nur dann ldap2dhcp aufruft, wenn der primary nicht per ping
	erreicht werden kann.
	
Fragen/Probleme/Voraussetzungen:
- default-Einstellung des dhcpd ist, da Anfragen, die nicht beantwortet
	werden knnen (z.B. kein fixed-Address Eintrag vorhanden und keine
	dyn. Range), eine ablehnende Antwort senden. Dieses Verhalten kann
	aber abgestellt werden, so da eine Anfrage, die mehrere DHCP-Server
	erreicht in jedem Fall eine positive Antwort zur Folge hat.
	(Parameter not authoritative in dhcpd.conf)
- Router/CSS
	- Router mssen DHCP-Anfragen an 2 Server relayen knnen
	- wenn das nicht geht, mu ein CSS in der Lage sein, die Anfragen,
		die auf einer IP auflaufen an zwei Server zu verteilen
	- wenn das auch nicht geht, kann ein Linux-Server als DHCP-Relay
		konfiguriert werden, der dann die Anfragen an beide beide DHCP-
		Server verteilt (dies mte dann z.B. mit Hearbeat o. Failsafe
		redundant mit 2 Rechnern ausgelegt werden.)

Erforderliche Erweiterungen an ldap2dhcp:
- Konfigurationsparameter zur Erzeugung der dhcpd.conf ohne dyn. Range
	(entspricht dem Verhalten bei dbkDynamicIp=FALSE)
- Konfigurationsparameter zum setzen des not authoritative Parameters

Sicherheitskonzept:
- ldap2dhcp mu nicht zwangslufig als root ablaufen, es mu Schreibrecht
	auf /etc/dhcpd.conf haben. Das aufrufende Script mu in der Lage
	sein, den dhcpd neuzustarten (entweder als root oder per sudo).

Umsetzung des Aufrufs von ldap2dhcp.pl auf dem secondary
--------------------------------------------------------
Das auf dem primary laufende ldap2dhcp.pl kann anhand der nderung
der dhcpd.conf erkennen, da auch der secondary aktualisiert werden
mu. Es kann dann dafr sorgen, da auch der secondary aktualisiert wird.
Dazu mu ldap2dhcp.pl bekannt sein, ob es primary oder secondary ist.
Im primary-modus mu es dem aufrufenden Script die ntigen Befehle
fr die Aktualisierung des secondary bergeben, also per ssh ldap2dhcp.pl
im secondary-modus starten und anschlieend den dhcp-Daemon neu laden.
Weitere erforderliche Parameter:
	- Hostname des secondary Servers
	- Username, unter dem ldap2dhcp.pl auf dem secondary laufen soll

Setup des secondary
-------------------
- Paket dhcp installieren
- Header-File vom primary kopieren (/usr/local/etc/dhcpd.conf.header)
- Config-File fr Scripts kopieren (/etc/DSAP/config) und anpassen
- einen User anlegen (z.B. dhcpadmin), unter dem ldap2dhcp.pl auf dem
	secondary laufen soll. Auerdem eine Gruppe anlegen (z.B. dhcp),
	dhcpadmin sollte nicht in der Gruppe users sein:
		groupadd dhcp
		useradd -c "DHCP Admin" -g dhcp -m dhcpadmin
		passwd dhcpadmin
- ssh public-key bertragen, so da der User, unter dem leases2ldap.pl auf
	dem primary luft per ssh dhcpadmin@secondary ohne passwort einloggen kann
	(z.B. primary:/root/.ssh/identity.pub in
			slave:/home/dhcpadmin/.ssh/authorized_keys eintragen)
- Problem: dhcpadmin mu die Konfigurationsdatei fr den DHCP Daemon
	schreiben, normalerweise /etc/dhcpd.conf, aber /etc hat nur fr
	root Schreibrecht, das sollte aus Sicherheitsgrnden auch nicht gendert
	werden.
  Lsung: neues Verzeichnis /etc/dhcpd anlegen und permissions so
	setzen, da dhcpadmin schreiben darf. Diese Lsung erfordert das
	ndern des dhcpd Startscripts (/etc/init.d/dhcp), da dhcpd mit dem
	Parameter -cf /etc/dhcpd/dhcpd.conf aufgerufen werden mu. 
	(Bei Updates des dhcp-Pakets mu diese nderung nachgezogen werden).


Tests:
------
1.) Test des Scripts
a) Aufruf ldap2dhcp.pl mit --nodynrange
   Ergebnis: die generierte dhcpd.conf darf keine range Deklaration
   enthalten.
b) Aufruf ldap2dhcp.pl mit --notauthoritative
   Ergebnis: die generierte dhcpd.conf mu "not authoritative;" in
   jeder subnet Deklaration enthalten.

2.) Test der Verfgbarkeit
a) beide Server laufen:
	- alle DHCP Anfragen mssen korrekt beantwortet werden
b) nur primary luft
	- primary mu alle Anfragen beantworten
c) nur secondary luft
	- Anfragen von Clients mit fixed-address Eintrgen werden beantwortet
	- Anfragen ohne fixed-address Eintrag werden nicht beantwortet

