A.12. LDAP backend

Warning

This documentation has moved to its own page. The information in this chapter may be outdated!

The main author for this module is Norbert Sendetzky who also has his own PowerDNS-LDAP page.

He also maintains the LDAP backends documentation there. The information below may be outdated!

Table A-11. LDAP backend capabilities

NativeYes
MasterNo
SlaveNo
SuperslaveNo
AutoserialYes

As of 2.9.6, PowerDNS comes with an LDAP backend. The code for this was submitted by Norbert Sendetzky.

The following settings are available to configure the LDAP backend:

ldap-host

LDAP host to connect to, defaults to localhost.

ldap-port

LDAP port to connect to, defaults to 389.

ldap-basedn

Root for DNS searches. Must be configured before the LDAP backend will work.

ldap-binddn

Distinguished Name to bind with to the LDAP server. Defaults to the empty string for anonymous bind.

ldap-secret

Secret to bind with to LDAP server. Defaults to the empty string for anonymous bind.

ldap-default-ttl

TTL for records with no dnsttl attribute. Defaults to 86400 seconds.

The schema used is that defined by RFC 1279 and is present in OpenLDAP under the name 'cosine.schema'. An example LDIF file:

# zone related things including SOA, NS and MX records

dn: dc=example
objectclass: top
objectclass: dnsdomain
objectclass: domainrelatedobject
dc: example
soarecord: ns.example.dom hostmaster@example.dom 2002010401 1800 3600 604800 84600
nsrecord: ns.example.dom
mxrecord: 10 mail.example.dom
mxrecord: 20 mail2.example.dom
associateddomain: example.dom


# Simple record (mail.example.dom has address 172.168.0.2)

dn: dc=mail,dc=example
objectclass: top
objectclass: dnsdomain
objectclass: domainrelatedobject
dc: mail
arecord: 172.168.0.2
associateddomain: mail.example.dom

# There may more than one entry per record
# This is also applicable to all other records including "associateddomain"
# but not for a CNAME record

dn: dc=server,dc=snapcount
objectclass: top
objectclass: dnsdomain
objectclass: domainrelatedobject
dc: server
arecord: 10.1.0.1
arecord: 172.168.0.1
associateddomain: server.example.dom


# domain alias ({mail2,ns}.example.dom is CNAME for server.example.dom)
# cnamerecord must only contain one entry

dn: dc=backup,dc=snapcount
objectclass: top
objectclass: dnsdomain
objectclass: domainrelatedobject
dc: server
cnamerecord: server.example.dom
associateddomain: mail2.example.dom
associateddomain: ns.example.dom