dns(jorgemoya)

11
UNIVERSIDAD TÉCNICA DE AMBATO FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA SÉPTIMO SEMESTRE JORGE FERNANDO MOYA PRIETO Ing. JAVIER SANCHEZ

Upload: jorge-moya

Post on 04-Jul-2015

239 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Dns(jorgemoya)

UNIVERSIDAD TÉCNICA DE AMBATO

FACULTAD DE CIENCIAS HUMANAS Y DE LA

EDUCACIÓN

CARRERA DE DOCENCIA EN INFORMÁTICA

SÉPTIMO SEMESTRE

JORGE FERNANDO MOYA PRIETO

Ing. JAVIER SANCHEZ

Page 2: Dns(jorgemoya)

El DNS

El DNS ( Domain Name Service) es un sistema de nombres que permite traducir de nombre de dominio a dirección IP y vice-versa. Aunque Internet sólo funciona en base a direcciones IP, el DNS permite que los humanos usemos nombres de dominio que son bastante más simples de recordar (pero que también pueden causar muchos conflictos, puesto que los nombres son activos valiosos en algunos casos).

El sistema de nombres de dominios en Internet es un sistema distribuido, jerárquico, replicado y tolerante a fallas. Aunque parece muy difícil lograr todos esos objetivos, la solución no es tan compleja en realidad. El punto central se basa en un árbol que define la jerarquía entre los dominios y los sub-dominios. En un nombre de dominio, la jerarquía se lee de derecha a izquierda. Por ejemplo, en dcc.uchile.cl, el dominio más alto es cl. Para que exista una raíz del árbol, se puede ver como si existiera un punto al final del nombre: dcc.uchile.cl., y todos los dominios están bajo esa raíz (también llamada ``punto").

Cada componente del dominio (y también la raíz) tiene un servidor primario y varios servidores secundarios. Todos estos servidores tienen la misma autoridad para responder por ese dominio, pero el primario es el único con derecho para hacer modificaciones en él. Por ello, el primario tiene la copia maestra y los secundarios copian la información desde él. El servidor de nombres es un programa que típicamente es una versión de BIND ( Berkeley Internet Name Daemon). En general es mucho mejor traer la última versión desde Internet (www.isc.org) que usar la que viene con el Sistema Operativo, porque es un servidor que ha cambiado mucho a lo largo del tiempo.

La raíz del sistema de dominios es servida por algunos servidores ``bien conocidos''. Todo servidor de nombres debe ser configurado con la lista de los servidores raíz bien conocidos (en general lo vienen de fábrica). Estos servidores dicen qué dominios de primer nivel existen y cuales son sus servidores de nombres. Recursivamente, los servidores de esos dominios dicen qué sub-dominios existen y cuales son sus servidores. (Ver figura 1).

Page 3: Dns(jorgemoya)

Existe un conflicto de competencia entre el servidor de un dominio y el de un sub-dominio: ambos deben saber cuales son los servidores de nombres del sub-dominio. En un inicio, estarán de acuerdo, pero con el tiempo los servidores pueden ir cambiando, y las versiones de ambos pueden ser inconsistentes. Actualmente, el que manda es el servidor del sub-dominio, y su información es la más importante. Por ejemplo, si el servidor de .cl dice que uchile.cl es servido por los servidores A y B, y luego el servidor A dice que uchile.cles servido por A y C, la información que se recibirá en el mundo es que los servidores son A y C. El único requisito es que por lo menos uno de los servidores de nombres que figuran en el dominio debe corresponder a uno de los que lista el sub-dominio. Si no es así, el dominio queda sin

servidores y es inaccesible del resto del mundo .

En general, la regla ideal es que la lista de servidores que figura en el dominio sea un sub-conjunto de la lista que figura en el sub-dominio.

¿Qué es y para qué sirve un DNS?

Eduardo Jueves 31 de mayo del 2007

DNS (Domain Name Server o Servidor de nombre de dominio) es una tecnología de

Internet que se utiliza para asociar nombres (como www.google.com) a su dirección

IP (por ej. 72.14.253.99). Imagínense lo dificil que sería estar aprendiendonos

números en lugar de nombres, creo que Internet no sería lo mismo, y obviamente no

sería tan popular.

Page 4: Dns(jorgemoya)

¿Qué es lo que pasa cuando tu escribes www.google.com en tu firefox o en tu

safari, o en tu Konqueror?

Primero se le pregunta al DNS de tu proveedor de Internet ¿quién es

www.google.com?, pero éste normalmente no puede responder esas preguntas, por

lo que tendrá que preguntar a alguna de las 13 raíces que forman el DNS en internet.

Hasta que alguna de las 13 conozca la dirección o si ninguna la conoce entonces se

responderá “dirección no encontrada”. Esto se llama resolver un dominio.

Cuando alguien quiere configurar un DNS necesita especificar siempre el archivo

db.cache, que contiene las direcciones de los 13 servidores raíz y se puede descargar

de internic.com “ftp://ftp.internic.com/domain/named.cache“. Este archivo se llama

named.cache pues el programa que controla las DNS en Linux es BIND y su nombre de

servicio es “named“.

Siendo estrictos www.google.com es un subdominio de google.com, así como los

subdominios: mail.google.com o calendar.google.com. Pero es común que el

subdominio www siempre se resuelva hacia el dominio.

En los DNS hay varios tipos de registros entre ellos existen los registros NS o name

server, los MX o mail exchanger y muchos otros, por ejemplo podemos decirle a un

nombre de dominio que apunte a una IP mendiante “A” de address o decirle que

tambien se puede llamar de otro modo pero es el mismo usando en CNAME (canonical

name).

En los DNS debemos procurar no poner direcciones estáticas, por ejemplo sería una

estupidez poner en nuestro DNS a google.com apuntando a la IP que tiene

actualmente, porque si cambiara de IP tendríamos que mover a mano todo. A parte

desaprovecharíamos el diseño y la planeación de internet, pues los DNS refrescan la

cache y todo cada x tiempo que nosotros definamos.

Para poder ver los registros de DNS que tiene alguna página podemos usar

http://whois.com para ver la información asociada, y tambien el comando “nslookup”

y luego poner “set type=any” de la siguiente forma:

$ nslookup

>set type=any

>google.com

Y hasta si tuvieran fallas de seguridad podríamos ver toda su red interna poniendo

>ls paginaconerroresgraves.com

Page 5: Dns(jorgemoya)

COMO CONFIGURAR EL DNS (DOMAIN NAME SERVER)

Introducción

DNS es el Domain Name System (Sistema de Nombres de Dominio), las reglas de

nomenclatura de las máquinas y el software que mapea los nombres a números IP.

Una conversión es simplemente una asociación entre dos cosas, en este caso un

nombre de máquina, como ftp.linux.org y el número IP de la máquina, 199.249.150.4.

Comenzaremos con un servidor caching only server Servidor que se limita a guardar en una caché las IPs de los nombres de máquina más solicitados, obteniéndolas de servidores externos. , y continuaremos con la configuración de un servidor DNS primario para un dominio.

Antes de empezar, debe configurar su sistema convenientemente, de forma que pueda hacer telnet desde y hacia su máquina, efectuando satisfactoriamente toda clase de conexiones de red, especialmente telnet 127.0.0.1 entrando en su propia máquina (compruébelo ahora). También necesita que los archivos /etc/host.conf (o /etc/nsswitch.conf), /etc/resolv.conf y /etc/hosts sean correctos como punto de partida.

El servicio de nombres en Unix es llevado a cabo por un programa llamado named.

Esta forma parte del paquete bind. Named está incluido en la mayoría de las distribuciones de Linux y generalmente se instala como /usr/sbin/named.

DNS es una base de datos cuyo ámbito es la Red. Mantenga su DNS limpia y consistente y conseguirá un buen servicio de ella. Aprenda a usarla, administrarla, depurarla y será otro buen administrador, salvando a la red de caer sobre sus rodillas sobrecargada por falta de mantenimiento.

Para que su máquina pueda ser encontrada por otros ordenadores en Internet, es necesaria que sea referenciada por su dirección IP.

Traducir (resolver) los nombres de una máquina (y dominio) a direcciones IP utilizadas en Internet es el trabajo de máquinas que ofrecen el servicio de nombres de dominio (DNS).

Esto sucede de la siguiente manera:

su máquina necesita saber la dirección IP de un ordenador en particular. La aplicación que necesita esta información pregunta al "resolvente" de su PC Linux para que le dé esta información;

Page 6: Dns(jorgemoya)

el resolvente necesita el fichero de máquinas locales (/etc/hosts y/o los servidores de nombres de dominio acerca de los que sabe (el comportamiento del resolvente está determinado por el fichero /etc/host.conf);

si la respuesta se encuentra en el fichero de máquinas, se devuelve la respuesta;

si se especifica un servidor de nombres de dominio, su PC pregunta a esta máquina;

si la máquina DNS ya sabe la dirección IP para el nombre solicitado, la devuelve. Si no la sabe, pregunta a otro servidor de nombres de dominio a través de Internet para encontrar la información. El servidor de nombres pasa la información al resolvente que la solicita - el cual da la información a la aplicación que la solicita.

Fichero /etc/named.conf

El fichero named.conf es el que lee el named -demonio del servidor de dns- al

arrancar.

En este se debe encontrar las siguientes líneas:

//Configuración básica del named.conf

//Primer fichero que lee el named

//Aqui le decimos dónde encontrará los ficheros de configuracion precisos.

//Se ponen en /var/named porque hay una especie de convenio que así lo sugiere.

; Archivo boot de servidor de nombres de solo cacheo: ; directory /var/named ; ; tipo dominio fichero o maquina fuente cache . root.cache primary 0.0.127.in-addr.arpa pz/127.0.0

options {

directory "/var/named";

};

//Zona raiz de dominios

//Sin esto internet seria inaccesible para nosotros

Page 7: Dns(jorgemoya)

zone "." {

type hint;

file "root.cache";

};

//Usare zonas reales y direcciones reales. P

//Zona ibiza-programacion.com

zone "ibiza-programacion.com" {

type master;

file "arch/ibiza-programacion.com";

};

Master quiere decir que eso describe el servidor primario de DNS.

arch/nombre_fichero describe que dentro de /var/named/arch/, estan los ficheros

de configuración de las respectivas zonas.

Los ficheros de configuración que se ha dado una IP nos devuelven el nombre.

Controlan la procedencia de las direcciones IP que son visitadas.

Otros Ficheros que también tienen que ser configurados son:

Fichero /etc/hosts

Debería decir lo siguiente: En el caso del ejemplo se utilizará es mismo del primer

paso.

#Host Addresses

127.0.0.1 localhost.ibiza-programacion.com localhost

213.96.89.133 ns1.ibiza-programacion.com ns1

192.168.0.97 ns1.ibiza-programacion.com ns1

Page 8: Dns(jorgemoya)

Fichero /etc/resolv.conf

Es el orden de resolución de nombres y lugares donde resolverlos. Debería contener

lo siguiente:

search subdominio.su-dominio.edu su-dominio.edu nameserver 127.0.0.1

La línea `search' especifica en qué dominios se buscaría para cualquier nombre de máquina a la que quiera conectar.

La línea `nameserver' especifica la dirección de su servidor de nombres, en este caso su propia máquina, ya que es ahí donde named se estará ejecutando. Si quiere una lista de varios servidores ponga una línea nameserver para cada uno.

El Fichero /etc/host.conf

Probablemente contiene varias líneas, una de ellas debería comenzar con order y tendría que parecerse a lo siguiente:

order hosts,bind

Si no hay una línea order tiene que incluirla. Esto le indica a las rutinas de resolución de nombres que busquen primero en /etc/hosts, y pregunte luego al servidor de nombres (que dijo en resolv.conf que está en 127.0.0.1).

Fichero /etc/nsswitch.conf

Se trata de un extenso archivo donde se especifica de dónde obtener las diferentes clases de tipos de datos, y de cuál archivo o base de datos.

Debe buscar la línea que comienza con hosts y quitarle el comentario

hosts: files dns

Si no hay una línea que comience por `hosts:' póngala. Eso indica que los programas deben mirar primero en el fichero /etc/hosts , y después comprobar DNS de acuerdo con resolv.conf.

En el fichero /var/named.local

Page 9: Dns(jorgemoya)

La siguiente línea de named.boot es la línea primary. Explicaré su uso en un capítulo posterior: Por ahora, cree un archivo llamado 127.0.0 en el subdirectorio pz:

@ IN SOA ns.linux.bogus. hostmaster.linux.bogus. ( 1 ; Numero de Serie 28800 ; Tasa de Refresco 7200 ; Tasa de Reintento 604800 ; Caducidad para secundario 86400) ; Validez para Clientes NS ns.linux.bogus. 1 PTR localhost.

En el fichero /var/named.ca

El root.cache debería contener la lista de todos los servidores raíz de dominios. Esta lista cambia constantemente, así que debemos actualizarlos. Esto es fácil ya que hay compañías que se encargan de actualizarlo y con un ftp anónimo a internic, ellos te ofrecen una versión actualizada de los servidores de raíz, y esa información se baja y guarda en el fichero root.cache.

Vamos a describir el archivo llamado /var/named/root.cache nombrado en el archivo

boot.named.

/var/named/root.cache debería contener esto:

. 518400 NS D.ROOT-SERVERS.NET. . 518400 NS E.ROOT-SERVERS.NET. . 518400 NS I.ROOT-SERVERS.NET. . 518400 NS F.ROOT-SERVERS.NET. . 518400 NS G.ROOT-SERVERS.NET. . 518400 NS A.ROOT-SERVERS.NET. . 518400 NS H.ROOT-SERVERS.NET. . 518400 NS B.ROOT-SERVERS.NET. . 518400 NS C.ROOT-SERVERS.NET. ; D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12

Page 10: Dns(jorgemoya)

Este archivo describe los servidores de nombres raíz en el mundo. Este archivo cambiará a lo largo del tiempo y tiene que ser mantenido y actualizado con una cierta regularidad.

Arranque de named

Antes de arrancar el named debe verificar que se encuentre activado en el ntsysv

Si hay cualquier mensaje de error se deberá a alguna equivocación. named determinará el archivo que ocasiona el error (de named.boot o root.cache ).

Luego ejecute la sentencia nslookup y compruebe que la configuración se encuentre correcta:

$ nslookup Default Server: localhost Address: 127.0.0.1 >

Si es eso lo que obtiene entonces está funcionando

Ahora pruebe que este funcionando introduciendo una consulta, como lo haremos a continuación:

> pat.uio.no Server: localhost Address: 127.0.0.1 Name: pat.uio.no Address: 129.240.2.50

nslookup ahora solicita a named que busque la máquina pat.uio.no. Contactará con alguna de las máquinas servidoras de nombres nombradas en el archivo root.cache, y preguntará allí. Puede tardar un poco antes de conseguir el resultado ya que busca todos los dominios indicados en /etc/resolv.conf.

Si intenta de nuevo obtendrá esto:

> pat.uio.no Server: localhost Address: 127.0.0.1 Non-authoritative answer: Name: pat.uio.no Address: 129.240.2.50

Page 11: Dns(jorgemoya)