YPSERV(8)YPSERV(8)NAME
ypserv, ypbind - yellow pages server and binder processes
SYNOPSIS
/usr/etc/ypserv
/usr/etc/ypbind
DESCRIPTION
The yellow pages (YP) provides a simple network lookup service
consisting of databases and processes. The databases are dbm(3) files
in a directory tree rooted at /etc/yp. These files are described in
ypfiles(5). The processes are /usr/etc/ypserv, the YP database lookup
server, and /usr/etc/ypbind, the YP binder. The programmatic interface
to YP is described in ypclnt(3N). Administrative tools are described
in yppush(8), ypxfr(8), yppoll(8), ypwhich(8), and ypset(8). Tools to
see the contents of YP maps are described in ypcat(1), and ypmatch(1).
Database generation and maintenance tools are described in ypinit(8),
ypmake(8), and makedbm(8).
Both ypserv and ypbind are daemon processes typically activated at
system startup time from /etc/rc.local. ypserv runs only on YP server
machines with a complete YP database. ypbind runs on all machines
using YP services, both YP servers and clients.
The ypserv daemon's primary function is to look up information in its
local database of YP maps. The operations performed by ypserv are
defined for the implementor by the YP protocol specification, and for
the programmer by the header file <rpcsvc/yp_prot.h>. Communication to
and from ypserv is by means of RPC calls. Lookup functions are
described in ypclnt(3N), and are supplied as C-callable functions in
/lib/libc. There are four lookup functions, all of which are performed
on a specified map within some YP domain: Match, Get_first, Get_next,
and Get_all. The Match operation takes a key, and returns the
associated value. The Get_first operation returns the first key-value
pair from the map, and Get_next can be used to enumerate the remainder.
Get_all ships the entire map to the requester as the response to a
single RPC request.
Two other functions supply information about the map, rather than map
entries: Get_order_number, and Get_master_name. In fact, both order
number and master name exist in the map as key-value pairs, but the
server will not return either through the normal lookup functions. (If
you examine the map with makedbm(8), however, they will be visible.)
Other functions are used within the YP subsystem itself, and are not of
general interest to YP clients. They include
Do_you_serve_this_domain?, Transfer_map, and
Reinitialize_internal_state.
The function of ypbind is to remember information that lets client
processes on a single node communicate with some ypserv process.
ypbind must run on every machine which has YP client processes; ypserv
may or may not be running on the same node, but must be running
somewhere on the network.
The information ypbind remembers is called a binding — the association
of a domain name with the internet address of the YP server, and the
port on that host at which the ypserv process is listening for service
requests. The process of binding is driven by client requests. As a
request for an unbound domain comes in, the ypbind process broadcasts
on the net trying to find a ypserv process that serves maps within that
domain. Since the binding is established by broadcasting, there must
be at least one ypserv process on every net. Once a domain is bound by
a particular ypbind, that same binding is given to every client process
on the node. The ypbind process on the local node or a remote node may
be queried for the binding of a particular domain by using the
ypwhich(1) command.
Bindings are verified before they are given out to a client process.
If ypbind is unable to speak to the ypserv process it's bound to, it
marks the domain as unbound, tells the client process that the domain
is unbound, and tries to bind the domain once again. Requests received
for an unbound domain will fail immediately. In general, a bound
domain is marked as unbound when the node running ypserv crashes or
gets overloaded. In such a case, ypbind will to bind any YP server
(typically one that is less-heavily loaded) available on the net.
ypbind also accepts requests to set its binding for a particular
domain. The request is usually generated by the YP subsystem itself.
ypset(8) is a command to access the Set_domain facility. It is for
unsnarling messes, not for casual use.
FILES
If the file /usr/etc/yp/ypserv.log exists when ypserv starts up, log
information will be written to this file when error conditions arise.
SEE ALSOypclnt(3N), ypfiles(5), ypcat(1), ypmatch(1), yppush(8), ypwhich(8),
ypxfr(8), ypset(8)
6 December 1985 YPSERV(8)