¿Puedo tener varios servidores DHCP en una red?

86

Esta es una pregunta canónica sobre los servidores DHCP redundantes.

¿Es posible tener más de un servidor DHCP en la misma LAN? ¿Cuáles son las implicaciones de hacer esto?

  1. ¿Qué sucede si hay más de un servidor DHCP disponible? ¿Cómo saben mis clientes cuál usar?
  2. ¿Cómo puedo hacer que los servidores DHCP proporcionen direcciones a más de un segmento de subred \ red?
  3. ¿Cómo puedo configurar varios servidores DHCP para proporcionar direcciones para la misma subred?
Rob Moir
fuente
1
La idea detrás de esta pregunta es dar una respuesta definitiva a todas las preguntas "¿Cómo puedo tener más de un servidor DHCP?" Que vuelven locos a nuestros usuarios más habituales. Con suerte, esta se convertirá en una de nuestras respuestas canónicas ( meta.serverfault.com/questions/1986/… )
Rob Moir
2
RTFM? tools.ietf.org/html/draft-ietf-dhc-failover-12#section-5.3 (y rfc 3074) ya definen este comportamiento, y linux dhcpd lo implementa manpages.ubuntu.com/manpages/precise/en/man5/ …
Dani_l
2
@Dani_l tal vez deberías seguir el enlace 'pregunta canónica' en la pregunta y también quizás revisar a los autores de las respuestas a mi pregunta aquí antes de decirme que necesito RTFM.
Rob Moir
2
No te estoy diciendo que leas el manual. Simplemente señalo que hay un manual. La pregunta es canónica, pero, cuando corresponda, creo que debería incluir referencias a procedimientos "oficiales", si existen. En este caso, existe un IETF / RFC, y eso es lo más oficial posible.
Dani_l

Respuestas:

97

Estoy asumiendo un conocimiento básico de lo que hace DHCP y cómo configurar su servidor DHCP de elección en esta respuesta, pero antes de hablar sobre múltiples servidores DHCP en la misma red, primero resumamos rápidamente cómo los clientes reciben direcciones IP desde DHCP al nivel más básico.

DHCP en una red simple funciona utilizando el principio DORA.

  • Descubrimiento: el cliente transmite un mensaje en el segmento de red local al que está conectado para descubrir los servidores DHCP disponibles.

  • Oferta: un servidor DHCP configurado adecuadamente recibe una solicitud de un cliente y le ofrece una dirección de su grupo de direcciones disponibles.

  • Solicitud: el cliente responde a la oferta y solicita la dirección recibida en la oferta.

  • Acuse de recibo: el servidor reconoce la solicitud, marca la dirección como se usa en su conjunto de direcciones e informa al cliente por cuánto tiempo es válida la concesión de la dirección y cualquier otra información necesaria.

Cualquier dispositivo en un segmento de red puede ser un servidor DHCP; no tiene que ser el enrutador o el controlador de dominio o cualquier otro dispositivo "especial" en la red.

Cuando los dispositivos en su red solicitan por primera vez una dirección IP o llegan al final de sus arrendamientos (o los obliga a verificar que su arrendamiento aún sea válido) simplemente transmitirán una solicitud de un servidor DHCP y aceptarán una oferta del primero Servidor DHCP para responder . Es importante recordar esto, ya que miramos las opciones para múltiples servidores DHCP a continuación.

Múltiples servidores DHCP PT 1: abarca múltiples subredes.

