We have the following setup:

  • Two OpenLDAP servers - openldap1, openldap2
  • They are to be set up as N-Way multi-master
  • Certificates are all set up correctly with alternate names etc and trust each other

I want slapd to bind to all interfaces on the server, so was hoping to run the service as

/usr/sbin/slapd -u ldap -h ldaps:// 

However, this gives

5cabf191 <<< dnNormalize: <cn=subschema>
5cabf191 read_config: no serverID / URL match found. Check slapd -h arguments.
5cabf191 slapd destroy: freeing system resources.
5cabf191 syncinfo_free: rid=002
5cabf191 syncinfo_free: rid=002
5cabf191 slapd stopped.
5cabf191 connections_destroy: nothing to destroy.

I think i understand this to be because of our replication setup which looks like the following ServerIDs:

dn: cn=config
objectClass: olcGlobal
cn: config
olcTLSCertificateKeyFile: /etc/openldap/certs/keys/ldapskey.pem
olcTLSCertificateFile: /etc/openldap/certs/ldapscert.pem
olcTLSCACertificateFile: /etc/openldap/certs/cacert.pem
olcServerID: 1 ldaps://openldap1
olcServerID: 2 ldaps://openldap2
entryCSN: 20190409004218.061111Z#000000#000#000000
modifiersName: cn=config
modifyTimestamp: 20190409004218Z
contextCSN: 20190409004339.981340Z#000000#000#000000

I think my error is because slapd -h argument cannot match to a serverID in the list?

If this is the case, how do I work around it?

If i manually run the following it, works, but this doesn't help me bind to all interfaces.

/usr/sbin/slapd -u ldap -h ldaps://openldap1

I have an IP that floats between both servers to give high availability if one were to go down, so need slapd to listen on all interfaces.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.