YPFILES(5)

NAME
ypfiles - the yellowpages database and directory structure

DESCRIPTION
The yellow pages (YP) network lookup service uses a database of dbm files in the directory hierarchy at /etc/yp. A dbm database consists of two files, created by calls to the dbm(3X) library package. One has the filename extension .pag and the other has the filename extension .dir. For instance, the database named hosts.byname, is implemented by the pair of files hosts.byname.pag and hosts.byname.dir. A dbm database served by the YP is called a YP map. A YP domain is a named set of YP maps. Each YP domain is implemented as a subdirectory of /etc/yp containing the map. Any number of YP domains can exist. Each may contain any number of maps.

No maps are required by the YP lookup service itself, although they may be required for the normal operation of other parts of the system. There is no list of maps which YP serves - if the map exists in a given domain and a client asks about it, the YP serves it. For a map to be accessible consistently, it must exist on all YP servers that serve the domain. To provide data consistency between the replicated maps, an entry to run ypxfr periodically should be made in /usr/lib/crontab on each server. More information on this topic is in ypxfr(8).

YP maps should contain two distinguished key-value pairs. The first is the key YP_LAST_MODIFIED, having as a value a ten-character ASCII order number. The order number should be the UNIX time in seconds when the map was built. The second key is YP_MASTER_NAME, with the name of the YP master server as a value. Makedbm generates both key-value pairs automatically. A map that does not contain both key-value pairs can be served by the YP, but the ypserv process is not able to return values for Get order number or Get master name requests. In addition, values of these two keys are used by ypxfr when it transfers a map from a master YP server to a slave. If ypxfr cannot figure out where to get the map or is unable to determine whether the local copy is more recent than the copy at the master, you must set extra command line switches when you run it.

YP maps must be generated and modified at the master server only. They are copied to the slaves using ypxfr(8) to avoid potential byte-ordering problems among YP servers running on machines with different architectures, and to minimize the amount of disk space required for the dbm files. The YP database can be initially set up for both masters and slaves by using ypinit(8).

After the server databases are set up, it is probable that the contents of some maps will change. In general, some ASCII source version of the database exists on the master, and it is changed with a standard text editor. The update is incorporated into the YP map and is propagated from the master to the slaves by running /etc/yp/Makefile. All standard maps have entries in /etc/yp/Makefile; if you add a YP map, edit the this file to support the new map. The makefile uses makedbm to generate the YP map on the master, and yppush to propagate the changed map to the slaves. Yppush is a client of the map ypservers, which lists all the YP servers. For more information on this topic, see yppush(8).

SEE ALSO
makedbm(8), rpcinfo(8), ypinit(8), ypmake(8), yppoll(8), yppush(8), ypserv(8), ypxfr(8)