ISC DHCP Server (DHCP)
DHCP Server
Auch der ISC DHCP Server kann seine Daten von einem LDAP Server beziehen. Voraussetzung dafür ist jedoch eine gepatchte Version der Software (
Patch).
Da der DHCP Server recht empfindlich auf Verweise auf nicht existende Knoten reagiert, ist es am einfachsten eine bestehende /etc/dhcpd.conf umzuwandeln und ins Verzeichnis zu importieren um sie später zu erweitern. Dafür wird ein eigenes Perl-Skript mitgeliefert:
linux ~# dhcpd-conf-to-ldap.pl < /etc/dhcpd.conf > dhcpd.ldif
Die nötigen Schemata bring der ISC DHCP Server gleich mit, und dem LDAP Server müssen diese auch noch durch einen Eintrag in seiner Konfigurationsdatei /etc/openldap/slapd.conf bekannt gemacht werden:
... include /etc/openldap/schema/dhcp.schema ...
Die Konfigurationsdatei /etc/dhcpd.conf muss dann nur noch folgende Zeilen enthalten:
ldap-server "ldapserver.mydomain.de"; ldap-port 389; ldap-username "cn=Manager,dc=mydomain,dc=de"; ldap-password "Passwort"; ldap-base-dn "cn=DHCP Server,dc=mydomain, dc=de"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap-startup.log";
Zum Debuggen empfiehlt es sich die ldap-method auf static zu setzen. Bei dieser Einstellung werden die Daten nur beim Starten des DHCP-Servers vom LDAP-Server geholt, Fehler fallen hier also sofort auf. Den Inhalt der dabei verwendeten Konfigurationsdatei kann man sich dabei in der unter ldap-debug-file angegebenen Datei betrachten.
Zur Optimierung wird auch hier das Anlegen verschiedener Indices empfohlen, die in der Konfiguration des OpenLDAP Servers, also in der Datei /etc/openldap/slapd.conf eingetragen werden sollten:
... # DHCP indices index dhcpHWAddress eq index dhcpClassData eq index dhcpPrimaryDN eq index dhcpSecondaryDN eq ...
Um DHCP-Hosts ins LDAP einzufügen benötigt man eine LDIF-File, die alle wichtigen Daten enthält. Leider können viele LDAP-Browser die MAC-Adresse nicht richtig abspeichern.
dn: cn={Hostname},ou=Hosts,cn=DHCP Server,dc=mydomain,dc=de
cn: {Hostname}
dhcpStatements: fixed-address {Hostname oder IP}
objectClass: dhcpHost
objectClass: top
dhcpHWAddress: ethernet {MAC-Addres}
Die Deklaration eines Subnetzes sieht folgendermaßen aus. Wieder als LDIF-File, dies kann jedoch auch mit einem LDAP-Browser eingetragen werden.
dn: cn=131.188.76.0,ou=Subnet,cn=DHCP Server,dc=mydomain,dc=de
objectClass: dhcpSubnet
objectClass: dhcpOptions
objectClass: top
cn: 131.188.76.0
dhcpNetMask: 24
dhcpOption: domain-name "rrze.uni-erlangen.de"
dhcpOption: domain-name-servers {DNS-Server}
dhcpOption: routers {Gateway}
dhcpOption: broadcast-address {Broadcast-Adresse}



