2009-11-24 15 views
8

Se supponiamo che il client non ascolti sulla porta 68, quando il server DHCP riceve la richiesta, può inviarlo all'indirizzo da cui ha ricevuto la richiesta (con porta temporanea scelta dal client al momento dell'invio), quindi perché il protocollo specifica il client essere in ascolto sulla porta 68?Perché il client DHCP è in ascolto sulla porta 68?

risposta

1

Perché è in RFC (Request for Comments) che specifica come si comporta DHCP. RFC 2131 è il documento che specifica come devono comportarsi un client e un server DHCP.

Vedere here per ulteriori informazioni su DHCP (sezione 4.1 in particolare). Vedi here per informazioni su cosa sono gli RFC.

+5

La domanda dice "perché il protocollo specifica il client in ascolto sulla porta 68?", Quindi quello che stanno chiedendo sembra essere più "perché la RFC lo dice?" –

+1

Il DHCP si basa sul protocollo BOOTP precedente che utilizzava le porte 67 (server) e 68 (client).Perché BOOTP ha usato queste porte era probabilmente perché non erano utilizzate da nessuno degli altri protocolli al momento (SMTP utilizza 25, FTP utilizza 21, ecc.). Mentre un host di solito ha un singolo indirizzo IP, può avere migliaia di porte. Assegnando numeri di porta specifici a protocolli specifici è stato possibile per più parti sviluppare servizi e client standard. Finché hai ascoltato la porta giusta, potresti scrivere il tuo client o server DHCP. – TLiebe

+1

Ok significa che non ci sono motivi tecnici? – avd

16

Il motivo principale è che il server DHCP potrebbe trasmettere "l'offerta DHCP" sul livello mac, invece di inviarlo unicast all'indirizzo mac che aveva ricevuto la richiesta. Se la porta non è costante, alcuni host che ascoltano per caso la stessa porta casuale, accetteranno il pacchetto sul layer 5 - il livello dell'applicazione. In altre parole, un'applicazione riceverà il messaggio da un'applicazione completamente diversa, non una situazione salutare.

+0

Questa risposta non sembra diversa da quella di 3+ ​​anni fa. Se vuoi aggiungere qualcosa, prova a suggerire una modifica alla risposta esistente accettata :) –

+3

Grazie, questa è in realtà la risposta corretta. – Parzifal

+0

Domanda pertinente: Posso disattivare il firewall in modo sicuro da questa porta in una configurazione normale in cui viene utilizzato un client DHCP per ottenere gli indirizzi IP? Cioè è il * potrebbe * rilevante nel mondo reale? – Zero3

1

ho dovuto affrontare la stessa domanda me stesso, e dopo alcune ricerche, ho trovato quanto segue sul RFC 2131, che descrive il protocollo DHCP, ai sensi della sezione 1.6 Obiettivi di progettazione:

  • DHCP deve fornire un servizio di client BOOTP esistenti

anche sul RFC 951, che descrivono il protocollo BOOTP, siamo in grado di trovare il seguente:

l'intestazione UDP contiene numeri di porta di origine e di destinazione. Il protocollo BOOTP utilizza due numeri di porta riservati, "client BOOTP" (68) e "server BOOTP" (67). Il client invia richieste utilizzando 'BOOTP server' come porta di destinazione; questo di solito è una trasmissione. Il server invia risposte utilizzando "client BOOTP" come porta di destinazione; a seconda del kernel o delle funzionalità del driver nel server, questo può essere o potrebbe non essere una trasmissione (ciò è spiegato ulteriormente nella sezione intitolata "Problemi di pollo/uova" di seguito). La ragione per cui sono utilizzate le porte DUE riservate , è quella di evitare il "risveglio" e la pianificazione dei daemon del server BOOTP , quando un bootreply deve essere trasmesso a un client. Poiché il server e gli altri host non saranno in ascolto sulla porta "client BOOTP", , tali trasmissioni entranti verranno filtrate al livello del kernel . Non potevamo semplicemente consentire al client di scegliere un numero "porta" casuale per il campo della porta di origine UDP; poiché la risposta del server potrebbe essere la trasmissione , un numero di porta scelto a caso potrebbe confondere gli altri host che si trovavano ad ascoltare su quella porta.

Quindi la risposta alla domanda deriva da quanto sopra. I client DHCP devono utilizzare la porta UDP 68, affinché il DHCP sia compatibile con il protocollo BOOTP e il protocollo BOOTP richiede una porta specifica per il client, dal momento che BOOTPREPLIES può essere trasmesso e se è stata scelta una porta casuale per il client , potrebbe causare la confusione di altri host in ascolto sulla stessa porta.

Problemi correlati