Trabajando con un Servidor DNS

dns_europa_international_09.jpgEl propósito de este 'apunte' es el de dar un pelín de luz sobre como y con que trabaja un serviodor DNS (bind).

Que es un DNS?

Las DNS son los servidores que nos permiten realizar la transformación en nombres de dominios a IP's, para poder enrutar a donde queremos, por ejemplo, si queremos ver una página Web midominio.org, primero el servidor de DNS que tenemos configurado en nuestra conexión a Internet, traduce ese dominio en una IP, y después se hace la petición.

Un dominio cualquiera puede tener en su zona DNS los siguiente atributos:

SOA: Información de control del dominio.

NS: Name Server

A: Adress (Una dirección IP).

MX: Mail Exchange (Servidor de correo). debe tener preferencia de servidor 10, 20, 5, etc.

CNAME: Canonical Name, define un host a un nombre conocido. intranet.atostrainig.com --> www.atostrainig.com. (nombres alternativos).


Existe un documento normalizado que nos habla detalladamente de la administración de redes qeu nos puede ser de ayuda http://es.tldp.org/Manuales-LuCAS/GARL/

También deberemos tener muy encuenta los documentos RFC (Request For Comments), que son una definición de como se deben comportar diferentes servicios, pop, smtp, dns, etc).

El correspondiente a DNS es el rfc1912 (http://www.faqs.org/rfcs/rfc1912.html)

Al lío:

# aptitude install bind*
# aptitude install caching-nameserver

Miramos la zona localdomain para darnos una idea de como está formada.

zone "localdomain" IN {

type master; # Primer sitio donde irá a mirar el fichero de zona puedse ser 'secondary' y hay que detallar donde tiene que ir a buscarlo
file "localdomain.zone";
allow-update { none; };

};

Ahora miramos que es lo que encontraremos en el fichero de zonas al que hace referencia file

# vim /var/named/localdomain.zone

$TTL 86400
@ IN SOA localhost root (

42 ; serial (d. adams) Es el número que identifica la versión del fichero de zonas que tenemos. Convención de modificación: YYYYMMDDXX (2007032601)
3H ; refresh (cada cuento tiempo se refresca el contenido del dominio)
15M ; retry (cada cuanto se hace el reintento entre servodires dns)
1W ; expiry (cada cuento tiempo expira)
1D ) ; minimum

IN NS localhost
localhost IN A 127.0.0.1
www IN CNAME midominio.org

Ejemplo:

Creamos en el archivo de zonas:

# vim /etc/named.rfc1912.zones

zone "midominio.org" IN {

type master;
file "midominio.org.zone";

};

# vim /var/named/midominio.org.zone

Pero al tenerlo todo en chroot debe estar en:

# mv midominio.org.zone /var/named/chroot/var/named/

Claro que luego deberemos tener en cuenta que el fichero de zona debe estar en el grupo de usuarios named.

# net chgrp named midominio.org.zone

Dns trabaja a caballo de los protocolos TCP y UDP y por el puerto 53.

# netstat -ant

[[email protected] ~]$ netstat -ant
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 127.0.0.1:2208 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN

Ahí vemos si el puerto 53 esta 'Escuchando'

[[email protected] ~]# /etc/init.d/named restart
Deteniendo named: [ OK ] Iniciando named: [ OK ]

Luego mediante el comando dig podremos ver si está respondiendo correctamente.

[[email protected] ~]# dig www.midominio.org @127.0.0.1

; <<>> DiG 9.3.4 <<>> www.midominio.org @127.0.0.1
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 1434
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0


;; QUESTION SECTION:
;www.midominio.org. IN A

;; ANSWER SECTION:
www.midominio.org. 86400 IN CNAME midominio.org.midominio.org.

;; AUTHORITY SECTION:
midominio.org. 86400 IN SOA midominio.org.midominio.org. root.midominio.org. 45 10800 900 604800 86400

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 26 19:09:36 2007
;; MSG SIZE rcvd: 104

Como tener un nombre repartido en varias IP:

La idea es que el servidor DNS según a que peticiones sirva el dato desde la entrada A 10.123.33.101 o 10.123.33.102

# vim /var/named/chroot/var/named/aula3.edu.zone

$TTL 86400
@ IN SOA midominio.edu root (

48 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost

localhost IN A 127.0.0.1
pc1 IN A 10.123.33.1
pc2 IN A 10.123.33.2
www IN A 10.123.33.101
www IN A 10.123.33.202
www IN CNAME midominio.edu

El punto al final del dominio:

Utilizaremos la cláusula MX con la intención de crear la zona de correo.

Si queremos utilizar entradas FQDN deberemos poner un . al final de la entrada.

solusan.com. 86400 IN NS ns1.solusan.com.
solusan.com. 86400 IN NS ns2.solusan.com.

solusan.com. 14400 IN A 209.85.8.2

localhost.solusan.com. 14400 IN A 127.0.0.1

solusan.com. 14400 IN MX 10 solusan.com.

mail 14400 IN CNAME solusan.com.
www 14400 IN CNAME solusan.com.

En este caso la máquina 209.85.8.2, no sólo es el servidor de correo, también es servidor DNS, SMTP, POP, HTTP.

Leave a Reply

Your email address will not be published.