4.3. Příprava souborů pro zavedení ze sítě pomocí TFTP

Pokud je váš počítač připojen do lokální sítě, můžete jej zavést ze sítě pomocí TFTP. Jestliže chcete pomocí TFTP zavést instalační systém, musíte na vzdáleném počítači nakopírovat zaváděcí soubory do specifických adresářů a povolit zavádění vaší stanice.

Musíte nastavit TFTP server a často i DHCP server server.

DHCP (Dynamic Host Configuration Protocol) je flexibilnější, zpětně kompatibilní rozšíření protokolu BOOTP. Některé systémy mohou být nastaveny pouze pomocí DHCP.

Pro přenos zaváděcího obrazu ke klientovi se používá protokol TFTP (Trivial File Transfer Protocol). Teoreticky můžete použít server na libovolné platformě, která jej implementuje. Ukázky v této kapitole se vztahují k operačním systémům SunOS 4.x, SunOS 5.x (neboli Solaris) a GNU/Linux.

4.3.1. Nastavení DHCP serveru

Jedním ze svobodných DHCP serverů je ISC dhcpd. Debian GNU/Linux jej obsahuje jako balík dhcp3-server. Následuje ukázka jednoduchého konfiguračního souboru (obvykle /etc/dhcp3/dhcpd.conf):

option domain-name "priklad.cz";
option domain-name-servers ns1.priklad.cz;
option subnet-mask 255.255.255.0;
default-lease-time 600;
max-lease-time 7200;
server-name "karel";

subnet 192.168.1.0 netmask 255.255.255.0 {
  range 192.168.1.200 192.168.1.253;
  option routers 192.168.1.1;
}

host clientname {
  filename "/tftpboot/tftpboot.img";
  server-name "karel";
  next-server dalsiserver.priklad.cz;
  hardware ethernet 01:23:45:67:89:AB;
  fixed-address 192.168.1.90;
}

V tomto příkladu máme jeden server jménem karel, který obstarává práci DHCP a TFTP serveru a také slouží jako brána do sítě. Ve svém nastavení si musíte změnit alespoň doménové jméno, jméno serveru a hardwarovou adresu klienta. Položka filename by měla obsahovat název souboru, který si klient stáhne přes TFTP.

Po úpravách konfiguračního souboru musíte restartovat dhcpd příkazem /etc/init.d/dhcpd3-server restart.

4.3.2. Povolení TFTP serveru

Aby vám TFTP server fungoval, měli byste nejprve zkontrolovat, zda je tftpd povolen. Toho obvykle docílíte následující řádkou v souboru /etc/inetd.conf:

tftp dgram udp wait nobody /usr/sbin/tcpd in.tftpd /tftpboot

Při instalaci z debianích balíků se o nic nemusíte starat, protože se tento řádek založí automaticky při instalaci balíku.

Poznámka

TFTP servery historicky používaly pro uložení nabízených obrazů adresář /tftpboot. Aby byl Debian GNU/Linux v souladu se standardem FHS, mohou debianí balíky používat jiná umístění. Například tftpd-hpa implicitně používá adresář /var/lib/tftpboot. Je proto možné, že budete muset cesty uváděné v této kapitole upravit pro konkrétní situaci.

Podívejte se do souboru /etc/inetd.conf a zapamatujte si název adresáře, jehož jméno je za in.tftpd;[2] budete jej dále potřebovat. Pokud musíte změnit obsah souboru /etc/inetd.conf, musíte také upozornit proces inetd, aby aktualizoval svá nastavení. Na počítači s Debianem stačí spustit /etc/init.d/inetd reload. Na jiných systémech musíte zjistit ID běžícího procesu inetd a spustit kill -HUP pid-inetd.

Pokud je vaším TFTP serverem GNU/Linux s jádrem 2.4.X a instalujete na počítač SGI, musíte na něm následujícím příkazem vypnout „Path MTU discovery“:

# echo 1 > /proc/sys/net/ipv4/ip_no_pmtu_disc

Pokud tak neučiníte, PROM na SGI nebude moci stáhnout jádro. Dále zkontrolujte že TFTP pakety jsou posílány z portu menšího než 32767, protože jinak by se přenos zastavil po prvním paketu. Rozsah zdrojových portů, které má TFTP server používat se nastaví příkazem:

# echo "2048 32767" > /proc/sys/net/ipv4/ip_local_port_range

4.3.3. Přesun TFTP obrazů na místo

Dále je potřeba umístit příslušný TFTP obraz (viz 4.2.1 – „Kde se nalézají instalační obrazy?“) do adresáře, kde má tftpd uloženy obrazy. Bohužel TFTP klient očekává jméno souboru v určitém tvaru, pro který neexistují žádné závazné standardy. Proto ještě musíte na příslušný obraz vytvořit odkaz, který tftpd použije pro zavedení konkrétního klienta.

4.3.3.1. TFTP zavádění na SGI

U počítačů SGI se můžete spolehnout na bootpd, že předá správné jméno TFTP souboru. Jméno se zadává v souboru /etc/bootptab jako parametr bf= nebo v souboru /etc/dhcpd.conf parametrem filename=.

4.3.3.2. TFTP zavádění na Broadcom BCM91250A a BCM91480B

DHCP nemusíte nijak zvlášť nastavovat, protože celou cestu k souboru, který se má nahrát, zadáte do CFE.



[2] Přepínač -l umožňuje některým verzím in.tftpd zaznamenávat všechny požadavky, které mu byly zaslány, do systémových logů. To je vhodné zejména v situaci, kdy zavádění neprobíhá tak, jak má.