Imagina que tenemos una red como en la imagen. Seis hosts en una red de capa 2, sin VLAN. Se supone que la red está segmentada en dos subredes, con un servidor DHCP cada una. Los servidores DHCP tienen direcciones IP fijas, por lo que obviamente saben a qué subred pertenecen.
Luego, los nuevos clientes se conectan. No saben nada sobre en qué subred se supone que deben estar y envían su DHCPDISCOVER a la transmisión Ethernet 255.255.255.255, por lo que va a ambos servidores DHCP. Ambos servidores responden con una oferta. Ahora aquí está mi pregunta: ¿Cómo sabe el cliente, qué DHCPOFFER debe aceptar?
networking
dhcp
Michael Niemand
fuente
fuente
Respuestas:
La respuesta más simple: primero llegado, primero servido.
Si tenía varias VLAN y 10.10.10.0/24 estaba en una VLAN diferente a 10.10.20.0/24, la transmisión no cruzaría las VLAN.
Si el servidor DHCP estaba en una VLAN separada para los clientes, un iphelper en la interfaz de enrutamiento entre vlans dirigiría la transmisión a la ubicación correcta.
En su escenario en el que tiene 2 redes separadas dentro de la misma VLAN (o falta de ella) que sirven diferentes subredes, es una carrera.
DHCP se sirve utilizando las siguientes transacciones:
Todo esto sucede en los puertos UDP 67 para el servidor y 68 para el cliente.
Tan pronto como se alcanza el paso 2, el cliente dejará de "escuchar" las respuestas de otros servidores DHCP, es feliz tratar con el primer servidor para prestarle atención.
Como nota al margen, en realidad hay una serie bien conocida de ataques DoS (denegación de servicio) que abusan de este derecho. Un atacante conecta un dispositivo que responde y envía paquetes DHCPOFFER y luego no envía DHCPACK cuando se le pregunta ... una y otra y otra vez. También hay otro ataque DoS en el que los servidores DHCP "falsos" ofrecen direcciones que no se pueden enrutar o que entran en conflicto con otras IP que se olfatea para interferir con las redes.
fuente
La respuesta existente de @ Fazer87 es ampliamente correcta en la práctica y recomiendo votar y aceptarla. Esta respuesta explora un detalle menor con un poco más de precisión.
Ambos servidores DHCP pueden responder con un mensaje DHCPOffer.
Un cliente DHCP puede aceptarlos por orden de llegada. Sin embargo, no es obligatorio adoptar ese enfoque.
RFC2131 especifica:
Entonces, si el segundo servidor DHCP ofreció una reserva de dirección IP más larga, u ofreció un servidor de tiempo donde el otro no lo hizo, o tal vez tenía un campo personalizado que el cliente había sido programado para preferir, puede aceptar la segunda oferta.
Por lo general, un enfoque de "primer llegado, primer servido" le dará la oferta que no ha pasado por varios saltos entre dispositivos (retransmisiones BOOTP), por lo que es un buen protocolo a seguir si no tiene motivos para preocuparse.
Estaba en un proyecto donde un dispositivo personalizado preferiría un DHCPOffer que incluía un servidor TFTP donde se podía encontrar firmware actualizado.
fuente