Bootstrap Protocol
BOOTP (ang. Bootstrap Protocol) – protokół komunikacyjny typu UDP umożliwiający komputerom w sieci uzyskanie od serwera danych konfiguracyjnych, np. adresu IP. Rozwinięciem i następcą protokołu BOOTP jest DHCP.
BOOTP jest zdefiniowany w RFC 951[1].
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 router będzie zwiększał tę liczbę o 1. Jeśli wartość ta przekroczy skonfigurowane na serwerze maksimum, pakiet zostanie odrzucony.
- Klient ustawia „liczbę sekund” na 0. Jeśli nie otrzyma odpowiedzi, klient ponawia zapytanie, ustawiając pole, ponownie wpisując liczbę 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 innego 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-07
|
08-15
|
16-23
|
24-31
|
operacja
|
typ sprzętu
|
długość adresu sprzętowego
|
liczba skoków
|
xid (identyfikator transakcji)
|
liczba sekund
|
nie używane
|
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
- liczba 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)
- liczba sekund
- mierzony w sekundach czas, jaki upłynął od momentu pierwszego wysłania przez klienta wiadomości typu BOOTREQUEST
- flagi
- zdefiniowane w RFC 1542[2]
- 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ż
Przypisy
- ↑ W.J.W.J. Croft W.J.W.J., J.J. Gilmore J.J., Bootstrap Protocol, RFC 951, IETF, wrzesień 1985, DOI: 10.17487/RFC0951, ISSN 2070-1721, OCLC 943595667 (ang.).
- ↑ W.W. Wimer W.W., Clarifications and Extensions for the Bootstrap Protocol, RFC 1542, IETF, październik 1993, DOI: 10.17487/RFC1542, ISSN 2070-1721, OCLC 943595667 (ang.).
|
|