]> git.lizzy.rs Git - plan9front.git/blob - sys/man/6/ndb
games/mix: document -g option, rename tests to examples as it is in the man page
[plan9front.git] / sys / man / 6 / ndb
1 .TH NDB 6
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 \r.
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 .IR ndb (2)
63 or indirectly using
64 .B ndb/cs
65 and
66 .B ndb/dns
67 (see
68 .IR ndb (8)).
69 Both
70 .B ndb/cs
71 and the routine
72 .I ndbipinfo
73 impose 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 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 dnsdomain
159 .TP
160 .B sys
161 system name (a short name)
162 .TP
163 .B dom
164 Internet fully-qualified domain name
165 .TP
166 .B ip
167 Internet address,
168 v4 or v6.
169 .TP
170 .B ipv6
171 IPv6 Internet address.
172 For DNS, an
173 .L AAAA
174 record.
175 .TP
176 .B ether
177 Ethernet address
178 (must be lower-case hexadecimal).
179 Beware that for machines with multiple
180 .B ether
181 attributes,
182 .I dhcpd
183 may expect requests to come from the address in the first
184 .B ether
185 attribute.
186 .TP
187 .B bootf
188 file to download for initial bootstrap;
189 .B /386/9bootpxe
190 to boot a PC via PXE.
191 .TP
192 .B tftp
193 an TFTP server to use for PXE bootstrap
194 .TP
195 .B ipnet
196 Internet network name
197 .TP
198 .B ipmask
199 Internet network mask
200 .TP
201 .B ipgw
202 Internet gateway (ip address)
203 .TP
204 .B auth
205 authentication server to be used
206 .TP
207 .B authdom
208 authentication domain.  Plan 9 supports multiple authentication
209 domains.  To specify an authentication server for a particular domain,
210 add a tuple containing both
211 .B auth
212 and
213 .B authdom
214 attributes and values.
215 .TP
216 .B fs
217 file server to be used
218 .TP
219 .B tcp
220 a TCP service name
221 .TP
222 .B udp
223 a UDP service name
224 .TP
225 .B port
226 a TCP or UDP port number
227 .TP
228 .B restricted
229 a TCP service that can be called only by ports numbered
230 less than 1024
231 .TP
232 .B proto
233 a protocol supported by a host.
234 The pair
235 .B proto=il
236 was needed by
237 .I cs
238 (see
239 .IR ndb (8))
240 in tuples for hosts that supported the IL protocol
241 .TP
242 .B dnsdomain
243 a domain name that
244 .I ndb/dns
245 adds onto any unrooted names when doing a search.
246 There may be multiple
247 .B dnsdomain
248 pairs.
249 .TP
250 .B dns
251 a DNS server to use (for DNS and DHCP)
252 .TP
253 .B ntp
254 an NTP server to use (for DHCP)
255 .TP
256 .B smtp
257 an SMTP server to use (for DHCP)
258 .TP
259 .B time
260 a time server to use (for DHCP)
261 .TP
262 .B wins
263 a Windows name server (for DHCP)
264 .TP
265 .B mx
266 mail exchanger (for DNS and DHCP);
267 also
268 .BR pref .
269 .TP
270 .B srv
271 service location (for DNS);
272 also
273 .BR pri ,
274 .B weight
275 and
276 .BR port .
277 .TP
278 .B soa
279 start of area (for DNS)
280 .PD
281 .PP
282 .I Cs
283 defers to
284 .I dns
285 to translate dotted names to IP addresses,
286 only consulting the database files if
287 .I dns
288 cannot translate the name.
289 .PP
290 .I Cs
291 allows network entries with
292 .B sys
293 and
294 .B dom
295 attributes but no
296 .B ip
297 attribute.
298 Searches for the system name are resolved
299 by looking up the domain name with
300 .IR dns .
301 .PP
302 The file
303 .B /lib/ndb/auth
304 is used during authentication to decide who has the power to `speak for' other
305 users; see
306 .IR authsrv (6).
307 .SH EXAMPLES
308 .LP
309 A tuple for the CPU server, spindle.
310 .LP
311 .EX
312 sys=spindle
313         dom=spindle.research.bell-labs.com
314         bootf=/mips/9powerboot
315         ip=135.104.117.32 ether=080069020677
316 .EE
317 .LP
318 Entries for the network
319 .B mh-astro-net
320 and its subnets.
321 .LP
322 .EX
323 ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0
324         fs=bootes.research.bell-labs.com
325         ipgw=r70.research.bell-labs.com
326         auth=p9auth.research.bell-labs.com
327 ipnet=unix-room ip=135.104.117.0
328         ipgw=135.104.117.1
329 ipnet=third-floor ip=135.104.51.0
330         ipgw=135.104.51.1
331 .EE
332 .LP
333 Mappings between TCP service names and port numbers.
334 .LP
335 .EX
336 .ta \w'\fLtcp=sysmonxxxxx'u \w'\fLtcp=sysmonxxxxxport=512xxx'u
337 tcp=sysmon      port=401
338 tcp=rexec       port=512        restricted
339 tcp=9fs port=564
340 .EE
341 .SH FILES
342 .TF /lib/ndb/local
343 .TP
344 .B /lib/ndb/local
345 first database file searched
346 .SH "SEE ALSO"
347 .IR con (1),
348 .IR dial (2),
349 .IR ndb (2),
350 .IR booting (8),
351 .IR dhcpd (8),
352 .IR ipconfig (8),
353 .IR ndb (8)