Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
LLOADD.CONF(5)		      File Formats Manual		LLOADD.CONF(5)

NAME
       lloadd.conf  - configuration file for lloadd, the stand-alone LDAP dae-
       mon

SYNOPSIS
       /usr/local/etc/openldap/lloadd.conf

DESCRIPTION
       The file	/usr/local/etc/openldap/lloadd.conf contains configuration in-
       formation for the lloadd(8)daemon.

       The lloadd.conf file consists of	a series of global  configuration  op-
       tions  that  apply  to lloadd as	a whole	(including all backends), fol-
       lowed by	zero or	more backend definitions that contain information spe-
       cific how a backend instance should be  contacted.   The	 configuration
       options are case-insensitive; their value, on a case by case basis, may
       be case-sensitive.

       The general format of lloadd.conf is as follows:

	   # comment - these options apply to the server as a whole
	   <global configuration options>
	   # first backend definition
	   backend-server <backend 1 definition>
	   # subsequent	backend	definitions
	   ...

       As many backend servers may be configured as desired.

       If  a  line begins with white space, it is considered a continuation of
       the previous line.  No physical line should be over 2000	bytes long.

       Blank lines and comment lines beginning with a `#'  character  are  ig-
       nored.	Note: continuation lines are unwrapped before comment process-
       ing is applied.

       Arguments on configuration lines	are separated by white	space.	If  an
       argument	 contains white	space, the argument should be enclosed in dou-
       ble quotes.  If an argument contains a double quote (`"')  or  a	 back-
       slash  character	(`\'), the character should be preceded	by a backslash
       character.

       The specific configuration options available are	discussed below	in the
       Global Configuration Options and	General	Backend	Options.  Refer	to the
       "OpenLDAP Administrator's Guide"	for more details on the	lloadd config-
       uration file.

SLAPD INTEGRATION
       Note that when lloadd is	configured as a	slapd module, any option  that
       shares the same name as an option in slapd.conf(5), the slapd interpre-
       tation  wins  and  the  lloadd  option mentioned	is unavailable through
       slapd.conf(5) directly, instead,	it would have to be configured	via  a
       dedicated  attribute in cn=config. In particular, unless	the TLSShareS-
       lapdCTX option is set, lloadd keeps its own TLS context which cannot be
       configured except through the dynamic configuration.

       An additional option is available when running as a slapd module:

       listen <listen URIs>
	      The URIs the Load	Balancer module	should	listen	on.  Must  not
	      overlap  with  the  ones	that  slapd uses for its own listening
	      sockets. The related  cn=config  attribute  is  olcBkLloadListen
	      with  each  URI provided as a separate value. No changes to this
	      attribute	made after the server has started up will take	effect
	      until it is restarted.

GLOBAL CONFIGURATION OPTIONS
       Options described in this section apply to all backends.	Arguments that
       should be replaced by actual text are shown in brackets <>.

       argsfile	<filename>
	      The (absolute) name of a file that will hold the lloadd server's
	      command line (program name and options).

       concurrency <integer>
	      Specify  a desired level of concurrency.	Provided to the	under-
	      lying thread system as a hint.  The default is  not  to  provide
	      any hint.

       feature <feature> [...]
	      Switch  additional  features supported by	the LDAP Load Balancer
	      on.  Supported features are:
		     proxyauthz
			    when proxying an operation,	pass the client's  au-
			    thorized  identity	using  the proxy authorization
			    control (RFC 4370).	No control is added to the op-
			    eration if initiated by a client whose bound iden-
			    tity matches the identity configured  in  bindconf
			    (no	normalisation of the DN	is attempted).

			    If	SASL binds are issued by clients and this fea-
			    ture is enabled, backend servers need  to  support
			    LDAP  Who  Am  I?  extended	operation for the Load
			    Balancer to	detect the correct authorization iden-
			    tity.

       include <filename>
	      Read additional configuration information	from  the  given  file
	      before continuing	with the next line of the current file.

       io-threads <integer>
	      Specify the number of threads to use for the connection manager.
	      The default is 1 and this	is typically adequate for up to	16 CPU
	      cores.  The value	should be set to a power of 2.

	      If modified after	server starts up, a change to this option will
	      not take effect until the	server has been	restarted.

       logfile <filename>
	      Specify  a  file for recording lloadd debug messages. By default
	      these messages only go to	 stderr,  are  not  recorded  anywhere
	      else, and	are unrelated to messages exposed by the

       logfile-format debug | syslog-utc | syslog-localtime
	      Specify  the  prefix format for messages written to the logfile.
	      The debug	format is the normal format used for slapd debug  mes-
	      sages, with a timestamp in hexadecimal, followed by a thread ID.
	      The  other  options  are	to  use	syslog(3) style	prefixes, with
	      timestamps either	in UTC or in the local timezone.  The  default
	      is debug format.	loglevel configuration parameter. Specifying a
	      logfile copies messages to both stderr and the logfile.

       logfile-only on | off
	      Specify  that  debug  messages  should only go to	the configured
	      logfile, and not to stderr.

       logfile-rotate <max> <Mbytes> <hours>
	      Specify automatic	rotation for the  configured  logfile  as  the
	      maximum  number  of  old	logfiles  to retain, a maximum size in
	      megabytes	to allow a logfile to grow before rotation, and	a max-
	      imum age in hours	for a logfile to be used before	rotation.  The
	      maximum  number  must  be	 in the	range 1-99.  Setting Mbytes or
	      hours to zero disables the size or age check, respectively.   At
	      least one	of Mbytes or hours must	be non-zero. By	default	no au-
	      tomatic rotation will be performed.

       loglevel	<integer> [...]
	      Specify  the  level  at which debugging statements and operation
	      statistics should	be syslogged (currently	 logged	 to  the  sys-
	      logd(8)  LOG_LOCAL4  facility).  They must be considered subsys-
	      tems rather than increasingly verbose log	levels.	 Some messages
	      with higher priority are logged  regardless  of  the  configured
	      loglevel	as  soon as any	logging	is configured.	Log levels are
	      additive,	and available levels are:
		     1	    (0x1 trace)	trace function calls
		     2	    (0x2 packets) debug	packet handling
		     4	    (0x4 args) heavy trace debugging (function args)
		     8	    (0x8 conns)	connection management
		     16	    (0x10 BER) print out packets sent and received
		     64	    (0x40 config) configuration	file processing
		     256    (0x100 stats) connections,	LDAP  operations,  re-
			    sults (recommended)
		     512    (0x200 stats2) stats log entries sent

		     32768  (0x8000  none) only	messages that get logged what-
			    ever log level is set
	      The desired log level can	be input as a single integer that com-
	      bines the	(ORed) desired levels, both in decimal or in hexadeci-
	      mal notation, as a list of integers (that	are ORed  internally),
	      or  as  a	 list of the names that	are shown between parentheses,
	      such that

		  loglevel 513
		  loglevel 0x201
		  loglevel 512 1
		  loglevel 0x200 0x1
		  loglevel stats trace

	      are equivalent.  The keyword any can be used as  a  shortcut  to
	      enable  logging  at  all levels (equivalent to -1).  The keyword
	      none, or the equivalent  integer	representation,	 causes	 those
	      messages	that  are logged regardless of the configured loglevel
	      to be logged.  In	fact, if loglevel is set to 0, no logging  oc-
	      curs, so at least	the none level is required to have high	prior-
	      ity messages logged.

	      The  loglevel defaults to	stats.	This level should usually also
	      be included when using other  loglevels,	to  help  analyze  the
	      logs.

       pidfile <filename>
	      The (absolute) name of a file that will hold the lloadd server's
	      process ID (see getpid(2)).

       sockbuf_max_incoming_client <integer>
	      Specify  the maximum LDAP	PDU size accepted coming from clients.
	      The default is 262143.

       sockbuf_max_incoming_upstream <integer>
	      Specify the maximum LDAP PDU size	accepted coming	from  upstream
	      connections.  The	default	is 4194303.

       tcp-buffer [listener=<URL>] [{read|write}=]<size>
	      Specify  the  size  of  the TCP buffer.  A global	value for both
	      read and write TCP buffers related to any	listener  is  defined,
	      unless  the listener is explicitly specified, or either the read
	      or write qualifiers are used.  See  tcp(7)  for  details.	  Note
	      that some	OS-es implement	automatic TCP buffer tuning.

       threads <integer>
	      Specify  the  maximum  size of the primary thread	pool.  The de-
	      fault is 16; the minimum value is	2.

       threadqueues <integer>
	      Specify the number of work queues	to use for the primary	thread
	      pool.  The default is 1 and this is typically adequate for up to
	      8	 CPU cores.  The value should not exceed the number of CPUs in
	      the system.

       max_pdus_per_cycle <integer>
	      If set to	0, PDUs	are handled by the I/O threads directly,  oth-
	      erwise a task is queued to be picked up by the thread pool. This
	      task  will  process  PDUs	 from the connection until there is no
	      more data	to be read or this  limit  is  reached	when  the  I/O
	      thread  can pick it up again.  Very high values have a potential
	      to cause some connections	to be starved in a very	high-bandwidth
	      environment. The default is 1000.

       client_max_pending <integer>
	      Will cause the load balancer to limit the	number unfinished  op-
	      erations	for  each  client connection. The default is 0,	unlim-
	      ited.

       iotimeout <integer>
	      Specify the number of milliseconds to wait before	forcibly clos-
	      ing a connection with an outstanding write. This	allows	faster
	      recovery	from various network hang conditions.  An iotimeout of
	      0	disables this feature.	The default is 10000.

       write_coherence <integer>
	      Specify the number of seconds after a write  operation  is  fin-
	      ished that lloadd	will direct operations exclusively to the last
	      selected	backend. A write operation is anything not handled in-
	      ternally (certain	exops, abandon), except	 search,  compare  and
	      bind  operations.	 Bind  operations also reset this restriction.
	      The default is 0,	write operations do  not  restrict  selection.
	      When negative, the restriction is	not time limited and will per-
	      sist until the next bind.

       restrict_exop <OID> <action>
	      Tell  lloadd  that extended operation with a given OID should be
	      handled in a specific way.  OID 1.1 is special,  setting	a  de-
	      fault (only for operations not handled internally).  The meaning
	      of  the <action> argument	is the same as in restrict_control be-
	      low.

       restrict_control	<OID> <action>
	      Tell lloadd that a control with a	given OID attached to any  op-
	      eration  should  be  handled  in a specific way according	to the
	      <action> argument. At the	moment,	only operations	passed	intact
	      are  inspected  in this way, in particular, controls on bind and
	      extended operations are not checked.

	      In order of descending priority (the control with	highest	prior-
	      ity action wins),	this is	the action made:
		     reject operations that carry this	control	 will  be  re-
			    jected.
		     connection
			    once  an upstream is selected, every future	opera-
			    tion from this client will be directed to the same
			    connection.	Useful when state  is  shared  between
			    client and upstream	that the load balancer doesn't
			    track.
		     backend
			    like write except this does	not time out.
		     write  this  is  treated  like  a	write  operation  (see
			    write_coherence) above.
		     ignore does  not  influence  restrictions,	 useful	  when
			    changing the global	exop default.  This is the de-
			    fault  handling  for exops/controls	not handled by
			    the	load balancer internally.

TLS OPTIONS
       If lloadd is built with support for Transport Layer Security, there are
       more options you	can specify.

       TLSShareSlapdCTX	{ on | off }
	      If set to	no (the	default), lloadd will use its own TLS  context
	      (needs  to be configured via cn=config unless lloadd is run as a
	      standalone daemon). If enabled, the options for slapd apply  in-
	      stead, since the slapd's TLS context is used then.

       The  following options are available only when compiled as a standalone
       daemon.	When compiled as a slapd(8) module, the	cn=config  equivalents
       need  to	 be  used  if a	separate TLS context for the module is needed,
       otherwise use the TLSShareSlapdCTX option.

       TLSCipherSuite <cipher-suite-spec>
	      Permits configuring what ciphers will be accepted	and the	 pref-
	      erence order.  <cipher-suite-spec> should	be a cipher specifica-
	      tion  for	 the  TLS  library in use (OpenSSL, GnuTLS, or Mozilla
	      NSS).  Example:

		     OpenSSL:
			    TLSCipherSuite HIGH:MEDIUM:+SSLv2

		     GnuTLS:
			    TLSCiphersuite SECURE256:!AES-128-CBC

	      To check what ciphers a given spec selects in OpenSSL, use:

		   openssl ciphers -v <cipher-suite-spec>

	      With GnuTLS the available	specs can be found in the manual  page
	      of gnutls-cli(1) (see the	description of the option --priority).

	      In  older	 versions of GnuTLS, where gnutls-cli does not support
	      the option --priority, you can obtain the	 --  more  limited  --
	      list of ciphers by calling:

		   gnutls-cli -l

	      When  using Mozilla NSS, the OpenSSL cipher suite	specifications
	      are used and translated  into  the  format  used	internally  by
	      Mozilla  NSS.  There isn't an easy way to	list the cipher	suites
	      from the command line.  The authoritative	list is	in the	source
	      code for Mozilla NSS in the file sslinfo.c in the	structure
		      static const SSLCipherSuiteInfo suiteInfo[]

       TLSCACertificateFile <filename>
	      Specifies	 the  file  that  contains certificates	for all	of the
	      Certificate Authorities that lloadd will	recognize.   The  cer-
	      tificate	for  the CA that signed	the server certificate must be
	      included among these certificates. If the	signing	CA was	not  a
	      top-level	 (root)	 CA,  certificates  for	the entire sequence of
	      CA's from	the signing CA to the top-level	CA should be  present.
	      Multiple certificates are	simply appended	to the file; the order
	      is not significant.

       TLSCACertificatePath <path>
	      Specifies	 the path of a directory that contains Certificate Au-
	      thority certificates in separate individual files. Usually  only
	      one  of this or the TLSCACertificateFile is used.	This directive
	      is not supported when using GnuTLS.

	      When using  Mozilla  NSS,	 <path>	 may  contain  a  Mozilla  NSS
	      cert/key	database.   If	<path> contains	a Mozilla NSS cert/key
	      database and CA cert files, OpenLDAP will	use the	cert/key data-
	      base and will ignore the CA cert files.

       TLSCertificateFile <filename>
	      Specifies	the file that contains the lloadd server certificate.

	      When using Mozilla NSS, if using a cert/key database  (specified
	      with  TLSCACertificatePath),  TLSCertificateFile	specifies  the
	      name of the certificate to use:
		   TLSCertificateFile Server-Cert
	      If using a token other than the internal built in	token, specify
	      the token	name first, followed by	a colon:
		   TLSCertificateFile my hardware device:Server-Cert
	      Use certutil -L to list the certificates by name:
		   certutil -d /path/to/certdbdir -L

       TLSCertificateKeyFile <filename>
	      Specifies	the file that contains the lloadd server  private  key
	      that  matches  the  certificate stored in	the TLSCertificateFile
	      file.  Currently,	the private key	must not be protected  with  a
	      password,	 so  it	is of critical importance that it is protected
	      carefully.

	      When using Mozilla NSS, TLSCertificateKeyFile specifies the name
	      of a file	that contains the password for the key	for  the  cer-
	      tificate specified with TLSCertificateFile.  The modutil command
	      can  be  used  to	 turn off password protection for the cert/key
	      database.	  For  example,	 if   TLSCACertificatePath   specifies
	      /etc/openldap/certdb  as	the location of	the cert/key database,
	      use modutil to change the	password to the	empty string:
		   modutil -dbdir /etc/openldap/certdb -changepw 'NSS Certificate DB'
	      You must have the	old password,  if  any.	  Ignore  the  WARNING
	      about the	running	browser.  Press	'Enter'	for the	new password.

       TLSDHParamFile <filename>
	      This  directive  specifies the file that contains	parameters for
	      Diffie-Hellman ephemeral key exchange.  This is required in  or-
	      der  to  use a DSA certificate on	the server, or an RSA certifi-
	      cate missing the "key encipherment" key usage.  Note  that  set-
	      ting  this  option  may also enable Anonymous Diffie-Hellman key
	      exchanges	in certain non-default cipher suites.	Anonymous  key
	      exchanges	 should	generally be avoided since they	provide	no ac-
	      tual client or server authentication and provide	no  protection
	      against  man-in-the-middle attacks.  You should append "!ADH" to
	      your cipher suites to ensure that	these  suites  are  not	 used.
	      When  using  Mozilla  NSS	 these parameters are always generated
	      randomly so this directive is ignored.

       TLSECName <name>
	      Specify the name of a curve to use for  Elliptic	curve  Diffie-
	      Hellman  ephemeral  key  exchange.   This	 is required to	enable
	      ECDHE algorithms in OpenSSL.   This  option  is  not  used  with
	      GnuTLS; the curves may be	chosen in the GnuTLS ciphersuite spec-
	      ification. This option is	also ignored for Mozilla NSS.

       TLSProtocolMin <major>[.<minor>]
	      Specifies	 minimum SSL/TLS protocol version that will be negoti-
	      ated.  If	the server doesn't support at least that version,  the
	      SSL handshake will fail.	To require TLS 1.x or higher, set this
	      option to	3.(x+1), e.g.,

		   TLSProtocolMin 3.2

	      would require TLS	1.1.  Specifying a minimum that	is higher than
	      that  supported by the OpenLDAP implementation will result in it
	      requiring	the highest level that it does support.	  This	direc-
	      tive is ignored with GnuTLS.

       TLSRandFile <filename>
	      Specifies	 the file to obtain random bits	from when /dev/[u]ran-
	      dom is  not  available.	Generally  set	to  the	 name  of  the
	      EGD/PRNGD	socket.	 The environment variable RANDFILE can also be
	      used  to	specify	 the filename.	This directive is ignored with
	      GnuTLS and Mozilla NSS.

       TLSVerifyClient <level>
	      Specifies	what checks to perform on client  certificates	in  an
	      incoming	TLS  session, if any.  The <level> can be specified as
	      one of the following keywords:

	      never  This is the default.  lloadd will not ask the client  for
		     a certificate.

	      allow  The  client  certificate is requested.  If	no certificate
		     is	provided, the session proceeds	normally.   If	a  bad
		     certificate  is provided, it will be ignored and the ses-
		     sion proceeds normally.

	      try    The client	certificate is requested.  If  no  certificate
		     is	 provided,  the	 session  proceeds normally.  If a bad
		     certificate is provided, the session is immediately  ter-
		     minated.

	      demand | hard | true
		     These keywords are	all equivalent,	for compatibility rea-
		     sons.   The  client certificate is	requested.  If no cer-
		     tificate is provided, or a	bad certificate	 is  provided,
		     the session is immediately	terminated.

	      TLSCRLCheck <level>
		     Specifies if the Certificate Revocation List (CRL)	of the
		     CA	 should	 be  used to verify if the client certificates
		     have not been revoked. This requires TLSCACertificatePath
		     parameter to be  set.  This  directive  is	 ignored  with
		     GnuTLS  and Mozilla NSS.  <level> can be specified	as one
		     of	the following keywords:

		     none   No CRL checks are performed

		     peer   Check the CRL of the peer certificate

		     all    Check the CRL for a	whole certificate chain

	      TLSCRLFile <filename>
		     Specifies a file containing a Certificate Revocation List
		     to	be used	for verifying that certificates	have not  been
		     revoked.  This  directive is only valid when using	GnuTLS
		     and Mozilla NSS.

BACKEND	CONFIGURATION
       Options in this section describe	how the	lloadd connects	and  authenti-
       cates to	the backend servers. Backends are organised in groups (tiers).
       Backends	 in the	first tier are tried first, if none of them are	reach-
       able, the following tier	is tried in the	same way. If there is a	 back-
       end  in	the  tier that has suitable connections, but they are busy, no
       further tier is consulted. This is useful in high availability  scenar-
       ios  where  a  group  of	servers	(e.g. the local	environment) should be
       contacted if possible.

       It is assumed all backend servers serve the same	data. On startup,  the
       configured  connections	are  set  up and those not dedicated to	handle
       bind requests are authenticated with the	backend	using the  information
       in  the bindconf	option.	The authentication configuration is shared be-
       tween them.

       bindconf
	      [bindmethod=simple|sasl] [binddn=<dn>] [saslmech=<mech>]	[auth-
	      cid=<identity>]	 [authzid=<identity>]	[credentials=<passwd>]
	      [realm=<realm>]	[secprops=<properties>]	   [timeout=<seconds>]
	      [network-timeout=<seconds>]   [keepalive=<idle>:<probes>:<inter-
	      val>]    [tcp-user-timeout=<milliseconds>]     [tls_cert=<file>]
	      [tls_key=<file>]	  [tls_cacert=<file>]	[tls_cacertdir=<path>]
	      [tls_reqcert=never|allow|try|demand]	[tls_cipher_suite=<ci-
	      phers>]	 [tls_crlcheck=none|peer|all]	[tls_protocol_min=<ma-
	      jor>[.<minor>]]

	      Specifies	the bind credentials lloadd uses when setting  up  its
	      regular connections to all backends.

	      A	 bindmethod  of	simple requires	the options binddn and creden-
	      tials and	should only be used when  adequate  security  services
	      (e.g. TLS	or IPSEC) are in place.	 REMEMBER: simple bind creden-
	      tials  must  be in cleartext!  A bindmethod of sasl requires the
	      option saslmech.	Depending on the mechanism, an	authentication
	      identity	and/or	credentials can	be specified using authcid and
	      credentials.  The	authzid	parameter may be used  to  specify  an
	      authorization  identity.	 Specific security properties (as with
	      the sasl-secprops	keyword	above) for a SASL bind can be set with
	      the secprops option. A non default SASL realm can	 be  set  with
	      the realm	option.

	      The  timeout  parameter  indicates  how long an operation	can be
	      pending a	response (result, search entry,	...) from  the	server
	      in  seconds. Due to how timeouts are detected, the timeout might
	      not be detected and handled up to	timeout	seconds	after it  hap-
	      pens.

	      The  network-timeout  parameter  sets how	long the consumer will
	      wait to establish	a network connection to	the provider.  Once  a
	      connection  is established, the timeout parameter	determines how
	      long the consumer	will wait for the initial Bind request to com-
	      plete.

	      Timeout set to 0 means no	timeout	is in effect and  by  default,
	      no timeouts are in effect.

	      The keepalive parameter sets the values of idle, probes, and in-
	      terval used to check whether a socket is alive; idle is the num-
	      ber  of  seconds	a  connection  needs to	remain idle before TCP
	      starts sending keepalive probes; probes is the maximum number of
	      keepalive	probes TCP should send before dropping the connection;
	      interval is interval in  seconds	between	 individual  keepalive
	      probes.	Only  some  systems support the	customization of these
	      values; the keepalive parameter is ignored otherwise,  and  sys-
	      tem-wide settings	are used.

	      The  tcp-user-timeout parameter, if non-zero, corresponds	to the
	      TCP_USER_TIMEOUT set on the upstream connections,	overriding the
	      operating	system setting.	 Only some systems  support  the  cus-
	      tomization  of  this parameter, it is ignored otherwise and sys-
	      tem-wide settings	are used.

TIER OPTIONS
       tier   <tier type>

	      Groups servers which should be considered	in the same try. If  a
	      viable  connection is found even if busy,	the load balancer does
	      not proceed to the next tier. The	process	of selection a connec-
	      tion within a tier depends on the	tier's type.

       Available types are:

       roundrobin
	      Servers are tried	in order and if	one is selected	 successfully,
	      the following search will	try from the one next on the list.

       weighted
	      Backend servers accept a new option weight=<int> which indicates
	      how often	it should be selected. If unspecified, weight defaults
	      to  0  and  such backends	have a slight chance of	being selected
	      even when	a non-zero weight backend is configured	in  the	 tier.
	      The selection process is along the lines of RFC2782.

       bestof Like with	weighted, backends accept the weight=<int> option. Av-
	      erage  latency  multiplied  by weight is measured	over time. The
	      selection	process	chooses	2 backends at random,  compares	 their
	      weighted	latencies  and the backend with	a better (lower) score
	      is tried.	If the backend is not  available  (or  is  busy),  the
	      other  backend  is  tried,  then backends	are chosen in a	round-
	      robin order.

	      Note that	unlike weighted, the higher the	weight,	the higher the
	      "effective" latency and lower the	chance a backend is selected.

BACKEND	OPTIONS
       backend-server
	      uri=ldap[s]://<hostname>[:port] [retry=<retry interval  in  ms>]
	      [starttls=yes|critical]  [numconns=<conns>]  [bindconns=<conns>]
	      [max-pending-ops=<ops>] [conn-max-pending=<ops>]

	      Marks the	beginning of a backend definition.

	      uri specifies the	backend	as an  LDAP  URI.  If  <port>  is  not
	      given, the standard LDAP port number (389	or 636)	is used.

	      Lloadd  will attempt to maintain numconns	active connections and
	      also bindconns active connections	dedicated to  handling	client
	      bind requests.

	      If an error occurs on a working connection, a new	connection at-
	      tempt  is	made immediately, if one happens on establishing a new
	      connection to this backend, lloadd will wait before a new	recon-
	      nect attempt is made according to	the retry  parameter  (default
	      is 5 seconds).

	      Operations  will be distributed across the backend's connections
	      (upstreams).

	      The parameter conn-max-pending unless set	to  0  (the  default),
	      will limit the number unfinished operations per upstream connec-
	      tion.  Similarly,	max-pending-ops	will limit the total number or
	      unfinished operations across all backend's connections,  0,  the
	      default, means no	limit will be imposed for this backend.

	      The  starttls  parameter	specifies use of the StartTLS extended
	      operation	to establish a	TLS  session  before  Binding  to  the
	      provider.	If the critical	argument is supplied, the session will
	      be aborted if the	StartTLS request fails.	Otherwise the syncrepl
	      session  continues without TLS. The tls_reqcert setting defaults
	      to "demand" and the other	TLS settings default to	 the  same  as
	      the main slapd TLS settings.

EXAMPLES
       Here is a short example of a configuration file:

	      argsfile	/var/db/run/lloadd.args
	      pidfile	/var/db/run/lloadd.pid

	      #	cancel not supported yet
	      restrict_exop 1.3.6.1.1.8	reject

	      #	turn not supported
	      restrict_exop 1.3.6.1.1.19 reject

	      #	TXN Exop if desired, otherwise reject
	      restrict_exop 1.3.6.1.1.21.1 connection

	      #	Paged results control
	      restrict_control 1.2.840.113556.1.4.319 connection

	      #	VLV control
	      restrict_control 2.16.840.1.113730.3.4.9 connection

	      bindconf
		  bindmethod=simple
		  binddn=cn=test
		  credentials=pass

	      tier weighted
	      backend-server
		  uri=ldap://ldap1.example.com
		  numconns=3
		  bindconns=2
		  retry=5000
		  max-pending-ops=5
		  conn-max-pending=3
		  weight=5

	      backend-server
		  uri=ldap://ldap2.example.com
		  numconns=3
		  bindconns=2
		  retry=5000
		  max-pending-ops=5
		  conn-max-pending=3
		  weight=10

       "OpenLDAP Administrator's Guide"	contains a longer annotated example of
       a configuration file.  The original /usr/local/etc/openldap/lloadd.conf
       is another example.

LIMITATIONS
       Support	for  proxying  SASL Binds is limited to	the EXTERNAL mechanism
       (and only to extract the	DN of a	client TLS certificate if used	during
       the  last renegotiation)	and mechanisms that rely neither on connection
       metadata	(as Kerberos does) nor establish  a  SASL  integrity/confiden-
       tialiy layer (again, some Kerberos mechanisms, DIGEST-MD5 can negotiate
       this).

FILES
       /usr/local/etc/openldap/lloadd.conf
	      default lloadd configuration file

SEE ALSO
       ldap(3),	gnutls-cli(1), slapd.conf(5), tcp(7), lloadd(8), slapd(8).

       "OpenLDAP Administrator's Guide"	(http://www.OpenLDAP.org/doc/admin/)

ACKNOWLEDGEMENTS
       OpenLDAP	 Software  is developed	and maintained by The OpenLDAP Project
       <http://www.openldap.org/>.  OpenLDAP Software is derived from the Uni-
       versity of Michigan LDAP	3.3 Release.

OpenLDAP 2.6.9			  2024/11/26			LLOADD.CONF(5)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=lloadd.conf&sektion=5&manpath=FreeBSD+Ports+14.3.quarterly>

home | help