Está en la página 1de 6

Redes de Computadoras

Laboratorio 3

DNS (Domain Name System)

DNS traduce nombres de hosts a direcciones IP, cumple así un rol crítico en la
infraestructura de la Internet. En este laboratorio, veremos el lado cliente de DNS.
Recuerde que el rol del cliente DNS es relativamente simple – un cliente envía un query
a su servidor DNS local, y recibe una respuesta de retorno. “Bajo la superficie,”
ocurren muchas cosas invisibles para los clientes DNS, tales como las comunicaciones
que tienen lugar entre los servidores DNS de la jerarquía para resolver, ya sea
recursivamente o iterativamente, el query del cliente DNS. Sin embargo, desde el punto
de vista del cliente DNS, el protocolo es bastante simple – un query es formulado al
servidor DNS local y se recibe una respuesta desde ese servidor. Antes de comenzar con
este laboratorio es recomendable repasar la Sección 2.5. En particular, es importante
revisar el material sobre servidores DNS locales, caching en DNS, registros y
mensajes DNS, y el campo TYPE en el registro DNS.

1. nslookup
En este laboratorio, haremos uso intensivo de la herramienta nslookup, la cual está
actualmente disponible para la mayoría de las plataformas Linux/Unix y Microsoft. Para
ejecutar nslookup en Linux/Unix, solo tipee el comando nslookup en la línea de
comandos. Para ejecutarlo en Windows, abra el Command Prompt y corra nslookup en
la línea de comandos.

En su modo de operación más básico, la herramienta nslookup permite a los hosts que
corren la herramienta, interrogar cualquier servidor DNS especificado acerca de un
registro DNS. El servidor DNS interrogado puede ser un servidor DNS raíz, un servidor
DNS de dominio de alto nivel (TLD), un servidor DNS con autoridad, o un servidor
DNS intermedio. Para lograr esta tarea, nslookup envía un query DNS al servidor DNS
especificado, recibe una respuesta DNS desde el servidor DNS especificado, y muestra
el resultado.

La salida de pantalla siguiente muestra los resultados de tres comandos nslookup


independientes. En este ejemplo, el host cliente está localizado en el campus de la
Polytechnic University en Brooklyn, donde el servidor DNS local por defecto es dns-
prime.poly.edu. Cuando se corre nslookup, si un servidor DNS no es especificado,
entonces nslookup envía el query al servidor DNS por defecto, que en este caso es dns-
prime.poly.edu. Considere el primer comando:

nslookup www.mit.edu

En palabras, este comando está diciendo “envíeme la dirección IP del host


“www.mit.edu”. Como puede verse, la respuesta a este comando tiene dos partes de
información: (1) el nombre y dirección IP del servidor DNS que provee la respuesta; y
(2) la respuesta propiamente dicha, la cual es el nombre del host y la dirección IP de
www.mit.edu. Aunque la respuesta viene del servidor DNS local en la Polytechnic
University, es bastante posible que este servidor DNS local haya contactado varios otros
servidores DNS para obtener la respuesta.

1
Ahora considere el siguiente comando:

nslookup –type=NS mit.edu

En este ejemplo, se proporciona la opción “-type=NS” y el dominio “mit.edu”. Esto


hace que nslookup envíe al servidor DNS local por defecto una consulta por un registro
tipo NS. En palabras, esta consulta está diciendo, “envíeme el nombre del host del
servidor DNS con autoridad para “mit.edu”. (Cuando se hace una consulta sin usar la
opción –type, nslookup usa el default, que es consultar por registros tipo A). La
respuesta, mostrada en la pantalla de arriba, primero indica el servidor DNS que está
proporcionando la respuesta (que es el servidor local DNS por defecto) junto con tres
servidores de nombres MIT. Cada uno de estos servidores es efectivamente un servidor
DNS con autoridad para los hosts del campus del MIT. Sin embargo, nslookup también
indica que la respuesta es “non-authoritative,” lo cual significa que esta respuesta viene
de la caché de algún servidor en lugar de venir de un servidor DNS con autoridad del
MIT. Finalmente, la respuesta también incluye la dirección IP del servidor DNS con
autoridad del MIT. (Aun cuando la consulta tipo NS generada por nslookup no
pregunta explícitamente por las direcciones IP, el servidor DNS local las retornó
igualmente)

Ahora finalmente considere el tercer comando:

nslookup www.aiit.or.kr bitsy.mit.edu

En este ejemplo, indicamos que queremos que la consulta sea enviada al servidor DNS
“bitsy.mit.edu” en lugar de enviarla al servidor DNS por defecto (dns-prime.poly.edu).
De este modo, la transacción consulta y respuesta tiene lugar directamente entre nuestro
host y “bitsy.mit.edu”. En este ejemplo, el servidor DNS “bitsy.mit.edu” provee la
dirección IP del host “www.aiit.or.kr”, que es un servidor web en el Advanced Institute
of Information Technology (en Corea).

2
Después de haber visto estos pocos ejemplos ilustrativos, es útil ver la sintaxis general
del comando nslookup. La sintaxis es:

nslookup –option1 –option2 host-to-find dns-server

En general, nslookup puede ser ejecutado con cero, uno, dos o mas opciones. Y como
hemos visto en los ejemplos anteriores, el servidor DNS es opcional también; si este no
se proporciona, la consulta es enviada al servidor local DNS.

Ahora que tiene una visión general de nslookup, es momento de experimentar con él.
Haga lo siguiente (y escriba los resultados):

1. Corra nslookup para obtener la dirección IP de un servidor Web en Asia.


