glenda.party
term% ls -F
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
       database tuple, each pair with attribute file identifies a file  to  be
       included 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 at‐
       tribute 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/9boot to boot a  PC
              via PXE.

       ipnet  Internet network name

       ipmask Internet network mask

       ipgw   Internet gateway

       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  at‐
       tribute.   Searches  for the system name are resolved by looking up the
       domain 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), 9boot(8), booting(8), dhcpd(8), ipconfig(8),
       ndb(8)

                                                                        NDB(6)