[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
config problem
My first setup for a replicated ldap service was as follows:
(I use a dirty abbreviation but I think this increases readability)
Server A Server B
suffix dc=a,dc=de suffix dc=a,dc=de
replica host="Server A" -> updatedn "manager"
binddn="manager"
Server A was replicated 1:1 to Server B.
So far everything worked fine (the usage of manager for
replication isn't a good idea, but here it works if you
update all your data from Server A)
Under dc=a,dc=de I have 3 subsections:
ou=x,dc=a,dc=de is mainly used on Server A read/write
ou=y,dc=a,dc=de is mainly used on Server B read/write
ou=z,dc=a,dc=de is used on both Servers read only
Server A and B are positioned at different localities
which are connected via a VPN. So mainly for availability
I want to do something like this:
Server A Server B
suffix ou=x,dc=a,dc=de -> suffix ou=x,dc=a,dc=de
suffix ou=y,dc=a,dc=de <- suffix ou=y,dc=a,dc=de
suffix ou=z,dc=a,dc=de -> suffix ou=z,dc=a,dc=de
But how do I achieve this?
My first attempt was still all data in one database
but to replicate only subtrees:
Server A: Server B:
suffix dc=a,dc=de suffix dc=a,dc=de
replica host="Server B" updatedn "replicator"
suffix="ou=x,dc=a,dc=de" -> updateref "Server A"
suffix="ou=z,dc=a,dc=de"
binddn="replicator"
updatedn "replicator" <- replica host="Server A"
updateref "Server B" suffix="ou=y,dc=a,dc=de"
binddn="replicator"
Trying to set this up I realized that it was necessary to use
a seperate user for replication because each server must be
able to differentiate between "regular" updates from users
and "replication updates".
But when I specify "updatedn/updateref" (and this has to be done
on both sides) then nobody (but replicator) is able to modify
any data, because he is referred to the other server.
(BTW: if there would be the possibility to specify a base-dn
for "updatedn" then I think the problem would be solved)
The second idea that came in my mind was something like this:
Sever A Server B
1.db suffix dc=a,dc=de suffix dc=a,dc=de
replica host="Server B" -> updatedn replicator
binddn="replicator"
2.db suffix ou=y,dc=a,dc=de <- suffix ou=y,dc=a,dc=de
updatedn replicator replica host="Server A"
binddn="replicator"
This way you get around the problem that you can't update
1.db von Server A (2.db on Server B) as a normal user.
But when I tried this (first without the replication stuff)
I realized that such a layout where one db is a subordinate
of another isn't possible at all (is that right?).
When I try to add something to the 2.db on A then it is stored
in the 1.db.
Another possibility would be to use 3 different databases:
1.db suffix ou=x,dc=a,dc=de
2.db suffix ou=x,dc=a,dc=de
3.db suffix ou=x,dc=a,dc=de
That would surely work but for me this doesn't *feel* good.
3 db's all with a same base (dc=a,dc=de).
Is this the only solution for the problem?
Jörg