Come fa un client PXE a sapere su quale rete si trova?


9

In PXE Boot uno dei primi passi è acquisire un indirizzo IP tramite DHCP.

Per utilizzare DHCP è necessario conoscere l'indirizzo di trasmissione della propria rete.

Come viene inizialmente configurata questa rete per un client PXE?


Si assegna un IP fisso sulla rete locale per il client PXE.
David Post

5
@DavidPostill: questo è in contraddizione con la risposta di Daniel B e, per quanto mi risulta , i documenti .
Mathieu K.,

1
I client DHCP inviano a 255.255.255.255 utilizzando 0.0.0.0 come "origine" quando si avvia una richiesta di trasmissione DHCP.
ivanivan,

Risposte:


29

Come potrebbe persino comunicare sul livello IP quando non ha un indirizzo? In ogni caso, non proprio. Invece, comunica usando il livello 2.

L'indirizzo di trasmissione di qualsiasi rete Ethernet è FF: FF: FF: FF: FF: FF. Sul livello IP, c'è 255.255.255.255. Questo è ciò che è presente nel pacchetto DHCPDISCOVER. In questo modo, è possibile avere un normale socket di ascolto UDP anziché un socket Ethernet grezzo.


6
" L'indirizzo di trasmissione di qualsiasi rete Ethernet è FF: FF: FF: FF: FF: FF. " Questo si applica a qualsiasi protocollo IEEE LAN che utilizza indirizzi MAC a 48 bit, ad esempio Wi-Fi, token ring, FDDI, ecc.
Ron Maupin,

it communicates using layer 2questo non è corretto. Il livello 2 non raggiunge il livello di rete dello stack IP del server. Il layer Broadcast 2 trasmette il frame Ethernet solo a tutti i listener su un determinato dominio di collisione Ethernet. L'indirizzo di trasmissione IP è quello che apre la porta dello stack IP del server.
Pat

Certamente. Tuttavia, come ho scritto, è una comunicazione IP "non proprio". Non può essere. Al contrario, utilizza l'elaborazione di pacchetti IP inserendo indirizzi di origine e destinazione che comporteranno un comportamento ben definito. L'indirizzamento effettivo viene eseguito esclusivamente sul livello 2.
Daniel B

Tui hai torto. L'indirizzo IP di trasmissione è sicuramente una comunicazione IP. Se tale indirizzo di trasmissione non è presente, il livello IP del server non vede il pacchetto. L'unica cosa particolare dell'indirizzo IP di trasmissione è che non può essere instradato.
Pat

1
Penso che Pat abbia ragione e un po 'di torto ... in effetti la trasmissione in IP funziona al livello 3 ... ma DHCP elabora tutti i primi passi in L2 / ARP / MAC ... e solo l'ultimo passo (dicendo al DHCP server l'IP servito è accettato in L3 / Unicast) ... deve essere così perché all'inizio non ha stack IP / L3 ... altri servizi che trasmettono IP diversi da DHCP non hanno questo problema (già hanno un indirizzo IP) in modo che possano comunicare su L3 / L4 -> ...
ZEE

30

Per utilizzare DHCP è necessario conoscere l'indirizzo di trasmissione della propria rete.

No. È necessario solo l'indirizzo di trasmissione locale 255.255.255.255 (per IPv4) o il gruppo multicast ff02 :: 1: 2 (per IPv6). L'intero punto del DHCP è che non richiede alcuna configurazione precedente sul client.


Questo non è corretto. È inoltre necessario l'indirizzo di trasmissione MAC (Livello 2) poiché ARP non funziona per un indirizzo IP di trasmissione.
Pat

Si presume che la mappatura dall'indirizzo di trasmissione IP a MAC sia sempre nota perché è definita dal protocollo, quindi non è ancora necessario configurarla manualmente.
user1686

Tui hai torto. su un client DHCP di avvio un pacchetto DHCPDISCOVERY deve definire ENTRAMBI gli indirizzi di trasmissione di livello 2 e 3 che non si può semplicemente definire la trasmissione di livello 3 e pensare che qualsiasi altro protocollo rileverà l'indirizzo MAC di destinazione che ha solo un indirizzo di destinazione IP di trasmissione
Pat

3
  1. Il firmware di avvio rileva le schede di rete installate
  2. Il firmware di avvio rileva ogni indirizzo MAC NIC Broadcast che richiede al driver PDI UNDI (UNDI GET INFORMATION che restituisce HwType e HwAddrLen) ovvero HwType = ETHER_TYPE HwAddrLen = 6 => Indirizzo MAC broadcast = FF: FF: FF: FF: FF: FF: FF.
  3. Il firmware di avvio avvia la sequenza DORA DHCP (DHCPDISCOVERY) annunciandosi come client PXE (opzione DHCP 60) sulle schede di rete abilitate BIOS / UEFI utilizzando:
    1. Il corrispondente indirizzo di trasmissione MAC precedentemente scoperto a livello di OSI 2 (livello Data Link)
    2. L'indirizzo di trasmissione IPv4 / IPv6 abilitato BIOS / UEFI (255.255.255.255/ff02::1:2) a livello di OSI 3 (livello di rete)
  4. Il firmware di avvio termina la sequenza DHCP DORA se viene ricevuta un'offerta DHCP-PXE completa che definisce:

    1. Indirizzo IP / maschera client
    2. Indirizzo IP del server TFTP
    3. NBP (programma di avvio in rete)

    Nota: se viene ricevuta più di un'offerta completa, gli standard attuali non definiscono in modo specifico come il cliente deve selezionarne una.

  5. Il firmware di avvio imposta l'IP NIC, i trasferimenti TFTP, i carichi in memoria ed esegue l'NBP.

L'indirizzo Broadcast MAC di livello 2 consente la consegna del frame Ethernet DHCP a tutti i listener all'interno del dominio di collisione Ethernet NIC del client. L'indirizzo di trasmissione IP di livello 3 è quello che apre la porta dello stack IP del server DHCP. Sono necessari entrambi gli indirizzi di trasmissione L2 / L3 .

Quando il client PXE e il server DHCP si trovano in diverse sottoreti, il traffico DHCP di trasmissione viene arrestato sul / i router / i, quindi devono abilitare il loro agente di inoltro DHCP (IP Helper sul mondo Cisco), ovvero il pacchetto DHCPDISCOVERY di trasmissione, convertirlo in unicast DHCPDISCOVERY e instradarlo all'indirizzo IP del server DHCP di destinazione definito.


Bella risposta signore.
Tim_Stewart,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.