Vous êtes sur la page 1sur 13

2

FUNDAMENTOS DE REDES DE COMPUTADORES

Prctica

Curso 2010/2011

Prctica 2: Estudio de los protocolos DHCP y DNS

Introduccin
En esta prctica vamos a trabajar con algunas herramientas que nos pueden ayudar a entender cmo funciona una red y lo que est pasando en ella, y que nos permitirn analizar posibles problemas. Adems, podremos ver en vivo distintos protocolos, su funcionamiento, la estructura de sus mensajes, y el intercambio de peticiones y respuestas entre los clientes y los servidores. En primer lugar vamos a trabajar con dos comandos que suelen venir incluidos en diferentes Sistemas Operativos, como son ipconfig y nslookup. El primero es una utilidad de lnea de comandos que muestra la configuracin de red actual de un ordenador local (direccin IP, mscara de red, puerta de enlace asignada a la tarjeta de red, etc.), as como tambin permite controlar el servicio Windows que acta como cliente DHCP. En Linux, este comando se denomina ifconfig. El siguiente comando (nslookup) nos muestra el funcionamiento de peticiones y respuestas al servidor DNS. Este comando, adems de permitirnos conocer cul es nuestro servidor DNS, nos permitir solicitar informacin de nombres de dominio. Sus distintas opciones nos ayudarn a conocer la informacin a distintos niveles de detalle. A continuacin trabajaremos con un analizador de red, tambin conocidos vulgarmente como sniffers. En concreto vamos a trabajar con WireShark (anteriormente conocido como Ethereal), que es uno de los ms populares de entre la amplia oferta que hay, tanto comerciales como de libre distribucin. Otros analizadores de red, que no veremos en estas prcticas, son tcpdump, NetXRay, libpcap, snoop, Novell LANalyzer, Microsoft Network Monitor, iptrace la oferta, como se ha comentado, es muy amplia.

Utilizacin de ipconfig
Como se ha comentado, ipconfig permite obtener la configuracin de red del computador local. A continuacin se muestran algunas opciones del comando ipconfig en Windows:

En primer lugar, vamos a obtener los datos actuales de nuestro ordenador. Para ello, en la lnea de comandos escribiremos simplemente ipconfig:
D:\ ipconfig

La respuesta obtenida debe ser algo similar a esto:


Configuracin IP de Windows Adaptador Ethernet Conexin de rea local Sufijo de conexin especfica DNS Direccin IP. . . . . . . . . . . Mscara de subred . . . . . . . . Puerta de enlace predeterminada : : : : : upv.es 158.42.180.1 255.255.254.0 158.42.181.250

Obsrvese que hemos obtenido cuatro datos: el nombre de dominio por defecto del servidor DNS y las direcciones IP de nuestra mquina, de la mscara de subred y de la puerta de enlace. Sin embargo, podemos obtener muchos ms datos relacionados con la configuracin de red en nuestra mquina. Escriba en la lnea de comandos ipconfig /all.
D:\ ipconfig /all

Como se puede observar, se obtiene toda la informacin de la configuracin de red de nuestra mquina. 1: Cundo se ha obtenido la concesin de la direccin IP? Cundo caduca? 2: Ejecuta ahora ipconfig /release y despus ejecuta ipconfig /all. Cul ha sido el efecto de ejecutar ipconfig /release? Con qu mensaje(s) y estado(s) DHCP se corresponde? 3: Ejecuta ahora ipconfig /renew y despus ejecuta ipconfig /all. Cul ha sido el efecto de ejecutar ipconfig /renew? Con qu mensaje(s) y estado(s) DHCP se corresponde?

Utilizacin de nslookup
nslookup es un programa que nos permite lanzar consultas al servidor DNS, con el objetivo principal de conocer la direccin IP que corresponde a un nombre de dominio. Para utilizar nslookup arrancaremos los equipos del laboratorio con sistema operativo Linux. A continuacin abriremos una ventana de comandos. En primer lugar, podemos hacer una consulta sencilla al servidor de nombres de dominio. Para ello en la lnea de comandos escribiremos nslookup www.google.com:
fureco@rdcXX:~> nslookup www.google.com

La respuesta obtenida debe ser algo similar a esto:

Server: Address:

158.42.249.8 158.42.249.8#53

Non-authoritative answer: www.google.com canonical name = www.google.akadns.net. Name: www.google.akadns.net Address: 64.233.161.99 Name: www.google.akadns.net Address: 64.233.161.104

Obsrvese que hemos obtenido la direccin IP del servidor DNS utilizado para la bsqueda, y que la respuesta nos ofrece, tambin, el nombre cannico y las direcciones IP. En este caso se incluyen ms de una direccin IP. 4: Son equivalentes las direcciones IP? Comprubalo ejecutando un navegador y poniendo en la lnea de direcciones http://www.google.com. A continuacin cierra el navegador, brelo de nuevo y pon en la lnea de direcciones http://64.233.161.99 (o la primera de las direcciones que hayas obtenido). Haz la misma prueba con todas las direcciones obtenidas. Cul crees que es el motivo de que haya ms de una direccin IP? 5: Qu quiere decir el #53 que aparece junto a la direccin del servidor DNS? Cul es el puerto estndar utilizado por el protocolo DNS? A continuacin vamos a ejecutar el programa sin parmetros, con lo que podremos ejecutar distintos comandos y consultas de modo interactivo:
fureco@rdcXX:~> nslookup

Nos aparece un prompt donde introducir comandos o hacer consultas. Vamos a indicarle que nos muestre la informacin de depuracin. Para ello utilizamos la opcin set debug y a continuacin haremos una consulta. Vamos a intentarlo con www.celestica.com. La respuesta debe ser algo similar a esto:
> set debug
> www.celestica.com Server: 158.42.249.8 Address: 158.42.249.8#53 -----------QUESTIONS: www.celestica.com, type = A, class = IN ANSWERS: -> www.celestica.com canonical name = celestica.com. -> celestica.com internet address = 32.96.234.99 AUTHORITY RECORDS: -> celestica.com nameserver = mtldns.qu.ca.prserv.net. -> celestica.com nameserver = tordns.on.ca.prserv.net. ADDITIONAL RECORDS: -> mtldns.qu.ca.prserv.net

internet address = 205.233.29.137 tordns.on.ca.prserv.net internet address = 205.233.28.137 -----------Non-authoritative answer: www.celestica.com canonical name = celestica.com. Name: celestica.com Address: 32.96.234.99 > ->

Obsrvense las distintas informaciones que se obtienen: tipo de los registros, respuestas, cdigos de retorno, etc. Los AUTHORITY RECORDS indican los servidores DNS autorizados para resolver esa consulta. 6: Observa que se han obtenido dos respuestas. Sabes de qu tipo es cada una? La respuesta obtenida viene de la cache? Hagamos otra prueba. Vamos a preguntar por un nombre de dominio que no exista: www.noexiste.fr. El resultado debe ser algo as:
> www.noexiste.fr Server: 158.42.249.8 Address: 158.42.249.8#53 -----------QUESTIONS: www.noexiste.fr, type = A, class = IN ANSWERS: AUTHORITY RECORDS: -> fr origin = ns1.nic.fr mail addr = nic.nic.fr serial = 2004110900 refresh = 10800 retry = 1800 expire = 3600000 minimum = 5400 ADDITIONAL RECORDS: -----------** server can't find www.noexiste.fr: NXDOMAIN >

Vemos que la respuesta del dominio de nivel superior fr es negativa. Haced la prueba con www.google.com y comparadla con la primera que obtuvimos. Haced ms pruebas, por ejemplo, con www.upv.es, www.hotmail.com, etc. 7: A partir de la respuesta obtenida de www.hotmail.com, qu conclusiones puedes obtener? Qu tipo de servidor es? 8: Cuntos servidores autorizados tiene la web de la UPV? La respuesta para www.upv.es viene de la cache? Por qu?

Nota: nslookup tambin se puede ejecutar en Windows XP. Funciona de forma similar y ofrece informaciones parecidas. Adems dispone de ayuda en el entorno interactivo (comando help), que puede ser til para afinar las informaciones que se quieren obtener.

Analizando la red: WireShark


Los analizadores de protocolos o de red, tambin llamados sniffers son herramientas de gran ayuda para los administradores de redes de computadores, ya que permiten analizar muchos factores del comportamiento de las mismas. Este tipo de programas permiten recoger una copia de los paquetes que circulan por la red y visualizarla. Los ms avanzados poseen interfaz grfica, que muestra los campos de los protocolos de comunicacin de los distintos niveles para su posterior anlisis. De esta forma se facilita la deteccin de problemas, as como la depuracin del software de red durante su fase de elaboracin. Por ejemplo, un administrador de red que detecte que las prestaciones de la red son bajas puede utilizar un analizador para detectar qu segmentos de la red, protocolos y mquinas estn generando ms trfico, y de esa forma llevar a cabo las acciones necesarias. Tambin, cuando se configura un cortafuegos se pueden utilizar los resultados de un analizador de red para detectar si su comportamiento se ajusta o no a la poltica de seguridad deseada. Finalmente, los analizadores de protocolos nos permiten ver de forma prctica los protocolos de comunicacin ya presentados en las clases de teora, as como las relaciones entre los protocolos de distinto nivel. Esta posibilidad nos va a ser especialmente til en esta prctica y la siguiente, permitiendo ver en vivo los distintos protocolos y su interaccin, y a la vez aprender a manejar este tipo de herramientas. Por qu WireShark? Se trata de un producto muy popular y gratuito. Puede descargarse desde http://www.wireshark.org/download.html, y se encuentra disponible tanto para sistemas Windows como Unix, siendo muy verstil, ya que permite no slo decodificar trfico de una red, sino filtrarlo y analizarlo de forma grfica. Se pueden hacer capturas y guardarlas en fichero para analizarlas posteriormente. Adems, permite leer tambin ficheros de datos recogidos con otros analizadores de protocolos. Podemos trabajar con WireShark tanto en Linux como en Windows XP. El aspecto habitual del programa es el que se muestra en la figura de la pgina siguiente. WireShark comprende tres ventanas o reas principales: 1. La ventana superior es la lista de los paquetes. Muestra una breve descripcin de cada paquete capturado. Pulsando en alguno de los paquetes de la lista podemos controlar lo que se visualiza en las dos ventanas restantes. 2. La ventana intermedia muestra con mayor detalle el paquete seleccionado en la primera ventana. Indica los protocolos empleados en los distintos niveles de la arquitectura, as como los valores de cada uno de los campos de cada protocolo.

3. Por ltimo, la ventana inferior muestra el valor de los datos del paquete seleccionado en la ventana superior, en hexadecimal y en ASCII, y marca en negro los datos seleccionados en la ventana intermedia. Inicialmente las ventanas aparecen vacas, ya que no hay ninguna captura. Para comenzar a trabajar, podemos utilizar la opcin FileOpen para abrir una captura ya existente, o bien utilizar la opcin CaptureStart para iniciar una nueva captura de lo que sucede actualmente en la red.

Dado que la red de la UPV es muy grande, continuamente se est generando y recibiendo mucho trfico que, aunque nos servir para ver la diversidad de protocolos y sus campos, puede hacer que tengamos muchos paquetes que carezcan de inters para las pruebas que vamos a realizar. Para minimizar este problema, es conveniente limitar en lo posible el tiempo de las capturas.

Uso de WireShark para estudiar el protocolo DNS


Vamos a empezar con una captura sencilla. Para ello vamos a seguir los siguientes pasos (se recomienda utilizar Windows): Abrir el navegador. Abrir el WhireShark. Ponemos en marcha la captura con el WhireShark, primero eligiendo el interfaz correspondiente mediante CaptureInterfaces y a continuacin poniendo en marcha la captura con la opcin CaptureStart. Volver al navegador y conectaros a la pgina www.celestica.com. Una vez descargada la pgina web de www.celestica.com volver al WhireShark y detener la captura. Como podis observar, esta primera captura tendr una gran cantidad de paquetes de diferentes protocolos, entre otros, los mensajes intercambiados con el servidor DNS utilizando el protocolo DNS. Para poder estudiar nicamente los paquetes que nos interesan, tenemos distintas opciones. Una de ellas es la opcin EditFind Packet, que nos permite buscar segn determinadas condiciones, como puede ser buscar un protocolo concreto o valores en campos concretos dentro del paquete. La segunda opcin es el filtrado, que podemos encontrar pulsando el botn Filter en la parte superior de la pantalla. Nos permite filtrar protocolos o valores en campos dentro de los protocolos. La diferencia entre esta segunda opcin y la primera es que la primera busca paquetes concretos y los selecciona, pero sin ocultar los dems, mientras que el filtrado oculta los paquetes que no cumplen las condiciones indicadas en el filtro. Vamos a filtrar la captura para quedarnos solamente con los paquetes DNS. Para ello, en el campo Filter introducir la expresin udp.port == 53 y apretar Apply. Como podis observar, slo quedan aquellos paquetes del protocolo DNS. 9: Coincide el destinatario de este mensaje con el servidor DNS que obtuvimos en las pruebas que hicimos con nslookup? Dado que ya conocemos este protocolo, podemos utilizar la ventana intermedia de WireShark para distinguir los campos del mensaje. Observamos que aparecen distintos niveles de informacin, correspondientes a la pila de protocolos TCP/IP. Si en la ventana intermedia pulsamos el botn derecho del ratn y seleccionamos Collapse All vemos los distintos niveles, desde el nivel fsico, en la primera lnea, hasta el nivel de aplicacin, en la inferior. Adems, si seleccionamos cada una de las lneas (sin expandirlas, de momento) en la parte inferior veremos remarcada la parte correspondiente a cada protocolo. Si ahora expandimos cualquiera de las lneas, obtendremos los detalles de ese protocolo. Seleccionar y expandir todos los datos correspondientes al protocolo DNS e identificad cada uno de los campos. El primer paquete es la consulta al servidor. El siguiente debe ser la respuesta.

10: Qu servicio utiliza DNS? TCP o UDP? A qu puerto se est enviando la peticin? Con qu lo relacionas? 11: Comparad los campos de la respuesta con lo que obtuvimos con nslookup. En qu se parecen? En qu se diferencian? 12: Buscad la primera consulta y su respuesta. En esta respuesta, identificad la pregunta, la respuesta (una o varias), los servidores autorizados y la informacin adicional. Fijmonos ahora en los protocolos de las capas inferiores. Podemos observar que cada protocolo aade una cabecera. Seleccionando cada uno de ellos en la ventana central se resalta la parte correspondiente en la ventana inferior. El protocolo DNS utiliza un servicio no orientado a conexin, es decir, utiliza UDP como protocolo de la capa de transporte. Expandid en la ventana central la lnea correspondiente al protocolo UDP y observad sus campos. Por debajo de UDP trabaja el protocolo de la capa de red, IP. Expandid la lnea correspondiente. Podis observar los campos de este protocolo.

13: Podis identificar las direcciones fuente y destino? Qu relacin hay entre los valores que aparecen en la ventana intermedia y los bytes que se resaltan en la pantalla inferior? Qu tipo de direcciones son? Por debajo de la capa de red tenemos la capa de acceso al medio fsico. Expandid la lnea correspondiente al protocolo Ethernet. Observad los campos. Expandid tambin la primera lnea, la cual da informacin acerca de los datos de la trama recibida.

