Patrick Welche <prlw1@cam.ac.uk>
[netbsd-mini2440.git] / usr.sbin / bootp / bootpd / bootptab.5
blob8df7b1c04a6ad7b93012f040f7a060f662560481
1 .\" Copyright (c) 1988, 1989, 1991 Carnegie Mellon University
2 .\"
3 .\"     $NetBSD: bootptab.5,v 1.5 2001/01/05 17:05:26 agc Exp $
4 .\"
5 .TH BOOTPTAB 5 "October 31, 1991" "Carnegie Mellon University"
6 .UC 6
8 .SH NAME
9 bootptab \- Internet Bootstrap Protocol server database
10 .SH DESCRIPTION
11 The
12 .I bootptab
13 file is the configuration database file for
14 .IR bootpd ,
15 the Internet Bootstrap Protocol server.
16 Its format is similar to that of
17 .IR termcap (5)
18 in which two-character case-sensitive tag symbols are used to
19 represent host parameters.  These parameter declarations are separated by
20 colons (:), with a general format of:
21 .PP
22 .I "    hostname:tg=value:tg=value:tg=value:"
23 .PP
24 where
25 .I hostname
26 is the actual name of a bootp client (or a "dummy entry"), and
27 .I tg
28 is a two-character tag symbol.  Replies are returned to clients
29 only if an entry with the client's Ethernet or IP address exists
30 in the
31 .I booptab
32 file.  Dummy entries have an invalid hostname
33 (one with a "." as the first character) and are used to provide
34 default values used by other entries via the
35 .B tc=.dummy-entry
36 mechanism.  Most tags must be followed by an equal sign
37 and a value as above.  Some may also appear in a boolean form with no
38 value (i.e.
39 .RI : tg :).
40 The currently recognized tags are:
41 .PP
42 .br
43         bf      Bootfile
44 .br
45         bs      Bootfile size in 512-octet blocks
46 .br
47         cs      Cookie server address list
48 .br
49         df      Merit dump file
50 .br
51         dn      Domain name
52 .br
53         ds      Domain name server address list
54 .br
55         ef      Extension file
56 .br
57         gw      Gateway address list
58 .br
59         ha      Host hardware address
60 .br
61         hd      Bootfile home directory
62 .br
63         hn      Send client's hostname to client
64 .br
65         ht      Host hardware type (see Assigned Numbers RFC)
66 .br
67         im      Impress server address list
68 .br
69         ip      Host IP address
70 .br
71         lg      Log server address list
72 .br
73         lp      LPR server address list
74 .br
75         ns      IEN-116 name server address list
76 .br
77         nt      NTP (time) Server (RFC 1129)
78 .br
79         ra      Reply address override
80 .br
81         rl      Resource location protocol server address list
82 .br
83         rp      Root path to mount as root
84 .br
85         sa      TFTP server address client should use
86 .br
87         sm      Host subnet mask
88 .br
89         sw      Swap server address
90 .br
91         tc      Table continuation (points to similar "template" host entry)
92 .br
93         td      TFTP root directory used by "secure" TFTP servers
94 .br
95         to      Time offset in seconds from UTC
96 .br
97         ts      Time server address list
98 .br
99         vm      Vendor magic cookie selector
101         yd      YP (NIS) domain name
103         ys      YP (NIS) server address
106 There is also a generic tag,
107 .RI T n ,
108 where
109 .I n
110 is an RFC1084 vendor field tag number.  Thus it is possible to immediately
111 take advantage of future extensions to RFC1084 without being forced to modify
112 .I bootpd
113 first.  Generic data may be represented as either a stream of hexadecimal
114 numbers or as a quoted string of ASCII characters.  The length of the generic
115 data is automatically determined and inserted into the proper field(s) of the
116 RFC1084-style bootp reply.
118 The following tags take a whitespace-separated list of IP addresses:
119 .BR cs ,
120 .BR ds ,
121 .BR gw ,
122 .BR im ,
123 .BR lg ,
124 .BR lp ,
125 .BR ns ,
126 .BR nt ,
127 .BR ra ,
128 .BR rl ,
130 .BR ts .
132 .BR ip ,
133 .BR sa ,
134 .BR sw ,
135 .BR sm ,
137 .B ys
138 tags each take a single IP address.
139 All IP addresses are specified in standard Internet "dot" notation
140 and may use decimal, octal, or hexadecimal numbers
141 (octal numbers begin with 0, hexadecimal numbers begin with '0x' or '0X').
142 Any IP addresses may alternatively be specified as a hostname, causing
143 .I bootpd
144 to lookup the IP address for that host name using gethostbyname(3).
145 If the
146 .B ip
147 tag is not specified,
148 .I bootpd
149 will determine the IP address using the entry name as the host name.
150 (Dummy entries use an invalid host name to avoid automatic IP lookup.)
153 .B ht
154 tag specifies the hardware type code as either an unsigned decimal, octal, or
155 hexadecimal integer or one of the following symbolic names:
156 .B ethernet
158 .B ether
159 for 10Mb Ethernet,
160 .B ethernet3
162 .B ether3
163 for 3Mb experimental Ethernet,
164 .BR ieee802 ,
165 .BR tr ,
167 .B token-ring
168 for IEEE 802 networks,
169 .B pronet
170 for Proteon ProNET Token Ring, or
171 .BR chaos ,
172 .BR arcnet ,
174 .B ax.25
175 for Chaos, ARCNET, and AX.25 Amateur Radio networks, respectively.
177 .B ha
178 tag takes a hardware address which may be specified as a host name
179 or in numeric form.  Note that the numeric form
180 .I must
181 be specified in hexadecimal; optional periods and/or a leading '0x' may be
182 included for readability.  The
183 .B ha
184 tag must be preceded by the
185 .B ht
186 tag (either explicitly or implicitly; see
187 .B tc
188 below).
189 If the hardware address is not specified and the type is specified
190 as either "ethernet" or "ieee802", then
191 .I bootpd
192 will try to determine the hardware address using ether_hostton(3).
194 The hostname, home directory, and bootfile are ASCII strings which may be
195 optionally surrounded by double quotes (").  The client's request and the
196 values of the
197 .B hd
199 .B bf
200 symbols determine how the server fills in the bootfile field of the bootp
201 reply packet.
203 If the
204 .B bf
205 option is specified, its value is copied into the reply packet.
206 Otherwise, the name supplied in the client request is used.
207 If the
208 .B hd
209 option is specified, its value is prepended to the
210 boot file in the reply packet, otherwise the path
211 supplied in the client request is used.
212 The existence of the boot file is NOT verified by
213 .I bootpd
214 because the boot file may be on some other machine.
217 .B bs
218 option specified the size of the boot file.
219 It can be written as
220 .BR bs =auto
221 which causes
222 .I bootpd
223 to determine the boot file size automatically.
225 Some newer versions of
226 .I tftpd
227 provide a security feature to change their root directory using
229 .IR chroot (2)
230 system call.
232 .B td
233 tag may be used to inform
234 .I bootpd
235 of this special root directory used by
236 .IR tftpd .
237 (One may alternatively use the
238 .I bootpd
239 "-c chdir" option.)
241 .B hd
242 tag is actually relative to the root directory specified by the
243 .B td
244 tag.
245 For example, if the real absolute path to your BOOTP client bootfile is
246 /tftpboot/bootfiles/bootimage, and
247 .IR tftpd
248 uses /tftpboot as its "secure" directory, then specify the following in
249 .IR bootptab :
252         :td=/tftpboot:hd=/bootfiles:bf=bootimage:
254 If your bootfiles are located directly in /tftpboot, use:
257         :td=/tftpboot:hd=/:bf=bootimage:
260 .B sa
261 tag may be used to specify the IP address of the particular TFTP server
262 you wish the client to use.  In the absence of this tag,
263 .I bootpd
264 will tell the client to perform TFTP to the same machine
265 .I bootpd
266 is running on.
268 The time offset
269 .B to
270 may be either a signed decimal integer specifying the client's
271 time zone offset in seconds from UTC, or the keyword
272 .B auto
273 which uses the server's time zone offset.  Specifying the
274 .B to
275 symbol as a boolean has the same effect as specifying
276 .B auto
277 as its value.
279 The bootfile size
280 .B bs
281 may be either a decimal, octal, or hexadecimal integer specifying the size of
282 the bootfile in 512-octet blocks, or the keyword
283 .B auto
284 which causes the server to automatically calculate the bootfile size at each
285 request.  As with the time offset, specifying the
286 .B bs
287 symbol as a boolean has the same effect as specifying
288 .B auto
289 as its value.
291 The vendor magic cookie selector (the
292 .B vm
293 tag) may take one of the following keywords:
294 .B auto
295 (indicating that vendor information is determined by the client's request),
296 .B rfc1048
298 .B rfc1084
299 (which always forces an RFC1084-style reply), or
300 .B cmu
301 (which always forces a CMU-style reply).
304 .B hn
305 tag is strictly a boolean tag; it does not take the usual equals-sign and
306 value.  It's presence indicates that the hostname should be sent to RFC1084
307 clients.
308 .I Bootpd
309 attempts to send the entire hostname as it is specified in the configuration
310 file; if this will not fit into the reply packet, the name is shortened to
311 just the host field (up to the first period, if present) and then tried.
312 In no case is an arbitrarily-truncated hostname sent (if nothing reasonable
313 will fit, nothing is sent).
315 Often, many host entries share common values for certain tags (such as name
316 servers, etc.).  Rather than repeatedly specifying these tags, a full
317 specification can be listed for one host entry and shared by others via the
318 .B tc
319 (table continuation) mechanism.
320 Often, the template entry is a dummy host which doesn't actually exist and
321 never sends bootp requests.  This feature is similar to the
322 .B tc
323 feature of
324 .IR termcap (5)
325 for similar terminals.  Note that
326 .I bootpd
327 allows the
328 .B tc
329 tag symbol to appear anywhere in the host entry, unlike
330 .I termcap
331 which requires it to be the last tag.  Information explicitly specified for a
332 host always overrides information implied by a
333 .B tc
334 tag symbol, regardless of its location within the entry.  The
335 value of the
336 .B tc
337 tag may be the hostname or IP address of any host entry
338 previously listed in the configuration file.
340 Sometimes it is necessary to delete a specific tag after it has been inferred
342 .BR tc .
343 This can be done using the construction
344 .IB tag @
345 which removes the effect of
346 .I tag
347 as in
348 .IR termcap (5).
349 For example, to completely undo an IEN-116 name server specification, use
350 ":ns@:" at an appropriate place in the configuration entry.  After removal
351 with
352 .BR @ ,
353 a tag is eligible to be set again through the
354 .B tc
355 mechanism.
357 Blank lines and lines beginning with "#" are ignored in the configuration
358 file.  Host entries are separated from one another by newlines; a single host
359 entry may be extended over multiple lines if the lines end with a backslash
360 (\\).  It is also acceptable for lines to be longer than 80 characters.  Tags
361 may appear in any order, with the following exceptions:  the hostname must be
362 the very first field in an entry, and the hardware type must precede the
363 hardware address.
365 An example
366 .I /etc/bootptab
367 file follows:
370         # Sample bootptab file (domain=andrew.cmu.edu)
372         .default:\\
373                 :hd=/usr/boot:bf=null:\\
374                 :ds=netserver, lancaster:\\
375                 :ns=pcs2, pcs1:\\
376                 :ts=pcs2, pcs1:\\
377                 :sm=255.255.255.0:\\
378                 :gw=gw.cs.cmu.edu:\\
379                 :hn:to=-18000:
381         carnegie:ht=6:ha=7FF8100000AF:tc=.default:
382         baldwin:ht=1:ha=0800200159C3:tc=.default:
383         wylie:ht=1:ha=00DD00CADF00:tc=.default:
384         arnold:ht=1:ha=0800200102AD:tc=.default:
385         bairdford:ht=1:ha=08002B02A2F9:tc=.default:
386         bakerstown:ht=1:ha=08002B0287C8:tc=.default:
388         # Special domain name server and option tags for next host
389         butlerjct:ha=08002001560D:ds=128.2.13.42:\\
390                 :T37=0x12345927AD3BCF:\\
391                 :T99="Special ASCII string":\\
392                 :tc=.default:
394         gastonville:ht=6:ha=7FFF81000A47:tc=.default:
395         hahntown:ht=6:ha=7FFF81000434:tc=.default:
396         hickman:ht=6:ha=7FFF810001BA:tc=.default:
397         lowber:ht=1:ha=00DD00CAF000:tc=.default:
398         mtoliver:ht=1:ha=00DD00FE1600:tc=.default:
401 .SH FILES
402 /etc/bootptab
404 .SH "SEE ALSO"
406 bootpd(8), tftpd(8),
408 DARPA Internet Request For Comments RFC951, RFC1048, RFC1084, Assigned Numbers