Si tiene varias VLAN o segmentos de red físicos que están separados en diferentes subredes, y desea proporcionar un servicio DHCP a los dispositivos en todas esas subredes, entonces hay dos formas de hacerlo.

  1. Si el enrutador / conmutador de capa 3 que los separa puede actuar como un agente de retransmisión BOOTP / DHCP, entonces puede continuar manteniendo todos sus servidores DHCP en una o dos partes centrales de su red y configurar sus servidores DHCP para Soporta múltiples rangos de direcciones. Para admitir esto, su enrutador o conmutador de capa 3 debe admitir la especificación del agente de retransmisión BOOTP cubierta en la sección 4 de RFC 1542 .

  2. Si su enrutador no es compatible con los agentes de retransmisión BOOTP RFC 1542, o si algunos de sus segmentos de red están dispersos geográficamente en enlaces lentos, entonces deberá colocar uno o más servidores DHCP en cada subred. Este servidor DHCP 'local' solo cumplirá los requisitos de su propio segmento local, y no hay interacción entre él y otros servidores DHCP. Si esto es lo que desea, simplemente puede configurar cada servidor DHCP como un servidor independiente, con los detalles del grupo de direcciones para su propia subred, y no preocuparse por ningún otro servidor DHCP en otras partes de la red. Este es el ejemplo más básico de tener más de un servidor DHCP en la misma red.

Múltiples servidores DHCP PT 2: servidores DHCP que sirven al mismo segmento de red.

Cuando la mayoría de las personas preguntan acerca de "múltiples servidores DHCP en la misma red", lo que suelen pedir es esto; desean que más de un servidor DHCP emita el mismo rango de direcciones de red a los clientes, ya sea para dividir la carga entre varios servidores o para proporcionar redundancia si un servidor está fuera de línea.

Esto es perfectamente posible, aunque requiere un poco de reflexión y planificación.

Desde el punto de vista del "tráfico de red", el proceso DORA descrito al comienzo de esta respuesta explica cómo más de un servidor DHCP puede estar presente en un segmento de red; el cliente simplemente transmite una solicitud de descubrimiento y el primer servidor DHCP que responde con una oferta es el "ganador".

Desde el punto de vista del servidor, cada servidor tendrá un grupo de direcciones que puede emitir a los clientes, conocido su alcance de dirección. Los servidores DHCP que sirven a la misma subred no deberían tener un solo alcance "compartido", sino que deberían tener un alcance "dividido".

En otras palabras, si tiene un rango de direcciones DHCP para emitir a clientes desde 192.168.1.100 a 192.168.1.200, entonces ambos servidores deben estar configurados para servir partes separadas de ese rango, por lo que el primer servidor podría usar partes de ese alcance desde 192.168.1.100 a 192.168.1.150 y el segundo servidor emitiría 192.168.1.151 a 192.168.1.200.

Divide el alcance de DHCP, mostrando exclusiones

Las implementaciones más recientes de Microsoft de DHCP tienen un asistente para facilitar la división de su alcance de esta manera, descrita en un artículo de Technet que podría valer la pena mirar incluso si no está utilizando la implementación de DHCP de Microsoft, ya que ilustra los principios mencionados aquí bastante bien y esta respuesta ya es lo suficientemente larga.

Dividiendo el alcance - mejor práctica

Una cosa que oirá mencionar como práctica recomendada es la regla 80/20 para dividir un alcance DHCP, lo que significa que un servidor servirá el 80% de las direcciones en ese alcance y el otro servidor DHCP, que está efectivamente 'en reserva' servirá el 20% de las direcciones.

La idea detrás de dividir las direcciones 80/20 es porque el 80% de las direcciones disponibles deberían ser adecuadas para todas las direcciones necesarias en una subred, y los contratos de arrendamiento de DHCP generalmente se emiten durante varios días; por lo tanto, si su servidor DHCP principal deja de funcionar durante algunas horas, es poco probable que más del 20% de las máquinas en esa subred necesiten renovar sus direcciones durante el tiempo de inactividad, lo que hace que el conjunto de direcciones del 20% sea suficiente.

Este sigue siendo un consejo razonable, pero supone dos cosas:

  1. Que puede resolver cualquier problema con su servidor DHCP "principal" lo suficientemente rápido como para evitar agotar el pequeño grupo de direcciones en su servidor DHCP de reserva.
  2. Que no te interesa el equilibrio de carga.

En estos días (como puede ver en mis ejemplos) tiendo a preferir divisiones de 50/50, que creo que son una respuesta más realista a los puntos anteriores.