2. Corra nslookup para determinar los servidores DNS con autoridad para una
universidad en Europa.
3. Corra nslookup de modo que uno de los servidores DNS obtenidos en la
pregunta 2 sea consultado por los servidores de mail para Yahoo!.

2. ipconfig
ipconfig (para Windows) e ifconfig (para Linux/Unix) es uno de los utilitarios más útiles
instalado en los hosts, especialmente para cuestiones relacionadas con depuración de
red. ipconfig puede ser usado para mostrar información TCP/IP, incluyendo su dirección
IP, direcciones de servidores DNS, tipo de adaptador, etc. Por ejemplo, se puede obtener
información sobre nuestro host tipeando

ipconfig \all

en la línea de comandos como se muestra en la siguiente figura.

3
ipconfig es también muy útil para manejar información DNS almacenada en nuestro
host. Hemos visto que un host almacena en la caché DNS los registros de recursos
recientemente obtenidos. Puede ver los registros de la caché con el siguiente comando:

ipconfig /displaydns

Cada entrada muestra el TTL remanente en segundos. Para purgar la caché de


resolución ingrese
ipconfig /flushdns

3. Rastreando DNS con Ethereal


Ahora que está familiarizado con nslookup e ipconfig, puede abordar una exploración
mas profunda de DNS. Capture primero los paquetes DNS que son generados durante la
actividad de navegación por la Web.

 Use ipconfig para purgar la caché DNS en su host.


 Inicie su browser y purge la cache del browser.
 Inicie Ethereal e ingrese en el filtro “ip.addr = = su dirección IP”. Este filtro
remueve todos los paquetes que ni se originaron ni están destinados a su host.
 Inicie la captura de paquetes en Ethereal.
 Usando su browser, visite la página Web: http://www.ietf.org
 Detenga la captura de paquetes.

Responda las siguientes preguntas:

4
4. Localice los mensajes DNS de requerimiento y respuesta. ¿Han sido enviados
sobre UDP o TCP?
5. ¿Cuál es la puerta de destino para el mensaje DNS de requerimiento? ¿Cuál es la
puerta origen del mensaje DNS de respuesta?
6. ¿A que dirección IP es enviado el mensaje DNS de requerimiento? Use ipconfig
para determinar la dirección IP de su servidor DNS local. Estas dos direcciones
IP, ¿son las mismas?
7. Examine el mensaje DNS de requerimiento. ¿Qué “Tipo” de requerimiento DNS
es? El mensaje de requerimiento contiene alguna “answers”?
8. Examine el mensaje DNS de respuesta. ¿Cuántas “answers” son
proporcionadas? ¿Qué contiene cada una de estas “answers”?
9. Considere el paquete TCP SYN subsecuente enviado por su host. ¿Corresponde
la dirección IP destino del paquete SYN a alguna de las direcciones IP
proporcionadas en el mensaje DNS de respuesta?
10. Esta página Web contiene imágenes. Antes de recuperar cada imagen, ¿emite su
host nuevos requerimientos (queries) DNS?

Ahora trabajemos con nslookup.

 Inicie la captura de paquetes.


 Ejecute nslookup sobre www.mit.edu
 Detenga la captura de paquetes.

Debería obtener un trazado con algo similar a lo siguiente:

5
Podemos ver que nslookup realmente envió tres consultas DNS y recibió tres respuestas
DNS. Por ahora, cuando responda las siguientes preguntas, ignore los primeros dos
conjuntos de consultas/respuestas, dado que son específicas de nslookup y normalmente
no son generadas por aplicaciones Internet estándares. Preste atención a los últimos
mensajes de consulta y respuesta.

11. ¿Cuál es la puerta de destino para los mensajes DNS de consulta? ¿Cuál es la
puerta de destino de los mensajes DNS de respuesta?
12. ¿A qué dirección IP es enviado el mensaje de consulta DNS? ¿Es esta la
dirección IP por defecto de su servidor DNS local?
13. Examine el mensaje de consulta DNS. ¿Qué “Tipo” de consulta DNS es? ¿El
mensaje de consulta contiene algunas “answers”?
14. Examine el mensaje de respuesta DNS. ¿Cuántas “answers” son
proporcionadas? ¿Qué contiene cada una de estas “answers”?
15. Provea un screenshot.
Repita el experimento previo, pero ahora emita el comando:

nslookup –type=NS mit.edu

Responda las siguientes preguntas:

16. ¿A qué dirección IP es enviado el mensaje DNS de consulta? ¿Es esa dirección
IP la de su servidor DNS local por defecto?
17. Examine el mensaje de consulta DNS. ¿Qué “Tipo” de consulta DNS es?
¿Contiene el mensaje de consulta algunas “answers”?
18. Examine el mensaje de respuesta DNS. ¿Qué servidores de nombres MIT provee
el mensaje de respuesta? ¿Provee también este mensaje de respuesta las
direcciones IP de los servidores de nombre MIT?
19. Provea un screenshot.

Ahora repita el experimento previo, pero esta vez emita el comando:

nslookup www.aiit.or.kr bitsy.mit.edu

Responda las siguientes preguntas:

20. ¿A qué dirección IP es enviado el mensaje de consulta DNS? ¿Es esta dirección
IP la de su servidor DNS local por defecto? Si no es, ¿a quién corresponde la
dirección IP?
21. Examine el mensaje de consulta DNS. ¿Qué “Tipo” de consulta DNS es?
¿Contiene el mensaje de respuesta algunas “answers”?
22. Examine el mensaje de respuesta DNS. ¿Cuántas “answers” son
proporcionadas? ¿Qué contiene cada una de éstas answers?
23. Provea un screenshot.

También podría gustarte