Bootstrap Protocol
Wygląd
BOOTP (ang. BOOTstrap Protocol - protokół początkowego ładowania systemu) - protokół komunikacyjny typu UDP umożliwiający komputerom w sieci uzyskanie od serwera danych konfiguracyjnych, np. adresu IP. Następcą BOOTP jest DHCP.
BOOTP jest zdefiniowany w RFC 951.
Zasada działania (w uproszczeniu)
- Klient formułuje i wysyła zapytanie BOOTP na adres broadcast (port docelowy 67, port źródłowy 68). Operacje wykonywane przed wysłaniem:
- Klient ustawia "liczbę skoków" na 0. Każdy pośredni ruter będzie zwiększał tę liczbę o 1. Jeśli wartość ta przekroczy skonfigurowane na serwerze maksimum, pakiet zostanie odrzucony.
- Klient ustawia "ilość sekund" na 0. Jeśli nie otrzyma odpowiedzi, klient ponawia zapytanie ustawiając pole ponownie wpisując ilość sekund, jaka upłynęła od czasu wysłania pierwszego pakietu BOOTREQUEST.
- Klient ustawia "adres IP bramki" na 0. Serwer BOOTP po odczytaniu tak wypełnionego pola wpisuje w nie swój adres.
- Jeśli klient zna swój adres IP, wypełnia pole "adres IP klienta".
- Serwer, po odebraniu pakietu, sprawdza czy posiada konfigurację dla klienta. Jeśli tak jest, wysyła odpowiedni pakiet BOOTREPLY do klienta zawierający wymagane informacje konfiguracyjne lub nazwę pliku, który klient pobiera z serwera wykorzystując TFTP.
- Jeśli serwer nie posiada konfiguracji dla klienta, sprawdza czy posiada dla niego informację o przekazaniu zapytania do innego serwera BOOTP. Jeśli tak nie jest, pakiet jest odrzucany. W przeciwnym wypadku serwer sprawdza czy:
- "liczba skoków" przekroczyła skonfigurowane maksimum
- "liczba sekund" przekroczyła dopuszczalną wartość
Jeśli którykolwiek z warunków jest spełniony, pakiet zostaje odrzucony. Jeśli żaden nie jest spełniony, serwer przekazuje zapytanie do serwera BOOTP zgodnie z konfiguracją.
- Kroki 2, 3 są powtarzane dopóty, dopóki nie znajdzie się serwer gotowy udzielić odpowiedzi klientowi lub nie zostanie spełniony jeden z warunków odrzucenia pakietu.
UWAGA: Z użyciem protokołu BOOTP maszyna może wystartować poprzez bramkę, istotne jednak jest, aby serwer BOOTP zawierający informację o przekazaniu zapytania BOOTREQUEST znajdował się po tej samej stronie bramki co klient.
Nagłówek BOOTP
00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
operacja | typ sprzętu | długość adresu sprzętowego | ilość skoków | ||||||||||||||||||||||||||||
xid (identyfikator transakcji) | |||||||||||||||||||||||||||||||
ilość sekund | flagi | ||||||||||||||||||||||||||||||
adres IP klienta | |||||||||||||||||||||||||||||||
przydzielony adres IP klienta | |||||||||||||||||||||||||||||||
adres IP serwera | |||||||||||||||||||||||||||||||
adres IP bramki | |||||||||||||||||||||||||||||||
adres sprzętowy klienta (16 oktetów) | |||||||||||||||||||||||||||||||
nazwa serwera (64 oktety) | |||||||||||||||||||||||||||||||
plik startowy (128 oktetów) | |||||||||||||||||||||||||||||||
opcje producenta (64 oktety) |
- operacja
- kod operacji, możliwe wartości to: BOOTREQUEST [1], BOOTREPLY [2]
- typ sprzętu
- liczba z zakresu 1-28 oznaczająca typ sprzętu (karty sieciowej). Dla sieci ethernetowej przyjmuje wartość 1.
- długość HA
- długość adresu sprzętowego używanego do identyfikacji urządzeń sieciowych
- ilość skoków
- zliczanie pośrednich ruterów biorących udział w transmisji pakietu
- xid
- wybierany losowo przez klienta identyfikator (w sytuacji, gdy serwer nie będzie w stanie 'zrozumieć' adresu sprzętowego klienta (wyśle odpowiedź na broadcast), xid będzie jedynym sposobem rozpoznania odpowiedzi kierowanej do klienta)
- ilość sekund
- mierzony w sekundach czas, jaki upłynął od momentu pierwszego wysłania przez klienta wiadomości typu BOOTREQUEST
- flagi
- zdefiniowane w RFC 1542
- adres IP klienta
- ustawia klient, jeśli zna
- przydzielony adres IP
- ustawia serwer
- adres IP serwera
- ustawia serwer
- adres IP bramki
- ustawia serwer
- adres sprzętowy klienta
- ustawia klient
- nazwa serwera
- ustawia serwer
- plik startowy
- ustawia serwer
Zobacz też
Linki zewnętrzne
- RFC 951: Bootstrap Protocol (BOOTP)