Blob


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)