Subversion Repositories planix.SVN

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 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 
.
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/9boot
190
to boot a PC via PXE.
191
.TP
192
.B ipnet
193
Internet network name
194
.TP
195
.B ipmask
196
Internet network mask
197
.TP
198
.B ipgw
199
Internet gateway
200
.TP
201
.B auth
202
authentication server to be used
203
.TP
204
.B authdom
205
authentication domain.  Plan 9 supports multiple authentication
206
domains.  To specify an authentication server for a particular domain,
207
add a tuple containing both
208
.B auth
209
and
210
.B authdom
211
attributes and values.
212
.TP
213
.B fs
214
file server to be used
215
.TP
216
.B tcp
217
a TCP service name
218
.TP
219
.B udp
220
a UDP service name
221
.TP
222
.B port
223
a TCP or UDP port number
224
.TP
225
.B restricted
226
a TCP service that can be called only by ports numbered
227
less that 1024
228
.TP
229
.B proto
230
a protocol supported by a host.
231
The pair
232
.B proto=il
233
was needed by
234
.I cs
235
(see
236
.IR ndb (8))
237
in tuples for hosts that supported the IL protocol
238
.TP
239
.B dnsdomain
240
a domain name that
241
.I ndb/dns
242
adds onto any unrooted names when doing a search.
243
There may be multiple
244
.B dnsdomain
245
pairs.
246
.TP
247
.B dns
248
a DNS server to use (for DNS and DHCP)
249
.TP
250
.B ntp
251
an NTP server to use (for DHCP)
252
.TP
253
.B smtp
254
an SMTP server to use (for DHCP)
255
.TP
256
.B time
257
a time server to use (for DHCP)
258
.TP
259
.B wins
260
a Windows name server (for DHCP)
261
.TP
262
.B mx
263
mail exchanger (for DNS and DHCP);
264
also
265
.BR pref .
266
.TP
267
.B srv
268
service location (for DNS);
269
also
270
.BR pri ,
271
.B weight
272
and
273
.BR port .
274
.TP
275
.B soa
276
start of area (for DNS)
277
.PD
278
.PP
279
.I Cs
280
defers to
281
.I dns
282
to translate dotted names to IP addresses,
283
only consulting the database files if
284
.I dns
285
cannot translate the name.
286
.PP
287
.I Cs
288
allows network entries with
289
.B sys
290
and
291
.B dom
292
attributes but no
293
.B ip
294
attribute.
295
Searches for the system name are resolved
296
by looking up the domain name with
297
.IR dns .
298
.PP
299
The file
300
.B /lib/ndb/auth
301
is used during authentication to decide who has the power to `speak for' other
302
users; see
303
.IR authsrv (6).
304
.SH EXAMPLES
305
.LP
306
A tuple for the CPU server, spindle.
307
.LP
308
.EX
309
sys=spindle
310
	dom=spindle.research.bell-labs.com
311
	bootf=/mips/9powerboot
312
	ip=135.104.117.32 ether=080069020677
313
.EE
314
.LP
315
Entries for the network
316
.B mh-astro-net
317
and its subnets.
318
.LP
319
.EX
320
ipnet=mh-astro-net ip=135.104.0.0 ipmask=255.255.255.0
321
	fs=bootes.research.bell-labs.com
322
	ipgw=r70.research.bell-labs.com
323
	auth=p9auth.research.bell-labs.com
324
ipnet=unix-room ip=135.104.117.0
325
	ipgw=135.104.117.1
326
ipnet=third-floor ip=135.104.51.0
327
	ipgw=135.104.51.1
328
.EE
329
.LP
330
Mappings between TCP service names and port numbers.
331
.LP
332
.EX
333
.ta \w'\fLtcp=sysmonxxxxx'u \w'\fLtcp=sysmonxxxxxport=512xxx'u
334
tcp=sysmon	port=401
335
tcp=rexec	port=512	restricted
336
tcp=9fs	port=564
337
.EE
338
.SH FILES
339
.TF /lib/ndb/local
340
.TP
341
.B /lib/ndb/local
342
first database file searched
343
.SH "SEE ALSO"
344
.IR con (1),
345
.IR dial (2),
346
.IR ndb (2),
347
.IR 9boot (8),
348
.IR booting (8),
349
.IR dhcpd (8),
350
.IR ipconfig (8),
351
.IR ndb (8)
352