2012-05-17 19 views
12

¿Por qué el servidor no puede usar la dirección IP de destino de 0.0.0.0 como se usa en la fuente IP de DHCP Discover and Request? Puede usar la dirección MAC del cliente que se aprendió de DHCP Discover y Request para dirigir el frame a la máquina cliente adecuada.¿Por qué se ofrecen DHCP Offer y Ack?

+0

Tengo la sospecha de que esto es necesario para trabajar en ambientes donde hay múltiples, colaborando servidores DHCP. Podría ser necesario que los agentes de retransmisión funcionen correctamente también. – Flexo

Respuesta

14

La elección de unidifusión o de difusión se especifica en el DHCP RFC 2131:

Si el campo 'Giaddr' en un mensaje DHCP de un cliente no es cero, el servidor envía los mensajes de retorno a el puerto 'servidor DHCP' en el agente de retransmisión BOOTP cuya dirección aparece en 'giaddr'. Si el campo 'giaddr' es cero y el campo 'ciaddr' es distinto de cero, entonces el servidor unica los mensajes DHCPOFFER y DHCPACK a la dirección en 'ciaddr'. Si 'giaddr' es cero y 'ciaddr' es cero, y el bit de difusión es establecido, el servidor difunde los mensajes DHCPOFFER y DHCPACK a 0xffffffff. Si el bit de difusión no está configurado y 'giaddr' es cero y 'ciaddr' es cero, entonces el servidor unica los mensajes DHCPOFFER y DHCPACK a la dirección de hardware del cliente y a la dirección 'yiaddr'. En todos los casos, cuando 'giaddr' es cero, el servidor transmite cualquier mensaje DHCPNAK a 0xffffffff.

con ciaddr y Giaddr ser:

ciaddr  4 Client IP address; only filled in if client is in BOUND, RENEW or REBINDING state and can respond to ARP requests. 
giaddr  4 Relay agent IP address, used in booting via a relay agent. 

lo tanto, el servidor DHCP elige para transmitir o no de acuerdo a la situación actual del cliente (sobre todo si ya tiene una dirección IP o no) y, en consecuencia, al remitente del mensaje, si es un agente de retransmisión o simplemente un cliente.

Unicast DHCPOFFER

En este caso, mi servidor DCHP optó por unidifusión la DHCPOFFER porque mi máquina ya tenía una dirección IP y no tengo un agente de retransmisión en mi LAN.

EDIT:

Y nadie puede utilizar la dirección IP 0.0.0.0 como dirección de destino. Como se especifica en la IPv4 RFC 5735:

0.0.0.0/8 - Direcciones en este bloque refieren a hosts de origen en "este" red. La dirección 0.0.0.0/32 se puede usar como una dirección de origen para este host en esta red; otras direcciones dentro de 0.0.0.0/8 pueden usarse para referirse a hosts especificados en esta red ([RFC1122], Sección 3.2.1.3).

+0

Su pregunta no es suficientemente clara. Publique [una nueva pregunta] (http://superuser.com/questions/ask) en Superusuario detallando el comportamiento de los dispositivos involucrados, su función y, posiblemente, direcciones IP y registros capturados. – Avio

+0

Tengo un problema similar, pero el problema es que tengo un dispositivo que envía un paquete DHCP Discover destinado a 255.255.255.255, el servidor recibe este mensaje (ya que uso un registrador de paquetes para ver las actividades de todos los nodos) y respuestas, esta respuesta que recibe mi dispositivo es un marco de transmisión del servidor DHCP. Pero el dispositivo no acepta la configuración de IP. ¿Algún tipo de explicación para esta anomalía? – Abhinav

+0

Buena respuesta. Explica cómo funcionan las cosas y si es posible tener DHCPOFFER sin difusión. Pero también me gustaría saber el motivo de tener un DHCPOFFER emitido. ¿Algunas ideas? – limitcracker

0

De the RFC 2131, página 24:

Normalmente, los servidores DHCP y agentes de reenvío de BOOTP intentará entregar mensajes DHCPOFFER, DHCPACK y DHCPNAK directamente al cliente mediante la entrega uicast. La dirección IP de destino (en la cabecera IP) se establece a la dirección de DHCP 'yiaddr' y la dirección de destino de nivel de enlace es conjunto a la dirección de DHCP 'Chaddr'. Desafortunadamente, algunas implementaciones de cliente no pueden recibir tales datagramas IP de unicast hasta la implementación se ha configurado con una dirección IP válida (lo que lleva a un punto muerto en el que la dirección IP del cliente no puede ser entregada hasta que el cliente haya sido configurado con Dirección IP).

Un cliente que no puede recibir datagramas IP unicast hasta que su software de protocolo se ha configurado con una dirección IP deben establecer el bit BROADCAST en el campo 'banderas' a 1 en cualquier DHCPDISCOVER DHCPREQUEST o mensajes que envía el cliente. El bit BROADCAST proporcionará una indirecta al servidor DHCP y agente de retransmisión BOOTP para transmitir cualquier mensajes al cliente en la subred del cliente.

Un cliente que puede recibir datagramas IP unicast antes de su software de protocolo ha sido configurado debe borrar el bit BROADCAST a 0. El documento aclaraciones BOOTP discute las ramificaciones de la utilización de la emisión poco .

Cuestiones relacionadas