Practica 1 - Introduccion
Practica 1 - Introduccion
Practica 1 - Introduccion
PRÁCTICA 1: INTRODUCCIÓN A
WIRESHARK
Para comprender realmente los protocolos de red lo más importante es “verlos en acción” y “jugar con ellos”
observando la secuencia de mensajes que se intercambian entre dos entidades de protocolo, los detalles de las
operaciones de protocolo y provocando que los protocolos realicen ciertas acciones para observar después las
consecuencias de las mismas. Esto se puede hacer en escenarios simulados o en un entorno de red “real” como
pudiera ser Internet. En este laboratorio se seguirá esta última aproximación. Ejecutarás diversas aplicaciones
de red en diferentes escenarios con tu ordenador. Observarás los protocolos de red en acción, interaccionando
e intercambiando mensajes con otras entidades que se están ejecutando en otro lugar de Internet. De esta
forma podrás observar y aprender “haciendo”.
Como se ha visto en clase, la herramienta básica para observar los mensajes que se intercambian dos entidades
de protocolo se denomina “husmeador” de paquetes (packetsniffer o sniffer). Como sugiere su nombre, un
sniffer captura los mensajes que se envían y reciben desde y hacia tu ordenador. También almacenará y
visualizará los contenidos de los diversos campos de protocolo de esos mensajes capturados. Un sniffer es por
sí mismo pasivo, por lo que se limita a observar los mensajes que reciben o envían las aplicaciones y protocolos
que se ejecutan en tu ordenador, pero nunca envía paquetes él ni los paquetes recibidos están dirigidos a él. Lo
que realmente hace es recibir una copia de los paquetes que se envían o reciben desde o hacia las aplicaciones
y protocolos que se ejecutan en tu máquina.
La Figura 1 muestra la estructura de un sniffer de paquetes. A la derecha están los protocolos (en este caso de
Internet) y aplicaciones (como el navegador o un cliente ftp) que normalmente se ejecutan en tu ordenador. El
sniffer, representado dentro del rectángulo punteado, es un añadido al software actual de tu máquina y está
formado por dos partes. La primera es la librería de captura de paquetes, que recibe una copia de cada trama
de capa de enlace que es enviado o recibido por tu ordenador. Recuerda que los mensajes que se intercambian
en los protocolos de capa alta como HTTP, FTP, TCP, UDP, DNS o IP son todos encapsulados en tramas de la
capa de enlace que son transmitidos sobre medios físicos como un cable Ethernet. Por ejemplo, en la Figura 1
se ha asumido que el medio físico empleado es Ethernet, por lo que todos los protocolos de capas superiores
-1-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
se encapsulan en una trama Ethernet. De esta forma, si capturamos todas las tramas de la capa de enlace
obtenemos todos los mensajes enviados o recibidos desde o hacia todos los protocolos y aplicaciones que se
ejecutan en tu máquina.
El segundo componente del sniffer es el analizador de paquetes, que visualiza el contenido de todos los
campos dentro de un mensaje de protocolo. Para poder hacer esto, el analizador de paquetes debe “entender”
la estructura de todos los mensajes intercambiados por los protocolos. Por ejemplo, supongamos que estamos
interesados en mostrar los campos en los mensajes intercambiados por el protocolo HTTP de la Figura 1. El
analizador de paquetes entiende el formato de las tramas Ethernet y puede, por tanto, identificar el datagrama
IP dentro de la trama Ethernet. Como también entiende el formato del datagrama IP puede extraer el
segmento TCP, y como a su vez entiende la estructura de este segmento TCP, puede extraer el mensaje HTTP
que se halla en su interior. Además, como también conoce el protocolo HTTP sabrá, por ejemplo, que los
primeros bytes de un mensaje HTTP contendrán la cadena “GET”, “POST” o “HEAD”.
Para estas prácticas utilizaremos el sniffer Wireshark (www.wireshark.org) que nos permitirá mostrar los
contenidos de los mensajes que se envían y reciben desde y hacia protocolos de los diferentes niveles de la pila
de protocolos. Realmente, Wireshark es un analizador de paquetes que usa una librería de captura de paquetes
de tu ordenador. Wireshark es un analizador de protocolos de red gratuito que se puede ejecutar en Windows,
Linux/Unix y Mac, por lo que es ideal para nuestras prácticas. Además es estable, tiene una gran cantidad de
usuarios y está muy bien documentado. En las siguientes URLs se podrá encontrarla guía de usuario
(www.wireshark.org/docs/wsug_html_chunked/), manuales (www.wireshark.org/docs/man-pages/) y FAQ
(www.wireshark.org/faq.html). Tiene la capacidad de analizar cientos de protocolos, operando en ordenadores
que usen todo tipo de conexión (Ethernet, Token-Ring, FDDI, serie (PPP y SLIP), WLAN 802.11 o ATM).
Para ejecutar Wireshark necesitas tener un ordenador que soporte tanto Wireshark como la librería de captura
de paquetes libpcap o WinPCap. Esta librería se instalará automáticamente con Wireshark si no está instalada
ya en el ordenador.
EJECUTANDO WIRESHARK
Cuando ejecutes el programa Wireshark, se mostrará la interfaz gráfica de la Figura 2 (ojo, al inicio se mostrará
un menú simplificado de la Figura 3).
-2-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
-3-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
La mejor forma de aprender a utilizar cualquier software es probándolo. Asumiremos que el ordenador está
conectado a Internet mediante una interfaz de cable Ethernet.
A continuación, se presenta la secuencia de pasos que se debe seguir para hacer la Práctica 1:
2. Cargar una traza mediante el menú “File -> Open”. Aparecerá una ventana de carga de datos estándar.
Ir por el árbol de directorios hasta encontrar el fichero “http-trace-1”.
3. Se mostrará la ventana principal de Wireshark (Figura 2) con un listado de todos los paquetes
capturados desde que comenzó la captura, con el contenido de todos los mensajes de protocolo
intercambiados entre tu ordenador y otras entidades de red.
4. Escribe “http” en el campo “Filter” de la parte superior del listado de paquetes y haz click en “Apply”
(a la derecha). Esto permitirá que se vean en el listado de paquetes únicamente los mensajes HTTP.
5. Selecciona el primer mensaje HTTP que se muestra, que debería ser un mensaje HTTP GET que fue
enviado desde tu PC a un servidor web. Cuando selecciones este mensaje HTTP GET, en la ventana de
cabeceras de paquete se mostrará la información detallada de las cabeceras de la trama Ethernet,
datagrama IP, segmento TCP y mensaje HTTP. Expande los detalles de la cabecera del mensaje HTTP,
te quedará algo parecido a la Figura 4.
-4-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
6. Cierra Wireshark.
A continuación, se enumera la secuencia de pasos necesarios para ejecutar Wireshark desde un PC con
permisos de acceso:
-5-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
-6-
Práctica 1: Introducción a Wireshark Redes de Ordenadores
servidor web www.urjc.es debería aparecer en algún sitio del listado de paquetes capturados, pero
como hay otros muchos paquetes en ese listado, lo mejor será filtrarlo para encontrarlo más
fácilmente.
8. Escribe “http” en el campo “Filter” de la parte superior del listado de paquetes y haz click en “Apply”
(a la derecha). Esto permitirá que se vean en el listado de paquetes únicamente los mensajes HTTP.
9. Selecciona el primer mensaje HTTP que se muestra, que debería ser un mensaje HTTP GET que fue
enviado desde tu ordenador al servidor web de la URJC. Cuando selecciones este mensaje HTTP GET,
en la ventana de cabeceras de paquete se mostrará la información detallada de las cabeceras de la
trama Ethernet, datagrama IP, segmento TCP y mensaje HTTP. Expande los detalles de la cabecera del
mensaje HTTP, te quedará algo parecido a la Figura 4.
10. Cierra Wireshark.
El objetivo de esta primera práctica es introducir la herramienta Wireshark con la que trabajaremos en el resto
de prácticas. Además de lo anterior, debes realizar los siguientes ejercicios basados en la traza ya capturada.
1. Lista los diferentes protocolos que aparecen en la columna de protocolos antes de filtrar la ventana de
listado de paquetes capturados y busca su significado.
2. ¿Cuántas peticiones http hay? Interpreta, en la medida de tus conocimientos, el significado de cada
una de ellas.
3. ¿Cuánto tiempo ha transcurrido desde el envío del mensaje HTTP GET hasta que se recibió la
respuesta HTTP OK? Por defecto, el valor de la columna Time en la ventana de listado de paquetes es
el tiempo en segundos desde que la traza comenzó. Para ver el campo Time en otro formato
selecciona Time Display Format en el menú View.
4. ¿Cuál es la dirección IP del sitio web al que nos hemos conectado? ¿Y la de nuestro ordenador?
5. Exporta la información de los dos mensajes HTTP (GET y OK) a un fichero de texto y guárdalo (ojo,
únicamente de esos dos mensajes).
6. Selecciona el paquete número 12 y presta atención a la ventana inferior (Detalles de cabecera). ¿Cuál
es el tamaño en bytes de dicho paquete? ¿Qué correspondencia hay entre la información que aparece
en la ventana y las capas de protocolo de internet (física, enlace, red, transporte y aplicación)?
7. Abre en un navegador web la página http://gaia.cs.umass.edu/ethereal-labs/lab2-1.html. ¿qué
correspondencia hay con la información que se encuentra en la sección “Line-based text data”?
-7-