BootManage TFTP Server User and Reference Manual
BootManage TFTP Server User and Reference Manual
®
Boot Manage
TFTP Server
BootManage® TFTP Server
Copyright:
All rights reserved. No part of this work covered by copyright may be reproduced
in any form or by any means - graphic, electronic or mechanical, including photo-
copying, recording, taping, or storage in an information retrieval system - without
prior written permission of the copyright owner.
Trademarks:
BootManage is a registered trademark of bootix Technology GmbH, D-41466
Neuss. All other company and product names are trademarks of the company or
manufacturer, respectively.
Colophon:
This document was produced using FrameMaker 5.5 on Windows NT worksta-
tions. Page proofs were printed on a 1200 dpi PostScript Level II printer, and final
output was run directly to film. The PDF file for online reading was created using
Adobe Acrobat 4.0.
Revision history:
January 2000, first version
Printed in Germany.
Table of Contents
Introduction ...............................................................................7
The TFTP Standard ............................................................................... 7
The BootManage® TFTP Server ........................................................... 8
A Word About Licensing .......................................................................................8
TFTPD32 ......................................................................................9
TFTPD32 Features ................................................................................. 9
Installing TFTPD32 ................................................................................ 9
Installation As a Service ...................................................................................... 10
TFTPD32 Commandline Options ....................................................... 10
Controlling Server and Network Load ............................................... 11
Limit Number Of Concurrent TFTP Transfers (-c) ............................................. 11
Enable Read-Ahead Buffers (-h) ......................................................................... 11
Terminate TFTP Server After Inactivity Period (-i) ............................................ 12
Set TFTP Transmission Keepalive Time (-k) ...................................................... 12
Security Related Options .................................................................... 12
Set TFTP Server Root Directory (-d) ................................................................... 12
Restrict TFTP Access To Directory (-r) ............................................................... 12
Enable TFTP Write Access (-w) .......................................................................... 12
Allow Creation of Files (-x) ................................................................................ 13
Logging ................................................................................................ 13
Log TFTP Server Activity (-l) ............................................................................... 13
Set Verbosity Level (-v) ....................................................................................... 13
Multicast TFTP Operation ................................................................... 13
Enable Multicast TFTP (MTFTP) Operation (-m) ............................................... 13
5
6
Document Title
RFC 1350 The TFTP Protocol (Revision 2)
RFC 1785 TFTP Option Negotiation Analysis
RFC 2347 TFTP Option Extension
RFC 2348 TFTP Blocksize Option
RFC 2349 TFTP Timeout Interval and Transfer Size Options
Most UNIX operating systems already contain a TFTP server as part of the operat-
ing system distribution, however this TFTP server may not always be full-featured.
Other server operating systems like Windows NT, NetWare, and OS/2 do not pro-
vide a TFTP server.
* There are more RFC documents on TFTP available, but most of them have been obsoleted by the doc-
uments shown in our table. For more information about the IETF and RFC documents, point your web
browser to http://www.ietf.org.
7
8
TFTPD32 is a 32-Bit TFTP server that runs on Microsoft Windows 95, Windows 98, Win-
dows NT Workstation and Server, and Windows 2000* Professional and Server
machines. On Windows NT, TFTPD32 can be run as a Win32 application or
installed as a Windows NT service.
TFTPD32 Features
TFTPD32 adds several features which are not available in standard TFTP imple-
mentations:
• Allows restricted file access for security.
• Provides several means of controlling server and network load.
• Allows larger TFTP segment sizes (LTFTP) for higher throughput and fewer
network transactions.
• Supports multicast file transfer (MTFTP) for faster concurrent booting of multi-
ple clients.
• Supports filename mapping (in combination with the BPBOOT bootstrap
loader from the BootManage® TCP/IP BOOT-PROM distribution).
Installing TFTPD32
First, copy the file tftpd32.exe to the local hard disk of a Windows 95/98, Win-
dows NT Workstation/Server, or Windows 2000 Professional/Server machine.
C:\> copy a:\tftpd32.exe %WINDIR% (on Windows 95/98)
C:\> copy a:\tftpd32.exe %SystemRoot%\system32 (on Windows NT)
* Support for Windows 2000 is in preparation and not yet available at this time.
9
10
TFTPD32 will look up the port number for the tftp port in the file %SystemRoot%\
system32\drivers\etc\services. If this entry is not present, TFTPD32 will use the fol-
lowing default:
tftp 69/udp
If you want to start TFTPD32 as a Win32 application, simply invoke it from the
commandline using the -cmd option and any other options which suit your needs,
e. g.:
C:\> tftpd32 -cmd -v 2
If you do not specify any options on the commandline, TFTPD32 will read the
options from the text file c:\etc\tftpd.cnf. For a detailed list of all supported
options, please see “TFTPD32 Commandline Options” on page 10.
Installation As a Service
If you want to install TFTPD32 as a Windows NT service, use the -install
option:
C:\> tftpd32 -install
Please note that when using -install, you cannot specify any other options on
the commandline. Therefore, be sure to place any desired options in the text file,
c:\etc\tftpd.cnf, where TFTPD32 will read them.
When installed as a service, TFTPD32 will automatically start at every Windows NT
system startup. Like any other service, you can start and stop TFTPD32 using the
Windows NT Service Control Manager. In addtion, you can control TFTPD32 from
the commandline:
C:\> net start tftpd (start TFTPD32 service)
C:\> net stop tftpd (stop TFTPD32 service)
Option Description
-a [file] Read table of mapped filenames from file
-b num Limit TFTP bandwidth to approximately num KBytes/s
-c num Number of concurrent TFTP transfers (max. 64)
-d [path] Restrict TFTP access to directory path and its subdirectories.
-h Enable read-ahead buffer.
-i num Exit after num seconds of inactivity.
-k num Set TFTP transmission keep-alive time.
-l [file] Log all messages to a file.
-m file port MTFTP configuration file and listen port.
-p num Set TFTP listen port.
-r Restrict file access to current directory.
-s num port Set TFTP segment size and listen port.
-t num Set Multicast Time-to-live value to num seconds
-u num Number of MTFTP unicasts to be sent (default: 4).
-v level Set level of verbosity (0, 1, or 2).
-w Enable writing to existing files on the TFTP server
-x If -w is also set, allow creation of files on the TFTP server
option is also specified, a TFTP client can only write to existing files and cannot
create new files.
Logging
TFTPD32 can log its activity to the application window on the screen, to the Win-
dows NT event log and/or to a log file.
Since there are no reserved port numbers for multicast TFTP, it cannot be guaran-
teed that the default ports of 75 and 76 will be available on all systems.
The first column holds the filename to be transmitted. If TFTPD32 receives an
MTFTP request for that filename on the specified MTFTP server port (75 in the
above example), then it sends the MTFTP packets to the IP address specified in
the second column (225.0.0.1). The third column holds the MTFTP client port
number where all data is sent.
This adds support for larger TFTP packets (here 1408 bytes) if the connection is
opened at UDP port 59 instead of the standard TFTP port 69. Opening a TFTP
transmission at the standard TFTP port 69 lets TFTPD32 send 512 byte packets.
Opening a TFTP transmission at the non-standard UDP port 59 allows TFTPD32 to
send up to 1408 bytes in TFTP packets.
Custom Settings
Specify TFTP Server Listen Port (-p)
By default, TFTPD32 uses UDP port number 69 to listen for TFTP file transfer
requests. This can be overridden by using the -p option. TFTPD32 can also be
Using Mapped Filenames 15
used together with an existing TFTP server. In this case, TFTPD32 is used only for
extended features.
To disable the standard TFTP functionality of TFTPD32, bind the TFTP UDP port
number to an unused UDP port, e.g.:
tftpd32 -s 1408 59 -m c:\etc\mtftptab 75 -v 1 -h -p 21435
Whenever TFTPD32 receives a TFTP request for a file/pathname which starts with
the character string $MAP$, it strips the $MAP$ prefix and looks up the remaining
file/pathname in the left-hand side of the map configuration file.
If a matching file/pathname is found, TFTPD32 replaces the requested file/path-
name with the corresponding (mapped) file/pathname listed in the right-hand side
of the map configuration file. Then, TFTPD32 sends the mapped file (instread of
the requested file) to the TFTP client.
If a matching file/pathname is not found, TFTPD32 checks if a $DEFAULT$ entry is
present at the end of the map configuration file. If it finds one, TFTPD32 uses the
mapped file/pathname associated with the $DEFAULT$ entry.
If a matching file/pathname is not found, and TFTPD32 also does not find a
$DEFAULT$ entry at the end of the map configuration file, it simply uses the (origi-
nal) requested file/pathname, but without the $MAP$ prefix.
The filename mapping feature is especially useful in combination with the BPBOOT
bootstrap loader which is part of the BootManage® TCP/IP BOOT-PROM distribu-
tion. BPBOOT can generate individual filenames using the client’s MAC address.
This allows to easily define “boot image groups” for PC clients in a DHCP environ-
ment without the need of specifying individual boot images in the DHCP server’s
configuration.
The commandline option -v is not needed for mapped filename operation, but it
is very useful for locating problems.
When receiving a TFTP read request for file $MAP$c:\tftpboot\778899aabbcc.X,
TFTPD32 strips the leading $MAP$ and looks up the remaining filename c:\tftp-
boot\778899aabbcc.X in the left-hand side of the map file c:\etc\tftpd.map. The
filename is found in the third row, so TFTPD32 substitutes it with the correspond-
ing entry c:\tftpboot\win95.X on the right-hand side and sends this file back to the
client. Likewise, when a TFTP client requests $MAP$c:\tftpboot\aabbccddeeff.X,
TFTPD32 sends c:\tftpboot\win98.X instead.
The first two rows of the map file c:\etc\tftpd.map demonstrate how to group
boot image files. Clients request different files ($MAP$c:\tftpboot\112233445566.X
and $MAP$c:\tftpboot\445566778899.X), but both are substituted by the same file
(c:\tftpboot\winnt40.X).
To demonstrate the $DEFAULT$ entry, let us assume that TFTPD32 receives a read
request for a file named $MAP$c:\tftpboot\123456789abc.X. This file is lot listed
in our sample map file, but it starts with the string $MAP$. In this case, TFTPD32
looks for a $DEFAULT$ entry on the left-hand side at the end of the map file. In
our map file, a $DEFAULT$ entry is present, so TFTPD32 uses this for substitution
and sends the file c:\tftpboot\bootfile.X back to the client. If there were no
$DEFAULT$ entry, TFTPD32 simply strips the $MAP$ prefix and sends the file c:\
tftpboot\123456789abc.X back to the client instead.