El primer paso es instalarlo desde los repositorios de CentOS. Esto se hace con el comando:
yum install bind
Una vez instalado se debe crear un archivo de configuración. Lo siguientes pasos cubren una configuración sencilla que permita tener en marcha un servidor DNS en poco tiempo. La configuración del servidor está en el archivo /etc/named.conf. Todas las sentencias disponibles para configurar el servidor bind se pueden consultar en el Manual de Referencia del Administrador ARMv9.6 .
El archivo se puede editar con el comando:
nano /etc/named.conf
El contenido que hay que introducir es:
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.root";
};
zone "trombotic.tic" {
type master;
file "trombotic.tic.zone";
};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.zone";
};
La sentencia options permite configurar opciones globales del servidor. En este caso solo contiene la subsentencia directory que indica el directorio del sistema donde están los archivos de zona. La subsentencia type indica el tipo de zona, y en el caso de poner master significa que este servidor es el que tiene la copia original de los datos de la zona (No es un servidor secundario). Por último la subsentencia file indica el nombre del archivo de zona.
El servidor dns para definir un dominio utiliza zonas. Una zona contiene la información que maneja un dns, es decir, la relación entre los nombres de las máquinas y sus direcciones ip ( y alguna cosilla más). Esta información se representa mediante registros de recursos incluidos dentro de los archivos de zona.
Por ejemplo, en este servidor existe una zona llamada trombotic.tic que se corresponde con el dominio trombotic.tic cuyo archivo de zona se llama trombotic.tic.zone. Como dentro de la sentencia options existe la subsentencia directory con valor /var/named, el archivo de zona para trombotic.tic es /var/named/trombotic.tic.zone. Esta zona se encarga de la resolución de nombres de dominio a direcciones ip.
A parte, también existe una zona llamada 1.168.192.in-addr.arpa que es la que se encarga de la resolución inversa, es decir, a partir de una dirección ip obtener el nombre de dominio. No es obligatoria para tener resolución de nombres, pero es necesaria para que algunos servicios funcionen bien. Las zonas de resolución inversa reciben el nombre de la dirección de red o subred, sin los ceros, escritas al revés y con el sufijo .in-addr.arpa. en este caso la dirección de la red es 192.168.1.0/24 así que se coge el 192.168.1, se le da la vuelta para que quede 1.168.192 y se le añade .in-adder.arpa.
Una vez creado el archivo de configuración , hay que crear los archivos de zona.
Dentro del directorio /var/named se deben crear tres archivos:
- named.root que contiene una copia de los servidores raíz DNS.
- trombotic.tic.zone que contiene los registros de las zona trombotic.tic.
- 1.168.192.in-addr.arpa.zone que contiene los registros de resolución inversa para las direcciones de la red 192.168.1.0/24.
wget -O - http://www.internic.net/zones/named.root > /var/named/named.root
El contenido del archivo /var/named/trombotic.tic.zone podría ser así:
@ IN SOA ns.trombotic.tic admin.trombotic.tic (
1 ;serial
24h ;refresh
1h ;retry
7d ;expire
1h ;negative ttl
)
IN NS ns.trombotic.tic.
@ IN MX 1 servidor.trombotic.tic.
servidor IN A 192.168.1.200
router IN A 192.168.1.1
ns IN CNAME servidor
smtp IN CNAME servidor
pop3 IN CNAME servidor
www IN CNAME servidor
ftp IN CNAME servidor
Los archivos de zona contienen registros de recuros, que es la información que maneja el servidor dns acerca de la zona. Hay varios tipos de registros de recurso: soa,a,ns,mx,cname,ptr,... Como este articulo no pretende ser un manual de bind (se puede buscar el google y seguro que salen cientos), basta con decir que en este archivo se esta indicando lo siguiente (Entre paréntesis esta el tipo de registro que indica esta información):
- que la dirección de correo del administrador de la zona es admin@trombotic.tic (SOA).
- que esta zona la lleva un servidor dns llamado ns.trombotic.tic (NS) que realmente es un alias de servidor.trombotic.tic (CNAME).
- que el dominio tiene un único servidor que recoge correo electrónico llamado servidor.trombotic.tic (MX).
- que hay una máquina llamada servidor.trombotic.tic con direccion ip 192.168.1.200 (A).
- que hay una máquina llamada router.trombotic.tic con direccion ip 192.168.1.1 (A).
- que servidor.trombotic.tic tiene varios nombres (CNAME): ns.trombotic.tic, smtp.trombotic.tic, pop3.trombotic.tic,www.trombotic.tic y ftp.trombotic.tic.
El contenido del archivo /var/named/1.168.192.in-addr.arpa.zone podría ser así:
@ IN SOA ns.trombotic.tic admin.trombotic.tic (
1 ;serial
24h ;refresh
1h ;retry
7d ;expire
1h ;negative ttl
)
IN NS ns.trombotic.tic.
200 IN PTR servidor.trombotic.tic.
1 IN PTR router.trombotic.tic.
En este archivo de zona la información mas importante es:
- que existe una maquina con dirección ip 192.168.1.200 que se llama servidor.trombotic.tic (PTR).
- que existe una maquina con direccion ip 192.168.1.1 que se llama router.trombotic.tic (PTR).
Una vez configurado sólo es necesario arrancar el servidor dns con el comando:
service named start
Para resolver cualquier duda se puede utilizar los comentarios del artículo.
Hola Iván, soy alumno de tu clase. Tengo tal vez una cuestión algo tonta. Me he quedado en la orden wget. Previamente has concretado que teníamos que hacer 3 archivos:
ResponderEliminarnamed.root
trombotic.tic.zone
1.168.192.in-addr.arpa.zone
Bien, entro en modo gráfico a var/named y ni veo la carpeta named y en var no puedo crear ningun archivo, he de estar en superusuario, en el terminal estoy logueado como tal pero sigo sin poder... seguiré buscando y probando... Un saludo y gracias.
Bien, hasta ahora tipeando ésto como root y como dir actual /var:
ResponderEliminarmkdir /var/named
gedit named.root >/var/named/named.root
gedit trombotic.tic.zone > /var/named/trombotic.tic.zone
gedit 1.168.192.in-addr.arpa.zone > /var/named/trombotic.tic.zone
Con eso parece que se han creado los 3 files, edito con gedit cada uno de ellos e introduzco tus ejemplos. Hasta ahí no ha dado mayores problemas, pero al intentar restaurar el servicio:
service named start
me dice que no lo reconoce
"named: unreconigzed service"
seguiría estando en /var/named... no sé si tal vez está ahí el error... algun error que esté cometiendo?
En CentOS el script de arranque para el servidor dns se llama named, pero si estas usando Ubuntu, el script se llama bind9.
ResponderEliminarPrueba ejecutando:
service bind9 start
El las distros que no tienen el comando service puedes ejecutar directamente el script de arranque de la siguiente forma para CentOS:
/etc/init.d/named
Y para Ubuntu:
/etc/init.d/bind9