Monday, May 5, 2008

Un articulo de DNS viejo

Configurando un Servidor de DNS


Gente, aca les dejo un articulo sobre dns que hice en el 2000!, hace ya 8 años!


Configurando un Servidor De DNS


Este articulo tiene como fin configurar un servidor de dns. Muchos se estaran
preguntando que es un servidor de DNS. Primero, comenzaremos por la definicion
del servidor de DNS. Domain Name Server,
o sea Servidor de Nombres de
Dominios.

En un principio, en internet todas las maquinas tenian asignados numeros ip, y
al no haber tantas maquinas, se podrian llegar a ubicar estas facilmente por
un numero. El ejemplo seria, la Universidad
de Carolina tiene el ip
25.234.23.21, y la Universidad de London, el 23.43.23.12. Las comunicaciones
se establecian al principio entre los dos numeros, o sea que 25.234.23.21 se
comunicaba con 23.43.23.12.

A medida que Internet crecia, estos numeros se anotaban en un archivo que se
llamaba hosts.txt, y
este se lo ponia en cada maquina.

Este archivo tenia el formato siguiente:

(ip) Fqdn

192.168.0.1 jak0.qqmelo.com.ar
192.168.0.2 netg4s.qqmelo.com.ar
192.168.0.3 ]-[eavy.qqmelo.com.ar

pero, imaginemosnos que mientras crecia internet, se tenian que copiar estos
nombres a diario, y
que cada Maquina con conexion a internet, se lo tendria
que actualizar, cosa que seria por demas engorrosa.

Actualmente, este archivo se llama host, y se encuentra en los linux, dentro
del directorio /etc.
(Para redes Peque~as, este archivo sirve, cuando las redes crecen este archivo
tiende a ser inutil, por
lo cual se busco otra solucion, que es el sistema
DNS).

Bind 8

La mayor parte de los sistemas DNS, utilizan el BIND ( Berkeley
Internet Name Domain ),
que podemos ver dos versiones tipicas, la version 4 y
la version 8. En nuestro caso analizaremos la
version 8, ya que es la que
actualmente se esta usando. La nueva version es mas sencilla de configurar y
trae ciertas mejoras en el aspecto de seguridad, a la vez que incorpora una
nueva sintaxis.


Comenzando:

Se ha dicho que instalar y configurar un sistema DNS no es sencillo
( Cuanta razon!!! ), pero
el fin de este texto es demistificar eso.

Lo que vamos a hacer, es mostrar dns y como configurarlos, paso a paso,
y tratando de
encontrar los errores mas comunes.

Planteamiento:

Para esto, lo que vamos a hacer es mostrar ejemplos sencillos de
configuracion.
Definiremos zona, dando a entender por zona los dominios que querramos
registrar.


Queremos que nuestro dns sirva para resolver a todas las pc que se encuentran
en la zona lam0s.com.ar
y que si queremos consultar una pc de esta zona, se
devuelva una respuesta que pertenece a ella.


Ejemplo:

Segun el registro de la nic, la ip 203.203.203.203, esta asignada a la
zona lam0s.com.ar.

Ahora, nosotros nos ocuparemos de setear el archivo para que se resuelva
correctamente la ip.
Veamos paso a paso como realizar esto.

1- Necesitaremos crear un archivo de configuracion, de zona, que desde el bind
8, este se encuentra
bajo el directorio /etc.

Este archivo es llamado named.conf, y tiene la siguiente estructura.
zone "lam0s.com.ar" {
type master;
file "db.lam0s.com.ar"
}

analizando este archivo veremos lo siguiente:

Primero, que se define la zona lam0s.com.ar, y alli se dice que
va a ser una zona
master ( o sea primaria ) y se indica que el file ( archivo
de configuracion se encuentra en db.lam0s.com.ar ), ustedes se estaran
preguntando, si, pero donde lo encuentro??, tranquilos amigos
que
anteriormente hay unas lineas en este mismo archivo que indican donde estaran
alojadas las zonas.

options {

directory "/var/named"
}

Con esto, le indico que todas las zonas estaran alojadas en el
directorio var/named

Siguiendo, veremos en un caso practico, como configurar las zonas
correctamente.
Hemos dicho, que el archivo db.lam0s.com.ar, resuelve los hosts de esta
zona, vamos a ver
este archivito, y luego vamos a ir entendiendo como crear
correctamente los otros archivos.

Este es el archivo db.lam0s.com.ar

lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN A 203.203.203.205

Analicemos un Poquito esto!

de entrada , en la primera linea, vemos lo siguiente lam0s.com.ar. , que
es esto, Pues es nuestra
Zona!!!, luego vemos IN, este registro significa
Internet, significa que sera dada de alta en Internet,
Luego seguimos viendo algo asi como SOA ( start of autority, o sea, comienzo
de autoridad, y aqui
nos daremos cuenta que la maquina donde esta alojando el
servidor DNS es QQm310.com.ar )

Luego, las caracteristicas , tiempo de refresco, tiempo de peticion , etc, y
luego comienza lo que
a todos nos interesa, y donde nos detendremos!!!

Vemos nuevamente IN NS
NS es el registro encargado de indicar cual va a ser el servidor de
nombres , el cual debe coincidir con el de comienzo de autoridad, o sea
QQm310.lam0s.com.ar.

Luego, vemos la siguiente linea.

QQm310.lam0s.com.ar. IN A 203.203.203.203

Y esto que significa??

Tranquilos!!!!!!!!!!!

veamos, esto es simple!!!

QQm310.lam0s.com.ar. es el nombre de la pc, IN es el registro de internet y A
( de Address, significa
que le va a transformar la direccion
QQm310.lam0s.com.ar. a 203.203.203.203). simple no?

Bueno, asi seguiremos con los otros host de nuestra red!

Nombres Canonicos y alias

Pero, la pagina web lam0s.com.ar esta en el mismo ip que QQm310.lam0s.com.ar,
como lo defino?
repito la definicion???? NOOOOOOOO, pues esto podria lograr que el sistema
termie funcionando mal,
entonces una solucion es los nombres canonicos ( alias
), veamos que es esto

Introducimos la linea

www.lam0s.com.ar. IN CNAME QQm310.lam0s.com.ar.

y aqui le indico que las peticiones a la pagina www.lam0s.com.ar. apunten a
QQm310.lam0s.com.ar.
que en realidad apunta a 203.203.203.203, que es el servidor de DNS.

o sea, que nuestra zona quedaria de la siguiente manera!!



lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN A 203.203.203.205
QQm310.lam0s.com.ar. IN CNAME 203.203.203.203


Zonas Reversas!!!!

Listo, ya tenemos nuestro servidor de DNS andando correctamente para
las zonas directas
o "derechas en la jerga!", pero aun no resolvimos el tema
de las peticiones inversas, por ejemplo
yo quisiera que al consultar
203.203.203.203, me dijeran QQm310.lam0s.com.ar

Para lograr esto, deberia configurar la zona inversa!

Primero, haremos la entrada correspondiente en el /etc/named.conf

zone "203.203.203.in-addr.arpa" {
type master;
file "db.203.203.203.in-addr.arpa"
}


Pero ustedes se preguntaran, ehh? y esto??, que es ese
203.203.203.in-addr.arpa?

La respuesta es que las zonas inversas se escriben asi, y que esto
resolvera las
peticiones correspondientes a la 203.203.203.x, donde setearemos
nosotros esos x.

Como supondran, tambien tendremos que configurar el archivo
correspondiente, de la
zona reversa, pero la repuesta es, ovbio, que
inteligente que son mis lectores y/o alumnitos!
(:-)) )

