El Servidor DNS Bind nos permitirá crear nuestro propio servidor DNS en Linux.
En este artículo veremos:
- 1. Instalacion de Bind en Linux
- 2. Archivos importantes que hay que configurar en Bind
- 3. Creación y configuración de zonas DNS
- 4. Configuración de los archivos de las zonas DNS
- 4.1 Sintáxis y definición de los archivos de zona y sus registros DNS.
- 4.2 Herramientas de diagnóstico de los archivos utilizados por Bind
- 5. Recargar Configuración de Bind y reiniciar el servicio para aplicar los cambios
- 6. Pruebas de funcionamiento de las nuevas zonas DNS creadas
- 7. Herramientas de Diagnóstico para resolución de DNS
En este caso lo haremos desde la terminal de Ubuntu Server .
A continuación ,esta práctica muestra la Configuración DNS necesaria para el ejercicio VirtualHost Apache basado en IP.
1. INSTALACIÓN DE BIND
Para descargar el servidor Bind podeis visitar el Sitio oficial de Bind.
Aunque lo más normal desde Linux es descargarlo e instalarlo así:
apt-get install bind9 |
2. LOS ARCHIVOS MÁS IMPORTANTES DE BIND AL CREAR UN SERVIDOR DNS Linux con Bind
- /etc/bind/named.conf: Archivo de configuración principal; permite definir qué archivos serán llamados. Por defecto contiene:
include "/etc/bind/named.conf.options"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.default-zones"; |
Así que named.conf permite definir que se aplicarán las opciones que se configuren en el archivo named.con.options, se encargará de generar las zonas definidas en named.conf.local, y contiene también una llamada al archivo de las zonas por defecto (que serán las de localhost, directa e inversa, la ROOT, y la broadcast).
- /etc/bind/named.conf.local: Archivo en el que definimos las zonas del server DNS
- /etc/bind/named.conf.options: algunas opciones interesantes para nuestro server DNS (por ejemplo los forwarders o reenviadores, que son otros servidores a los que reenviamos las consultas que nuestro server DNS desconoce).
- Archivos de Zona Directa y archivos de Zona Inversa: los llamaremos db.zona_lo_que_sea. En ellos definimos los registros DNS de las zonas definidas en named.conf.local, de las cuales seremos Master o Slave.
- /etc/resolv.conf: En este archivo ha de constar la IP del servidor DNS que deseamos resuelva en nuestra máquina.
Introduciremos el servidor DNS al que deseamos hacer peticiones DNS de esta forma (en este caso ponemos nuestro propio server DNS, para probar que funciona):
nameserver 192.168.1.10 |
A continuación ,suponiendo que ya tenemos correctamente configuradas las interfaces de red, tendremos que crear las nuevas zonas DNS en Bind (en Linux).
3. CREACIÓN DE ZONAS DNS en named.conf.local
En el archivo named.conf.local definiremos las nuevas zonas DNS que vamos a crear:
Así que vamos al archivo /etc/bind/named.conf.local y definimos en él las zonas que vamos a crear, la zona de busqueda directa DNS y la zona de búsqueda inversa (Abrimos el documento, vamos al final del todo y añadimos las nuevas zonas.
También podemos configurar:
– Si la zona será Master o Slave
type master; o type slave; |
– Si se permite la transferencia de la zona, y a qué servidores
allow-transfer { 192.168.1.1; 192.168.1.142; 192.168.1.143 ;}; |
– Si se envía notificación cada vez que cambie la zona.
notify yes; o notify no; |
VEAMOS LAS NUEVAS ZONAS DNS EN EL ARCHIVO named.conf.local:
// // Do any local configuration here // // Consider adding the 1918 zones here, if they are not used in your // organization //include "/etc/bind/zones.rfc1918"; zone "midominio.com"{ type master; file "/etc/bind/db.midominio.com"; allow-transfer { 192.168.1.1; 192.168.1.142; 192.168.1.143 ;}; notify yes; }; zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.1.168.192"; }; |
4. CREACIÓN Y CONFIGURACIÓN DE ARCHIVOS DE ZONAS DNS DIRECTA/INVERSA
Ahora creamos el archivo de resolución directa de la zona midominio.com.
Podemos copiar el archivo de zona db.local, que hay en el directorio /etc/bind, y transformarlo para crear la nueva zona DNS.
Como podéis ver, se han creado más registros además del dominio www1 (www2, www3, www4 …). Los usaremos para siguientes ejercicios:
;BIND data file for local loopback interface $TTL 604800 @ IN SOA midominio.com. root.midominio.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS midominio.com. @ IN A 192.168.1.10 www1 IN A 192.168.1.10 www2 IN A 192.168.1.10 www3 IN A 192.168.1.30 www4 IN A 192.168.1.40 www5 IN A 192.168.1.40 |
A continuación creamos la zona de Resolución inversa:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | GNU nano 2.2.2 Archivo: db.1.168.192 ; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA midominio.com. root.midominio.com. ( 2 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS midominio.com. 10 IN PTR midominio.com. 10 IN PTR www1.midominio.com. 10 IN PTR www2.midominio.com. 30 IN PTR www3.midominio.com. 40 IN PTR www4.midominio.com. 40 IN PTR www5.midominio.com. |
4.1 Sintáxis y definición de los archivos de zona y sus registros DNS.
La arroba @ significa el propio servidor
El registro NS define el servidor primario
El registro A define la IP del servidor
El registro MX define el servidor de correo
@ IN NS midominio.com. @ IN MX 10 ns1 @ IN MX 10 mail @ IN A 192.168.1.10 |
Después definimos las IP´s de los equipos que componen el dominio. Ejemplo de configuración de archivo de zona:
ns1 IN A 192.168.1.10 mail IN A 192.168.1.10 |
4.2 Herramientas para comprobar la sintaxis correcta de los archivos de configuración de Bind
- Tenemos el comando named-checkconf named.conf.local
Este comando comprobará si hay errores en la sintaxis de las zonas creadas en named.conf.local
- Otro comando muy interesante es named-checkzone
1 | named-checkzone midominio.com db.midominio.com |
named-checkzone nombre_de_la_zona nombre_del_archivo_de_la_zona |
named-checkzone zonename filename |
5. RECARGAR CONFIGURACIÓN DE BIND Y REINICIAR EL SERVICIO PARA APLICAR LOS CAMBIOS
Después de terminar las configuraciones, recargamos la configuración de bind y reiniciamos el servicio bind con :
/etc/init.d/bind9 reload /etc/init.d/bind9 restart |
También podemos ejecutar:
rndc reload |
6. PRUEBAS DE FUNCIONAMIENTO DE LAS NUEVAS ZONAS DNS CREADAS
Resolución del Dominio DNS desde un cliente con el comando DIG:
Recordemos que para resolver correctamente los DNS, el cliente ha de tener configurado como resolvedor DNS al servidor que acabamos de crear.
Así que nos aseguramos de que en el archivo /etc/resolv.conf contenga lo siguiente en este caso:
nameserver 192.168.1.10 |
Ahora que hemos configurado el servidor DNS Linux correctamente, podemos empezar a crear el sitio Web Apache y los VirtualHosts.
Si necesitáis algo más de ayuda, podéis miraros los Conceptos y comandos sobre DNS.