Date: Tue, 07 Sep 1999 12:12:47 -0700 (PDT) From: Mike Subject: Re: tftpd and paths... To: nblug-talk@lists.sonic.net On Tue, 7 Sep 1999, John F. Kohler wrote: > Subject: Re: tftpd and paths... > > and...I don't understand the answer. > > ...lots to learn.. > John General overview on where and why it may be used (tftp) tftp : trivial file transfer protocol tftpd: trivial file transfer protocol daemon (The daemon is the server, the one without the daemon as part of its name is the client) tftp is a protol that can be used by any machine on the network to request a file from a tftp server *without* authentication. Normally, if you used standard ftp to get a file from an ftp server, you would: $ ftp hostname.here.com Name (hostname.here.com:user): anonymous 331 Guest login ok, send your complete e-mail address as password. Password: (not shown here, or echoed back with false characters) From here I can cruise through their directories and "GET" files for myself. tftp is different. tftp does not require this step for authentication. tftp make a requst of the server, like: Give me the file located at /kernels/linux-2.0.36 (to which the server look sto see if that file exists in its tftpd served directory like: /tftpboot or /boot for the full path of: /tftpbootp/kernels/linux-2.0.36 or /boot/kernels/linux-2.0.36 ) (The tftp daemon considers its starting directory the root directory so any request it gets has a "/tftpboot" or "/boot" prepended to it.) The tftpd server then sends the file (if it has the file and it is publicly readable) to the client. You do not often run into tftp/tftpd any more. The most common use it has if for updating BIOS, or firmware on specialized network equipment, or in this case to help a diskless workstation get started. Diskless workstations often use an ethernet card with an EPROM programmed with information on how to get an IP address with something called BOOTP or DHCP. (BOOTP: Boot Parameters Server) (DHCP : Dynamic Hosts Configuration Protocol) When the machine is first started, it goes through a POST (power On Self Test) and examines its internal BIOS (Basic Input Output System) for devices that will allow it to boot an OS (Operating system.) Common devices in many machines include: Floppy disk Hard Drive CD-ROM (sometimes in newer machines) A special EPROM chip added to an ethernet card, or certain types of hardware designed to be network booted, or use of a specially created floppy can allow you to make some machines "boot" their operating system and grab their file systems from over the network. (EPROM Erasable Programmable Read Only Memory) So here is what can happen in a network booted system: You turn on the machine. The machine looks through the list of hardware from which is may boot. The machine finds the ethernet card. The machine reads the BIOS from the ethernet card and understands how to send out a bootp request, understand the response, and memorize it. Part of the BOOTP (or DHCP) response includes an IP address, AND what server it is told will be a tftpd server, as well as what root directory it should find a file from the tftpd server and what file it will need. The machine sets its IP address up, and then uses its IP address to send out a tftp request (using the TCP/IP protocol suite since now it has an IP address) to the tftpd server it was told inthe BOOTP (or DHCP) response to get the file from... The tftpd server sends the file (if it has it, and it is publicly readable). The machines gets the file reads it into memory and continutes booting from it... (more steps are needed like NFS etc, but wiull not be covered here...) (NFS: Network File System) for more information, from a unix shell see: man bootp man dhcp man tftp man tftpf man bootptab Install the "netboot" package (if you have it available) and man mknbi-dos man mknbi-linux and do some searches at Linux.org in the HOW-TO and Mini-How-to sections for network booting for more complete descriptions... Andru and I first did some work with tftp a few years ago when we net-booted some Sun 3/50 and Sun 3/60 machines over a network. Now we have about 16 Linux based diskless workstations in use at work. They are GREAT for us. They have little maintenance. Everything is stored on the server, and executed on the diskless workstations. There are only 2 moving parts: The fan on the CPU and the fan on the power supply. If any one of them has a failure, then they are just "reset" and the machine reboots over the network. Andru is mostly responsible for setting this up and pushing it through at our work. He is the one that first suggested the idea, and made this happen. -M P.S. Ignore the typos, I do.