Bind
Nötige Modifikationen
Um den Nameserver mit LDAP zu betreiben muss Bind zuerst gepatcht werden.
Die aktuellste Version dieser Patches kann man
hier
herunterladen, eine nicht ganz aktuelle Version findet ist aber bereits im
Bind-Paket selbst enthalten - im Unterverzeichnis contrib/sdb/ldap.
Nachdem die in der Datei INSTALL bzw. INSTALL.ldap beschriebenen
Änderungen am Quellcode vorgenommen wurden muss das Paket neu übersetzt
und installiert werden. Bei SuSE 9.3 ist dieser Patch bereits integriert.
Neues Schema
Der LDAP Patch für den Named-Daemon erfordert eine neues Schema
(
dNSZone),
die man in die Datei /etc/openldap/slapd.conf des LDAP Servers
einttragen muss:
... include /etc/openldap/schema/dnszone.schema ...
Weiterhin empfiehlt sich das Anlegen von Indices für einige Attribute:
... # Bind indices index zoneName eq index relativeDomainName eq ...
Tools
Mit Hilfe des Programms zone2ldap, dass in den Patches ebenfalls enthalten ist, lassen sich vorhandene Domain-Files direkt ins LDAP-Verzeichnis übertragen.
Bind Konfiguration
Die Quelle, aus der Bind seine DNS Daten bezieht wird in der Datei /etc/named.conf für jede Domain festgelegt. Damit die Namensauflösung in beide Richtungen (DNS-Name zu IP, IP zu DNS-Name) funktioniert braucht man zwei Zonen. Dabei sollte man darauf achten, nicht den DNS Namen des LDAP Servers, sondern seine IP-Adresse zu verwenden (sonst verweigert Bind die Kontaktaufnahme zum LDAP Server).
...
# IP - DNS-Name
zone "mydomain.de" {
type master;
database "ldap ldap://127.0.0.1/ou=mydomain,ou=DNS,dc=mydomain,dc=de 172800";
};
# DNS-Name -> IP
zone "0.168.192.in-addr.arpa" {
type master;
database "ldap ldap://127.0.0.1/ou=mydomain,ou=DNS,dc=mydomain,dc=de 172800";
};
...
In der Konfiguration des DNS Servers sollte man (aus naheliegenden Gründen) die Verwendung von DNS-Namen vermeiden und stattdessen IP-Adressen direkt eintragen. Beim Start durchsucht Bind den angegebenen LDAP Baum mit folgendern Filtern:
filter="(&(zoneName=0.168.192.in-addr.arpa)(relativeDomainName=@))" filter="(&(zoneName=mydomain.de)(relativeDomainName=@))"
Mit dem folgenden LDIF-File kann man die entsprechenden Einträge erzeugen. Im Beispiel werden diese beiden Zonen (mydomain.de, 0.168.192.in-addr.arpa) sogar in einem Knoten abgelegt:
version: 1 dn: relativeDomainName=@,ou=mydomain,ou=DNS,dc=mydomain,dc=de objectClass: dNSZone objectClass: top nSRecord: localhost. relativeDomainName: @ sOARecord: mydomain.de. dnsadmin.mydomain.de. 1 172800 14400 3628800 604800 zoneName: mydomain.de zoneName: 0.168.192.in-addr.arpa
Nun soll der erste Client im DNS eingetragen werden (client1.mydomain.de, 192.168.0.2). Wichtig sind auch hier wieder die Einträge der zugehörigen Zonen (s. oben). Im Feld pTRRecord wird der komplette Rechnername abgelegt, und aRecord beinhaltet die vollständige IP-Adresse. Analog existieren kurze Einträge für IP und Namen (relativ zu den Zonen) in den Feldern relativeDomainName:
version: 1 dn: relativeDomainName=client1,ou=mydomain,ou=DNS,dc=mydomain,dc=de objectClass: dNSZone objectClass: top aRecord: 192.168.0.2 pTRRecord: client1.mydomain.de. relativeDomainName: client1 relativeDomainName: 2 zoneName: mydomain.de zoneName: 0.168.192.in-addr.arpa



