[Date Prev][Date Next] [Chronological] [Thread] [Top]

Problems understanding referrals



I hope someone can help to push me in the right direction with setting up
two OpenLDAP servers and dedicating each to a particular sub-branch of an
information tree.  I have a schema configured to store "People" and
"Workstations" information, and I can store a couple sample objects/records
in each branch on a single server.  The basic tree looks like

          SINGLE SERVER
               top
                |
                |
              o=mrk
              /   \
             /     \
      ou=People   ou=Workstations

 and I want to split the work to two servers so that the actual data looks
like...

       SERVER A      SERVER B
          top          top
           |            |
           |            |
         o=mrk        o=mrk
         /                \
        /                  \
 ou=People             ou=Workstations

but I want an individual to be able to make an ldapsearch on either server
and have the response look like the original single-server solution.

I've tried setting the "referral" parameter in /etc/openldap/slapd.conf to
point to the other server.  I've also tried adding referral nodes on each
server.

My biggest problem is that I don't know which client/search tools actually
know how to follow referrals and if it's a big deal to get this sort of
transparent referral to work.  I've tried using both the ldapsearch command
line program and Netscape's built-in ldap URL feature, but I don't know if
they are even following appropriate referrals or if the referrals are
configured properly or not.  (In other words, I don't understand the results
enough to formulate a diagnostic strategy.)

On some of my permutations, I've gotten the message "Partial results and
referral received" from ldapsearch, and I don't know if it's an error or
not.  What I want is to be able to say:

ldapsearch -h "server_b" -b "o=mrk" "cn=somebody,ou=People"

    or similarly, browse the URL with Netscape

ldap://server_b/cn=somebody,ou=People,o=mrk

and get the same (successfull) results that I get if I set the query against
server_a (where the data are stored) instead.

Can anyone enlighten me?

Much appreciated...
Murray Todd Williams