Redes de Datos – Laboratorio – Instructivo Laboratorio 1 Protocolos de Aplicación Instrucciones generales Para poder realizar exitosamente la práctica, deberá cumplir las siguientes etapas: Previo al laboratorio Estudiar la información contenida en este instructivo. Se recomienda consultar las referencias sugeridas u otras de su preferencia. Imprimir y leer el procedimiento de la práctica incluido en el Informe. Se recomienda imprimir una página por faz. Si se desea se puede traer una memoria USB para guardar resultados. Durante el laboratorio Seguir el procedimiento indicado en el Informe y completarlo en forma grupal. El Informe deberá ser entregado al finalizar la práctica. NO SE ACEPTA ENTREGA DE INFORMES EN OTRO MOMENTO. Después del laboratorio Agradecemos que nos envíe sus aportes al foro específico creado en la página web del curso. Objetivos Visualizar a través de la invocación manual, el funcionamiento de protocolos corrientes de la capa de aplicación (Telnet, SMTP, POP3, HTTP). Los ensayos se realizarán en la red local de máquinas, con algunos usuarios definidos en cada una, invocando los protocolos en forma manual. Además se realizará un primero contacto con un software analizador de protocolos WireShark (Ethereal) que será utilizado exhaustivamente en los siguientes laboratorios. Al finalizar la práctica el estudiante será capaz de: •Abrir una terminal remota en otro equipo mediante el comando telnet y ssh. •Establecer una sesión de transporte a cualquier servicio identificado por su puerto utilizando el comando telnet. •Enviar y recibir correos mediante los protocolos SMTP y POP3. •Navegar en la web mediante el protocolo HTTP. •Capturar y filtrar paquetes en el programa WireShark. Redes de Datos 2016– Instructivo Laboratorio 1 Página 1 de 7 Preparación Es importante tener claro el direccionamiento a nivel de las diferentes capas: •Capa Aplicación: nombre y contraseña, nombre de página web, otros. •Capa de Transporte: el servicio al que nos conectamos, reconocido por un número (dirección de capa de Transporte) donde ese servicio atiende los pedidos de conexión (ejemplos: 53, 901, 3128,...). •Capa de Red: dirección IP (Ejemplos: 64.23.5.77, 172.16.1.124, 10.33.4.205, 164.73.32.3). Estás direcciones pueden tener asociado un nombre de red o máquina (Ejemplos: m1, correo.ls.iie.edu.uy, www.fing.edu.uy). La relación entre el nombre y la dirección IP se resuelve a nivel de capa de aplicación utilizando DNS (se verá en detalle en el siguiente laboratorio). Por lo tanto para el ejemplo de la página web de la Facultad, puede hacerse referencia a ella utilizando tanto su dirección IP (164.73.32.5) como su nombre (www.fing.edu.uy). Las máquinas del laboratorio están conectadas en red usando una tecnología de difusión de uso corriente en redes de área local llamada Ethernet. La conexión lógica es en bus, todas las máquinas comparten un mismo cable. Actualmente esta red se implementa preferentemente mediante un tipo de cable llamado UTP, conectando todas las máquinas a un mismo concentrador o hub. Esto define una topología física en estrella, pero la conexión lógica sigue siendo en bus, con todas las máquinas compartiendo el mismo medio. El cable UTP (Unshielded Twisted Pair, par trenzado no apantallado, un cable parecido al telefónico) está formado por 8 hilos trenzados de a pares; las fichas y conectores son del tipo RJ-45, tanto en el hub como en la tarjeta de red de la máquina. Esquema físico y lógico de una red Ethernet. La correlación entre el modelo de capas y la implementación en el laboratorio es la siguiente: Capa Implementación 5. Aplicación Telnet, SMTP, POP3, HTTP 4. Transporte TCP, UDP 3. Red IP 2. Enlace Ethernet IEEE 802.3 1. Física Ethernet IEEE 802.3 Medio físico Cable UTP, tarjetas de red, hub El siguiente esquema muestra el canal de comunicación establecido entre dos máquinas para lectura de correo, a nivel de capa de Transporte. Los servicios se identifican por un "puerto", un número entero de 16 bits (hay 65536); los puertos son direcciones donde debe dirigirse la aplicación del usuario para obtener un servicio. Existe un conjunto de servicios "bien conocidos", a los cuales han sido asignados ciertos números de puerto respetados universalmente. Redes de Datos 2016– Instructivo Laboratorio 1 Página 2 de 7 Canal de comunicación TCP El siguiente diagrama muestra un ejemplo de envío de correo a través de una conexión discada, vía módem y red telefónica. En el caso mostrado, la máquina destino estaría en la red local del propio proveedor de servicio (protocolo IEEE 802.3). Envío de correo por conexión discada Los protocolos que se ensayarán en la práctica serán: Aplicación Función Protocolo Terminal virtual Conexión a una máquina remota Terminal virtual Conexión segura a una máquina remota SSH Correo Electrónico Enviar mensajes SMTP Correo Electrónico Recibir mensajes POP3 Navegación web Recibir páginas web HTTP Puerto1 Telnet Estos protocolos funcionan en modalidad cliente - servidor: el usuario en una máquina (cliente) se conecta a otra máquina (servidor) capaz de brindar el servicio requerido. En la máquina servidor existe un proceso (un programa en ejecución), que aguarda un contacto ("escucha") en una cierta dirección llamada puerto, reconocida por un número. Cuando alguna máquina cliente solicita una conexión con la máquina servidor indicando su dirección y puerto, el proceso servidor "atiende" la solicitud y establece la conexión. Sigue un diálogo entre las máquinas cliente y servidor durante el cual el cliente solicita la realización de tareas y el servidor las cumple enviando los resultados al cliente a través de la conexión establecida. Cumplidas estas tareas, se finaliza la conexión. 1 Completar al realizar las tareas de preparación Redes de Datos 2016– Instructivo Laboratorio 1 Página 3 de 7 Todos estos protocolos de capa de aplicación utilizan el protocolo TCP a nivel de capa de transporte (protocolo orientado a conexión y confiable). TELNET El programa cliente llamado telnet permite abrir una terminal remota, es decir, ofrece la posibilidad de ver en pantalla y digitar información en una máquina lejana desde la propia máquina local (también es posible hacerlo de la máquina local hacia sí misma). También se puede usar telnet para acceder a otros servicios, simplemente indicando el número de puerto, es decir, el punto de acceso al servicio solicitado. Es posible digitar #> telnet <nombre-máquina> <número-puerto> lo que abre una conexión TCP a la máquina indicada en el puerto indicado. Usaremos telnet para verificar el funcionamiento de otros protocolos de esta práctica, invocando manualmente, mediante cadenas de caracteres comprendidas por el protocolo, las operaciones que éste es capaz de realizar. • Estudie para qué se utiliza el carácter de escape de telnet (se digita apretando la tecla Control y conjuntamente la tecla "]") • Estudie cuáles son los comandos para: • salir del intérprete de comandos para volver a dar comandos a telnet. • mostrar estado de conexión. • fijar modo en CHAR (carácter) • cerrar la conexión • salir de telnet SMTP Para el manejo de correo electrónico el usuario usa una aplicación Agente Usuario de Correo, como Netscape, Outlook, Thunderbird u otra. Estas tienen dos funciones básicas: enviar correos y recibir correos. Estas aplicaciones ofrecen múltiples facilidades al usuario, ocultándole la complejidad de manejo subyacente, pero esencialmente están usando dos protocolos: uno para enviar correo y otro para recibir correo. El protocolo SMTP (Simple Mail Transfer Protocol) es un protocolo usado para enviar correos, en tanto que el protocolo POP3 (Post Office Protocol versión 3) es usado para recibir. El protocolo para envío de correos SMTP define una parte inicial equivalente al sobre en un envío de correo postal, descrito en la RFC 821, luego una serie de líneas de encabezado terminadas por una línea en blanco, y luego el cuerpo del mensaje. Tanto el encabezado como el cuerpo del mensaje se digitan luego del comando DATA. El formato del mensaje (encabezado y cuerpo) está descrito en la RFC 822. Las versiones actualizadas son las RFC 2821 (Simple Mail Transfer Protocol) y RFC 2822 (Internet Message Format). Ejemplo: Sobre HELO nsk.com.uy MAIL FROM: <carlitos@nsk.com.uy> RCPT TO: <reclamos@yahoo.com> DATA Encabezado From: carlitos@nsk.com.uy To: reclamos@yahoo.com ... Subject: Consulta sobre aspiradora Redes de Datos 2016– Instructivo Laboratorio 1 El sobre se genera a partir de los comandos HELO, MAIL FROM: y RCPT TO: La información retenida no es visible en la operación manual. El comando DATA termina el sobre. El encabezado se escribe inmediatamente luego del comando DATA. El encabezado termina con una línea en blanco. Página 4 de 7 Cuerpo Estimados señores: El texto del mensaje. me dirijo a ustedes para consultarles sobre la aspiradora Acme modelo EZ80 ... Les saluda, Carlitos. Un punto como único carácter en una línea . termina el mensaje. Final QUIT La sesión de envío del mensaje termina con el comando QUIT. La tabla siguiente muestra un resumen de comandos SMTP. Comando Función HELO host identifica al host en SMTP EHLO host identifica al host en ESMTP (SMTP ampliado) MAIL FROM: dirección identifica en el sobre al remitente RCPT TO: dirección identifica en el sobre al destinatario (puede haber varios) DATA comienza cuerpo del mensaje, termina con "." en una línea QUIT Cierra la conexión RSET Reinicializa la conexión (aborta lo hecho) HELP muestra comandos SMTP aceptados Dentro de los datos (área entre el comando DATA y el punto solo en la línea final) se reconocen dos regiones: el encabezado (header) y el cuerpo (body). El cuerpo es de formato libre; contiene el mensaje del usuario, donde puede poner lo que quiera. El encabezado contiene información estructurada de interés para el usuario y los agentes de correo. Además pueden aparecer encabezados referentes a los equipos intermedios por los que el mensaje transitó. La tabla siguiente muestra algunos encabezados: Encabezado Significado To: Dirección(es) de correo de destinatario(s) primario(s) Cc: Dirección(es) de correo de destinatario(s) secundario(s) Bcc: Dirección(es) de correo de destinatario(s) ocultos From: Nombre y dirección de la persona que escribió el mensaje Sender: Dirección de correo del remitente Received: Línea agregada por agentes de transporte a lo largo de la ruta Return-Path: Puede ser usado para indicar un camino de retorno hacia el remitente Existen otros componentes de información estructurada que pueden incluirse en el encabezado, de interés para el usuario o para las aplicaciones de correo. Las respuestas de este protocolo incluyen un número a modo de código de estado. Los códigos están formados por tres dígitos, el primero de estos dígitos puede tomar valores del 1 al 5. Las respuestas que comienzan con 2 refieren en general a casos de éxito, en donde la solicitud se ha completado correctamente. Los códigos de la forma 4xx corresponden a errores temporales, el cliente deberá repetir el comando más tarde; mientras que los códigos de la forma 5xx corresponden a errores permanentes. • Repase la secuencia de comandos necesaria para conectarse con un servidor de correo, solicitar el envío de un correo, indicar datos de encabezado del mensaje, enviar el texto "correo de prueba", cortar la conexión. Redes de Datos 2016– Instructivo Laboratorio 1 Página 5 de 7 POP3 La tabla siguiente muestra un resumen de comandos POP3. Comando Función USER usuario identifica al usuario ante el servidor POP PASS contraseña Envía la contraseña al servidor POP STAT muestra cantidad de mensajes y tamaño total en bytes LIST lista mensajes identificados por número, y tamaño en bytes de cada uno RETR nro_mensaje muestra contenido del mensaje cuyo número se indica DELE nro_mensaje elimina el mensaje cuyo número se indica QUIT cierra la conexión Las respuestas en este protocolo consisten en un indicador de estado y una palabra descriptiva, son seguidas de un carácter de fin de línea y uno de retorno de carro. Una respuesta del tipo "+OK" corresponde a un escenario de éxito mientras que una del tipo "-ERR" corresponde a un error. • Repase la secuencia de comandos necesaria para conectar con el servidor, solicitar la lista de mensajes, ver el mensaje número 1, borrar el mensaje número 1, verificar el borrado pidiendo el estado o la lista de mensajes, cortar la conexión. HTTP El protocolo HTTP (HyperText Transfer Protocol) permite la descarga de páginas web. En general, el resultado será un archivo en formato HTML (HyperText Markup Language). Los navegadores son los encargados de interpretar este lenguaje, presentando el contenido en pantalla con formatos de texto, tablas e imágenes. Los comandos mas utilizados son GET y HEAD. El protocolo HTTP normalmente corta la conexión una vez ejecutado el comando. Comando Función HEAD <URL> HTTP/1.0 Trae el encabezado de la página pedida (URL, dirección de una página web). Requiere una línea en blanco y luego otro ENTER para enviar la petición (En total se requieren dos ENTER). GET <URL> HTTP/1.0 Trae todo el contenido de la página web pedida. Requiere una línea en blanco y luego otro ENTER para enviar la petición (En total se requieren dos ENTER). La primer línea de una respuesta HTTP recibe el nombre de "línea de status", en ella se incluye un código de error de 3 números acompañado de una frase textual que explica la razón del error. Por ejemplo, la primera línea de la respuesta puede ser de la forma 404 "Not Found". En general en este protocolo, los códigos de la forma 2xx refieren a casos de éxito mientras que los que comienzan con 4 corresponden a errores del cliente y los que comienzan con 5 a errores del servidor. Una lista completa de los códigos de estado que forman parte de este protocolo puede encontrarse en http://en.wikipedia.org/wiki/List_of_HTTP_status_codes. Para la preparación de la práctica es útil repasar los siguientes puntos •¿Qué significa la sigla URL? ¿Qué es un URL? ¿Cómo está formado? Redes de Datos 2016– Instructivo Laboratorio 1 Página 6 de 7 •Secuencia de comandos para conectarse a un servidor web y visualizar el encabezado de la página principal. WireShark (Ethereal) El software WireShark (Ethereal) es un analizador de protocolos disponible para sistemas Windows y UNIX. Se encuentra disponible en http://www.wireshark.org/. Allí también se encuentra disponible el manual del mismo. Es un software de mucha utilidad para este curso y la práctica profesional en general, que iremos conociendo a lo largo de los sucesivos laboratorios. En particular en esta práctica veremos como realizar capturas básicas y comprender la información desplegada. A los efectos de preparar la práctica se debe saber: Ejecutar WireShark en el ambiente gráfico Gnome. Cómo capturar paquetes en diferentes interfaces de red. Qué es capturar en modo promiscuo y para qué puede ser útil. A los efectos del curso se ha preparado un instructivo que está disponible en la página de la asignatura. Para este laboratorio, se deben leer las secciones: Objetivo, Analizadores de Protocolos de Red, WireShark y Uso de WireShark.. Para conocer más WireShark. http://www.wireshark.org. •The Internet Lab Manual. Es una colección de instructivos para realizar prácticas de laboratorio en redes de datos. Si bien el equipo requerido es inalcanzable, el contenido de los instructivos es altamente aprovechable. Página principal: http://www.cs.virginia.edu/~itlab/book/ Enlaces: http://www.cs.virginia.edu/~itlab/book/links/ Para la presente práctica son útiles los siguientes instructivos: Introducción: http://www.cs.virginia.edu/~itlab/book/pdf/Ch_0_v4.pdf •IETF Request for Comments. La IETF, Internet Engineering Task Force, es la organización encargada de la arquitectura de Internet. Las RFCs son los documentos definitorios de muchos protocolos usados en Internet. Sitio de IETF: http://www.ietf.org/home.html RFCs: http://www.ietf.org/rfc.html •Unix Man Pages. http://unixhelp.ed.ac.uk/CGI/man-cgi • •Tanenbaum, Andrew. "Computer networks", 4a. edición, Prentice-Hall, 2003, 3a. edición. Prentice-Hall, 1996. En la 4a. edición: 7.2 Electronic Mail, 7.3 The World Wide Web. Redes de Datos - Curso 2016 Página del curso: eva.universidad.edu.uy Instituto de Ingeniería Eléctrica - Facultad de Ingeniería - UDELAR - Montevideo, Uruguay. Redes de Datos 2016– Instructivo Laboratorio 1 Página 7 de 7