bcastaddr - file to configure BoKS internal communication in a subnetted environment
A BoKS client normally attempts to find a server to talk to using UDP broadcast over the network. This is
also true when a server tries to contact the master. In a subnetted environment, this broadcast may not reach
an active server or the master, and the file $BOKS_etc/bcastaddr may then be created to give it the exact ipaddress
of machines to contact via udp. A udp messages is broadcast on the local network, and a udp message
is sent to each address in this file. The machine that answers first is selected as the server to use
(unless the last call timed out while talking to that machine, in that case that machine is only used if no
other server answers after several attempts). If no machine answers within a short time period, new UDP
messages are sent. This is repeated up to 5 times, then the attempt to locate a server is aborted. Once a
server is selected, that server will be used until it returns an error, a call times out, the server closes the connection,
or the connection is closed because it has been idle too long (default 30 seconds).
The syntax is of this file is:
The DONT_BROADCAST line is optional, and if present it tells the communication daemons not to do
any broadcasting. The ADDRESS_LIST line is mandatory. The lines following are IP-addresses in normal
dotted decimal notation (e.g. 18.104.22.168), one per line. These IP-addresses should be the addresses of
servers and the master. The SECONDARY_ADDRESS_LIST is optional and means addresses following
this will only be used if the first attempt to find a server as described above fails. This is true every time an
attempt is made to find a server. If this keyword follows immediately after the ADDRESS_LIST keyword
with no address in between, it is ignored. If the SECONDARY_ADDRESS_LIST keyword is honored,
the first attempt to locate a server will not do a broadcast to the local network, even if the DONT_BROADCAST
keyword is not present (i.e. any local broadcast will be part of the SECONDARY_
For a server, the IP-address of the master must be present if it cannot reach it using broadcast. For a server
it may also be a good idea to include the addresses of some other servers since when a server is downloading
the database it cannot respond to even its own authentication requests.
For a client the list should be a number of servers (possibly including the master), enough of them to ensure
a server can be found even if one or two servers are down, or there are network problems.
The bcastaddr file is only used in the cases mentioned above (for a client looking for a server, or a server
looking for the master). With no bcastaddr file, a UDP broadcast is done and the communication daemon
then waits for an answer. If no answer arrives, it tries again up to five times before giving up. With the
bcastaddr file present, it does a UDP broadcast unless DONT_BROADCAST is set, and then it sends a
UDP query to all IP-addresses listed. It then waits for an answer, and again tries again up to five times if no
answer arrives before giving up.
It is very important to type in exactly the correct information into the bcastaddr file. Spelling, order of
lines and case of characters must be exactly as described. No extra spaces or empty lines are allowed. IPaddresses
must be correct. Any mistake will cause the boks_bridge process reading this file to exit.
After modifying the bcastaddr file on a machine, BoKS must be restarted for the change to take effect.