ypserv(1M) ONC R4.11 ypserv(1M)
NAME
ypserv, ypbind - Network Information Service server and binder
processes
SYNOPSIS
/usr/etc/ypserv
/usr/etc/ypbind
DESCRIPTION
The Network Information Service (NIS) provides a simple network
lookup service consisting of databases and processes. The databases
are dbm(3X) files in a directory tree rooted at /etc/yp. These files
are described in ypfiles(4). The processes are /usr/etc/ypserv, the
NIS database lookup server, and /usr/etc/ypbind, the NIS binder. The
programmatic interface to NIS is described in ypclnt(3N).
Administrative tools are described in yppush(1M), ypxfr(1M),
yppoll(1M), ypwhich(1M), and ypset(1M). Tools to see the contents of
NIS maps are described in ypcat(1), and ypmatch(1). Database
generation and maintenance tools are described in ypinit(1M),
ypmake(1M), and makedbm(1M).
Both ypserv and ypbind are server (daemon) processes typically
activated at system startup time from /usr/sbin/init.d/rc.ypserv.
ypserv runs only on NIS server machines with a complete NIS database.
ypbind runs on all machines using NIS services, both NIS servers and
clients.
The primary function of ypserv 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/ypprot.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
the C library. There are four lookup functions, all of which are
performed on a specified map within some NIS domain: Match,
Getfirst, Getnext, and Getall. The Match operation takes a key,
and returns the associated value. The Getfirst operation returns
the first key-value pair from the map, and Getnext can be used to
enumerate the remainder. Getall 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: Getordernumber, and Getmastername. 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(1M), however, they will be
visible.) Other functions are used within the NIS subsystem itself,
and are not of general interest to NIS clients. They include
Doyouservethisdomain?, Transfermap, and
Reinitializeinternalstate.
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.
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. This information is cached in the
directory /etc/yp/binding using a filename of domainname.version.
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 and rebindings are handled transparently by the C library
routines. 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 wait until the domain
requested is bound. In general, a bound domain is marked as unbound
when the node running ypserv crashes or gets overloaded. In such a
case, ypbind will try to bind to any NIS 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 NIS subsystem
itself. ypset(1M) is a command to access the Setdomain facility.
It is for unsnarling messes. Note that the Setdomain procedure only
accepts requests from processes running as root.
FILES
If the file /etc/yp/ypserv.log exists when ypserv starts up, log
information will be written to this file when error conditions arise.
The file(s) /etc/yp/binding/domainname.version will be created to
speed up the binding process. These files cache the last successful
binding created for the given domain, when a binding is requested
these files are checked for validity and then used.
/etc/yp
/usr/etc/ypbind
SEE ALSO
domainname(1), ypcat(1), ypmatch(1), makedbm(1M), ypmake(1M),
ypinit(1M), yppoll(1M), yppush(1M), ypset(1M), ypwhich(1), ypxfr(1M),
dbm(3X), ypclnt(3N), ypfiles(4).
NOTES
Both ypbind and ypserv support multiple domains. The ypserv process
determines the domains it serves by looking for directories of the
same name in the directory /etc/yp. It will reply to all broadcasts
requesting yp service for that domain. Additionally, the ypbind
process can maintain bindings to several domains and their servers,
the default domain is however the one specified by the domainname(1)
command at startup time.
Licensed material--property of copyright holder(s)