For changes for version 1.1.1 and newer, please see the CHANGES file. This is an attempt at an LDAP back-end for BIND 9 using the new simplified database interface "sdb". This is release 1.1.0 and has some new experimental features. For production I would recommend using 1.0 unless you really need the new features. I'm grateful though if you help test 1.1.0 and give positive or negative feedback. 1.1.1 (Not Yet Released) and later - see CHANGES file. To add the new 'dNSView' attribute, something like this can be written in the named.conf file (example courtesy Alex Bramley): view "view1" { match-clients { acl-for-one; }; zone "example.com" { type master; database "ldap ldap://127.0.0.1/<base>??sub?(|(dnsView=view1)(!(dnsView=*))) 86400"; } } To use the attribute in the LDAP object: dn: relativeDomainName=host1/view1,zoneName=example.com,ou=dns,dc=example,dc=com objectClass: dNSZone relativeDomainName: host1 relativeDomainName: host1/view1 zoneName: example.com dNSView: view1 aRecord: 192.168.1.1 dn: relativeDomainName=host1/view2,zoneName=example.com,ou=dns,dc=example,dc=com objectClass: dNSZone relativeDomainName: host1 relativeDomainName: host1/view2 zoneName: example.com dNSView: view2 aRecord: 192.168.2.1 1.1.0 has support for specifying search scope and which attributes to request in the URL. With OpenLDAP libraries it also supports URLs with ldaps and ldapi schemes for SSL and UNIX domain sockets resp. See INSTALL for more info on how to use these features. 1.0-beta fixes a large memory leak. An extension x-tls for enabling TLS has been added. 1.0-alpha uses LDAPv3 by default and also supports LDAP simple bind. That is, one can use plain text password for authentication. The bind dn and password is coded into the URL using extensions bindname and x-bindpw per RFC 2255. In 0.9 the code has been cleaned up a bit and should be slightly faster than previous versions. It also fixes an error with zone transfers (AXFR) and entries with multiple relativeDomainName values. The problem was that it would only use the first value in the result. There's no need to upgrade unless you use such entries. 0.8 uses asynchronous LDAP search which should give better performance. Thanks to Ashley Burston for providing patch. Another new feature is allowing filters in URLs. The syntax is as in RFC 2255. Few people will need this, but if you have say an internal and external version of the same zone, you could stick say o=internal and o=external into different entries, and specify for instance ldap://host/base???(o=internal) Some error logging has also been added. 0.7 allows space and other characters to be used in URLs by use of %-quoting. For instance space can be written as %20. It also fixes a problem with some servers and/or APIs that do not preserve attribute casing. 0.6 fixes some memory leaks present in older versions unless compiled with the RFC 1823 API. The big changes in 0.5 are thread support and improved connection handling. Multiple threads can now access the back-end simultaneously, and rather than having one connection per zone, there is now one connection per thread per LDAP server. This should help people with multiple CPUs and people with a huge number of zones. One final change is support for literal IPv6 addresses in LDAP URLs. At least OpenLDAP 2 has IPv6 support, so if you use OpenLDAP 2 libraries and server, you got all you need. If you have bug reports, fixes, comments, questions or whatever, please contact me. See also http://www.venaas.no/ldap/bind-sdb/ for information. See INSTALL for how to build, install and use. Stig Venaas <venaas@uninett.no> 2005-05-01