En este artículo, le mostraré cómo usar dnsmasq para configurar un servidor DNS local, almacenar en caché el servidor DNS y el servidor DHCP. Entonces empecemos.
Topología de la red:
Esta es la topología de red de este artículo. Aquí, lo configuraré enrutador como servidor DNS y DHCP con dnsmasq. enrutador tiene 2 interfaces de red, una (ens33) se conecta al Internet y el otro (ens38) se conecta a un interruptor de red. Todos los demás hosts (host1, host2, host3) en la red utiliza el servidor DHCP configurado en el enrutador para la asignación automática de direcciones IP y el servidor DNS para la resolución de nombres.
Configuración de IP estática:
En mi topología de red, vio mi enrutador tiene dos interfaces ens33 y ens38. ens33 conecta el enrutador a Internet y ens38 está conectado a un conmutador de red, a qué otros equipos de la red se conectan. Tendré que usar DHCP para obtener una dirección IP para el ens33 interfaz de mi ISP para la conexión a Internet. Pero el ens38 la interfaz debe configurarse manualmente.
Usemos la red 192.168.10.0/24 para la interfaz ens38 y otras computadoras en la red. Si utilizo la red 192.168.10.0/24, luego la dirección IP del ens38 la interfaz del enrutador debe ser 192.168.10.24/1. Esta es la dirección IP del servidor DNS dnsmasq y del servidor DHCP.
NOTA: El nombre de su interfaz de red puede ser diferente. Puede averiguar qué es para usted con el ip a mando.
En Ubuntu Server 18.04 LTS, puedes usar netplan para configurar las interfaces de red. El archivo de configuración de netplan predeterminado es / etc / netplan / 50-cloud-init.yaml.
Primero, abra el archivo de configuración / etc / netplan / 50-cloud-init.yaml con el siguiente comando:
$ sudo nano / etc / netplan / 50-cloud-init.yaml
Ahora, escriba las siguientes líneas y guarde el archivo presionando
Ahora, reinicia tu enrutador con el siguiente comando:
$ sudo reiniciar
Una vez el enrutador arranca, las direcciones IP deben asignarse como se esperaba.
Instalación de dnsmasq:
dnsmasq está disponible en el repositorio oficial de paquetes de Ubuntu. Por lo tanto, puede instalarlo fácilmente utilizando el administrador de paquetes APT.
Usos de Ubuntu systemd-resuelto de forma predeterminada para administrar los servidores DNS y el almacenamiento en caché de DNS. Antes de instalar dnsmasq, debe detener y deshabilitar systemd-resuelto servicios. De lo contrario, no podrá ejecutar dnsmasq en absoluto.
Para detener el systemd-resuelto service, ejecute el siguiente comando:
$ sudo systemctl detener systemd-resuelto
Para deshabilitar el systemd-resuelto service, ejecute el siguiente comando:
$ sudo systemctl deshabilitar systemd-resuelto
Por defecto, el / etc / resolv.conf El archivo está vinculado a otro archivo de configuración de systemd, como puede ver en la captura de pantalla a continuación. Pero ya no lo queremos.
Entonces, quita el / etc / resolv.conf enlace con el siguiente comando:
$ sudo rm -v / etc / resolv.conf
Ahora, crea un nuevo / etc / resolv.conf archivo y configure el servidor DNS de Google como el servidor DNS predeterminado con el siguiente comando:
$ echo "servidor de nombres 8.8.8.8 "| camiseta sudo / etc / resolv.conf
Ahora, actualice la caché del repositorio de paquetes APT con el siguiente comando:
actualización de $ sudo apt
Ahora, instale dnsmasq con el siguiente comando:
$ sudo apt install dnsmasq
dnsmasq debe estar instalado.
Configuración del servidor DNS dnsmasq:
El archivo de configuración de dnsmasq es / etc / dnsmasq.conf. Para configurar dnsmasq como servidor DNS, debe modificar este archivo.
El valor por defecto / etc / dnsmasq.conf el archivo contiene mucha documentación y opciones comentadas. Entonces, creo que es mejor cambiar el nombre del / etc / dnsmasq.conf archivo a / etc / dnsmasq.conf.bk y crea uno nuevo.
Puede cambiar el nombre del archivo de configuración con el siguiente comando:
$ sudo mv -v / etc / dnsmasq.conf / etc / dnsmasq.conf.bk
Ahora, crea el archivo de configuración / etc / dnsmasq.conf como sigue:
$ sudo nano / etc / dnsmasq.conf
Ahora, escriba las siguientes líneas y guarde el archivo presionando
puerto = 53
dominio necesario
falso-priv
orden estricto
expand-hosts
dominio = ejemplo.com
NOTA: Cambio ejemplo.com a su propio nombre de dominio.
Ahora, reinicie el servicio dnsmasq con el siguiente comando:
$ sudo systemctl reiniciar dnsmasq
Sin errores. Estupendo!
Ahora tienes que configurar 192.168.10.1 como la dirección predeterminada del servidor DNS en el / etc / resolv.conf.
Para hacer eso, abre / etc / resolv.conf archivo con el siguiente comando:
$ sudo nano / etc / resolv.conf
Ahora, escriba servidor de nombres 192.168.10.1 antes de la línea servidor de nombres 8.8.8.8 como se muestra en la captura de pantalla a continuación. Luego guarda el archivo.
Eso es.
Agregar registros DNS:
Ahora, puede agregar sus entradas de DNS al / etc / hosts expediente.
Primero, abra el / etc / hosts archivo con el siguiente comando:
$ sudo nano / etc / hostsAhora, escriba sus entradas de DNS en el siguiente formato:
IP_ADDR DOMAIN_NAMEHe añadido 4 entradas enrutador.ejemplo.com (192.168.10.1), host1.ejemplo.com (192.168.10.51), host2.ejemplo.com (192.168.10.52) , y host3.ejemplo.com (192.168.10.53) como se marca en la captura de pantalla a continuación. Puede agregar tantas entradas DNS como desee.
Una vez que haya terminado, guarde el archivo presionando
Ahora, reinicie el servicio dnsmasq con el siguiente comando:
$ sudo systemctl reiniciar dnsmasq
Prueba del servidor DNS:
Como puede ver, la resolución de DNS local funciona.
$ dig enrutador.ejemplo.com
La resolución de nombres de Internet también funciona.
$ dig google.com
Configuración del servidor DHCP:
Para configurar el servidor DHCP, abra el archivo de configuración dnsmasq / etc / dnsmasq.conf de nuevo de la siguiente manera:
$ sudo nano / etc / dnsmasq.conf
Ahora, agregue las líneas marcadas al final del archivo. Luego guarda el archivo.
# Configuración DHCPrango-dhcp = 192.168.10.50.192.168.10.240,255.255.255.0,24h
dhcp-option = opción: enrutador, 192.168.10.1
dhcp-option = opción: dns-server, 192.168.10.1
dhcp-option = opción: máscara de red, 255.255.255.0
dhcp-host = 00: 0C: 29: A5: BD: 4A, 192.168.10.51
dhcp-host = 00: 0C: 29: A5: BD: 5B, 192.168.10.52
dhcp-host = 00: 0C: 29: A5: BD: 6C, 192.168.10.53
Aquí, gama dhcp se utiliza para establecer el rango de direcciones IP que el servidor DHCP asignará a los hosts.
opción dhcp se utiliza para configurar la puerta de enlace (opción: enrutador), Dirección del servidor DNS (opción: dns-server) y máscara de red (opción: máscara de red)
dhcp-host se utiliza para configurar direcciones IP específicas para los hosts en función de las direcciones MAC especificadas.
Ahora, reinicie el servicio dnsmasq con el siguiente comando:
$ sudo systemctl reiniciar dnsmasq
Prueba del servidor DHCP:
Como puede ver, la computadora host1 obtuve la dirección IP 192.168.10.51/24 desde el servidor DHCP.
La resolución DNS también funciona desde host1.
De la misma manera, host2 y host3 también obtiene la dirección IP correcta del servidor DHCP y la resolución de DNS funciona en cada uno de ellos.
A dónde ir a continuación:
Si desea obtener más información sobre dnsmasq, consulte el archivo de configuración predeterminado / etc / dnsmasq.conf (ahora renombrado a / etc / dnsmasq.conf.bk). Tiene descripción detallada de todas las opciones de configuración de dnsmasq.
$ menos / etc / dnsmasq.conf.bk
Archivo de configuración de dnsmasq predeterminado de Ubuntu Server 18.04 LTS.
Entonces, así es como configura dnsmasq en Ubuntu Server 18.04 LTS. Gracias por leer este artículo.