glenda.party
term% ls -F
term% pwd
$home/manuals/9front/6/ndb
term% cat index.txt
NDB(6)                           Games Manual                           NDB(6)



NAME
       ndb - Network database

DESCRIPTION
       The network database consists of files describing machines known to the
       local installation and machines known  publicly.   The  files  comprise
       multi-line  tuples  made  up  of  attribute/value  pairs  of  the  form
       attr=value or sometimes just attr.  Each line  starting  without  white
       space starts a new tuple.  Lines starting with # are comments.

       The  file  /lib/ndb/local is the root of the database.  Other files are
       included in the database if a tuple with an attribute-value pair of at‐
       tribute database and no value exists in /lib/ndb/local Within the data‐
       base tuple, each pair with attribute file identifies a file to  be  in‐
       cluded  in  the database.  The files are searched in the order they ap‐
       pear.  For example:

              database=
                   file=/lib/ndb/common
                   file=/lib/ndb/local
                   file=/lib/ndb/global

       declares the database to be composed of the three  files  /lib/ndb/com‐
       mon,  /lib/ndb/local,  and /lib/ndb/global.  By default, /lib/ndb/local
       is searched before the others.  However, /lib/ndb/local may be included
       in the database to redefine its ordering.

       Within  tuples,  pairs on the same line bind tighter than pairs on dif‐
       ferent lines.

       Programs search the database directly using the routines in  ndb(2)  or
       indirectly  using ndb/cs and ndb/dns (see ndb(8)).  Both ndb/cs and the
       routine ndbipinfo impose structure on the otherwise  flat  database  by
       using  knowledge  specific  to the network.  The internet is made up of
       networks which can be subnetted multiple times.  A network must have an
       ipnet  attribute and is uniquely identified by the values of its ip and
       ipmask attributes.  If the ipmask is missing, the relevant Class  A,  B
       or C one is used.

       A  search  for an attribute associated with a network or host starts at
       the lowest level, the entry for the host or network itself,  and  works
       its  way  up,  bit by bit, looking at entries for nets/subnets that in‐
       clude the network or host.  The  search  ends  when  the  attribute  is
       found.  For example, consider the following entries:

              ipnet=murray-hill ip=135.104.0.0 ipmask=255.255.0.0
                   dns=135.104.10.1
                   ntp=ntp.cs.bell-labs.com
              ipnet=plan9 ip=135.104.9.0 ipmask=255.255.255.0
                   ntp=oncore.cs.bell-labs.com
                   smtp=smtp1.cs.bell-labs.com
              ip=135.104.9.6 sys=anna dom=anna.cs.bell-labs.com
                   smtp=smtp2.cs.bell-labs.com

       Here  anna  is  on the subnet plan9 which is in turn on the class B net
       murray-hill.  Assume that we're  searching  for  anna's  NTP  and  SMTP
       servers.   The search starts by looking for an entry with sys=anna.  We
       find the anna entry.  Since it has an smtp=smtp2.cs.bell-labs.com pair,
       we're  done looking for that attribute.  To fulfill the NTP request, we
       continue by looking for networks that include anna's  IP  address.   We
       lop  off the right most one bit from anna's address and look for an ip‐
       net= entry with ip=135.104.9.4.  Not finding one, we drop  another  bit
       and look for an ipnet= entry with ip=135.104.9.0.  There is such an en‐
       try and  it  has  the  pair,  ntp=oncore.cs.bell-labs.com,  ending  our
       search.

       Ndb/cs  can  be  made  to  perform such network aware searches by using
       metanames in the dialstring.  A metaname is a $ followed by  an  attri‐
       bute  name.  Ndb/cs looks up the attribute relative to the system it is
       running on.  Thus, with the above example, if a program called

                   dial("tcp!$smtp!smtp", 0, 0, 0);

       the dial would connect to the SMTP port of smtp2.cs.bell-labs.com.

       A number of attributes are meaningful to programs  and  thus  reserved.
       They are:

       sys    system name (a short name)

       dom    Internet fully-qualified domain name

       ip     Internet address, v4 or v6.

       ipv6   IPv6 Internet address.  For DNS, an record.

       ether  Ethernet  address (must be lower-case hexadecimal).  Beware that
              for machines with multiple ether attributes,  dhcpd  may  expect
              requests to come from the address in the first ether attribute.

       bootf  file  to download for initial bootstrap; /386/9bootpxe to boot a
              PC via PXE.

       tftp   an TFTP server to use for PXE bootstrap

       ipnet  Internet network name

       ipmask Internet network mask

       ipgw   Internet gateway (ip address)

       auth   authentication server to be used

       authdom
              authentication domain.  Plan 9 supports multiple  authentication
              domains.   To  specify an authentication server for a particular
              domain, add a tuple containing both auth and authdom  attributes
              and values.

       fs     file server to be used

       tcp    a TCP service name

       udp    a UDP service name

       port   a TCP or UDP port number

       restricted
              a  TCP  service  that  can be called only by ports numbered less
              that 1024

       proto  a protocol supported by a host.  The pair proto=il was needed by
              cs (see ndb(8)) in tuples for hosts that supported the IL proto‐
              col

       dnsdomain
              a domain name that ndb/dns adds onto any unrooted names when do‐
              ing a search.  There may be multiple dnsdomain pairs.

       dns    a DNS server to use (for DNS and DHCP)

       ntp    an NTP server to use (for DHCP)

       smtp   an SMTP server to use (for DHCP)

       time   a time server to use (for DHCP)

       wins   a Windows name server (for DHCP)

       mx     mail exchanger (for DNS and DHCP); also pref.

       srv    service location (for DNS); also pri, weight and port.

       soa    start of area (for DNS)

       Cs  defers  to dns to translate dotted names to IP addresses, only con‐
       sulting the database files if dns cannot translate the name.

       Cs allows network entries with sys and dom attributes but no ip  attri‐
       bute.   Searches for the system name are resolved by looking up the do‐
       main name with dns.

       The file /lib/ndb/auth is used during authentication to decide who  has
       the power to `speak for' other users; see authsrv(6).

EXAMPLES
       A tuple for the CPU server, spindle.

       sys=spindle
            dom=spindle.research.bell-labs.com
            bootf=/mips/9powerboot
            ip=135.104.117.32 ether=080069020677

       Entries for the network mh-astro-net and its subnets.

       ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0
            fs=bootes.research.bell-labs.com
            ipgw=r70.research.bell-labs.com
            auth=p9auth.research.bell-labs.com
       ipnet=unix-room ip=135.104.117.0
            ipgw=135.104.117.1
       ipnet=third-floor ip=135.104.51.0
            ipgw=135.104.51.1

       Mappings between TCP service names and port numbers.

       tcp=sysmon     port=401
       tcp=rexec      port=512   restricted
       tcp=9fs        port=564

FILES
       /lib/ndb/local
              first database file searched

SEE ALSO
       con(1), dial(2), ndb(2), booting(8), dhcpd(8), ipconfig(8), ndb(8)



                                                                        NDB(6)