Unlike traditional bind-sdb LDAP
plugin,
bind-dyndb-ldap requires data in
DIT to be
organized in three-level hierarchy:
cn=dns
├── idnsname=zone.tld.
│ ├── idnsname=name1
│ ├── idnsname=name2
│ └── idnsname=*
└── idnsname=fwd.zone.tld.
cn=dns
idnsConfig object class.).cn=dns is not mandatory as base-DN can be freely configured
in named.conf.idnsname=zone.tld., cn=dns, dc=test
zone.tld.idnsZone + idnsRecord object class"zone.tld. +
configuration attributes specific for particular zone (e.g. zone
transfer ACL as idnsAllowTransfer attribute)name1.zone.tld.)idnsname=fwd.zone.tld., cn=dns, dc=test
fwd.zone.tld.idnsForwardZone object classidnsForwarders
attributeidnsname=name1, idnsname=zone.tld., cn=dns
name1.zone.tld.idnsRecord object classname1.zone.tld. are represented as
attributes in this objectA record is represented as aRecord attributeidnsname=*, idnsname=zone.tld., cn=dns
*.zone.tld.idnsRecord object class*.zone.tld. are represented as attributes in
this objectA record is represented as aRecord attributebind-dyndb-ldap‘s schema combines several other schemas together:
CNAME records as
multi-valued even if they should
be
in fact single-valued.idns*
object classes and attributes which glue everything together.