¿Cómo Utilizar La Raspberry Pi Como Servidor DHCP?

Una Raspberry Pi es un diminuto ordenador que ejecuta Linux y que puede utilizarse en muchos proyectos domésticos, incluido su uso como nodo crítico en la red, como un servidor DHCP.

Una Raspberry Pi puede utilizarse como servidor DHCP instalando Raspberry Pi OS y el paquete DNSMasq. A continuación, es necesario editar la configuración para establecer una dirección IP estática para la Raspberry Pi y configurar el rango DHCP para los otros dispositivos de la red.

En este artículo, te mostraré la forma más fácil de hacer esto con Raspberry Pi OS, y luego discutiré otras soluciones que puedes probar.

¿Puede una Raspberry Pi ser un servidor DHCP?

Como regla general, cualquier dispositivo que ejecute Linux con capacidades de red puede ser un servidor DHCP, por lo que los modelos Raspberry Pi con un puerto Ethernet pueden hacerlo. Los paquetes no están instalados por defecto, pero están disponibles en el repositorio oficial.

Sin embargo, toma nota ya que viene con limitaciones. Algunos modelos antiguos de Raspberry Pi no tienen un puerto de red para hacer esto, y los otros sólo tienen uno. Así que, si necesitas manejar varias subredes, la Raspberry Pi podría no ser la mejor opción. En el trabajo, uso un mini PC como este en Amazon con Pfsense en sitios pequeños, funciona bien, y es probablemente más estable que una Raspberry Pi.

Generalmente, tienes un router de Internet en casa que ya actúa como servidor DHCP, así que la mayoría de las veces no hay necesidad de usar nada más para esto.

De todos modos, en algunos casos la Raspberry Pi puede hacer un trabajo fantástico como servidor DHCP, ya sea para experimentar este concepto de red o para un uso real con requisitos de red específicos. Por ejemplo, he probado esto en el pasado con un router inalámbrico. El servidor DHCP estaba en la red Wi-Fi y la Raspberry Pi enrutaba el tráfico a la red Ethernet (puedes encontrar el artículo sobre esto aquí).

¡Hola!
Inscríbete para recibir mis últimos tutoriales cada semana.

Cómo utilizar la Raspberry Pi como servidor DHCP

La forma más sencilla de utilizar una Raspberry Pi como servidor DHCP es instalar y configurar DNSMasq. Su propósito principal es ser un DNS forward ligero, pero también trae características de DHCP para redes pequeñas.

Instalar Raspberry Pi OS

Estoy haciendo este tutorial en Raspberry Pi OS, así que recomiendo hacer lo mismo. Debería funcionar en otras distribuciones de Linux, pero esto te permitirá utilizar los mismos comandos y opciones de configuración que yo.

Así que, el primer paso es instalar Raspberry Pi OS. Si necesitas ayuda con esto, haz clic en este enlace para leer mi tutorial paso a paso.

Establecer una dirección IP estática a la Raspberry Pi

Una vez instalado, lo primero que hay que hacer es establecer una dirección IP estática en tu Raspberry Pi. Si no tienes un servidor DHCP actualmente, probablemente no tienes acceso a la red todavía. E incluso si tienes un servidor DHCP, es necesario establecer para fijar la dirección IP de la Raspberry Pi.

En este paso, puede que necesites definir la subred que usarás para esta configuración. En general, recomendaría usar la misma red que tu router de Internet, pero puedes elegir algo diferente y cambiar la configuración del router más tarde.

Por ejemplo, digamos que tu subred principal es 192.168.1.0/24, y tu router 192.168.1.1. Entonces puedes elegir usar 192.168.1.2 para la Raspberry Pi, y definir un rango DHCP entre 192.168.1.100 y 192.168.1.200.
Cuando definas esto, es mejor evitar las direcciones IP y los rangos ya utilizados si actualmente tienes un servidor DHCP activo. En mi red, todas las IPs (excepto el router) están entre 1.20 y 1.50, así que no debería causar ningún problema.

De todos modos, sigue estos pasos para establecer una dirección IP estática:

  • Abre este archivo de configuración con Nano:
    sudo nano /etc/dhcpcd.conf
  • Al final del archivo encontrarás un ejemplo de configuración de IP estática:
  • Agrega tu configuración de la misma manera (o des-comenta este párrafo). En mi ejemplo, puede ser algo como:
    interface eth0
    static ip_address=192.168.1.2
    static routers=192.168.1.1
    static domain_name_servers=192.168.1.1 8.8.8.8
  • Guardar y salir de Nano (CTRL+W, CTRL+X).
  • Ahora, puedes reiniciar la Raspberry Pi para aplicar los cambios:
    sudo reboot

Después del reinicio, tu Raspberry Pi debería estar ahora conectada a Internet, con la nueva dirección IP establecida, y puedes continuar con la instalación básica.

Si tienes dificultades con Nano, no dudes en consultar mi guía con todos los atajos y comandos, puede encontrarlo aquí. (en inglés)

Instalar los requisitos previos

Ahora podemos continuar con la configuración inicial del Raspberry Pi OS: configurar la red, actualizar el sistema y los paquetes. Activar el SSH también es una buena idea, así podrás copiar y pegar los comandos que te doy directamente desde tu ordenador.

Una vez hecho esto, lo único que necesitamos por ahora es instalar DNSMasq, puedes hacerlo con la herramienta «Add/Remove software» en la versión de escritorio, o simplemente usar
sudo apt install dnsmasq

DNSMasq se iniciará automáticamente. Está configurado como un reenviador de DNS por defecto, por lo que no debería ser un problema ya que ninguno de sus dispositivos está utilizando la Raspberry Pi como un servidor DNS por ahora.

Un reenvío de DNS es un servicio que reenvía las consultas de DNS a su servidor DNS principal en la red. Puede ser útil para añadir hosts personalizados o para mantener una caché de las peticiones DNS. Cualquier nueva solicitud será reenviada a otro servidor.

Desactiva tu antiguo servidor DHCP

La mayoría de las veces, tu router de Internet ya actúa como servidor DHCP. Por lo tanto, lo primero que tienes que hacer es desactivarlo para evitar conflictos. Si mantienes ambos activados, tu ordenador y otros dispositivos obtendrán la dirección IP de uno de ellos de forma aleatoria (el primero que responda) y no funcionará como se espera.

Los pasos para desactivarlo dependen del router que tengas, así que no puedo darte más detalles al respecto. Consulta la documentación de tu modelo de router o la página web de tu ISP.

Configurar DNSMasq

Configurar DNSMasq no es complicado. Todo está en un archivo de configuración, y sólo hay que añadir unas pocas líneas:

  • Abre el archivo de configuración de DNSMasq con Nano:
    sudo nano /etc/dnsmasq.conf
  • Casi todo está comentado aquí, y es un archivo bastante largo, así que lo más fácil es copiar y pegar estas líneas al final (CTRL+_ and CTRL+V):
    interface=eth0
    bind-dynamic
    domain-needed
    bogus-priv
    dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,12h
Opción de configuraciónDescripción
interfaceQué interfaz se utilizará para elservidor DHCP.
eth0 para Ethernet, wlan0 para Wi-Fi
bind-dynamicEvita los problemas de interrupción de la red
domain-neededOpción DNS: no reenviar nunca los nombres planos (sin puntos)
bogus-privOpción DNS: no reenviar nunca las direcciones erróneas
dhcp-rangeActivar DHCP y establecer el rango, la máscara de subred y el tiempo de arrendamiento
DNSMasq configuration options

DNSMasq es un servicio, para aplicar los cambios hay que reiniciarlo:
sudo service dnsmasq restart

