Dnsmasq

De La Wiki de KiVi

Instalación y configuración de dnsmasq en Fedora

¿Qué es dnsmasq y por qué usarlo?

dnsmasq es un servicio ligero que proporciona funcionalidades de DNS, DHCP y TFTP, ideal para redes pequeñas y medianas. Su simplicidad y eficiencia lo convierten en una excelente opción para gestionar la resolución de nombres y asignación de direcciones IP en entornos controlados. En un servidor Fedora, es especialmente útil para configurar un proxy transparente o para dar servicio a múltiples clientes con una configuración mínima.

Es una herramienta recomendada porque:

  • Es fácil de instalar y configurar.
  • Consume pocos recursos.
  • Permite resolver nombres locales sin depender de DNS externos.
  • Integra DHCP y DNS en un solo servicio, facilitando la administración de la red.

Instalación de dnsmasq

sudo dnf install dnsmasq -y

Desactivar systemd-resolved

Por defecto, Fedora usa systemd-resolved, que puede entrar en conflicto con dnsmasq. Para desactivarlo:

sudo systemctl disable --now systemd-resolved

Luego, edita el archivo /etc/resolv.conf para apuntar a tu servidor DNS local (por ejemplo, la IP interna de tu servidor):

echo "nameserver 127.0.0.1" | sudo tee /etc/resolv.conf

Asegúrate de que no se sobrescriba:

sudo chattr +i /etc/resolv.conf

Configuración básica de dnsmasq

Edita el archivo principal de configuración:

sudo nano /etc/dnsmasq.conf

Configuración mínima para DNS y DHCP:

# Escuchar en la interfaz interna
interface=eno2

# Rango de direcciones IP para clientes DHCP
dhcp-range=10.0.1.50,10.0.1.100,12h

# Servidores DNS a usar
server=8.8.8.8
server=1.1.1.1

# Dominio local
domain=red.local

# Registro de hosts
dhcp-host=AA:BB:CC:DD:EE:FF,10.0.1.10,host1,12h

Configuración del cortafuegos

Añade las reglas necesarias para permitir tráfico DNS y DHCP:

sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --permanent --add-service=dhcp
sudo firewall-cmd --reload

Habilitar y arrancar dnsmasq

sudo systemctl enable --now dnsmasq

Verificar el estado del servicio:

sudo systemctl status dnsmasq

Prueba de funcionamiento

Verifica que resuelve nombres:

dig google.com @127.0.0.1

Y que asigna direcciones IP:

sudo journalctl -u dnsmasq | grep DHCP

Con esta configuración, tu servidor Fedora estará listo para servir como DNS y DHCP en tu red interna.

Ejemplo de configuración:

sudo nvim /etc/dnsmasq.d/01_mainkivi.conf


listen-address=127.0.0.1

domain-needed

bogus-priv

no-resolv

server=208.67.222.222

server=208.67.220.220

local=/mainkivi.info/

listen-address=::1,127.0.0.1,192.168.1.3

expand-hosts

domain=mainkiivi.info

dhcp-range=192.168.1.100,192.168.1.200,24h

dhcp-option=option:router,192.168.1.1

dhcp-authoritative

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases