Configurar DNS en Debian


Para configurar un DNS debe instalarse el paquete Debian bind; el proceso que atiende las consultas se denomina named, y corre en forma permanente en la máquina, escuchando y atendiendo las consultas que le llegan. Un programa que actúa de esta manera se denomina un "demonio".

El paquete bind de Debian instala una configuración simple útil para un servidor de nombres de usuario final. Esta configuración básica actúa como un servidor de nombres "caché": sólo guarda las direcciones IP y los nombres de máquinas que va conociendo, para responder las consultas sin tener que repetir la búsqueda cada vez.

Directorios.

/etc/bind:
archivos de configuración, archivos de números IP y nombres de máquinas de la zona local atendida por esta máquina.

/var/cache/bind:
directorio de trabajo donde bind guarda la información sobre números IP y nombres de máquinas que va recogiendo en sus actividadades de búsqueda consultando otras máquinas DNS de la red.

Archivos existentes.
Estos archivos son instalados por la configuración base; deben estar siempre.

db.local:
datos de resolución directa para interfaz local "loopback".

db.127:
datos de resolución inversa para interfaz local "loopback".

db.0:
inverso para zona de difusión, según lo requerido por las normas.

db.255:
inverso para zona de difusión, según lo requerido por las normas.

db.root:
información de servidores de nombres raíz de Internet, autoridades máximas en servicio de nombres; estos servidores son la referencia esencial para iniciar la actividad del servidor DNS local en búsqueda de nombres por Internet. El DNS local puede preguntar a estos servidores las direcciones desconocidas, o a otros servidores DNS más cercanos si se le indican.

named.conf:
archivo de configuración para el servidor DNS local. Aquí figuran todos los nombres de archivos locales consultados, direcciones de servidores DNS próximos y ajustes de operación para el DNS.

Zona local.

Un conjunto de máquinas del cual cierta máquina conoce de primera mano sus nombres y números IP se denomina zona de autoridad de dicha máquina, o simplemente zona. Para crear una zona se precisan dos archivos, uno con los datos de las máquinas para resolución directa y otro con los datos de las máquinas para resolución inversa.
Se creará un dominio llamado nsk.com.uy con dos máquinas incluídas, tisanuro y nautilus; los números IP se tomarán de las direcciones privadas 192.168.0.0, no válidas en Internet sino reservadas para uso interno.

db.nsk
datos para resolución directa de la zona a crear.

db.192:
datos para resolución inversa de la zona a crear.

Instalacion y Configuracion



instalar bind9 bin9-doc

seria : apt-get install bind9 bind9-doc

luego:

Para comenzar el tutorial, primeramente haré una lista de los elementos que tenemos:

1- Un servidor Debian Etch con dos tarjetas de red, eth0 (192.168.2.10) y eth1 (192.168.0.1).
2- Un router cuya ip es 192.168.2.9.
3- Una red interna cuya red es 192.168.0.0/24.

La red la organizaremos de esta forma:

1- La primera tarjeta de red del servidor (eth0) la conectaremos al router.
2- La segunda tarjeta de red del servidor (eth1) la conectaremos al switch que nos une a la red interna.

Necesitamos configurar un Sistema de Nombres de Dominio para resolver los nombres de las maquinas de nuestra red, y la que no este en nuestra red, se la enviaremos a dos servidores padres (192.168.22.2 y 192.168.22.4).

Para ello debemos instalar el paquete bind9 (apt-get install bind9). Una vez instalado, comenzamos la configuracion de nuestro DNS.

El DNS en Debian consta de los ficheros de configuración, mas los ficheros de las zonas, los ficheros de configuracion los encontraremos en (/etc/bind) y los de las zonas los pondremos en (/var/cache/bind).

Suponiendo que nuestro servidor se llama (servidor.midominio.cu), por lo que comenzamos a crear nuestra zona (midominio.cu). Para ello editamos el fichero /etc/bind/named.conf.local

nano /etc/bind/named.conf.local (y esta es lo que hay que poner)

#----------inicio del fichero-------------#

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

view "1" {
//Zona midominio.cu
match-clients { 192.168.0.0/24; 192.168.2.10; };
zone "midominio.cu" {
type master;
file "/var/cache/bind/midominio.cu-interna";
};
//Zona inversa para la RED 192.168.0.0/24
zone "0.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/0.168.192.in-addr.arpa";
};
};

view "2" {
//Zona midominio.cu
match-clients { any; };
zone "midominio.cu" {
type master;
file "/var/cache/bind/midominio.cu-externa";
allow-transfer { 192.168.22.2; 192.168.22.4; };
notify yes;
};
//Zona inversa para la RED 192.168.2.28/30
zone "2.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/2.168.192.in-addr.arpa";
};
};
#---------FIN DEL FICHERO----------------#

Nota: Las lineas con los ---- no se incluyen, solo las usare para delimitar la explicacion con los archivos de configuración.

Ahora agregaremos lo siguiente en /etc/bind/named.conf.options

nano /etc/bind/named.conf.options

Agregar: forwarders { 192.168.22.2; 192.168.22.4; };

quedaria asi:

#----------inicio del fichero----------#

options {
directory "/var/cache/bind";
# allow-recursion { none; };
# dnssec-enable yes;

// If there is a firewall between you and nameservers you want
// to talk to, you might need to uncomment the query-source
// directive below. Previous versions of BIND always asked
// questions using port 53, but BIND 8.1 and later use an unprivileged
// port by default.

query-source address * port 53;

// If your ISP provided one or more IP addresses for stable
// nameservers, you probably want to use them as forwarders.
// Uncomment the following block, and insert the addresses replacing
// the all-0's placeholder.

forwarders { 192.168.22.2; 192.168.22.4; };

auth-nxdomain no; # conform to RFC1035
listen-on-v6 { any; };
};

# --------------------------fin del fichero-------------------------#

Ahora vamos para los ficheros de las zonas, como como se vio en el fichero de configuracion radica en /var/cache/bind. Pero esos ficheros no existen, tenemos que crearlos nosotros, para ello los creamos de esta manera:

touch /var/cache/bind/midominio.cu-interna
touch /var/cache/bind/midominio.cu-externa
touch /var/cache/bind/2.168.192.in-addr.arpa
touch /var/cache/bind/0.168.192.in-addr.arpa

Comenzamos a editar el primer fichero (midominio.cu-interna) que corresponde a las maquinas de mi red interna, o sea, en este fichero incluyo solo las maquinas de mi red interna.

nano /var/cache/bind/midominio.cu-interna

#----------INICIO DEL FICHERO--------#

$ORIGIN dominio.cu.
$TTL 86400
cm 21600 IN SOA midominio.cu. root.midominio.cu. ( 2008101701 3600 3600 3600000 86400 )
21600 IN NS server.midominio.cu.

$ORIGIN midominio.cu.
$TTL 86400

server              21600      IN       A      192.168.0.1
instructor         21600      IN       A     192.168.0.10
maq1lab1        21600      IN       A     192.168.0.50
maq2lab1        21600      IN       A     192.168.0.51
maq3lab1        21600      IN       A     192.168.0.52
maq4lab1        21600      IN       A     192.168.0.53
maq5lab1        21600      IN       A     192.168.0.54
maq1lab2        21600      IN       A     192.168.0.55
maq2lab2        21600      IN       A     192.168.0.56
maq3lab2        21600      IN       A     192.168.0.57
maq4lab2        21600      IN       A     192.168.0.58
maq5lab2        21600      IN       A     192.168.0.59
maq1lab3        21600      IN       A     192.168.0.60
maq2lab3        21600      IN       A     192.168.0.61
maq3lab3        21600      IN       A     192.168.0.62

correoweb       21600      IN    CNAME     server
correo              21600      IN   CNAME      server
www                21600      IN   CNAME      server
proxy               21600      IN   CNAME     server
email               21600      IN   CNAME     server
ftp                    21600      IN   CNAME     server
bvirtual            21600      IN   CNAME     server
biblioteca         21600     IN   CNAME     server
jabber               21600     IN   CNAME    server
myadmin          21600     IN   CNAME    server
maillog             21600     IN   CNAME    serverwebftp              21600     IN   CNAME    server
time                  21600     IN   CNAME    server




