Dnsmasq
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