Bootstrap Protocol
Bootstrap Protocol (zkratka BOOTP) je v informatice síťový protokol, který se používal v počítačových sítích pro nastavení parametrů pro stanice používající TCP/IP. BOOTP je definován v RFC 951 z roku 1985. V současné době je nahrazen protokolem DHCP.
Charakteristika
Aby mohly stanice v lokální počítačové síti komunikovat pomocí rodiny protokolů TCP/IP, je na nich nutné nastavit několik základních parametrů (zpravidla IP adresa, maska sítě, brána a adresy DNS serverů). Z hlediska správy počítačové sítě není výhodné, aby tyto údaje byly uchovávány na pevných discích stanic, protože v případě jejich změny by je bylo nutné obcházet a ručně nastavení měnit. Proto se s výhodou používal protokol BOOTP, který všechny potřebné údaje přiděloval stanicím z centrální databáze dle potřeby.
BOOTP server uchovává ve své databázi seznam MAC adres síťových rozhraní stanic (síťové karty klientů). Na žádost stanic pak uložené údaje stanicím odesílá pomocí protokolu UDP.
Protokol BOOTP umožňoval používání bezdiskových stanic (typicky unixových systémů), které všechny potřebné údaje pro svůj start a následný běh mohly získat ze sítě. Počáteční univerzální kód byl uložen buď na disketě nebo v BootROM síťové karty. Po zapnutí počítače tento kód zjistí z BOOTP serveru kromě IP konfigurace také adresu serveru, na kterém je uložen obraz pro zavedení operačního systému. Tento obraz je následně stažen pomocí protokolu TFTP (nebo protokolu SFTP či FTP).
Nástupcem protokolu BOOTP je DHCP (Dynamic Host Configuration Protocol), který přináší doplňující vlastnosti, ale není zpětně kompatibilní.
Princip
Administrátor sítě vytváří konfigurační soubor, kde nastaví parametry pro všechna zařízení zapojená v lokální síti (síťové karty). Musí tedy udržovat databázi na bootp serveru a ručně do ní přidávat zařízení.
Startující stanice (bootp client – port 68) vytvoří dotaz „kdo jsem?“ a pomocí UDP ho odešle na IP adresu 255.255.255.255 (lokální broadcast – je odeslán na všechna zařízení v síti).
BOOTP server (port 67) po přijetí dotazu prohledá tabulku a najde-li v ní odpovídající MAC adresu tazatele, odešle mu z tabulky potřebná data pro nastavení síťové karty (IP adresu, masku podsítě, adresu DNS serveru, cestu k serveru a souboru ze kterého má nabootovat operační systém, atd.). IP adresa přidělená zařízení je přidělená nastálo. To znamená že každé zařízení v síti musí mít jeden profil na BOOTP serveru a zabírá pro sebe jednu konkrétní IP adresu, která nemůže být přidělená jinému zařízení v síti (ani v případě že dané zařízení není zrovna připojeno).
Ke vzájemné komunikaci serverů s klienty používají protokoly BOOTP i DHCP stejné porty. Servery DHCP a BOOTP přijímají požadavky od klientů pomocí portu UDP 67. Síťoví klienti používající protokoly BOOTP a DHCP si pro příjem odpovědí do serverů většinou zamlouvají port UDP 68.
Jelikož oba protokoly komunikují pomocí zpráv s téměř stejnou strukturou paketů, které také většinou posílají přes shodné známé porty, DHCP a BOOTP přenosoví agenti je nerozlišují (považují je za zprávy stejného formátu).
Současně s přidělenou IP adresou se BOOTP klient dozví od serveru také název bootovacího souboru (viz formát paketu). Tento soubor si klient stáhne ze serveru pomocí protokolu TFTP a následně zahájí bootování operačního systému.
Formát paketu
Počet oktetů Název pole Popis 1 Operation Kód operace (BOOTREQUEST nebo BOOTREPLY) 1 Hardware Typ Typ hardwarové adresy 1 Hardware Length Délka hardwarové adresy 1 Hops 4 Transaction ID ID transakce 2 Seconds Doba (sec.), která uplynula od začátku bootování 2 Flags 4 Client IP Adress IP adresa klienta – pokud zná klient svou IP 4 Your Client IP Address IP adresa klienta – na toto místo ji doplní server 4 Server IP Address IP adresa serveru 4 Gateway IP Address IP adresa gatewaye 16 Clinet Hardware Adress Hardwarová adresa klienta 64 Server Host Name Jméno serveru 128 File Name Jméno bootovacího souboru Vendor Specific Area Další informace pro klienta (adresa DNS atd.)