YPSERV(8) System Manager's Manual YPSERV(8)
ypserv, ypbind, ypxfrd - NIS server and binder processes
/usr/etc/ypserv [ -d ]
/usr/etc/ypbind [-s] [-ypset|-ypsetme]
ypxfrd [ -x ]
This program is available with the Networking software installation
option. Refer to for information on how to install optional software.
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 /var/yp. These files are
described in ypfiles(5). The processes are /usr/etc/ypserv, the NIS
database lookup server, and /usr/etc/ypbind, the NIS binder. The pro-
grammatic interface to the NIS service 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 NIS maps are
described in ypcat(1), and ypmatch(1). Database generation and mainte-
nance tools are described in ypinit(8), ypmake(8), and makedbm(8).
Both ypserv and ypbind are daemon processes typically activated at sys-
tem startup time from /etc/rc.local. ypserv runs only on NIS server
machines with a complete NIS database. ypbind runs on all machines
using the NIS services, both NIS servers and clients.
ypxfrd transfers entire NIS maps in an efficient manner. For systems
that use this daemon, map transfers will be 10 to 100 times faster,
depending on the map. To use this daemon, ypxfrd should be run on a
server running SunOS release 4.1. ypxfr will attempt to use ypxfrd
first, if that fails, it will print a warning and then use the older
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 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
the C library. There are four lookup functions, all of which are per-
formed on a specified map within some NIS 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 NIS service subsystem itself, and
are not of general interest to NIS clients. They include
do_you_serve_this_domain?, transfer_map, and reinitialize_inter-
The function of ypbind is to remember information that lets client pro-
cesses 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 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 /var/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. If the client is running in C2
secure mode, then ypbind will only accept bindings to servers where the
ypserv process is running as root. Once a domain is bound by a partic-
ular 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)
Bindings and rebindings are handled transparently by the C library rou-
tines. 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 particular
domain. The request is usually generated by the NIS subsystem itself.
ypset(8) is a command to access the set_domain facility. It is for
unsnarling messes. Note: the set_domain procedure only accepts requests
from processes running as root.
-d The NIS service should go to the DNS (Domain Name Service) for
more host information.
-s Secure. When specified, only ypservers bound to a reserved port
are used. This allows for a slight increase in security in com-
pletely controlled environments, where there are no computers
operated by untrusted individuals. It offers no real increase
-v Do not fork when ypxfrd is called multiple times.
-ypset ypset(8) may be used to change the binding. This option is very
dangerous, and only should be used for debugging the network
from a remote machine.
ypset(8) may be issued from this machine, security is based on
IP address checking, which can be defeated on network where
untrusted individuals may inject packets. This option is not
If the file /var/yp/ypserv.log exists when ypserv starts up, log infor-
mation will be written to this file when error conditions arise.
The file(s) /var/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.
domainname(1), ypcat(1), ypmatch(1), dbm(3X), ypclnt(3N), ypfiles(5)
makedbm(8), ypmake(8), ypinit(8), yppoll(8), yppush(8), ypset(8),
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 /var/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) com-
mand at startup time.
The Network Information Service (NIS) was formerly known as Sun Yellow
Pages (YP). The functionality of the two remains the same; only the
name has changed. The name Yellow Pages is a registered trademark in
the United Kingdom of British Telecommunications plc, and may not be
used without permission.
17 December 1987 YPSERV(8)