The Network Information Service (NIS) provides a simple network lookup service consisting of databases and processes. The databases are ndbm files in a directory tree rooted at /var/yp. See ndbm(3C). These files are described in ypfiles(4). The processes are /usr/lib/netsvc/yp/ypserv, the NIS database lookup server, and /usr/lib/netsvc/yp/ypbind, the NIS binder. The programmatic interface to the NIS service is described in ypclnt(3NSL). Administrative tools are described in yppoll(1M), yppush(1M), ypset(1M), ypxfr(1M), and ypwhich(1). 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).
The ypserv utility is a daemon process typically activated at system startup from /etc/init.d/rpc. Alternatively, you can, as the root user, startNIS services using ypstart(1M) from the command-liner. ypserv runs only on NIS server machines with a complete NIS database. You can halt all NIS services using the ypstop(1M) command.
The ypxfrd utility transfers entire NIS maps in an efficient manner. For systems that use this daemon, map transfers are 10 to 100 times faster, depending on the map. To use this daemon, be sure ypxfrd is running on the master server. See /usr/lib/netsvc/yp/ypstart. ypxfr attempts to use ypxfrd first. If that fails, it prints a warning, then uses the older transfer method.
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(3NSL), and are supplied as C-callable functions in the libnsl(3LIB) library. There are four lookup functions, all of which are performed on a specified map within some NIS domain: yp_match(3NSL), yp_first(3NSL), yp_next(3NSL), and yp_all(3NSL). The yp_match operation takes a key, and returns the associated value. The yp_first operation returns the first key-value pair from the map, and yp_next can be used to enumerate the remainder. yp_all ships the entire map to the requester as the response to a single RPC request.
A number of special keys in the DBM files can alter the way in which ypserv operates. The keys of interest are:
The presence of this key causes ypserv to forward to a DNS server host lookups that cannot be satisfied by the DBM files.
This key causes ypserv to answer only questions coming from clients on reserved ports.
This is a special key in the form, YP_MULTI_hostname addr1,...,addrN. A client looking for hostname receives the “closest“ address.
Two other functions supply information about the map, rather than map entries: yp_order(3NSL), and yp_master(3NSL). 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 are 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_internal_state.
The NIS service should go to the DNS for more host information. This requires the existence of a correct /etc/resolv.conf file pointing at a machine running in.named(1M). This option turns on DNS forwarding regardless of whether or not the YP_INTERDOMAIN flag is set in the hosts maps. See makedbm(1M). In the absence of an /etc/resolv.conf file, ypserv complains, but ignores the -d option.
Operate in the verbose mode, printing diagnostic messages to stderr.
Defines the hosts and networks that are granted access to information in the served domain; it is read at startup time by both ypserv and ypxfrd.
Startup file that starts up basic RPC services and NIS by calling ypstart(1M). If the /var/yp/ypserv.log file exists when ypserv starts up, log information is written to it when error conditions arise. The file /var/yp/binding/domainname/ypservers is used to list the NIS server hosts that ypbind can bind to.
See attributes(5) for descriptions of the following attributes:
ypcat(1), ypmatch(1), ypwhich(1), domainname(1M), in.named(1M), makedbm(1M), ypbind(1M), ypinit(1M), ypmake(1M), yppoll(1M), yppush(1M), ypset(1M), ypstart(1M), ypstop(1M), ypxfr(1M), ndbm(3C), ypclnt(3NSL), libnsl(3LIB), securenets(4), ypfiles(4), attributes(5)
Network Interfaces Programmer's Guide
ypserv supports multiple domains. The ypserv process determines the domains it serves by looking for directories of the same name in the directory /var/yp. It replies to all broadcasts requesting yp service for that domain.
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 must not be used without permission.
NIS uses ndbm() files to store maps. Therefore, it is subject to the 1024 byte limitations described in the USAGE and NOTES sections of the ndbm(3C) manual page.