Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

gethostbyaddr(3n)

gethostbyname(3n)

gethostent(3n)

namedbg(8n)



NAMESERVER(8N)          COMMAND REFERENCE          NAMESERVER(8N)



NAME
     nameserver - host name server daemon

SYNOPSIS
     /etc/nameserver [ -d ] [ -llocalsocket ] [ -rmaxretries ] [
     -ttimeout ] [ -pport# ]

DESCRIPTION
     The host name server daemon nameserver is the distributed
     server which maintains the host name and address data base
     used by the gethostbyname(3n) and gethostbyaddr(3n)
     subroutines.  The nameserver daemon operates on both a local
     UTek domain and a broadcast socket to the network.

     The nameserver broadcasts and receives on an Internet
     datagram socket.  When initialized, it broadcasts the
     address and name of all interfaces on the host machine.  The
     names are combinations of the host name (returned by
     gethostname(2)) and the device name.  For example:

          Address     Name      Aliases
          5.128.12.52 myname    myname0   mynameil0
          6.128.12.65 myname    myname1   mynameil1
          7.0.0.100   myname    myname2   mynameec0

     The file /etc/hosts is then read to create a list of hosts
     which are not running the nameserver.  Duplicates in this
     file are ignored.

     The daemon nameserver is a transaction oriented server; it
     handles transactions sent to a UTek domain stream socket:
     /tmp/name_socket.  Normally, you should use the functions
     gethostbyname(3n) and gethostbyaddr(3n), instead of
     communicating with the socket directly.

     If a request is found in the internal data base, the answer
     is sent right away.  If a request cannot be found in the
     internal data base, the request is broadcast to all networks
     to see if some other host knows the answer.  If an answer is
     not received in 3 seconds (this value can be changed using
     the -t flag) then an ERROR answer is sent.

     The nameserver also answers requests from other hosts, and
     forwards requests on to other networks.

     Testing

     If the nameserver appears to have problems it may be tested
     with the command namedbg(8n).

OPTIONS
     -d      Debugging, don't fork off a daemon.  Use



Printed 4/6/89                                                  1





NAMESERVER(8N)          COMMAND REFERENCE          NAMESERVER(8N)



             /tmp/name_debug for the local socket, and port 1163
             for the remote socket.

     -llocalfile
             The UTek domain socket localfile is used instead of
             /etc/name_socket.

     -tseconds
             Set timeout for retrying remote requests [default 3
             seconds].

     -rn     Make the broadcast request n times after failing
             before before returning a ``host unknown'' error
             message [default 3 times].

     -pport  Use Internet port number port instead of the entry
             tekname in /etc/services.

     Protocol

     The nameserver transmits and receives messages on the
     broadcast port in the tekname service specification, see
     services(5n).

     The local messages sent and received, are of the form
     (described in /usr/include/sys/nameserver.h):

          #define   MAXALIASES      7  /* max aliases for host */
          #define   NS_VERSION      3  /* version */

          #define   NSR_ERROR       0  /* type field values */
          #define   NSR_ANSWER      1  /* answer to a request */
          #define   NSR_GETNAME     2  /* Gethostbyname() */
          #define   NSR_GETADDR     3  /* Gethostbyaddr() */
          #define   NSR_STATUS      4  /* Dump hostname/addresss list */
          #define   NSR_DELNAME     5  /* delete all entries for name */
          #define   NSR_DELADDR     6  /* delete all entries for address */

          struct  ns_req {
                  u_short     nr_vers;   /* version of nameserver*/
                  u_short     nr_type;   /* type of request */
                  u_long  nr_addr;   /* address of host */
                  char    nr_host[MAXHOSTNAMESIZE];
                  char    nr_aliases[MAXALIASES][MAXHOSTNAMESIZE];
          };

     All fields are converted to network byte order prior to
     transmission.

     The broadcast request/answer formats are larger since they
     include information on networks visited and a request ID.




Printed 4/6/89                                                  2





NAMESERVER(8N)          COMMAND REFERENCE          NAMESERVER(8N)



          #define MAXNETS 256

          struct  nb_broad {
                  struct ns_req  nb_req;            /* request */
               u_long         nb_reqid;          /* unique request id */
               u_long         nb_from;           /* originally from */
               u_long         nb_nets[MAXNETS];  /* nets visited */
          };

     When forwarding a request to another network, a host extends
     the nb_nets field to include all networks it is forwarding
     to.  This allows a host to hosts on other networks (via a
     gateway).  A request is never sent to a network already
     listed in the nb_nets list.  The datagram can be shorter
     than the full structure size (answers have only request and
     ID).

     If no answer is received in 3 seconds (set by the -t option)
     then the request is resent.  If after 3 tries (set by the -r
     option) then an NSR_ERROR is returned.

FILES
     /tmp/name_socket
                    local communication to nameserver

     /etc/hosts
                    hosts not running the nameserver.

DIAGNOSTICS
     hostname not set!!
                    The hostname was not set, this is usually
                    done by netconfig(8n), or hostname(1n).

     invalid hostname
                    Only the following characters are allowed in
                    a host name: letters (uppercase or
                    lowercase), digits, underline ( _ ), or minus
                    sign ( - ).

     tekname/udp not in /etc/services
                    The Internet datagram port number used by
                    nameserver is not in the system file
                    /etc/services.

     The server daemon nameserver prints error messages via
     syslog(3c) to the system log files, after it has
     disassociated at start up.

RETURN VALUE
     [USAGE]        Incorrect command line syntax. Execution
                    terminated.




Printed 4/6/89                                                  3





NAMESERVER(8N)          COMMAND REFERENCE          NAMESERVER(8N)



     [NP_ERR]       An error occurred that was not a system
                    error.  Execution terminated.

CAVEATS
     Forces unique mapping from Internet address to host name;
     only one /etc/hosts entry can be used for a given address
     (second entry is ignored).

     Currently handles only Internet address.

     Should be able to talk to Internet nameserver if on Arpanet.

     The nameserver may cause Host Unknown messages when in fact
     the host is just down.

SEE ALSO
     gethostbyaddr(3n), gethostbyname(3n), gethostent(3n), and
     namedbg(8n).





































Printed 4/6/89                                                  4



%%index%%
na:408,88;
sy:496,434;
de:930,4098;
op:5028,152;5660,2506;8646,985;
fi:9631,396;
di:10027,1240;
rv:11267,217;11964,111;
ca:12075,683;
se:12758,296;
%%index%%000000000181

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026