YPSERV(NADM) System V NFS (11/29/90) YPSERV(NADM)
NAME
ypserv - network information service (NIS) server and binder
processes
SYNOPSIS
/etc/ypserv [ -localonly ]
/etc/ypbind
DESCRIPTION
The network information service (NIS) provides a simple
network lookup service consisting of databases and
processes. The databases are dbm(NS) files in a directory
tree rooted at /etc/yp. These files are described in
ypfiles(NF). The processes are /etc/ypserv, the NIS
database lookup server and /etc/ypbind, the NIS binder. The
programmer interface to NIS is described in ypclnt(NS). The
administrative tools are described in yppush(NADM),
ypxfr(NADM), yppoll(NADM), ypwhich(NADM), and ypset(NADM).
The tools to see the contents of NIS maps are described in
ypcat(NADM) and ypmatch(NC). The database generation and
maintenance tools are described in ypinit(NADM),
ypmake(NADM), and makedbm(NADM).
Both ypserv and ypbind are daemon processes typically
activated at system startup time from /etc/nfs. ypserv runs
only on NIS server machines with a complete NIS database.
Typically, this covers most machines in the System V
environment. The optional argument, -localonly, is used to
indicate that ypserv should not respond to outside requests.
ypbind runs on all machines using NIS services, both NIS
servers and clients.
The ypserv daemon's primary function is to look up
information in its local database of NIS maps. The
operations performed by ypserv are defined for the
implementor by the NIS 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 (NS) and are
supplied as C-callable functions in /usr/lib/libyp.a. There
are four lookup functions, all of which are performed on a
specified map within some NIS domain: Match, Get_first,
Get_next, and Get_all. The Match operation accepts a key
and returns the associated value. The Get_first operation
returns the first key-value pair from the map and the
Get_next operation 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
Page 1 (printed 7/1/91)
YPSERV(NADM) System V NFS (11/29/90) YPSERV(NADM)
key-value pairs, but the server will not return either
through the normal lookup functions. (However, if you
examine the map with makedbm, they will be visible.) Other
functions are used within the NIS subsystem itself but are
not of general interest to NIS 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
NIS client processes; ypserv may or may not be running on
the same node, but must be running somewhere on the network.
Typically, most System V machines will be running ypserv and
ypbind.
The information ypbind remembers is called a binding - the
association of a domain name with the internet address of
the NIS 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. When a request for an
unbound domain comes in, the ypbind process broadcasts on
the net in order to find a ypserv process that serves NIS
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 this 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 command.
Bindings are verified before they are given out to a client
process. If ypbind is unable to speak to the ypserv process
to which it is bound, 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 NIS server which serves maps in that domain
(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
NIS subsystem itself. ypset(NADM) is a command to access
the Set_domain facility. It is used for unsnarling messes,
not for casual use.
FILES
If the file /usr/adm/nislog exists when ypserv starts up,
log information will be written to this file when error
Page 2 (printed 7/1/91)
YPSERV(NADM) System V NFS (11/29/90) YPSERV(NADM)
conditions arise.
SEE ALSO
ypclnt(NS), ypfiles(NF), ypcat(NADM), ypmatch(NADM),
yppush(NADM), ypwhich(NADM), ypxfr(NADM), ypset(NADM)
NIS protocol specification
Page 3 (printed 7/1/91)