Redes (IS20) Práctica 3: Estudio del tráfico en una LAN Parte 1. El protocolo ICMP 1. Introducción al protocolo ICMP El Protocolo ICMP se sitúa en la capa de Red de la arquitectura de red TCP/IP, ver Figura 1. Los mensajes ICMP van encapsulados dentro de un datagrama IP. Esto no quiere decir que esté en un nivel superior, si no que complementa el funcionamiento del protocolo IP. Los mensajes del tipo ICMP se utilizan para que los hosts sean conscientes de situaciones anómalas en el encaminamiento de paquetes a través de los routers. La normativa se describe en el estándar RFC 792, actualizado en el RFC 950. El formato del mensaje ICMP es el que se muestra en la Figura 2. Figura 2: Formato de los paquetes ICMP. Los tipos de mensaje ICMP se describen el la tabla I. Tipo 0 3 4 5 8 11 12 13 14 15 16 17 18 Tipo de Mensaje ICMP Echo Reply Destination Unreachable Source Quench Redirect Echo Request Time Exceeded Parameter Problem Timestamp Request Timestamp Reply Information Request Information Reply Address Mask Request Address Mask Reply El protocolo ICMP se utiliza para informar al protocolo IP de las variaciones o anomálias en las rutas, y no para hacer IP fiable. La fiabilidad debe ser implementada por los protocolos de nivel superior que usa IP. Los mensajes ICMP nunca se envían en respuesta a datagramas con una dirección IP de destino que sea de broadcast o de multicast y nunca se envían en respuesta a un datagrama que no tenga una dirección IP de origen que represente a un único host. Es decir, la dirección de origen no puede ser cero, una dirección loopback, de broadcast o de multicast. Los mensajes ICMP nunca se envían en respuesta a mensajes ICMP de error. Pueden enviarse en respuesta a mensajes ICMP de consulta (los tipos de mensaje ICMP 0, 8, 9, 10 y 13 al 18). El RFC 792 establece que los mensajes ICMP “pueden” ser generados para informar de errores producidos en el procesamiento de datagramas IP, no que “deban”. En la práctica los “router” generarán casi siempre mensajes ICMP para los errores, pero en el caso de los host de destino, el número de mensajes ICMP generados es una cuestión de implementación. En la práctica vamos a comprobar sólo el funcionamiento de los mensajes de tipo Echo Request y Echo Reply. Estos mensajes ICMP se utilizan para comprobar si un determinado host está operativo. El funcionamiento es el siguiente: cuando un host recibe un mensaje del tipo Echo Request (8) responde con un mensaje Echo Reply (0). El comando ping utiliza mensajes de este tipo para detectar que un determinado host está activo. 2. Desarrollo de la práctica. Arranca tu ordenador (host) en el sistema operativo LINUX SUSE 9.2 como root. Abre dos ventanas de trabajo. Los resultados de los apartados serán entregados por escrito a tu profesor de prácticas. 1) Ejecuta el programa ethereal en una de las ventanas abiertas. En la pestaña Captura, seleccionar Stard y configurar el siguiente filtro: host <IP de tu host> Con ello capturaras los paquetes que llegue o se envien desde tu host. Pulsa comenzar. En la otra ventana de trabajo establece una conexión telnet con la máquina anubis.uji.es. Te solicitará login y password. Contesta con un login y password FICTICIOS. Cuando te indique error en el password debes detener la captura de ethereal. a) ¿Qué misión tienen los paquetes que utilizan el protocolo DNS? b) ¿Qué hosts están involucrados en el uso del protocolo DNS? c) ¿Qué versión del protocolo IP usa LINUX? d) ¿A qué protocolo de nivel superior va dirigido el datagrama? e) Analiza los paquetes TCP y TELNET ¿Cómo se puede saber si se produce fragmentación del datagrama?¿La hay?¿Por qué? f) Busca y visualiza el datagrama que contenga el texto “Password” y analiza cada uno de los campos de este datagrama. Busca en la ventana inferior de ethereal el texto que se tecleo desde tu host en respuesta al login y al password. ¿lo encuentras en un único datagrama o en varios? g) ¿Está el password encriptado o puedes visualizarlo? 2) Captura ahora una secuencia de mensajes del tipo ICMP generados por el comando ping. Para ello inicia una nueva captura con ethereal y en otra ventana puedes hacer un ping anubis.uji..es. Espera a que ping ejecute varias veces y parar la captura de ethereal. Localiza los mensajes ICMP de echo request y echo reply. Analiza los campos del “Internet control message protocol”. a) ¿Qué numero type lleva el mensaje request? b) ¿Qué numero type lleva el mensaje reply? c) ¿Se han capturado varias secuencias (parejas) de mensajes echo request y reply? d) ¿Qué campos del “Internet control message protocol” varian en parejas de mensajes diferentes? 3. Extensión de la práctica. 3) Procura capturar la password cuando accedemos al webmail ¿Cuál es el protocolo que envía esta password y de que manera? 4) Analiza la cadena de protocolos que entran en funcionamiento al abrir una página web (por ejemplo www.uji.es). Justifica la respuesta. 5) Analiza la cadena de protocolos cuando hacemos un FTP a un servidor de ficheros (como anónimos). Justifica la respuesta. 6) Analizar la cadena de protocolos cuando enviamos un correo electrónico con Webmail ¿Podeis capturar las tramas de salida con SMTP? ¿Por qué? 7) Analizar la cadena de protocolos cuando recibimos un correo electrónico con Webmail ¿Podeis capturar las tramas de entrada con POP3? ¿Por qué?