Skąd klient PXE wie, w której sieci działa?

9

W PXE Boot jednym z pierwszych kroków jest uzyskanie adresu IP przez DHCP.

Aby korzystać z DHCP, musisz znać adres emisji swojej sieci.

Jak ta sieć jest wstępnie skonfigurowana dla klienta PXE?

IanWatson
źródło
Klientowi PXE przypisuje się stały adres IP w sieci lokalnej.
DavidPostill
5
@DavidPostill: Jest to sprzeczne z odpowiedzią Daniela B i, o ile rozumiem, z dokumentami .
Mathieu K.,
1
Klienci DHCP wysyłają do 255.255.255.255 przy użyciu 0.0.0.0 jako „źródła” podczas inicjowania żądania rozgłaszania DHCP.
ivanivan

Odpowiedzi:

29

Jak mógłby się nawet komunikować w warstwie IP, gdy nie ma adresu? W rzeczywistości tak nie jest. Zamiast tego komunikuje się za pomocą warstwy 2.

Adres emisji dowolnej sieci Ethernet to FF: FF: FF: FF: FF: FF. Na warstwie IP jest 255.255.255.255. To jest obecne w pakiecie DHCPDISCOVER. W ten sposób możesz mieć zwykłe gniazdo nasłuchiwania UDP zamiast surowego gniazda Ethernet.

Daniel B.
źródło
6
Adres rozgłoszeniowy dowolnej sieci Ethernet to FF: FF: FF: FF: FF: FF. ” Dotyczy to każdego protokołu LAN IEEE, który używa 48-bitowych adresów MAC, np. Wi-Fi, Token Ring, FDDI itp.
Ron Maupin,
it communicates using layer 2to nie jest poprawne. Warstwa 2 nie osiąga poziomu sieci stosu IP serwera. Warstwa rozgłoszeniowa 2 przesyła ramkę Ethernet tylko do wszystkich słuchaczy w jednej konkretnej domenie kolizyjnej Ethernet. Adres rozgłoszeniowy IP to ten, który otwiera drzwi stosu IP serwera.
Pat
Na pewno. Jednak, jak napisałem, to „nie bardzo” komunikacja IP. Nie może być. Zamiast tego wykorzystuje przetwarzanie pakietów IP, wstawiając adresy źródłowy i docelowy, co da dobrze zdefiniowane zachowanie. Rzeczywiste adresowanie odbywa się wyłącznie na warstwie 2.
Daniel B,
Mylisz się. Adres IP emisji to zdecydowanie komunikacja IP. Jeśli nie ma tego adresu rozgłoszeniowego, warstwa IP serwera nie widzi pakietu. Jedyną szczególną rzeczą dotyczącą rozgłaszanego adresu IP jest to, że nie można go przekierować.
Pat
1
Myślę, że Pat ma rację i trochę źle ... w rzeczywistości rozgłaszanie w IP działa na warstwie 3 ... ale DHCP przetwarza wszystkie pierwsze kroki w L2 / ARP / MAC ... i tylko ostatni krok (mówiąc DHCP serwer obsługiwany adres IP jest akceptowany w L3 / Unicast) ... musi tak być, ponieważ na początku nie ma stosu IP / L3 ... inne usługi, które emitują IP inne niż DHCP, nie mają tego problemu (już mieć adres IP), aby mogli komunikować się przez L3 / L4 -> ...
ZEE
30

Aby korzystać z DHCP, musisz znać adres emisji swojej sieci.

Nie. Potrzebujesz tylko lokalnego adresu rozgłoszeniowego 255.255.255.255 (dla IPv4) lub grupy multiemisji ff02 :: 1: 2 (dla IPv6). Sensem DHCP jest to, że nie wymaga żadnej wcześniejszej konfiguracji na kliencie.

użytkownik1686
źródło
To nie jest poprawne. Potrzebujesz także adresu rozgłoszeniowego MAC (Warstwa 2), ponieważ ARP nie działa dla rozgłaszanego adresu IP.
Pat
Zakłada się, że mapowanie z adresu IP na adres rozgłoszeniowy MAC jest zawsze znane, ponieważ jest zdefiniowane przez protokół, więc nadal nie trzeba go konfigurować ręcznie.
user1686,
Mylisz się. na uruchamiającym się kliencie DHCP pakiet DHCPDISCOVERY musi definiować ZARÓWNO adresy rozgłaszania poziomu 2, jak i poziomu 3, nie można po prostu zdefiniować rozgłaszania poziomu 3 i myśleć, że każdy inny protokół wykryje docelowy adres MAC tylko z adresem docelowym rozgłoszeniowego adresu IP
Pat
3
  1. Rozruchowe oprogramowanie układowe wykrywa zainstalowane karty sieciowe
  2. Rozruchowe oprogramowanie układowe wykrywa każdy adres MAC NIC Broadcast, pytając sterownik PXE UNDI (UNDI GET INFORMACJE zwracające HwType i HwAddrLen), tj. HwType = ETHER_TYPE HwAddrLen = 6 => Adres MAC rozgłaszania = FF: FF: FF: FF: FF: FF.
  3. Uruchamianie oprogramowania układowego inicjuje sekwencję DHCP DORA (DHCPDISCOVERY) ogłaszającą się jako klient PXE (opcja DHCP 60) w kartach sieciowych obsługujących BIOS / UEFI przy użyciu:
    1. Odpowiadający wcześniej wykryty adres emisji MAC na poziomie OSI 2 (warstwa łącza danych)
    2. Adres emisji IPv4 / IPv6 z włączoną funkcją BIOS / UEFI (255.255.255.255/ff02::1:2) na poziomie OSI 3 (warstwa sieciowa)
  4. Uruchomienie oprogramowania układowego kończy sekwencję DHCP DORA, jeśli otrzymana zostanie pełna oferta DHCP-PXE określająca:

    1. Adres IP / adres maski klienta
    2. Adres IP serwera TFTP
    3. NBP (Network boot Program)

    Uwaga: W przypadku otrzymania więcej niż jednej kompletnej oferty obecne standardy nie określają szczegółowo, w jaki sposób klient musi wybrać jedną.

  5. Rozruchowe oprogramowanie układowe ustawia NIC IP, transfery TFTP, ładuje się do pamięci i wykonuje NBP.

Adres rozgłoszeniowy MAC warstwy 2 pozwala na dostarczenie ramki DHCP Ethernet do wszystkich słuchaczy w domenie kolizyjnej NIC Ethernet klienta. Adres rozgłoszeniowy IP warstwy 3 to ten, który otwiera drzwi stosu IP serwera DHCP. Potrzebne są oba adresy rozgłoszeniowe L2 / L3 .

Gdy klient PXE i serwer DHCP znajdują się w różnych podsieciach, ruch rozgłaszania DHCP jest zatrzymywany na routerze / routerach, wówczas muszą włączyć agenta przekazywania DHCP (IP Helper w świecie Cisco), tzn. Pobrać pakiet rozgłoszeniowy DHCPDISCOVERY, przekonwertować go na emisję pojedynczą DHCPDISCOVERY i skieruj go do adresu IP zdefiniowanego docelowego serwera DHCP.

Poklepać
źródło
Niezła odpowiedź, proszę pana.
Tim_Stewart