Configuraremos el archivo db.203.203.203.in-addr.arpa


203.203.203.in-addr.arpa IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

203 IN PTR QQm310.lam0s.com.ar.
204 IN PTR netg4s.lam0s.com.ar.
205 IN PTR velez.lam0s.com.ar.

y vemos que sencillo que es !!!

Lo primero es declarar la zona a configurar, y luego, lo otro como lo venimos
realizando de costumbre
solo que tenemos que invertir los datos.
Vemos que tenemos el registro PTR este significa puntero, y dice que la
direccion 203
de la zona 203.203.203. apunta a QQm310.lam0s.com.ar.

OJO!!!!!!!!!!!!!!!

mucha gente se equivoca aqui, y pone 203.203.203.203, y esto buscara el
ip 203.203.203.203.203.203.230, cosa que no existe, por que recordemos que
como he dicho
anteriormente, la zona es 203.203.203.in-addr.arpa, y aca en
in-addr.arpa, se reemplazaran las
direcciones que seteemos, por ejemplo 203,
204, 205, que seran reemplazadas por los x.

Reiniciando el Demonio

Para que los cambios tengan efecto, tendremos que reiniciar el demonio,
el cual esta
alojado en /etc/rc.d/init.d/

la orden seria la siguiente:

#/etc/rc.d/init.d/named stop
#/etc/rc.d/init.d/named start