#-------------FIN DEL FICHERO--------------#

Nota : en esta linea:
midominio.cu. root.midominio.cu. ( 2008101701 3600 3600 3600000 86400 )

la numeracion 2008101701 que quiere decir
                        2008------------el ano
                               10----------el mes
                                   17--------el dia
                                       01-------cantidad de modificaciones que se ha hecho

es decir en ese primer numero ponemos la fecha en que se crea este fichero y las modificaciones que se le ha hecho, si se configura el mismo fichero una 2 ves, hay que ponerle la fecha de ese dia que se modifico por ultima ves, y al final agregar 02, los demas numeros siempre son iguales


ej:

midominio.cu. root.midominio.cu. ( 2008101701 3600 3600 3600000 86400 )

aqui este fichero se configuro el 2008-10-17 con 1 modificacion
ahora entro al dia siguiente y le cambio algo, quedaria:

midominio.cu. root.midominio.cu. ( 2008101802 3600 3600 3600000 86400 )

ahora

En este ejemplo supuse que mi red interna Ojo con esto, en la red interna tambien debe aparecer el servidor. Los demas registros de tipo CNAME son alias que ponemos al servidor, para los servicios web y ftp, entre otros.

Ahora vamos al segundo fichero:

nano /var/cache/bind/midominio.cu-externa


/************************ INICIO DEL FICHERO
$ORIGIN dominio.cu.
$TTL 86400
jccec 21600 IN SOA server.midominio.cu. root.midominio.cu. ( 2008101701 3600 3600 3600000 86400 )
21600 IN NS server.midominio.cu.

$ORIGIN midominio.cu.
$TTL 86400

router               21600     IN      A       192.168.2.9
server              21600     IN      A        192.168.2.10

correoweb       21600     IN       CNAME   server
correo              21600     IN      CNAME   server
www                21600     IN      CNAME   server
proxy              21600      IN      CNAME   server
email              21600      IN      CNAME   server
ftp                   21600      IN     CNAME    server
bvirtual           21600      IN     CNAME    server
biblioteca       21600       IN     CNAME   server
jabber             21600       IN    CNAME    server
maillog           21600       IN    CNAME   serverwebftp            21600       IN    CNAME   server
time               21600        IN   CNAME    server




#---------FIN DEL FICHERO---------#

Vamos al tercer fichero de configuracion de la zona:

nano /var/cache/bind/0.168.192.in-addr.arpa

#-------------INICIO DEL FICHERO------------#
$ttl 86400
@ IN SOA server.midominio.cu. root.midominio.cu. (
2008101701
3600
3600
604800
1200 )
@                  IN        NS         server.midominio.cu.
1                   IN       PTR         server.midominio.cu.
10                 IN       PTR         instructor.midominio.cu.
50                 IN       PTR         maq1lab1.midominio.cu.
51                 IN       PTR         maq2lab1.midominio.cu.
52                 IN       PTR         maq3lab1.midominio.cu.
53                 IN       PTR         maq4lab1.midominio.cu.
54                 IN       PTR         maq5lab1.midominio.cu.
55                 IN       PTR         maq1lab2.midominio.cu.
56                 IN       PTR         maq2lab2.midominio.cu.
57                 IN       PTR         maq3lab2.midominio.cu.
58                 IN       PTR         maq4lab2.midominio.cu.
59                 IN       PTR         maq5lab2.midominio.cu.


#----------FIN DEL FICHERO----------------#

Y finalmente editamos el ultimo fichero:

nano /var/cache/bind/2.168.192.in-addr.arpa

#--------------INICIO DEL FICHERO-----#
$ttl 86400
@ IN SOA server.midominio.cu. root.midominio.cu. (
2008101701
3600
3600
604800
1200 )
@                 IN          NS         server.midominio.cu.
9                  IN          PTR       router.midominio.cu.
10                IN          PTR        server.midominio.cu.

#----------FIN DEL FICHERO------------#

Finalmente reiniciamos bind, /etc/init.d/bind9 restart o invoke-rc.d bind9 restart