Thư mục được chia thành nhiều phân vùng, được đặt trên nhiều server. Ví dụ hình 5-2, bậc cao nhất của thư mục (dc=plainjoe,dc=org) được duy trì tại 1 nơi, và server chứa thơng tin host
(ou=hosts,dc=plainjoe,dc=org) thì được quản lý ở một nơi khác. Làm sao để kết hợp 2 thư mục này lại vào 1 DIT logic.
Định nghĩa phân vùng ou=hosts của server thứ hai rất quen thuộc với phần cơ sở dữ liệu mà chúng ta đã dùng. Thay đổi chính là phần hậu tố (ou=hosts,dc=plainjoe,dc=org) và thư mục mà file BerkeleyDB được lưu trữ (/var/ldap/hosts/). Phần rootdn (cn=Manager,ou=hosts,dc=plainjoe,dc=org) phải được update.
######################################################### Partition on second server holding ou=hosts ## Partition on second server holding ou=hosts
database bdb
## Define the root suffix you serve. suffix "ou=hosts,dc=plainjoe,dc=org"
## Define a root DN for superuser privileges.
rootdn "cn=Manager,ou=hosts,dc=plainjoe,dc=org"
## Define the password used with rootdn. This is the Base64-encoded MD5 hash of ## "secret."
rootpw {SSHA}2aksIaicAvwc+DhCrXUFlhgWsbBJPLxy
## Directory containing the database files directory /var/ldap/hosts
## Files should be created rw for the owner **only**. mode 0600
## Indexes to maintain index objectClass eq
## db tuning parameters; cache 2,000 entries in memory cachesize 2000
# Simple ACL granting read access to the world access to *
by * read
Chương 2 đã đề cập đến vấn đề phân phối thư mục được thực hiện bởi “Referrals” (trỏ từ root của subtree đến server của thư mục lớn) và “Reference” (nĩ trỏ từ một điểm trong thư mục lớn về subtree hoặc phân vùng). Theo hình 5-2 thì Referrals và Reference sẽ link phân vùng
dc=plainjoe,dc=org đến phân vùng ou=hosts,dc=plainjoe,dc=org
Việc kết nối này cho phép khách hàng yêu cầu tìm kiếm từ bất kỳ node nào trên thư mục. Nếu khơng tìm được, reference URI sẽ được gởi lại khách hàng, trong đĩ cĩ lựa chọn tiếp tục tìm kiếm trên một server hoặc một hậu tố khác.
OpenLDAP dùng referral để định nghĩa một LDAP URI cho host mà khách hàng nên liên hệ trong trường hợp các yêu cầu của khách hàng khơng thể thực hiện.
## slapd.conf for ou=hosts (ldap2.plainjoe.org) ##
## <Preceding portion of global section omitted> ## . . .
## Define the URL (only host:port) for the host that clients should contact in the ## event that you cannot service their requests.
referral ldap://master.plainjoe.org:389/
References được thực hiện như một nội dung trong thư mục. Các mục này sử dụng cấu trúc lớp
đối lượng của referrals. Lớp này gồm một yêu cầu tên thuộc tính là ref. Để kết nối phân vùng cao nhất trong hình 5-3 với ou people, ta phải tạo mục tham chiếu đến thư mục. Giả sử rằng
chuẩn:
$ ldapadd -H ldap://localhost/ -D "cn=Manager,dc=plainjoe,dc=org" \ > -w secret -x << EOR > dn: ou=hosts,dc=plainjoe,dc=org > ou: people > objectClass: extensibleObject > objectClass: referral > ref: ldap://ldap2.plainjoe.org/ou=hosts,dc=plainjoe,dc=org > EOR
adding new entry "ou=hosts,dc=plainjoe,dc=org"
Sau đĩ ta tạo một mẫu trong ou=hosts của cây ldap2.plainjoe.org để sau này dùng:
$ ldapadd -H ldap://ldap2.plainjoe.org/ \ > -D "cn=Manager,ou=hosts,dc=plainjoe,dc=org" \ > -w secret -x << EOR > dn: ou=hosts,dc=plainjoe,dc=org > objectclass: organizationalUnit > ou: hosts
> description: Container for host information in plainjoe.org domain > EOR