Configurando el cliente DNS

Para realizar estas pruebas, lo primero que debemos es indicarle a
nuestra maquina
donde encontrara el servidor DNS.
El archivo de configuracion es el /etc/resolv.conf, y veremos como
setearlo correctamente.

veamos: lo configuraremos para que sea nuestro servidor DNS 203.203.203.203.

entonces, ponemos lo siguiente

nameserver 203.203.203.203

Probando si las cosas andan bien:

Con el comando nslookup, podremos ver si nuestro servidor funciona joya

#nslookup www.lam0s.com.ar

Server: QQmelo.lam0s.com.ar
Address: 203.203.203.203

Name: www.lam0s.com.ar
Address:203.203.203.203

y esto significa que nuestro server anduvo de primera!!!!!!!!!!!!!!!!!

si tuvieramos un error, tendriamos que ver los archivos de configuracion, para
que no haya errores,
cuando la experiencia me dice que la mayoria de los
errores que se presentan son de tipeado,
y bueno, somos humanos !!!


Resumiendo!!

Mostrare como Quedarian los archivos que fui nombrando

el primer archivo, el /etc/named.conf


options {

directory "/var/named"
}

zone "." {

type hint;
file "named.ca";
};


zone "0.0.127.in-addr.arpa" {

type master;
file "named.local"

}

zone "lam0s.com.ar" {
type master;
file "db.lam0s.com.ar"
}

zone "203.203.203.in-addr.arpa" {
type master;
file "db.203.203.203.in-addr.arpa"
}


Bueno, ustedes diran, hay unas zonas que anteriormente no he nombrado, es
cierto, son las zonas
raices, donde tiene la mayoria de los dns de los
servidores raices por paises, esa es la zona "."
y luego la zona de loopback.

Luego, veremos los archivos que pusimos en /var/named, ademas de lo que estan
alli, named.local y
named.root ( los que hablamos recien )

lam0s.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

QQm310.lam0s.com.ar. IN A 203.203.203.203
netg4s.lam0s.com.ar. IN A 203.203.203.204
velez.lam0s.com.ar. IN

y ahora la reversa

203.203.203.in-addr.arpa IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar

203 IN PTR QQm310.lam0s.com.ar.
204 IN PTR netg4s.lam0s.com.ar.
205 IN PTR velez.lam0s.com.ar.

luego, no se olviden de Poner el cliente DNS

/etc/resolv.conf

nameserver 203.203.203.203


Configurando Virtual Domains

Pero Bueno, ustedes estaran preguntandose, eh, yo tengo varias zonas, y tan
solo un ip, este Qqm310 nos esta chamuyando :-))))


Entonces, nada mas simple que armar virtual domains. Como lo hacemos??

Lo primero es declarar la zona virtual en el /etc/named.conf.

Una vez declarado aqu¡, lo que sigue es mas bien simple, definir la zona en
/var/named.... mmmm pasaremos a la practica de lo anteriormente dicho.

Supongamos que queremos una zona virtual llamada velezito.com.ar

entonces, lo que debemos hacer, es crear esta zona en el /etc/ named.conf

Hagamoslo!!!


zone "velezito.com.ar" {
type master;
file "db.velezito.com.ar"
}

Con esto, lo hemos declarado en el /etc/named.conf, y esto lo que hara es
buscarlo en
el archivo db.velezito.com.ar, del /var/named.

Definiendo la zona:

velezito.com.ar. IN SOA QQm310.lam0s.com.ar. lam0s.com.ar. (

2000121997; numero de serie
28800 ; tiempo de refresco en minutos
14000 ; caducidad de una peticion
86400; minimo de tiempo vivo
)

IN NS QQm310.lam0s.com.ar
www.velezito.com.ar. IN A 203.203.203.203


Y como vemos, el domain velezito.com.ar apunta a nuestro ip publico,
viendo que no tenemos nada mas que hacer, podremos hacer los dns que
querramos.

Apendice:

Como el txt este lo hice a las chapas, me saltee un par de vocablos
tecnicos.


Tipos de regustros:

SOA: Comienzo de Autoridad

NS: Servidor de Nombres

A: Registro de direccion.

PTR: Registro Puntero.

MX: Intercambiador de Correo.

CNAME: Nombre canonico o Aceptado.

RP y TXT: Entradas de documentacion.

No comments: