plan9port

[fork] Plan 9 from user space
git clone git://src.adamsgaard.dk/plan9port # fast
git clone https://src.adamsgaard.dk/plan9port.git # slow
Log | Files | Refs | README | LICENSE Back to index

ndb.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)