Otra cosa a tener en cuenta al crear sus ámbitos en los servidores DHCP es configurar el alcance completo en cada servidor y excluir el rango dado por el otro servidor DHCP. Esto tiene el beneficio de "auto-documentar" la información de DHCP para la subred completa en cada servidor DHCP, lo que mejorará la claridad para cualquier persona que intente comprender lo que está sucediendo, y también en el caso de que uno de sus servidores DHCP esté desconectado durante en algún momento, puede reconfigurar temporalmente el rango de exclusión en el otro servidor para permitirle recuperar la holgura.

Combinando estas ideas

Por último, vale la pena recordar que puede combinar los principios discutidos anteriormente: puede colocar todos sus servidores DHCP en una o más VLAN de "servidor central" y usar agentes de retransmisión BOOTP en todos sus enrutadores para enviar todas las solicitudes DHCP desde un servidor muy grande y segmentado red a un servicio DHCP centralizado (que es lo que hago, ver más abajo). O puede tener servidores DHCP distribuidos en toda su red, con un servidor DHCP "principal" en su subred local y un servidor DHCP "de reserva" en un segmento de red "cercano" que proporciona una pequeña cantidad de direcciones como respaldo, incluso podría tener dos servidores DHCP en sus propios segmentos de red configurados para proporcionar un rango 80/20 de direcciones entre sí. La elección más sensata dependerá de cómo sus redes físicas y lógicas se mapeen entre sí.

Servidores DHCP que sirven ámbitos divididos a varias subredes

Rob Moir
fuente
3
En caso de división de ámbitos: tenga en cuenta que las reservas DHCP deben configurarse en ambas mitades. Mantenerlos sincronizados puede ser bastante complicado si necesita realizar actualizaciones frecuentes.
Tonny
44
¿Puede elaborar técnicas para garantizar que el servidor DHCP de reserva no se vea afectado mientras el servidor DHCP principal se esté ejecutando? Por lo que puedo leer, si existe la misma probabilidad de obtener una respuesta de cualquiera de los servidores, el servidor de reserva se quedará sin direcciones estadísticamente, tan pronto como el número total de arrendamientos exceda el doble del tamaño del grupo de reserva. Presumiblemente, esto hace que el servidor de reserva sea inútil para los nuevos clientes, cuando el servidor DHCP principal está inactivo ... ¿verdad?
Niels B.
3
@NielsB. Si está haciendo algo así como una división 80/20, puede establecer un retraso en la respuesta del servidor de reserva ( blogs.technet.com/b/teamdhcp/archive/2009/01/22/… ). No me molesto con esto, ya que uso una división 50/50, pero funcionará.
Rob Moir
13

Adopté este enfoque hace algunos años para una red de tamaño pequeño a mediano (500 usuarios) con beneficios considerables. DHCP dejó de ser un único punto de falla. Al asociar permanentemente las direcciones MAC e IP, nos aseguramos de que ambos servidores DHCP dieran la misma respuesta a cada solicitud DHCP. Conocer la dirección IP de cada activo de red también simplificó la administración de la red, y DNS podría ejecutarse en la misma base de datos. El sistema utilizaba Internet Software Corporation BIND y DNS, y los scripts asociados se pueden descargar en https://web.archive.org/web/20121031051901/http://www.pearbright.com/index.php/download/25- dns-dhcp-download .

Una alternativa sería utilizar la conmutación por error verdadera de DHCPD de ISC: https://kb.isc.org/article/AA-00502/0/A-Basic-Guide-to-Configuring-DHCP-Failover.html

Peter Talbot
fuente
2
El OP solicitó específicamente una respuesta explicativa para esta pregunta. Es posible que desee revisar su respuesta para ampliarla.
Brent Pabst
3
fwiw, si bien esta respuesta es corta y nunca rechazaré más detalles en un conjunto canónico de preguntas y respuestas, pensé que era bastante bueno, ya que menciona un método ligeramente diferente de hacer redundancia DHCP.
Rob Moir
1
@DJ Pon3 Estoy de acuerdo: ejecuto una configuración similar a su gran DHCP multisitio (sin embargo, menos VLAN) y utilizo el mismo enfoque que Peter Talbot para 3/4 de esas VLAN.
Tonny
1
El enlace está roto ahora :(
Sergey Vlasov