YPSERV(1M-SysV) RISC/os Reference Manual YPSERV(1M-SysV)
NAME
ypserv, ypbind - Network Information Service server and
binder processes
SYNOPSIS
/usr/etc/yp/ypserv
/usr/etc/nd
DESCRIPTION
The Network Information Service (NIS) provides a simple net-
work 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/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). Data-
base generation and maintenance tools are described in
ypinit(1M), ypmake(1M), and makedbm(1M).
Both ypserv and ypbind are daemon processes typically
activated at system startup time from
/etc/init.d/netdaemons. 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 ypserv daemon's primary function is to look up informa-
tion in its local database of NIS maps. The operations per-
formed 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(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, Get_first, Get_next, and Get_all. The Match opera-
tion 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(1M), however, they will be visible.) Other
functions are used within the NIS subsystem itself, and are
Printed 1/15/91 Page 1
YPSERV(1M-SysV) RISC/os Reference Manual YPSERV(1M-SysV)
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.
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 esta-
blished by broadcasting, there must be at least one ypserv
process on every net. Once a domain is bound by a particu-
lar ypbind, that same binding is given to every client pro-
cess 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 to bind any NIS server (typically one
that is less-heavily loaded) available on the net.
ypbind also accepts requests to set its binding for a par-
ticular domain. The request is usually generated by the NIS
subsystem itself. ypset(1M) is a command to access the
Set_domain facility. It is for unsnarling messes. Note that
the Set_aDomain 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 con-
ditions arise.
Page 2 Printed 1/15/91
YPSERV(1M-SysV) RISC/os Reference Manual YPSERV(1M-SysV)
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
makedbm(1M), ypmake(1M), ypinit(1M), yppoll(1M), yppush(1M),
ypset(1M), ypwhich(1M), ypxfr(1M).
domainname(1), ypcat(1), ypmatch(1) in the User's Reference
Manual.
dbm(3X), ypclnt(3N), ypfiles(4) in the Programmer's Refer-
ence Manual.
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 bind-
ings to several domains and their servers, the default
domain is however the one specified by the domainname(1)
command at startup time.
ORIGIN
Sun Microsystems
Printed 1/15/91 Page 3