Ha azt kérdezik: milyen alternatívák vannak a BIND (Buggy Internet Name Domain) helyett, akkor a számos esetben a PowerDNS-t szokott szóba jönni. Ennek oka, hogy szemben a BIND-al, a Power DNS tervezésekor rögtön a backend alapú megközelítést alkalmazták, azaz a adatbázis számos különböző forrásból származhat (MySQL, PostgreSQL, BIND Zona állományok, LDAP stb.). Most az LDAP backenddel felszerelt PowerDNS konfigurálását és használatát mutatom be röviden.
Debian SID rendszeren a rendszer telepítése az alábbi paranccsal történik:
apt-get install pdns-backend-ldap
A teleptő néhány egyszerű kérdést tesz fel a szerver konfigurációjára. Telepítés után az /etc/powerdns/pdns.conf állományban és a /etc/powerdns/pdns.d könyvtárban találhatóak a konfigurációs állományok. Az LDAP backend konfigurációjához az /etc/powerdns/pdns.d/pds.local állományba írjuk a következőket:
launch=ldap ldap-host=127.0.0.1:389 ldap-starttls=no ldap-basedn=o=PDNS,dc=ldaptest,dc=hu ldap-binddn=o=PDNS,dc=ldaptest,dc=hu ldap-secret=secret ldap-method=tree
A PowerDNS az ldap-basedn megadott csomópont alatt fogja keresni a bejegyzéseket, miután a ldap-binddn és a ldap-secret adatok segítségével csatlakozott és azonosította magát a ldap-host-ben megadott LDAP szervernél. A ldap-method értéke lehet simple, tree vagy strict. A simple és strict esetén az associatedDomain attribútumot használja a név beazonosítására, míg a tree esetén a domain nevet leképezi az LDAP fá stuktúrára, azaz n1.example.test esetén az dc=n1,dc=example,dc=test,o=PDNS,dc=ldaptest,dc=hu bejegyést fogja keresni.
A PowserDNS alapértelmezésben a Cosine sémát használja, ami megtalálható az OpenLDAP csomagban /etc/ldap/scheme/cosine.schema néven. Az LDAP adatbázisban a fenti konfiguráció estén az alábbi bejegyzéseket tegyük, ami meg fog felelni az előző fejezetben bemutatott BIND zóná állománynak:
dn: dc=test,o=PDNS,dc=ldaptest,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: test associatedDomain: test nSRecord: localhost sOARecord: localhost root@localhost 1 604800 86400 2419200 86400 dn: dc=example,dc=test,o=PDNS,dc=ldaptest,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: example associatedDomain: example.test nSRecord: localhost sOARecord: localhost root@localhost 1 604800 86400 2419200 86400 dn: dc=n1,dc=example,dc=test,o=PDNS,dc=ldaptest,dc=hu objectClass: top objectClass: dcObject objectClass: domainRelatedObject objectClass: domain objectClass: dNSDomain dc: n1 associatedDomain: n1.example.test aRecord: 1.1.1.1
Fontos, hogy a domain komponensek esetén legalább egy SOA rekord legyen definiálva.
A PowerDNS tartalmaz egy zone2ldap segédprogramot, amivel a BIND felhasználók rögtön PowerDNS kompatibilis LDIF állományokat hozhatnak létre a meglévő zóna állományaikból. Továbbá a csomagban találunk egy dnsdomain2.scheme nevű állományt is. Ennek oka pedig az, hogy a Cosine séma csak a legalapvetőbb DNS rekord típusokat tartalmazza: A, MD, MX, NS, SOA, CNAME. Ez számos esetben kevésnek bizonyulhat (pl.: IPv6 használata esetén). Ekkor vehetjük igénybe az ebben az állományban definált dNSDomain2 objectclass-ot.
A tisztesség úgy kívánja, hogy megemlítsük az LDAPDNS projektet is. Ennek jelenleg stabil 2.0x változata egy kicsiny és egyszerű DNS szerver ami több különféle DNS-hez kapcsolódó LDAP sémából tud dolgozni (Cosine, dNSZone, MS DNS Active Directory sémája stb.). Az ldapdns csomag telepítése után az /etc/ldapdns.conf állományban találhatjuk a konfigurációs beállításokat. A példa kedvért a PowerDNS-nél használt adatbázist az alábbi konfigurációs bejegyzésekkel tudjuk használni:
DNS="." LDAP_HOST="127.0.0.1" LDAP_AUTH="simple" LDAP_AUTH_NAME="o=PDNS,dc=ldaptest,dc=hu" LDAP_SUFFIX="o=PDNS,dc=ldaptest,dc=hu" SCHEMA=cosine
A csatlakozáshoz szükséges jelszót a /var/lib/ldapdns/password állományban fogja keresni.
Sajnos az LDAPDNS egyszerűsége ellenére teljesítményben meg sem közelíti akár a BIND akár a PowerDNS megoldásokat. Fejlesztése is leállt és a 2003-ban beharangozott, javított 3-as változat sosem került stabil állapotba.