4.4. Configuración del servicio
4.4.1. Configuración clientes
4.4.1.1. Windows
GUI
El servicio cliente DNS debe estar en funcionamiento en el sistema(por defecto lo está). Programas -> Herramientas Administrativas -> Servicios
Las propiedades se realizan desde la configuración de las tarjetas de red, junto con el resto de parámetros de red.
Línea de comandos
En PowerShell, a través de los siguientes comandos:
PS C:\> Set-DnsClientServerAddress -InterfaceIndex 12 -ServerAddresses ("10.0.0.1","10.0.0.2") PS C:\> Get-DnsClientServerAddress
4.4.1.2. Linux
GUI
Los entornos gráficos (Gnome ,KDE….) proporcionan utilidades para la configuración de los clientes DNS en la configuración de las interfaces de red(muy parecido a Windows).
Línea de comandos
Si nuestra configuracion la realizamos sin GUI, debemos ubicar el fichero correspondiente, teniendo en cuenta que éste puede variar de una distro o version a otra.
El fichero sobre el que trabajan la mayoria de las distribuciones es /etc/resolv.conf(actualmente en muchos sistemas esto no es tan simple, y lo gestiona el demonio systemd) que guarda las direcciones IP de los servidores DNS. En nuestras distros ya sabemos que esta configuración se realiza en el fichero .yaml de netplan.
nameservers: addresses: [10.10.10.1, 1.1.1.1]
4.4.2. Configuración básica servidor
4.4.2.1. Windows
En este módulo no trataremos la instalación y configuración de controladores de dominio(AD), aunque Active Directory necesita de DNS para poder trabajar correctamente.
GUI
De manera visual a traves de la interfaz gráfica que ofrece Windows 20XX Server y la instalación de roles y características.
Puedes encontrar un ejemplo de configuración paso a paso en el siguiente video:
Línea de comandos 1
- Instalación. Podemos ejecutar el siguiente comando para buscar el nombre del rol que debemos instalar
Get-WindowsFeature | where {($_.name -like “DNS”)} #con el comando anterior averiguamos y ahora lo instalamos Install-WindowsFeature DNS -IncludeManagementTools
- Ponemos a escuchar al servidor únicamente por las interfaces que queramos(en nuestros escenarios en la tarjeta local):
dnscmd /resetlistenaddresses 192.168.200.254
- Configuramos los reenviadores(forwarders). Serán las direcciones IP a las que el servidor DNS reenvía las consultas DNS cuando no puede resolverlas de forma local.
dnscmd /resetforwarders 8.8.8.8
- Creación de una zona de búsqueda PRIMARIA y su correspondiente zona INVERSA
PS C:\> Add-DnsServerPrimaryZone -ZoneName "asir.com" -ZoneFile "asir.com.dns" -verbose -passthru PS C:\> Add-DnsServerPrimaryZone -NetworkId "192.168.200.0/24" -ZoneFile "200.168.192.in-addr.arpa.dns" -verbose -passthruCreación de los registros(RR) que deseemos
- Podemos hacer uso de la instrucción Add-DnsServerResourceRecord o del comando DNSCmd/recordadd
#añadir un NS (Servidor de nombres para zonas secundarias...) Add-DnsServerResourceRecord -Name "asir.com" -NameServer "ns2.asir.com" -NS -ZoneName "asir.com" #añadir un host(A) con su PTR para lo zona inversa correspondiente Add-DnsServerResourceRecord -ZoneName "asir.com" -A -Name "www" -IPv4Address "192.168.200.5" Add-DnsServerResourceRecordPtr -Name "5" -ZoneName "200.168.192.in-addr.arpa" -PtrDomainName "www.asir.com" #añadir un alias(CNAME) Add-DnsServerResourceRecord -CName -Name "www2" -HostNameAlias "www.asir.com" -ZoneName "asir.com" -AllowUpdateAny #añadir un servidor de correo(MX) para mi dominio con una preferencia de 10. Debo añadir un registro tipo A para que me traduzca nombre por IP. Add-DnsServerResourceRecord -ZoneName "asir.com" -A -Name "mail" -IPv4Address "192.168.200.6" Add-DnsServerResourceRecord -Name "." -MX -ZoneName "asir.com" -MailExchange "mail.asir.com" -Preference 10
- Exportar/Importar configuración de zona/s del DNS server a fichero/s de texto.
#guarda los ficheros en C:\Windows\System32\dns #también guardo la zona inversa dnscmd /zoneexport "asir.com" "asir.com.cseg" #también con Export-dnsservervzone se podría hacer dnscmd /zoneexport "asir.com" "asir.com.cseg" #para importar, renombro los ficheros anteriores a acabados en .dns (sustituyendo el .cseg) #deben estar ubicados en C:\Windows\System32\dns dnscmd /zoneadd "asir.com" /primary /file "asir.com.dns" /load dnscmd /zoneadd "200.168.192.in-addr.arpa" /primary /file "200.168.192.in-addr.arpa.dns" /load
4.4.2.2. Linux
BIND o DnsMasq son los paquetes utilizados en todas las distribuciones Linux, sin interfaz gráfica añadida. Su administración configuración se realiza accediendo a varios ficheros de texto (INCLUIDO EL FICHERO DE ZONA).
En nuestro caso vamos a optar con configurar el servidor BIND2. Podemos encontrar alternativas gráficas para poder configurar BIND, a través de la instalación de un panel de administración, como Webmin:
![]()
Debemos entender la estructura de ficheros que monta BIND una vez instalado, para poder realizar correctamente su configuración:
![]()
- La configuración de BIND se encuentra en named.conf, la cual se distribuye con el uso de la directiva include, entre los ficheros:
named.conf.options: Parámetros a nivel global del servidor DNS.
named.conf.local: Aquí se crean las zonas con la instrucción zone. Uno de los parámetros será la ubicación y nombre del fichero de zona.
named.conf.default-zones: Algunas zonas que incluye BIND por defecto.
db.*: ficheros de zona creadas en named.conf.default-zones. db.root=srv. Raiz.
db.empty: plantilla de fichero de zona.
Se crea un usuario bind que pertenece al grupo principal bind que también se crea. Este usuario es el que ejecuta el demonio /usr/sbin/named, al que se le pasan los argumentos especificados en /etc/default/bind9. En /var/cache/bind, referencia para todas las rutas relativas (instrucción directory en el fichero de options), es donde crearemos nuestros ficheros de zona por defecto.
Podemos gestiónar el servicio con los siguiente comandos (podemos elegir entre las dos opciones):
$sudo service bind9 [restart|start|stop|status] $sudo systemctl [restart|start|stop|status] bind9En el siguiente video encontrarás un ejemplo de configuración muy sencillo:
4.4.3. Ampliando nuestra configuración
A partir de aquí podemos trabajar sobre escenarios más complejos en los que podremos incluir:
Servidores maestros
Servidores esclavos
Delegaciones de zona
4.4.4. Juntando todo(DDNS)
El DNS dinámico(Dynamic DNS) es un servicio que puede ser de gran utilidad en la mayoría de ocasiones en aplicaciones reales. El DNS dinámico garantiza que los usuarios puedan seguir accediendo al dispositivo o servicio mediante el nombre de dominio. No necesitan rastrear ni actualizar la dirección IP manualmente.3.
¿Se te pueden ocurrir situaciones en lo que esto sea de utilidad?¿Qué ventajas podría tener?
Puedes encontrar multitud de recursos en la web para poder orientarte en la configuración de esta característica para nuestros servidores DNS. Por ejemplo puedes acceder al siguiente enlace y realizar las tareas correspondientes en tu servidor. Para que los servicios de DHCP y DNS puedan trabajar en conjunto, necesitaremos una clave, en nuestro caso, usaremos una clave usando el algoritmo HMAC-MD5 y la generaremos con el nombre DDNS_UPDATE.
Todo ello lo incluiremos en un fichero que posteriormente incorporaremos a la configuración tanto de DHCP como de DNS.
Ahora copiaremos el archivo a los directorios de cada servicio, y les daremos los permisos y propietarios necesarios para que éstos puedan hacer uso del archivo que acabamos de crear:
Tras esto ya podemos comenzar a configurar nuestros servicios
Configuración DNS:
Modificamos el archivo /etc/bind/named.conf.local para definir las zonas (directa e inversa) con las que vamos a trabajar, es muy importante incluir el archivo ddns.key que se encuentra en /etc/bind/ddns.key y luego permitir actualizaciones (allow-update) con el nombre de la misma clave.
Comprobamos todo. Atento-a a los distintos parámetros y nombres utilizados. TODO ha de mantener una coherencia.
Configuración DHCP:
Para configurar el servicio DHCP editaremos el archivo /etc/dhcp/dhcpd.conf y configuraremos los siguientes valores de la siguiente manera:
Comprobación:
¿Cómo comprobamos el funcionamiento de todo? Si conectamos un cliente veremos algunas cosas nuevas sucediendo:
.
-
Fuente: Podemos optar por utilizar el Módulo DnsServer PowerShell o aprovoechar la sencillez del Comando DNSCMD ↩
-
Ayuda: Puedes encontrar un manual muy completo sobre DNS y BIND el siguiente enlace↩
-
Fuente: Puedes encontrar una explicación muy buena en la documentación de AWS sobre DDNS↩