14: Podis identificar las direcciones fuente y destino en el protocolo Ethernet? Qu tipo de direcciones son?

Uso de WireShark para estudiar el protocolo DHCP


En este apartado vamos a estudiar el protocolo DHCP mediante el WireShark. Para ello, vamos a utilizar el comando ipconfig que hemos utilizado en la primera parte de la prctica. Seguid los siguientes pasos: Abrir una consola de comandos y teclear ipconfig /release, pero no apretis la tecla intro. Poner en marcha una captura con el WireShark. Volver a la consola de comandos y apretar el intro. Ejecutar ipconfig /renew. Una vez finalizado este ltimo comando, detener la captura.

Como podis observar, y al igual que pasaba con el DNS, WireShark muestra una gran cantidad de paquetes de diferentes protocolos. Vamos a filtrarlos para mostrar solamente los paquetes DHCP. En el campo Filter introducir udp.port == 67 y apretar Apply. 15: Qu servicio utiliza DHCP? TCP o UDP? A qu puerto se est enviando la peticin? Con qu lo relacionas? 16: Identificad los distintos mensajes DHCP que se han capturado, y a qu estado corresponde cada uno. 17: Identificad los distintos servidores que nos ofrecen direcciones IP y el tiempo de arrendamiento de cada uno de ellos. Cul crees que es la razn por la que existen varios servidores DHCP dentro de la red de la UPV? 18: Justificad el envo de los diferentes mensajes DHCPACK. Por qu se envan? Quin es el destinatario? Y el remitente? 19: Una vez obtenida la direccin IP, identifica el resto de informacin que nos ofrece el protocolo DHCP: direccin del router, mscara de red en uso (mscara de subred), servidor de nombres de dominio. 20: Sea el formato del mensaje DHCP visto en clase y que se muestra en la siguiente figura. Busca un mensaje de peticin y otro de respuesta y rellena las tablas de las pginas siguientes.

10

Formato mensaje DHCP:


OP HTYPE HLEN HOPS

ID DE TRANSACCION SEGUNDOS DIRECCION IP DEL CLIENTE SU DIRECCION IP DIRECCION IP DEL SERVIDOR DIRECCION IP DEL ROUTER DIRECCION DE HARDWARE. DE CLIENTE (16 OCTETOS) . . NOMBRE DE SERVIDOR (64 OCTETOS) . . . NOMBRE DEL ARCHIVO DE .ARRANQUE (128 OCTETOS) . . OPCIONES . (VARIABLE) . . BANDERAS

Mensaje DHCP de Peticin:


OP: 1 Solicitud ID DE TRANSACCION: SEGUNDOS: DIRECCION IP DEL CLIENTE: SU DIRECCION IP: DIRECCION IP DEL SERVIDOR: DIRECCION IP DEL ROUTER: DIRECCION DE HARDWARE DE CLIENTE (16 OCTETOS): NOMBRE DE SERVIDOR (64 OCTETOS): BANDERAS: HTYPE: HLEN: HOPS:

NOMBRE DEL ARCHIVO DE ARRANQUE (128 OCTETOS):

OPCIONES (VARIABLE):

11

Mensaje DHCP de Respuesta:


OP: 2 Rplica ID DE TRANSACCION: SEGUNDOS: DIRECCION IP DEL CLIENTE: SU DIRECCION IP: DIRECCION IP DEL SERVIDOR: DIRECCION IP DEL ROUTER: DIRECCION DE HARDWARE DE CLIENTE (16 OCTETOS): NOMBRE DE SERVIDOR (64 OCTETOS): BANDERAS: HTYPE: HLEN: HOPS:

NOMBRE DEL ARCHIVO DE ARRANQUE (128 OCTETOS):

OPCIONES (VARIABLE):

12

Vous aimerez peut-être aussi