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.