1. 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
2. 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).
3. 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.
4. ¿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
5. 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;
6. 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
7. 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
8. 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
9. 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
10. 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