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.
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.
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