URI:
       tndb.7 - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
       tndb.7 (6110B)
       ---
            1 .TH NDB 7
            2 .SH NAME
            3 ndb \- Network database
            4 .SH DESCRIPTION
            5 .PP
            6 The network database consists of files
            7 describing machines known to the local
            8 installation and machines known publicly.
            9 The files comprise multi-line tuples made up of
           10 attribute/value pairs of the form
           11 .IB attr = value
           12 or sometimes just
           13 .IR attr .
           14 Each line starting without white space starts a new tuple.
           15 Lines starting with
           16 .B #
           17 are comments.
           18 .PP
           19 The file
           20 .B /lib/ndb/local
           21 is the root of the database.
           22 Other files are included in the
           23 database if a tuple with an
           24 attribute-value pair of attribute
           25 .B database
           26 and no value exists in
           27 .BR /lib/ndb/local .
           28 Within the
           29 .B database
           30 tuple,
           31 each pair with attribute
           32 .B file
           33 identifies a file to be included in the database.  The files are searched
           34 in the order they appear.
           35 For example:
           36 .IP
           37 .EX
           38 database=
           39         file=/lib/ndb/common
           40         file=/lib/ndb/local
           41         file=/lib/ndb/global
           42 .EE
           43 .PP
           44 declares the database to be composed of the three files
           45 .BR /lib/ndb/common ,
           46 .BR /lib/ndb/local ,
           47 and 
           48 .BR /lib/ndb/global .
           49 By default,
           50 .B /lib/ndb/local
           51 is searched before the others.
           52 However,
           53 .B /lib/ndb/local
           54 may be included in the
           55 .B database
           56 to redefine its ordering.
           57 .PP
           58 Within tuples, pairs on the same line bind tighter than
           59 pairs on different lines.
           60 .PP
           61 Programs search the database directly using the routines in
           62 .MR ndb (3) .
           63 .\" or indirectly using
           64 .\" .B ndb/cs
           65 .\" and
           66 .\" .B ndb/dns
           67 .\" (see
           68 .\" .IR ndb (1)).
           69 .\" Both
           70 .\" .B ndb/cs
           71 The routine
           72 .I ndbipinfo
           73 imposes structure on the otherwise flat database by using
           74 knowledge specific to the network.
           75 The internet is made up of networks which can be subnetted
           76 multiple times.  A network must have an
           77 .B ipnet
           78 attribute and is uniquely identified by the values of its
           79 .B ip
           80 and
           81 .B ipmask
           82 attributes.  If the
           83 .B ipmask
           84 is missing, the relevant Class A, B or C one is used.
           85 .LP
           86 A search for an attribute associated with a network or host starts
           87 at the lowest level, the entry for the host or network itself,
           88 and works its way up, bit by bit, looking at entries for nets/subnets
           89 that include the network or host.  The search ends when the attribute
           90 is found.
           91 For example, consider at the following entries:
           92 .IP
           93 .EX
           94 ipnet=murray-hill ip=135.104.0.0 ipmask=255.255.0.0
           95         dns=135.104.10.1
           96         ntp=ntp.cs.bell-labs.com
           97 ipnet=plan9 ip=135.104.9.0 ipmask=255.255.255.0
           98         ntp=oncore.cs.bell-labs.com
           99         smtp=smtp1.cs.bell-labs.com
          100 ip=135.104.9.6 sys=anna dom=anna.cs.bell-labs.com
          101         smtp=smtp2.cs.bell-labs.com
          102 .EE
          103 .LP
          104 Here
          105 .B anna
          106 is on the subnet
          107 .B plan9
          108 which is in turn on the class B net
          109 .BR murray-hill .
          110 Assume that we're searching for
          111 .BR anna 's
          112 .B NTP
          113 and
          114 .B SMTP
          115 servers.
          116 The search starts by looking for an entry with
          117 .BR sys=anna .
          118 We find the anna entry.  Since it has an 
          119 .B smtp=smtp2.cs.bell-labs.com
          120 pair,
          121 we're done looking for that attribute.
          122 To fulfill the NTP request, we continue by looking for networks
          123 that include anna's IP address.
          124 We lop off the right most one bit from anna's address and
          125 look for an
          126 .B ipnet=
          127 entry with
          128 .BR ip=135.104.9.4 .
          129 Not finding one, we drop another bit and look for an
          130 .B ipnet=
          131 entry with
          132 .BR ip=135.104.9.0 .
          133 There is
          134 such an entry and it has the pair,
          135 .BR ntp=oncore.cs.bell-labs.com ,
          136 ending our search.
          137 .\" .PP
          138 .\" .I Ndb/cs
          139 .\" can be made to perform such network aware
          140 .\" searches by using metanames in the dialstring.
          141 .\" A metaname is a
          142 .\" .I $
          143 .\" followed by an attribute name.
          144 .\" .I Ndb/cs
          145 .\" looks up the attribute relative to the system it is running
          146 .\" on.  Thus, with the above example, if a program called
          147 .\" .IP
          148 .\" .EX
          149 .\"         dial("tcp!$smtp!smtp", 0, 0, 0);
          150 .\" .EE
          151 .\" .LP
          152 .\" the dial would connect to the SMTP port of
          153 .\" .BR smtp2.cs.bell-labs.com .
          154 .PP
          155 A number of attributes are meaningful to programs and thus
          156 reserved.
          157 They are:
          158 .TF restricted
          159 .TP
          160 .B sys
          161 system name
          162 .TP
          163 .B dom
          164 Internet domain name
          165 .TP
          166 .B ip
          167 Internet address
          168 .TP
          169 .B ether
          170 Ethernet address
          171 .TP
          172 .B bootf
          173 file to download for initial bootstrap
          174 .TP
          175 .B ipnet
          176 Internet network name
          177 .TP
          178 .B ipmask
          179 Internet network mask
          180 .TP
          181 .B ipgw
          182 Internet gateway
          183 .TP
          184 .B auth
          185 authentication server to be used
          186 .TP
          187 .B authdom
          188 authentication domain.  Plan 9 supports multiple authentication
          189 domains.  To specify an authentication server for a particular domain,
          190 add a tuple containing both
          191 .B auth
          192 and
          193 .B authdom
          194 attributes and values.
          195 .TP
          196 .B fs
          197 file server to be used
          198 .TP
          199 .B tcp
          200 a TCP service name
          201 .TP
          202 .B udp
          203 a UDP service name
          204 .TP
          205 .B il
          206 an IL service name
          207 .TP
          208 .B port
          209 a TCP, UDP, or IL port number
          210 .TP
          211 .B restricted
          212 a TCP service that can be called only by ports numbered
          213 less that 1024
          214 .TP
          215 .B proto
          216 a protocol supported by a host.
          217 .TP
          218 .B dnsdomain
          219 a domain name that
          220 .I ndb/dns
          221 adds onto any unrooted names when doing a search
          222 There may be multiple
          223 .B dnsdomain
          224 pairs.
          225 .TP
          226 .B dns
          227 a DNS server to use (for DNS and DHCP)
          228 .TP
          229 .B ntp
          230 an NTP server to use (for DHCP)
          231 .TP
          232 .B smtp
          233 an SMTP server to use (for DHCP)
          234 .TP
          235 .B time
          236 a time server to use (for DHCP)
          237 .TP
          238 .B wins
          239 a Windows name server (for DHCP)
          240 .TP
          241 .B mx
          242 mail exchanger (for DNS and DHCP)
          243 .TP
          244 .B soa
          245 start of area (for DNS)
          246 .sp
          247 .PD
          248 .\" .PP
          249 .\" The file
          250 .\" .B \*9/ndb/auth
          251 .\" is used during authentication to decide who has the power to `speak for' other
          252 .\" users; see
          253 .\" .IR authsrv (6).
          254 .SH EXAMPLES
          255 .LP
          256 A tuple for the CPU server, spindle.
          257 .LP
          258 .EX
          259 sys = spindle
          260         dom=spindle.research.bell-labs.com
          261         bootf=/mips/9powerboot
          262         ip=135.104.117.32 ether=080069020677
          263         proto=il
          264 .EE
          265 .LP
          266 Entries for the network
          267 .B mh-astro-net
          268 and its subnets.
          269 .LP
          270 .EX
          271 ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0
          272         fs=bootes.research.bell-labs.com
          273         ipgw=r70.research.bell-labs.com
          274         auth=p9auth.research.bell-labs.com
          275 ipnet=unix-room ip=135.104.117.0
          276         ipgw=135.104.117.1
          277 ipnet=third-floor ip=135.104.51.0
          278         ipgw=135.104.51.1
          279 .EE
          280 .LP
          281 Mappings between TCP service names and port numbers.
          282 .LP
          283 .EX
          284 .ta \w'\fLtcp=sysmonxxxxx'u \w'\fLtcp=sysmonxxxxxport=512xxx'u
          285 tcp=sysmon        port=401
          286 tcp=rexec        port=512        restricted
          287 tcp=9fs        port=564
          288 .EE
          289 .SH FILES
          290 .TP
          291 .B \*9/ndb/local
          292 first database file searched
          293 .SH "SEE ALSO"
          294 .\" .IR dial (2),
          295 .MR ndb (1) ,
          296 .MR ndb (3)
          297 .\" .IR dhcpd (8),
          298 .\" .IR ipconfig (8),
          299 .\" .IR con (1)