Una vez hecho esto, cualquier dispositivo que conectes a tu red obtendrá una dirección IP en el rango definido. Tu Raspberry Pi actuará como un servidor DHCP (que era el objetivo de este tutorial) pero también como un reenviador de DNS. Por lo tanto, cualquier host añadido en el archivo /etc/hosts puede ser utilizado en otros dispositivos en su red.

El servidor DHCP no requiere ningún mantenimiento en el tiempo, pero puedes utilizar herramientas como Webmin si quieres una interfaz web para gestionar DNSMasq. Será particularmente útil para ver el uso del rango de IP y configurar el servidor DNS.

Alternativas a DNSMasq como servidor DHCP en Raspberry Pi

Como se explicó al principio, DNSMasq es la forma más fácil de conseguir un servidor DHCP básico en Raspberry Pi, pero no es la única opción. ¿Quizás quieras algo más complejo, con más funciones o una mejor interfaz? Te cuento a continuación otras soluciones que puedes probar.

Router inalámbrico con firewall

Mi primera sugerencia es hacer algo similar, pero utilizando las dos interfaces (si tienes un modelo reciente). Por ejemplo, puedes utilizar tu Raspberry Pi 3B+ o 4 como punto de acceso inalámbrico, configurar el servidor DHCP en esta interfaz e incluso añadir algunas funciones de seguridad con un cortafuegos. La tarjeta Ethernet se utilizará para acceder a Internet.

Esto podría ser un gran proyecto para añadir una red Wi-Fi para invitados en una pequeña empresa, pero tanto si lo haces por una razón válida como si lo haces por diversión, es un proyecto interesante para aprender algunas habilidades de red.

Tengo un artículo en profundidad que explica todos los pasos para poner esto en práctica, desde la concepción hasta la instalación y configuración de todo. Te recomiendo encarecidamente que lo consultes, incluso si sólo necesitas alguna aclaración sobre este artículo.
¿Cómo utilizar la Raspberry Pi como un router inalámbrico con firewall?

Pi-Hole

Pi-Hole es un conocido bloqueador de publicidad, gratuito y de código abierto que se puede instalar en la Raspberry Pi.
La mayoría de las veces, sólo se utilizará como su servidor DNS, y cada solicitud será filtrada para comprobar si es un anuncio o no.

La instalación es bastante sencilla: un comando y unas cuantas preguntas para responder.
Una vez instalado, tendrás acceso a una interfaz web con muchas opciones de configuración.
Uno de ellos permite habilitar un servidor DHCP en unos pocos clics.

Si tener una interfaz web para configurar todo es importante para ti, esta es probablemente la mejor opción.
Puedes configurar todo aquí, y puedes ver y establecer rangos de DHCP justo debajo.

¿Quieres probarlo? Echa un vistazo a mi tutorial sobre cómo configurar Pi-Hole en 5 minutos en tu Raspberry Pi.
Y también tengo un tutorial aquí sobre cómo instalar Pi-Hole en Ubuntu, si prefieres usar Ubuntu en una Raspberry Pi u otro ordenador.

ISC-DHCP-Server

Otra opción es usar ISC-DHCP-Server, eventualmente acoplado con Bind para el servidor DNS. Debería funcionar en Raspberry Pi, pero es un poco más complicado configurar estos servicios, por lo que no recomiendo su uso.

Si tienes una red importante en la que necesitas una solución más avanzada, probablemente la Raspberry Pi no sea la mejor opción para ti de todos modos. Así que, aunque ISC-DHCP-Server se utiliza a menudo en Linux, no creo que lo necesitemos en Raspberry Pi, DNSMasq es perfecto en este caso.

Además, para redes más importantes, Pfsense no está (¿todavía?) disponible en Raspberry Pi, pero como se explica en mi artículo aquí (en inglés), todavía hay grandes opciones de cortafuegos que puedes utilizar en la Raspberry Pi.

Publicaciones Similares