Por que a transmissão é usada na etapa DHCPREQUEST?
19
Este é o processo de DHCPoperação,
Minha pergunta está na 3ª etapa: por que o cliente envia uma transmissão e não um unicast, pois após as duas operações anteriores o endereço do servidor DHCP / servidor de retransmissão deve ser conhecido?
Alguma resposta o ajudou? Nesse caso, você deve aceitar a resposta para que a pergunta não apareça para sempre, procurando uma resposta. Como alternativa, você pode fornecer e aceitar sua própria resposta.
Os servidores recebem a transmissão DHCPREQUEST do cliente. Os servidores não selecionados pela mensagem DHCPREQUEST usam a mensagem como notificação de que o cliente recusou a oferta desse servidor.
O protocolo assume que pode haver vários servidores DHCP. Ao transmitir a mensagem de solicitação, todos os servidores que podem ter emitido uma oferta podem estar cientes da escolha do cliente.
Você pode potencialmente ter vários servidores DHCP - a solicitação é enviada como transmissão para notificar os outros servidores DHCP que potencialmente enviaram ofertas de que sua oferta não foi aceita.
Porque até o servidor enviar o DHCPACK, o cliente ainda não tem um endereço IP. É possível que um servidor DHCP responda a uma solicitação com um DHCPNACK.
Por que isso implica que a transmissão precisaria ser usada? O cliente sabe o endereço MAC do servidor a partir da mensagem DHCPOFFER, para que ele possa enviar o unicast DHCPREQUEST para esse servidor - não é necessário um endereço IP para que isso aconteça.
Psmears
1
@psmears, porque as transmissões L3 são enviadas como transmissões L2. O DHCP não é um protocolo L2, portanto, você está vinculado às regras, pois os dados são transmitidos de L3 para L2.
YLearn
2
@YLearn: Você também precisa de um IP de origem e de destino para um pacote de difusão seletiva ou L3, então isso claramente não é o problema :) Não há razão teórica para que o pacote DHCPREQUEST não possa ser enviado com o IP e MAC de destino do servidor e (como no pacote de transmissão) um IP de origem 0.0.0.0. O motivo da transmissão é permitir que outros servidores DHCP (se houver) saibam que o cliente está recusando suas ofertas.
Psmears 6/0318
1
@psmears, o destino de uma transmissão L3 é 255.255.255.255. Você pode obter uma transmissão L3 de 0.0.0.0. No entanto, você não pode obter um unicast L3 de 0.0.0.0.
YLearn
2
@YLearn: Você certamente pode enviar um pacote com os bytes para o endereço de origem definido como zero! Isso pode ser proibido por algumas RFC - você conhece uma? O RFC1700 diz que 0.0.0.0 "pode ser usado apenas como endereço de origem" (mas nada sobre unicast / broadcast); RFC1122 diz 0.0.0.0 "NÃO DEVE ser enviado, exceto como um endereço de origem como parte de um procedimento de inicialização pelo qual o host aprende seu próprio endereço IP" (novamente, nenhuma restrição uni / broadcast). Isso é obrigatório em outro lugar?
Respostas:
https://tools.ietf.org/html/rfc2131#page-13
O protocolo assume que pode haver vários servidores DHCP. Ao transmitir a mensagem de solicitação, todos os servidores que podem ter emitido uma oferta podem estar cientes da escolha do cliente.
fonte
Você pode potencialmente ter vários servidores DHCP - a solicitação é enviada como transmissão para notificar os outros servidores DHCP que potencialmente enviaram ofertas de que sua oferta não foi aceita.
fonte
Porque até o servidor enviar o DHCPACK, o cliente ainda não tem um endereço IP. É possível que um servidor DHCP responda a uma solicitação com um DHCPNACK.
fonte