htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 1: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 172.26.0.2 Máscara de subred . . . . . . . . . . : 255.255.0.0 Puerta de enlace predeterminada . . . : 172.26.0.1 C:\WINDOWS>ping Uso: ping [-t] [-a] [-n cantidad] [-l tamaño] [-f] [-i TTL] [-v TOS] [-r cantidad] [-s cantidad] [[-j lista de host] | [-k lista de host]] [-w Tiempo de espera agotado] lista de destino Opciones: -t -a -n -l -f -i -v -r -s -j -k -w Solicita eco al host hasta ser interrumpido. Para ver estadísticas y continuar: presione Ctrl-Inter. Para interrumpir: presione Ctrl-C. Resuelve direcciones a nombres de host. cantidad Cantidad de solicitudes de eco a enviar. tamaño Tamaño del búfer de envíos. No fragmentar el paquete. TTL Tiempo de vida. TOS Tipo de servicio. cantidad Registrar la ruta para esta cantidad de saltos. cantidad Registrar horarios para esta cantidad de saltos. lista de hosts Ruta origen variable en la lista de host. lista de hosts Ruta origen estricta en la lista de host. tiempo Tiempo de espera agotado de respuesta en milisegundos. C:\WINDOWS>ping -n 1 -l 15 172.26.0.3 Haciendo ping a 172.26.0.3 con 15 bytes de datos: Respuesta desde 172.26.0.3: bytes=15 tiempo=1ms TDV=128 Estadísticas de ping para 172.26.0.3: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 1ms, máximo = 1ms, promedio = 1ms C:\WINDOWS> ¿Qué tipo de tarjeta de red tenemos instalada? Ethernet ¿Cuál es la IP de nuestro PC? Nuestra dirección IP es la 172.26.0.2 ¿A que clase de red pertenece nuestra IP? A una red de clase B, pues en binario nuestra IP empieza por “10” ¿Se ha hecho “subnetting” en nuestra red? No, pues la máscara de subred es 255.255.0.0, que es lo normal en las redes de tipo B. ¿Cuál es el rango de direcciones IP válidas (asignables a estaciones) de nuestra red? Del 172.26.0.1 al 172.26.255.254, que son 65534 en total. ¿Puede tener un host de nuestra red la IP 172.26.0.0? No. La dirección IP con el campo de host completamente a cero es una dirección reservada para nombrar a la red a la que pertenecemos. ¿Puede tener un host de nuestra red la IP 172.26.255.255? No. La dirección IP con todos los bits a 1 en el campo de host es la dirección de broadcast dirigido. Si enviamos un datagrama a esa dirección queremos expresar que ese datagrama está dirigido a todas las direcciones que forman parte de dicha red. ¿Cuál es nuestro router por defecto? El 172.26.0.1 ¿Es obligatorio que el router tenga asignada la dirección IP válida más baja del la red? No. En nuestra red se ha hecho así, pero es una costumbre y no algo obligatorio. ¿Puede que existan otros routers en nuestra red? Sí. Además del router por defecto que ya conocemos, podrían existir otros routers en nuestra red. Página 1 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué hace el comando PING cuando lo ejecutamos sin parámetros? Nos muestra una pantalla de ayuda con la forma de usarlo y el significado de los diferentes opciones que podemos utilizar al invocar dicho comando. ¿Para que sirve el comando PING? El comando PING es pequeño programa (una utilidad) que se encuentra disponible en todos los equipos en los que se tenga implementado el protocolo TCP/IP. Básicamente, el objeto del programa PING es comprobar si desde su estación es posible el intercambio (envío y recepción) de datagramas IP con otra estación que el usuario determine. ¿Cómo comprueba el comando PING si es posible el intercambio de datagramas con otra estación? El programa PING envía, a la estación destino que el usuario determine, un mensaje especial del protocolo ICMP, llamado mensaje de “petición de eco”. Cuando la estación destino reciba y procese ese mensaje de “petición de eco” generará otro mensaje del protocolo ICMP, concretamente el mensaje de “respuesta de eco”, cuyo destinatario será la estación desde la que se envió el mensaje de “petición de eco”. ¿Qué significa el acrónimo ICMP? “Internet Control Message Protocol” (Protocolo de Mensajes de Control de Internet). ¿En que se encapsulan los mensajes ICMP para poder llegar a su destino? Para poder viajar por la Internet (InterNetwork o InterRed), los mensajes ICMP se encapsulan dentro de un paquete IP. ¿Tienen otro nombre los paquetes IP? “Datagrama IP” o simplemente “datagrama”, si no es posible confundirse con otro tipo. ¿Contienen siempre los datagramas IP mensajes ICMP? No. Los datagramas IP pueden contener datos del protocolo ICMP pero también datos de otros muchos protocolos, siendo TCP y UDP unos de los más habituales. ¿En qué se van a encapsular los datagramas IP que enviemos desde nuestro PC? En una trama, la cual será enviada al medio físico por la tarjeta de red Ethernet de nuestro PC. ¿Es lo mismo una trama Ethernet que una trama IEEE 802.3? No, pero son muy similares. De hecho, lo que ocurre es que la especificación IEEE 802.3 se hizo de tal forma que incluyese a la especificación Ethernet. ¿Son idénticos los 64 bits que preceden a la dirección MAC destino en las tramas Ethernet y en las tramas IEEE 802.3? Sí. Esos 64 bits son en ambos casos 62 bits de valor “10101010.......101010” seguidos de un par de bits “11”. Lo que pasa es que Ethernet llama preámbulo a esos 64 bits, mientras que IEEE 802.3 los estructura en 7 octetos de preámbulo seguido de un octeto que hace de SFD, “Start of Frame Delimiter” (Delimitador de Inicio de Trama). ¿Puede recibir y enviar una tarjeta Ethernet ambos tipos de tramas, Ethernet e IEEE 802.3? Sí, pues tienen una estructura completamente compatible. ¿Cuál es la longitud máxima de los datos de nivel superior que pueden llegar a contener las tramas Ethernet e IEEE 802.3? 1500 octetos en ambos casos. ¿Dónde está entonces la diferencia entre ambos tipos de tramas? En ambos tipos de tramas, en la misma posición, justo detrás de la dirección MAC origen, hay un campo de 16 bits que Ethernet denomina “Ethertype” e IEEE 802.3 llama “Tipo/Longitud”. El objeto de que el campo de IEEE 802.3 tenga ese nombre “doble” es conseguir la compatibilidad con Ethernet y considerar las tramas Ethernet como un caso particular de trama IEEE 802.3. ¿Cómo sabe una estación que lo que ha recibido una trama IEEE 802.3 y no una trama Ethernet? Si el valor del campo “Tipo/Longitud” es igual o inferior a 1500 (en decimal), puede considerarse como un valor apropiado de la “Longitud” de los datos contenidos en la trama, y no puede tratarse de un valor apropiado para el “Tipo” (ni el “Ethertype”) de los datos contenidos en la trama. Es decir, en ese caso podríamos decir que lo que se ha recibido es una trama IEEE 802.3 con un campo “Tipo/Longitud” que hace el papel de “Longitud”. ¿Cómo sabe una estación que lo que ha recibido una trama Ethernet y no una trama IEEE 802.3? Si el valor del campo “Tipo/Longitud” es superior a 1500 (en decimal), no puede considerarse como un valor apropiado de la “Longitud” de los datos contenidos en la trama, así que debe tratarse de un valor apropiado para el “Tipo” (o el “Ethertype”) de los datos contenidos en la trama . Es decir, en ese caso podríamos decir que lo que se ha recibido es una trama Ethernet con un “Ethertype” o bien que se ha recibido una trama IEEE 802.3 con un campo “Tipo/Longitud” que hace el papel de “Tipo”, las cuales sí que son completamente iguales. Página 2 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál es exactamente la comprobación que le debemos hacer al campo “Ethertype” de una trama para saber que se trata de una trama Ethernet (o la IEEE 802.3 en la que el campo “Tipo/Longitud” hace el papel de campo “Tipo”)? Hemos dicho que se debe comprobar que sea mayor de 1500, pero en realidad basta con comprobar que sea mayor o igual que 0x600 (1536 en decimal), ya que están prohibidos los valores “Ethertype” entre 1501 y 1536 (inclusive). Esto se hizo para tener que comprobar sólo el valor del octeto más significativo del campo “Ethertype” y no los dos octetos. A continuación se muestra una ventana del analizador de protocolos “Optiview Protocol Expert Demo” en la que aparece el tráfico que se ha generado en nuestra red cuando hemos ejecutado el comando PING descrito anteriormente. A esta ventana se la llama ventana o vista de captura (“capture view”). ¿Con qué equipo queremos comprobar si es posible intercambiar paquetes IP? Con el equipo 172.26.0.3, que es la dirección IP que hemos usado en el comando PING. Página 3 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿A que se denomina coloquialmente “hacer PING” al equipo “X”? A utilizar el programa PING para enviar al equipo “X” unos mensajes ICMP de “petición de eco” y comprobar si éste nos devuelve los correspondientes mensajes ICMP de “respuesta de eco”, lo cual confirmaría que es posible el intercambio de paquetes IP con el equipo “X” a través de la Internet. ¿Ha intervenido el router en el PING que hemos hecho? No, porque le hemos hecho ping a un host de nuestra misma red. ¿Cuántos mensajes ICMP le hemos enviado al otro host con el comando PING? Hemos usado el comando PING con la opción “–n” con el parámetro 1 (uno) para generar sólo un mensaje ICMP de “petición de eco”. ¿Ha respondido el host destino al mensaje ICMP que le hemos enviado? Sí, pues la salida del comando PING indica “Recibidos=1” ¿Cuál es el tiempo de vida del mensaje ICMP que nos ha llegado a nosotros? 128, pues así lo indica la salida del comando PING al decirnos “TDV=128”. ¿Le hemos dado al comando PING alguna indicación acerca del tamaño del mensaje ICMP que debe enviar? Sí, pues la opción “–l” con el parámetro 15 fuerza a que los datos opcionales del mensaje ICMP generado tengan una longitud de 15 octetos exactamente. La salida del comando PING también nos confirma este hecho con la línea “Haciendo ping a 172.26.0.3 con 15 bytes de datos:” ¿Cuántas tramas se han capturado? En la parte superior de la vista de captura aparece un listado de tramas en el que sólo se ven dos tramas. Además, el título de la ventana también nos informa de este hecho: (2 frames total) ¿Cuál de las tramas aparece decodificada en la parte central de la vista de captura? La primera de las tramas, que es la que aparece resaltada y tiene un ID (identificador) de 0. Nótese que el analizador le asigna un ID a cada trama conforme las va capturando. ¿Cuál es nuestra dirección MAC? 00C026260D14, que es la MAC “Source” de la primera trama. ¿Cuál es la MAC del host al que hemos hecho PING? 0004758A7729, que es la MAC “Destination” de la primera trama. ¿Nos está decodificando el analizador la trama como si fuera de tipo Ethernet? Sí, pues nos presenta el campo que viene detrás de las direcciones MAC destino y origen como un campo “Ethertype”. Es cierto que también podría habernos mostrado dicho campo como si fuese el campo “Tipo/Longitud” de las tramas IEEE 802.3, pero haciendo mención de que en este caso hay que interpretar dicho campo como “Tipo” y no como “Longitud”. Esta última alternativa no es frecuente que la implementen los analizadores, aunque teóricamente es posible. Lo normal es que el analizador muestre únicamente el campo “Tipo/Longitud” únicamente cuando tiene el sentido de “Longitud” y que cuando tenga el sentido de “Tipo” opte por mostrar el campo “Ethertype”. ¿Siempre que hacemos un PING a otro host se genera una trama destinada a dicho host? No. Sólo es así cuando el host destino pertenece a nuestra misma red (dominio de broadcast) y es posible enviarle una trama directamente. En los demás casos la trama debe ir dirigida a un router. ¿Qué tiempo de vida tiene el datagrama que hemos enviado? 32, según aparece en el campo “Time to Live” de la cabecera IP. ¿Es posible hacer un PING que genere un datagrama con un tiempo de vida menor? Si, por ejemplo, el comando “ping -n 1 -l 15 –i 5 172.26.0.3” habría generado un datagrama con un tiempo de vida de valor 5. ¿Habría llegado a su destino el datagrama que hemos enviado si le hubiésemos puesto un tiempo de vida de valor 1? Sí, porque el datagrama va ser enviado directamente a su destino sin pasar por ningún router. Un router decrementa en 1 el tiempo de vida de los paquetes que recibe y nunca envía un paquete con tiempo de vida 0. ¿Cuál es el tiempo de vida del paquete que nos ha enviado el host 172.26.0.3? Como el paquete recibido no ha pasado por ningún router, quiere decir que el 172.26.0.3 nos envió el paquete con un tiempo de vida de 128, que es el TTL que nos muestra el comando PING en su salida por pantalla. ¿De que tipo son los mensajes ICMP que genera el comando PING? De tipo 8, tal y como se puede ver en el campo “Type” que muestra el analizador dentro de la zona del panel del medio de la vista de captura en la que aparece decodificado el mensaje ICMP. El tipo 8 es un mensaje de petición de eco (Echo Request). Página 4 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Muestra el analizador de protocolos la parte de la trama anterior a la dirección MAC destino? No. Al ser una parte común a todas las tramas y que tiene una longitud fija (64 bits) y un valor también fijo, el analizador no la muestra en ningún sitio. De hecho, esos 64 bits no se contabilizan a la hora de medir el tamaño de las tramas (“Size”). Hay que tener en cuenta que la misión de estos bits es permitir al receptor sincronizarse y puede ocurrir que no se puedan leer correctamente los primeros bits de estos 64 bits con que empiezan las tramas, sin que esto suponga una situación de error, así que es por eso que no se suelen contabilizar a la hora de “medir” las tramas. ¿Cuántos octetos mide en total la trama que hemos enviado? 64 octetos, tal y como se muestra en la columna “Size” del listado de tramas. Otra forma de conocer el tamaño de la trama es contar los octetos que aparecen en la parte inferior de la vista de captura, que en este caso son 4 filas de 16 octetos cada una lo cual hace el total de 64 que habíamos dicho. Nótese que, tal y como hemos dicho antes, no se consideran para nada los 64 bits iniciales que tienen las tramas antes de la dirección MAC destino. ¿Cuál es el último campo de la trama que muestra decodificada el analizador? El campo FCS (Frame Check Sequence), que tiene el valor 0x0CB05EA3 (el prefijo 0x delante de un número indica que es hexadecimal). ¿Qué tamaño tiene el datagrama que hemos enviado? 43 octetos, tal y como muestra el campo “Total Length” del encabezado IP. ¿Qué longitud tiene la cabecera IP del datagrama que hemos enviado? El campo “Header Length” tiene un valor de 5 (“0101” en binario), lo cual quiere decir que la cabecera tiene 5 palabras de 32 bits, que son 20 octetos, tal y como nos dice el analizador de protocolos. ¿Tiene opciones la cabecera del datagrama que hemos enviado? No. Una cabecera IP sin opciones mide 20 octetos, que es justo lo que mide esta cabecera. ¿Cómo sabe el analizador de protocolos que detrás de la cabecera IP viene un mensaje ICMP? Porque el campo “Protocol ID” de la cabecera IP vale 1, que es el identificador reservado para ICMP. ¿Cómo sabe el analizador de protocolos que detrás de la cabecera del datagrama vienen 23 octetos de datos que forman parte del datagrama? Porque 23 es el resultado de restarle a la longitud total del datagrama (que es 43) la longitud de la cabecera del datagrama (que es 20). ¿Cómo sabe el analizador de protocolos que son 15 el número de octetos que componen los datos opcionales que forman parte del mensaje ICMP de petición de eco que hemos enviado? Porque sabe que el mensaje ICMP de petición de eco tiene una cabecera fija de 8 octetos, seguida de los datos opcionales. Por tanto, restando 8 a los 23 octetos que mide el mensaje ICMP completo, se obtiene que 15 son los octetos de que hay como datos opcionales. ¿Cuánto mide el campo FCS de las tramas Ethernet? 4 octetos. ¿Por qué aparecen 3 octetos en la trama, justo cuando acaba el datagrama, detrás de los datos opcionales del mensaje ICMP? Son 3 octetos de relleno que ha colocado ahí la tarjeta Ethernet. El motivo es que una tarjeta de red Ethernet nunca debe transmitir una trama de tamaño (“Size”) inferior a 64 octetos o, lo que es lo mismo, conteniendo menos de 46 octetos de datos. Si se le dice a la tarjeta que envíe una trama conteniendo menos de 46 octetos, la tarjeta completa los datos con tantos octetos de relleno como sean necesarios hasta alcanzar los 46 octetos de datos, de forma que la trama completa mida 64 octetos en total. En el ejemplo el datagrama contenido en la trama mide 43 octetos, que sumados a los 3 octetos de relleno dan un total 46 octetos contenido en la trama, que sumados a los 14 octetos de cabecera de trama y a los 4 octetos de cola de trama nos dan los 64 octetos de longitud minina que debe tener la trama. ¿Qué número de octetos de datos puede contener como máximo una trama Ethernet? 1500 octetos. Al número de octetos de datos puede contener como máximo una trama de una determinada tecnología de red física se le denomina MTU (Maximum Transfer Unit). ¿Cuál es la longitud máxima de una trama Ethernet? 1518 octetos. Este resultado se obtiene al sumarle los 14 octetos de la cabecera de la trama Ethernet y los 4 octetos de la cola de la trama Ethernet a los 1500 octetos de datos que puede contener como máximo la trama Ethernet. Nuevamente, no estamos considerando los 64 bits iniciales previos a la dirección MAC destino. ¿Cómo sabe el analizador que la trama Ethernet contiene un datagrama IP? Porque el campo “Ethertype” tiene el valor 0x800 (2048 en decimal), que es el código que indica que el contenido de la trama es un datagrama IP. Página 5 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuáles son los 5 primeros caracteres de los datos opcionales del mensaje ICMP que hemos enviado? Los 5 primeros caracteres del campo “Optional Data” son “abcde”, pues el contenido de dicho campo puede verse en formato ASCII en la posición 0x2A del panel inferior de la ventana de captura. ¿Es posible enviar un mensaje ICMP de “petición de eco” que no contenga datos opcionales? Sí, pues como su propio nombre indica, estos datos son opcionales y pueden omitirse. ¿Cuál debe ser el contenido de los datos opcionales de los mensajes ICMP de “petición de eco”, caso de que existan esto datos? El contenido que desee poner el que los envía. Según hemos visto, el programa PING de Windows 98 rellena estos datos con la cadena “abcdefghijk...”, sin embargo los programas PING de otros sistemas operativos o en diferentes versiones de Windows pueden optar por usar otro contenido diferente o incluso darle al usuario la posibilidad de escoger sus propios datos opcionales. ¿Aparece en el datagrama que hemos enviado algún dato que permita conocer la máscara de subred del host al que va dirigido el datagrama? No. Examinando el datagrama IP que hemos enviado, sólo se sabe que la dirección destino pertenece a una red de clase B, pero se ignora si se ha hecho o no “subnetting” en dicha red, por lo que no se puede conocer la máscara de subred de dicho host. ¿Hemos permitido que se fragmente el datagrama que hemos enviado? Sí. El segundo bits de los “Flags”, que es el bit DF (Don´t Fragment), está desactivado (a cero), luego permitimos que el datagrama pueda fragmentarse, si fuese necesario, en su viaje hacia la red destino. ¿Se ha fragmentado en algún momento el datagrama que hemos enviado? No. El motivo es que la MTU de la única red que ha atravesado era una MTU suficientemente grande como para dar cabida al datagrama completo. ¿Se habría fragmentado el datagrama que hemos enviado si el comando PING hubiese tenido la opción “–l” con el parámetro 1472 en lugar de 15? No. Esa opción habría generado un mensaje ICMP de tipo 8 (Echo Request) con 1472 octetos de datos opcionales, que sumados a los 8 octetos de cabecera que tiene dicho mensaje, nos dan un mensaje ICMP de 1480 octetos de longitud total. El datagrama generado tendría una cabecera de la misma longitud que antes, 20 octetos, que sumados a los 1480 octetos del mensaje ICMP contenido en él nos dan un datagrama de 1500 octetos de longitud total. Precisamente esa es la longitud máxima que pueden tener los datos contenidos en una trama Ethernet, por lo que no sería necesario fragmentar el datagrama. ¿En cuántos fragmentos se habría dividido el datagrama enviado si el comando PING hubiese tenido la opción “–l” con el parámetro 1473 en lugar de 15? En dos fragmentos. ¿Tienen cabecera IP los fragmentos de un datagrama? Sí. La estructura de un fragmento de un datagrama es igual que la estructura de un datagrama completo, salvo que los datos que contienen son una porción del datagrama completo original. En realidad un fragmento de datagrama es también un datagrama, con su parte de cabecera y su parte de datos. ¿Qué son las tramas Ethernet versión II? La última versión de la norma Ethernet es la II, publicada en 1982. Hoy por hoy el término Ethernet se utiliza para referirse a la versión II, aunque no se haga mención expresa a la versión. Esto es así porque no hay lugar a confusión al haber dejado de usarse la versión anterior. ¿Cómo se suele denominar, de forma genérica, a la norma IEEE 802.3? Se la suele llamar “Ethernet”, a pesar de que sabemos que no son exactamente iguales. ¿Qué es una PDU? Una PDU es una unidad de datos de protocolo (“Protocol data Unit”). No es más que un mensaje de los que se intercambian las entidades que “hablan” un determinado protocolo. ¿Cuántas PDUs nos está mostrando el analizador en el panel central de la ventana de captura? Tres PDUs, encapsuladas unas dentro de otras. Por un lado podemos ver una PDU del protocolo ICMP, concretamente un mensaje ICMP de “petición de eco” que ocupa, en este caso, 23 octetos. Esta PDU está encapsulada dentro de otra PDU, la PDU del protocolo IP (un paquete IP), la cual ocupa 46 octetos (20 de cabecera más 23 del mensaje ICMP). Por último podemos ver como este datagrama IP está encapsulado dentro de una trama (la PDU del protocolo Ethernet). Esta trama ocupa 64 octetos (14 de cabecera, 4 de cola, 46 de datos y 3 de relleno) por supuesto sin contra con los bits de preámbulo que preceden al campo de dirección MAC destino. Página 6 del ejercicio1.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 2: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 172.26.0.2 Máscara de subred . . . . . . . . . . : 255.255.0.0 Puerta de enlace predeterminada . . . : 172.26.0.1 C:\WINDOWS>arp -a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.3 00-04-75-8a-77-29 Tipo dinámico C:\WINDOWS>ping -n 1 172.26.0.1 Haciendo ping a 172.26.0.1 con 32 bytes de datos: Respuesta desde 172.26.0.1: bytes=32 tiempo=1ms TDV=64 Estadísticas de ping para 172.26.0.1: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 1ms, máximo = 1ms, promedio = 1ms C:\WINDOWS>arp -a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 172.26.0.3 00-04-75-8a-77-29 Tipo dinámico dinámico C:\WINDOWS> ¿A qué equipo le hemos hecho PING? Al equipo que tiene la dirección IP 172.26.0.1, que es el router que usamos para que nos enrute los paquetes dirigidos a redes distintas de la nuestra. Sabemos esto porque el comando “ipconfig” nos dice que el 172.26.0.1 es nuestra “puerta de enlace predeterminada”. ¿Forma parte de nuestra red la dirección IP 172.26.0.1? Sí. Como nuestra dirección IP es 172.26.0.2 y nuestra máscara es 255.255.0.0, sabemos que todas las direcciones IP cuyos dos primeros octetos sean 172 y 26 pertenecen a nuestra misma red. ¿Conocemos la dirección MAC del equipo al que le vamos a hacer PING? No. En la caché ARP, la cual hemos consultado con el comando “arp –a”, no aparece una entrada para la dirección IP 172.26.0.1 ¿Por qué no está vacía la caché ARP? La caché ARP contiene la dirección MAC del host 172.26.0.3 porque anteriormente habremos tenido alguna comunicación con dicho equipo, lo cuál provocó que se crease dicha entrada. ¿Cómo se vacía la caché ARP de su contenido? Las entradas de la caché ARP tienen un tiempo de caducidad. Si transcurre ese tiempo y la entrada no ha sido utilizada, se borra de la caché. ¿Por qué no se dejan las entradas para siempre en la caché ARP? Porque entonces la caché ocuparía mucho espacio. Además podría ocurrir que un host cambiase su tarjeta de red por otra diferente (con otra dirección MAC), pero sin cambiar de dirección IP. Si las entradas no caducasen, nosotros seguiríamos usando la dirección MAC de la antigua tarjeta de red para comunicarnos con ese host. ¿Cómo vamos a averiguar la dirección MAC del equipo 172.26.0.1? Al solicitarle a nuestro equipo que envíe un datagrama al 172.26.0.1, lo primero que se hace es buscar en la caché ARP una entrada para el 172.26.0.1. Como esta entrada no existe, se va a generar un paquete ARP encapsulado en una trama BROADCAST, pidiéndole al equipo 172.26.0.1 que responda informando acerca de cuál es su dirección MAC. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico que se ha generado en nuestra red cuando hemos ejecutado el comando PING descrito anteriormente. Página 1 del ejercicio2.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuántas tramas se han capturado? Cuatro tramas (frames), tal y como aparece en el listado de tramas y en el título de la ventana. ¿Dónde están almacenadas las tramas? Las tramas mostradas por el analizador están almacenadas en un fichero de nombre “c:\archivo.cap” ¿Cuál de las tramas aparece decodificada en la parte central de la vista de captura? La segunda de las tramas, que es la que aparece resaltada y tiene un ID (identificador) de 1. Nótese que el analizador le asigna un ID a cada trama conforme las va capturando. ¿Cuál es nuestra dirección MAC? 00C026260D14, que es la MAC “Source” de la tercera trama (ID 2), que contiene la petición de eco “Echo request” que le hemos hecho al otro equipo. ¿Cuál es la MAC del equipo al que hemos hecho PING? 0020EA18D151, que es la MAC “Source” de la segunda trama (ID 1), que contiene la respuesta ARP que nos ha devuelto el equipo 172.26.0.1 después de recibir nuestra petición ARP. ¿Por qué el analizador muestra en la parte superior de la ventana de captura la dirección MAC “ENI 18D151” en lugar de mostrar “0020EA18D151”? Porque los tres primeros octetos de la dirección MAC identifican al fabricante de la tarjeta, en este caso “EFFICIENT NETWORKS, INC.”, como puede verse en la segunda trama que es la que estamos viendo decodificada. El analizador está sustituyendo esos tres octetos por “ENI”, que es la abreviatura del nombre del fabricante. Esta sustitución sólo la hace en el listado de tramas que nos muestra en la parte superior de la ventana de captura. ¿Cuántos octetos mide en total la primera trama que nos ha llegado? 64 octetos, tal y como se muestra en la columna “Size” del listado de tramas que aparece en la parte superior de la ventana de captura. Otra forma de conocer el tamaño de la trama es contar los octetos que aparecen en la parte inferior de la vista de captura, que en este caso son 4 filas de 16 octetos cada una lo cual hace el total de 64 que habíamos dicho. Página 2 del ejercicio2.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál es el tamaño del paquete ARP que nos ha llegado? Un paquete ARP tiene una longitud variable, pues depende de la longitud que tengan las direcciones hardware (direcciones de nivel 2) y las direcciones de protocolo (direcciones de nivel 3). En el caso que nos ocupa, estas longitudes son de 6 octetos para las direcciones MAC de Ethernet y 4 octetos para las direcciones IP, tal y como podemos ver en los campos “Hardware Address Length” y “Protocol Address Length” que nos está mostrando el analizador en la parte central de la ventana. Conociendo esto y como resulta que el resto de campos del paquete ARP que no son direcciones tienen una longitud fija, ya podemos saber la longitud total del mensaje: Campo “Hardware Type”, 2 octetos. Campo “Protocol Type”, 2 octetos. Campo “Hardware Address Length”, 1 octeto. Campo “Protocol Address Length”, 1 octeto. Campo “Operation”, 2 octetos. Campo “Sender Hardware Address”, 6 octetos. Campo “Sender Protocol Address”, 4 octetos. Campo “Target Hardware Address”, 6 octetos. Campo “Target Protocol Address”, 4 octetos. Lo cual hace una longitud total de 28 octetos para el paquete ARP. ¿Qué son los 18 octetos que aparecen a continuación del paquete ARP contenido en la segunda trama que nos muestra el analizador? Son 18 octetos de relleno que mete la tarjeta Ethernet para conseguir que la trama contenga los 46 octetos de datos que debe tener como mínimo. Si a esos 46 octetos le sumamos las direcciones MAC origen y destino, el campo “Ethertype” y el campo “Frame Check Sequence”, tenemos los 64 octetos que aparecen en la columna “Size” que se muestra en la parte superior de la ventana de captura. ¿Por qué valen 0x88 (hexadecimal) los 18 octetos que aparecen a continuación del paquete ARP contenido en la segunda trama que nos muestra el analizador? Pueden tomar el valor que quiera darle la tarjeta Ethernet, pues son octetos de relleno cuyo valor carece de importancia. ¿Por qué llama el analizador “Sender IP Address” al campo “Sender Protocol Address” del paquete ARP que nos está mostrando? Porque sabe que el protocolo de nivel 3 utilizado es IP, puesto que el campo “Protocol Type” vale 0x800 (hexadecimal), que es el código asociado a IP. ¿Por qué llama el analizador “Sender Ethernet Address” al campo “Sender hardware Address” del paquete ARP que nos está mostrando? Porque sabe que el protocolo de nivel 2 utilizado es Ethernet, puesto que el campo “Hardware Type” vale 1, que es código asociado a Ethernet. ¿Cuantos equipos han procesado el paquete ARP que contenía nuestra petición? Todos los equipos conectados a nuestra red que estuviesen funcionando en ese momento habrán procesado nuestra petición, pues iba encapsulada en una trama con dirección MAC destino BROADCAST. No obstante, al procesar el paquete se habrán dado cuenta de que era una petición destinada al equipo 172.26.0.1, por lo que sólo el equipo 172.26.0.1 ha respondido a nuestra petición con un paquete ARP de respuesta en el que nos comunica su dirección MAC. ¿Podríamos haber encapsulado la petición ARP en una trama con una MAC destino que no fuese BROADCAST? No, pues precisamente el motivo de nuestra petición es que ignoramos la dirección MAC del destino. ¿Qué sentido tiene hacerle PING al router? A veces no podemos acceder al exterior de nuestra red y queremos averiguar la causa. Si al hacerle PING al router obtenemos una respuesta, podemos descartar que la causa de nuestros problemas sea que el router se encuentre desconectado. ¿Cuál es el tiempo de vida del paquete que nos ha enviado el equipo 172.26.0.1? Como el paquete recibido nos ha llegado directamente desde el equipo 172.26.0.1, sin pasar por ningún router intermedio, quiere decir que el 172.26.0.1 nos envió el paquete con un tiempo de vida de 64, que es el tiempo de vida (TDV = 64) que nos muestra el comando PING en su salida. ¿Cuántos mensajes ICMP de petición de eco hemos generado? Sólo uno pues hemos usado el comando PING con la opción –n y el parámetro 1. ¿Habríamos generado nosotros una petición ARP si le hubiésemos hecho PING al 172.26.0.3? No, pues la MAC de ese equipo ya estaba en la caché ARP. ¿Cuántas entradas hay en la caché ARP después de hacer el PING al 172.26.0.1? Hay dos entradas. Está la entrada que había antes de haber hecho PING y la que se ha introducido nueva al haber averiguado la dirección MAC del equipo con dirección IP 172.26.0.1. Página 3 del ejercicio2.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Ha generado el equipo 172.26.0.1 una petición ARP para averiguar nuestra dirección MAC? No. El equipo 172.26.0.1 averiguó nuestra dirección MAC cuando le llegó nuestra petición ARP. En ese momento decidió almacenar nuestra dirección MAC en su caché ARP, pues era muy probable que, si le habíamos hecho una petición ARP, muy pronto le iba a hacer falta conocer nuestra dirección MAC para comunicarse con nosotros. Este comportamiento “previsor” evita generar demasiadas peticiones ARP, las cuales, al ir en tramas BROADCAST, son procesadas por todos los equipos de la red. ¿De qué nivel es el protocolo ARP? Está comprendido entre los niveles 2 y 3 del modelo OSI. Se apoya en un protocolo de nivel 2 para hacer llegar sus peticiones y respuestas de un host a otro. Sirve a los protocolos de nivel 3 para convertir las direcciones de nivel 3 en direcciones de nivel 2. ¿Podemos forzar la introducción de una entrada en la caché ARP? Sí. A continuación se muestra cómo introducir una entrada que asocia la dirección IP 172.26.0.1 con la dirección MAC 0020EA18D151, haciendo uso del comando “arp –s” de MS-DOS. C:\WINDOWS>arp Muestra y modifica las tablas de traducción de direcciones IP a físicas usadas por el protocolo de resolución de direcciones (ARP). ARP -s dir_inet dir_eth [dir_if] ARP -d dir_inet [dir_if] ARP -a [dir_inet] [-N dir_if] -a -g dir_inet -N dir_if -d -s dir_eth dir_if Muestra las entradas actuales de ARP preguntando por los datos del protocolo. Si se especifica dir_inet, se muestran las direcciones IP y Física sólo para el equipo especificado. Cuando ARP se utiliza en más de una interfaz de red, entonces se muestran entradas para cada tabla ARP. Lo mismo que -a. Especifica una dirección internet. Muestra las entradas de ARP para las interfaces de red especificadas por dir_if. Elimina el host especificado por dir_inet. Agrega el host y asocia la dirección internet dir_inet con la dirección física dir_eth. La dirección física se especifica con 6 bytes en hexadecimal separados por guiones. La entrada es permanente. Especifica una dirección física. Si está presente, especifica la dirección Internet de la interfaz con la tabla de traducción de direcciones a modificar. Si no se especifica, se utiliza la primera interfaz aplicable. Ejemplo: > arp -s 157.55.85.212 > arp -a 00-aa-00-62-c6-09 .... Añade una entrada estática. .... Muestra la tabla ARP. C:\WINDOWS>arp -s 172.26.0.1 00-20-EA-18-D1-51 C:\WINDOWS>arp –a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 Tipo estático C:\WINDOWS> ¿Es posible distinguir las entradas que se han introducido en la tabla mediante el protocolo ARP de otras entradas que hayamos creado nosotros manualmente? Sí. El comando “arp –a” nos muestra las entradas que hemos introducido manualmente catalogándolas como entradas de tipo “estático”, lo cual quiere decir que no serán eliminadas de la caché al pasar un cierto tiempo. Las entradas de tipo “dinámico” son entradas que se han averiguado mediante el protocolo ARP. ¿Se hacen peticiones ARP para las direcciones IP de tipo “estático”? No. Antes de hacer una petición ARP se mira en la caché ARP para ver si ya existe esa entrada. Caso de existir ya esa entrada no se hace la petición ARP, sin importar si la entrada era de tipo “estático” o “dinámico”. ¿Se guardarán en la caché ARP entradas de tipo “dinámico” con las direcciones MAC de los hosts que no pertenecen a nuestra misma red? No. Esas direcciones MAC no nos servirían de nada, pues una trama emitida en nuestra red nunca podrá llegar a otra red distinta. Por el mismo motivo, además de no tener sentido, resultaría imposible averiguar mediante peticiones ARP las direcciones MAC de hosts que se encuentren en una red diferente a la nuestra, pues no les llegarían las tramas conteniendo las peticiones ARP. Página 4 del ejercicio2.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 3: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 172.26.0.2 Máscara de subred . . . . . . . . . . : 255.255.0.0 Puerta de enlace predeterminada . . . : 172.26.0.1 C:\WINDOWS>arp -s 172.26.0.1 00-20-EA-18-D1-51 C:\WINDOWS>arp –a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 Tipo estático C:\WINDOWS>ping 172.26.0.1 Haciendo ping a 172.26.0.1 con 32 bytes de datos: Respuesta Respuesta Respuesta Respuesta desde desde desde desde 172.26.0.1: 172.26.0.1: 172.26.0.1: 172.26.0.1: bytes=32 bytes=32 bytes=32 bytes=32 tiempo=2ms TDV=64 tiempo<10ms TDV=64 tiempo<10ms TDV=64 tiempo<10ms TDV=64 Estadísticas de ping para 172.26.0.1: Paquetes: enviados = 4, Recibidos = 4, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 2ms, promedio = 0ms C:\WINDOWS>arp –a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 Tipo estático C:\WINDOWS> ¿A qué equipo de nuestra red le hemos hecho PING? Al que tiene la dirección IP 172.26.0.1, que es el router que usamos para que nos enrute los paquetes dirigidos a redes distintas de la nuestra. Sabemos esto porque el comando “ipconfig” nos dice que el 172.26.0.1 es nuestra “puerta de enlace predeterminada”. ¿Está vacía la caché ARP antes de hacer el PING? No. Contiene una entrada para la dirección IP 172.26.0.1, la cual ha sido introducida de forma estática mediante el comando “arp –s”. ¿Se habrá generado una petición ARP para averiguar la dirección MAC del equipo 172.26.0.1? El equipo 172.26.0.1 forma parte de nuestra red, por lo que es accesible directamente enviándole una trama a su propia dirección MAC. Antes de generar una petición MAC que nos permita averiguar la dirección MAC asociada a una determinada IP, lo primero que hace el protocolo ARP es comprobar si ya existe en la caché ARP una entrada asociada a dicha IP. Como en este caso ya existe esa entrada, no es necesario realizar la petición ARP. ¿Nos hemos equivocado al introducir la dirección MAC de la entrada estática de la caché ARP? No. La hemos debido introducir correctamente, pues nos han respondido al PING. De haber introducido una dirección MAC errónea, el equipo 172.26.0.1 no habría recibido el mensaje ICMP. ¿Cuántos mensajes ICMP le hemos enviado al otro equipo? Al no haber usado la opción –n del comando PING, éste ha enviado los que tiene configurados por defecto. A juzgar por la información mostrada en pantalla, el comando PING de MS-DOS envía 4 mensajes ICMP de petición de eco “Echo request” a menos que se le indique otra cosa. ¿Ha respondido el equipo a todos los mensajes ICMP de petición de eco? Sí. El comando PING indica que se han enviado 4 mensajes y se han recibido otros 4 mensajes. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico que se ha generado en nuestra red cuando hemos ejecutado el comando PING descrito anteriormente. Página 1 del ejercicio3.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál de las tramas aparece decodificada en la parte central de la vista de captura? La segunda de las tramas, que es la que aparece resaltada y tiene un ID (identificador) de 1. Nótese que el analizador le asigna un ID a cada trama conforme las va capturando. ¿Cuál es nuestra dirección MAC? 00C026260D14, que es la MAC “Source” de la primera trama (ID 0), que contiene la petición de eco “Echo request” que le hemos hecho al otro equipo. ¿Cuál es la MAC del equipo al que hemos hecho PING? 0020EA18D151, que es la MAC “Source” de la segunda trama (ID 1), que contiene una petición ARP realizada por el equipo con dirección IP 172.26.0.1. ¿Cómo sabe el analizador de protocolos que la segunda trama (ID 1) contiene un paquete ARP? Porque el campo “Ethertype” tiene un valor de 0x806 hexadecimal. ¿Por qué no hemos realizado una petición ARP? Porque la dirección MAC que necesitábamos ya se encontraba en la caché ARP. ¿Por qué nos ha enviado el equipo 172.26.0.1 una petición ARP justo después de recibir nuestro paquete conteniendo una petición de respuesta de eco? El equipo 172.26.0.1 quiere enviarnos a nosotros un paquete con un mensaje ICMP de respuesta de eco. Conoce nuestra dirección IP, la 172.26.0.2, y sabe, gracias a su propia máscara de red, que nosotros estamos en su misma red. Necesita averiguar nuestra dirección MAC y como no la ha encontrado en su caché ha generado una petición ARP para que nosotros le respondamos con una respuesta ARP en la que le informemos de cuál es nuestra MAC. ¿Averiguó el equipo 172.26.0.1 nuestra MAC cuando le llegó el primer mensaje ICMP? No. La llegada de un paquete IP no hace que se cree una entrada en la tabla ARP. ¿Necesita el equipo 172.26.0.1 realizar nuevas peticiones ARP para poder responder a los otros tres mensajes ICMP que le hemos enviado? No. Cuando llegan los restantes mensajes ICMP de petición de eco, el equipo 172.26.0.1 ya tiene en su caché ARP una entrada que le permite averiguar la dirección MAC asociada a la IP 172.26.0.2. Página 2 del ejercicio3.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 4: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig /all Configuración IP de Windows 98 Nombre del host . . . . . . . . . . . : zenith.dte.us.es Servidores DNS . . . . . . . . . . . . : 150.214.186.69 150.214.130.15 150.214.4.34 Tipo de nodo . . . . . . . . . . . . . : Difusión Id. de ámbito NetBIOS . . . . . . . . : Enrutamiento IP activado . . . . . . . : No WINS Proxy activado . . . . . . . . . : No Resolución NetBIOS usa DNS . . . . . . : Sí 0 Ethernet adaptador : Descripción . . . . . . . . . . Dirección física . . . . . . . . DHCP activado . . . . . . . . . Dirección IP . . . . . . . . . . Máscara de subred . . . . . . . Puerta de enlace predeterminada Servidor WINS primario . . . . Servidor WINS secundario . . . . Permiso obtenido . . . . . . . . Permiso caduca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : : : : NDIS 4.0 driver 00-E0-7D-7A-5A-94 No 150.214.141.181 255.255.255.0 150.214.141.1 C:\WINDOWS>arp -a No se encontraron entradas ARP C:\WINDOWS>ping -n 2 -i 20 207.70.7.168 Haciendo ping a 207.70.7.168 con 32 bytes de datos: Respuesta desde 207.70.7.168: bytes=32 tiempo=195ms TDV=235 Respuesta desde 207.70.7.168: bytes=32 tiempo=187ms TDV=235 Estadísticas de ping para 207.70.7.168: Paquetes: enviados = 2, Recibidos = 2, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 187ms, máximo = 195ms, promedio = 191ms C:\WINDOWS>arp -a Interfaz: 150.214.141.181 on Interface 0x1000002 Dirección IP Dirección física Tipo 150.214.141.1 00-00-0c-07-ac-0e dinámico C:\WINDOWS> ¿Cuál es nuestra red? La 150.214.141.0 con máscara 255.255.255.0 ¿Cuál es el rango de direcciones IP de nuestra red? De la 150.214.141.0 a la 150.214.141.255, teniendo en cuenta que la primera y la última son direcciones reservadas que no pueden asignarse a ningún equipo. ¿De que clase es nuestra red? Nuestra red es una subred de la red de tipo B 150.214.0.0, pues la máscara de subred que estamos utilizando no es la 255.255.0.0, sino que es la 255.255.255.0, indicando que se ha hecho subnetting, pidiéndole 8 bits prestados al campo de host. ¿Cuál es nuestro gateway por defecto o “puerta de enlace predeterminada”? El equipo 150.214.141.1 ¿Le hemos hecho PING a un equipo de nuestra misma red? No. Estamos en la subred 150.214.141.0 con máscara de red /24 y el equipo al que le hemos hecho PING es el 207.70.7.168, que evidentemente no tiene los primeros 24 bits iguales a los 24 primeros bits de la subred 150.214.141.0. ¿Qué tiempo de vida tienen los datagramas IP que hemos enviado con el comando PING? Tienen un tiempo de vida de 20, pues eso es lo que hemos querido al usar el comando PING con la opción “–i” acompañada del parámetro 20. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico que se ha generado en nuestra red debido al comando PING que acabamos de ejecutar. Página 1 del ejercicio4.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuántos mensajes ICMP hemos enviado? Con la opción –n y el parámetro 2 le solicitamos al comando PING que enviase dos mensajes ICMP de petición de eco. ¿Por qué hemos hecho una petición ARP? Porque el host destino de los PINGs está fuera de nuestra red, lo cual nos obliga a enviar los paquetes al router por defecto. Para enviar los paquetes al router por defecto encapsulados en una trama debemos ponerle a esas tramas como dirección destino la dirección MAC del router. Como en la caché ARP no existe la entrada que nos hace falta, automáticamente se lanza una petición ARP dentro de una trama BROADCAST para que todos la procesen y el que tenga que respondernos (el router en este caso) se de por enterado y nos devuelva una respuesta ARP diciendo cuál su dirección MAC. ¿Cuál es nuestra dirección MAC? Según el comando “ipconfig /all” nuestra dirección MAC es 00-E0-7D-7A-5A-94. Esto coincide plenamente con la dirección MAC “Source” de la primera todas las tramas, que es la petición ARP que le estamos haciendo al router: “ARP Q PA=150.214.141.1”, o lo que es lo mismo “ARP reQuest, Target Protocol Address=150.214.141.1” ¿Cuál es la dirección MAC del router? La segunda trama es la respuesta ARP a nuestra petición ARP. Por tanto el que nos la envía debe ser el router. En dicha trama podemos ver que el campo “Source” es “Cisco 07AC0E”, luego esa es la MAC del router. Si queremos conocer también el valor de los tres primeros octetos, en lugar del nombre del fabricante al cual equivalen, podemos verlos en el “Summary” (resumen) que aparece a la derecha de dicha trama en el listado de tramas. Este resumen nos dice “ARP R HA=00000C07AC0E”, o lo que es lo mismo, “ARP Reply, Sender hardware Address=00000C07AC0E”. Página 2 del ejercicio4.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué es lo que estamos viendo en el panel central de la ventana de captura? Un trozo de una trama, debidamente decodificado por el analizador. Concretamente se trata de la cuarta trama (ID=3), que es la que se encuentra seleccionada en la lista de tramas que aparece en la parte superior de la ventana. ¿A quién va dirigida la trama con ID=3? A nosotros, pues es nuestra dirección MAC, la 00E07D7A5A94, la que aparece en el campo “Destination” de dicha trama. ¿A quién va dirigido el datagrama IP contenido en la trama con ID=3? A nosotros, pues es nuestra dirección IP, la 150.214.141.181, la que aparece en el campo “Destination Address” de la cabecera del datagrama IP contenido en dicha trama. ¿De donde proviene el datagrama IP contenido en la trama con ID=3? Viene del host al que le hemos hecho el ping, pues es esa dirección IP, la 207.70.7.168, la que aparece en el campo “Source Address” de la cabecera del datagrama IP contenido en dicha trama. ¿A quién corresponde la dirección MAC “Source” de la trama con ID=3? Al router, pues el router el que nos está enviando a nosotros esa trama conteniendo un paquete proveniente de un host que no está en nuestra misma red. ¿Cuál es la dirección MAC del host con dirección IP 207.70.7.168? No podemos saberlo examinando las tramas que se han generado en la red 150.214.141.0 /24. Para averiguarlo habría que capturar las tramas generadas en la red del host 207.70.7.168. ¿Cuál es la máscara de red del host con dirección 207.70.7.168? No lo sabemos. De todas formas, tampoco nos hace falta saber la máscara de red de dicho host para poder enviarle un datagrama IP. Los routers no necesitan tampoco la máscara de red del host destino para poder enrutar correctamente un datagrama. ¿Cuál es el tiempo de vida de los datagramas que hemos recibido? Según la salida del comando PING, el tiempo de vida es 235. Podemos comprobar que, efectivamente, esto es así viendo el valor del campo “Time To Live” de la cabecera del datagrama IP que está contenido en la cuarta trama de la lista (la de ID=3). ¿Cuántos routers han atravesado a lo largo de su camino los datagramas IP que nos ha enviado el host al que le hemos hecho PING? No podemos saber el número exacto, pero seguro que es un número de routers menor que 21. Si los paquetes hubiesen pasado por 21 routers en su camino hacia nosotros, como cada router disminuye en 1 el tiempo de vida, querría decir que el paquete salió del host 207.70.7.168 con un tiempo de vida de 235 (el que tenía al llegar) más 21 (los routers que ha atravesado) que son 256. Esto es imposible, pues es 255 el mayor valor que se le puede dar al campo “Time To Live” cuando se crea un datagrama. ¿Cuántos routers han atravesado, a lo largo de todo su camino por la red, los paquetes que le hemos enviado al host 207.70.7.168? Tampoco se puede saber con las pruebas que hemos hecho, pero sí que podemos asegurar que no han atravesado más de 19 routers. Sabemos que los paquetes fueron enviados con un tiempo de vida igual a 20 y que todos han llegado a su destino, pues su destinatario nos ha enviado los correspondientes mensajes de respuesta de eco. Un tiempo de vida de 20 permite a un paquete atravesar 19 routers y llegar a su destino con un tiempo de vida de 1. No es posible que el paquete atraviese 20 routers, pues en ese caso el router número 20 debería emitir un datagrama IP con tiempo de vida cero, lo cual no está permitido. ¿Han pasado por los mismos routers los paquetes que hemos enviado y los que hemos recibido? No lo sabemos, pero no es obligatorio. En internet, cada paquete es rutado de forma independiente a los demás. De hecho, ni siquiera se puede garantizar que hayan seguido el mismo camino los dos paquetes que le hemos enviado al host 207.70.7.168? ¿Por qué el analizador de protocolos, al decodificar el campo “Type Of Service” contenido en la trama con ID 3, cataloga el valor de sus tres primeros bits como “Flash Override”? Los tres primeros bits del campo “Type Of Service” de la cabecera IP indican la precedencia asignada al datagrama. El significado de los diferentes valores que pueden tomar estos bits se define en la RFC791, que trata de IP (Internet Protocol). El valor 100 corresponde a la precedencia “Flash Override”, que es mayor que “Flash”, “Immediate”, “Priority” y “Routine”. ¿Es posible modificar la forma en que se muestran las tramas en el listado de tramas que aparece en la parte superior de la ventana de captura? Sí. Existen muchas formas de modificar la manera en que el analizador nos presenta el listado de tramas. A veces, seleccionando adecuadamente lo que queremos ver en el listado de tramas, podemos ahorrarnos el tener que examinar la decodificación completa de cada trama en el panel central de la ventana de captura. Página 3 del ejercicio4.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación se muestra otra vez la ventana de captura del analizador, conteniendo las mismas seis tramas que antes, pero habiéndole indicado en el cuadro de diálogo “Capture View Display Options” que debía mostrar las direcciones de red (“Display Network Address”): ¿Qué ventaja tiene esta forma de ver el listado de tramas sobre la anterior? Tiene la ventaja de que ahora podemos ver rápidamente las direcciones IP origen y destino de los datagramas IP contenidos en las tramas. La otra visión nos mostraba siempre las direcciones MAC, por lo que solo veíamos direcciones origen y destino pertenecientes a la misma red en la que se habían capturado las tramas. Antes, si el tráfico era externo a la red siempre una de las direcciones MAC era la dirección MAC de un router de la red en la que nos encontrabamos. Si el contenido de la trama es un paquete ARP y no un paquete IP, el analizador muestra ahora las direcciones IP del “Sender” y del “Target” de dicho paquete ARP, permitiendo ver rápidamente quién está intentando comunicarse con quién a nivel de red. ¿De qué sirven los campos “Identified” y “Sequence Number” en los mensajes ICMP de petición de eco y de respuesta de eco? Sirven para que el receptor de las respuestas de eco pueda asociarlas a las peticiones de eco que ha realizado. Nótese que los valores de los campos “Identified” y “Sequence Number” de la petición de eco de la trama con ID=2 son los mismos que los de la respuesta de eco de la trama con ID=3. Página 4 del ejercicio4.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 5: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig /all Configuración IP de Windows 98 Nombre del host . . . . . . . . . . . : caracola Servidores DNS . . . . . . . . . . . . : 193.152.63.197 195.235.113.3 Tipo de nodo . . . . . . . . . . . . . : Difusión Id. de ámbito NetBIOS . . . . . . . . : Enrutamiento IP activado . . . . . . . : No WINS Proxy activado . . . . . . . . . : No Resolución NetBIOS usa DNS . . . . . . : No 0 Ethernet adaptador : Descripción . . . . . . . . . . Dirección física . . . . . . . . DHCP activado . . . . . . . . . Dirección IP . . . . . . . . . . Máscara de subred . . . . . . . Puerta de enlace predeterminada Servidor DHCP . . . . . . . . . Servidor WINS primario . . . . Servidor WINS secundario . . . . Permiso obtenido . . . . . . . . Permiso caduca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : : : : : Realtek 8139-series PCI NIC 00-C0-26-26-0D-14 Sí 172.26.0.2 255.255.0.0 172.26.0.1 172.26.0.1 15 04 02 22:16:38 C:\WINDOWS>arp -a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 Tipo dinámico C:\WINDOWS>ping -n 1 -i 25 12.0.1.28 Haciendo ping a 12.0.1.28 con 32 bytes de datos: Respuesta desde 12.0.1.28: bytes=32 tiempo=190ms TDV=237 Estadísticas de ping para 12.0.1.28: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 190ms, máximo = 190ms, promedio = 190ms C:\WINDOWS>ping -n 1 -i 25 130.94.157.169 Haciendo ping a 130.94.157.169 con 32 bytes de datos: Respuesta desde 130.94.157.169: bytes=32 tiempo=195ms TDV=45 Estadísticas de ping para 130.94.157.169: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 195ms, máximo = 195ms, promedio = 195ms C:\WINDOWS>ping -n 1 -i 25 207.70.7.168 Haciendo ping a 207.70.7.168 con 32 bytes de datos: Respuesta desde 207.70.7.168: bytes=32 tiempo=229ms TDV=235 Estadísticas de ping para 207.70.7.168: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 229ms, máximo = 229ms, promedio = 229ms C:\WINDOWS>arp -a Interfaz: 172.26.0.2 on Interface 0x1000002 Dirección IP Dirección física 172.26.0.1 00-20-ea-18-d1-51 Tipo dinámico C:\WINDOWS> ¿Pertenecen a nuestra red los hosts a los que les hemos hecho PING? No. Nuestra red es la 172.26.0.0 con máscara 255.255.0.0 y ninguna de las direcciones IP de los hosts a los que les hemos hecho PING tiene como primeros dos octetos el 172 y el 26. Página 1 del ejercicio5.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿A qué dirección MAC se habrán dirigido todas las tramas que contenían los paquetes con mensajes ICMP que hemos enviado? A la dirección MAC del router. Al ser hosts que están fuera de nuestra red, los paquetes deben llegarles pasando a través de un router. Es imposible que una trama que nosotros enviemos salga fuera de nuestra red. ¿ha sido necesario generar una petición ARP para obtener la dirección MAC del router por defecto de nuestra red, el 172.26.0.1? No. La caché ARP ya contenía esa información, pues seguramente habrá habido recientemente alguna comunicación entre el router y nosotros. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico que se ha generado en nuestra red debido a los comandos PING que acabamos de ejecutar. ¿Qué significa la columna “Elapsed [sec]” que aparece en el listado de tramas? Son los segundos que han transcurrido desde que se capturó la primera trama hasta que se ha capturado la trama en cuestión. Por ejemplo, la trama con ID=3 se ha capturado 1,677641 segundos después de que se capturase la primera trama. ¿Qué equipos están intercambiando tramas? El nuestro, con IP 172.26.0.2, que sabemos que tiene la MAC 00C026260D14 gracias al comando “ipconfig /all” y el router, con IP 172.26.0.1, que sabemos que tiene la dirección MAC 0020EA18D151 pues así nos lo ha mostrado el comando “arp –a” que ejecutamos anteriormente. ¿Van dirigidos a la IP del router los paquetes encapsulados en las tramas que le estamos enviando? No. Aunque en esta ventana de captura no se está viendo, la IP destino de los paquetes que hay encapsulados en las tramas que estamos enviando será la IP de los equipos a los que les queremos hacer llegar los mensajes ICMP de petición de eco. No le estamos haciendo PING al router, simplemente estamos haciendo uso del router para que nos enrute los paquetes con destino externo a nuestra propia red. A continuación se muestra la misma ventana de captura de antes pero configurada de forma que en el listado de tramas aparecen ahora las direcciones de red en lugar de las MAC. Página 2 del ejercicio5.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Es más clara ahora la información de la ventana de captura? Sí. A pesar de que el panel central está casi cerrado y de que el panel inferior está completamente cerrado, el hecho de que aparezcan las direcciones IP origen y destino de los paquetes contenidos en las tramas hace que, en este ejemplo concreto se vea mejor lo que está ocurriendo. De un vistazo nos damos cuenta que desde el host 172.26.0.1 se ha enviado un mensaje ICMP de petición de eco “Echo Request” a otros tres hosts, con direcciones IP 12.0.1.28, 130.94.157.169 y 207.70.7.168, respectivamente. También se observa cómo esos tres host han respondido al host 172.26.0.2 con los correspondientes mensajes ICMP de respuesta de eco “Echo Reply”. ¿Cuánto tiempo ha tardado en llegar el mensaje de respuesta del host 207.70.7.168, contado desde que le enviamos el mensaje ICMP de petición de eco? Pues la diferencia entre 3,192862 segundos y 2,974271 segundos, que son 0,218591 segundos. Nótese que esto concuerda aproximadamente con los 229 milisegundos que ha calculado el programa PING como tiempo de recorrido redondo (ida y vuelta). Lógicamente éste es un poco superior porque el programa PING empieza a contar cuando le pasa el mensaje de petición de eco al nivel de red y deja de contar cuando el nivel de red le pasa al programa PING el mensaje de respuesta de eco, mientras que el cálculo que nosotros hemos hecho se basa en los tiempos de salida y llegada de las tramas. A continuación se muestra el contenido de la trama con ID=4. ¿Cómo sabe el analizador que es correcto el campo “Checksum” del mensaje ICMP de esta trama? Lo calcula nuevamente y comprueba que coincide con el que ha recibido. Para calcularlo realiza la suma de todas las palabras de 16 bits del mensaje ICMP, salvo el propio checksum, que no es sumado. En nuestro caso la suma es 0800 + 0100 + 7000 + 6162 + 6364 + 6566 + 6768 + 696A + 6B6C + 6D6E + 6F70 + 7172 + 7374 + 7576 + 7761 + 6263 + 6465 + 6667 + 6869 = 7239D. Si el número que hemos obtenido fuese mayor de 16 bits, cogeríamos los bits sobrantes y los volveríamos a sumar a los 16 bits menos significativos, lo que en nuestro caso sería 239D + 7 = 23A4. Por último, el resultado de 16 bits así obtenido se complementa a uno para obtener el cheksum. En nuestro caso el complemento a uno de 23A4 es DC5B, que coincide exactamente con el checksum que hemos recibido. Quiere esto decir que el mensaje ICMP no tiene errores, o al menos que no tiene errores que puedan detectarse con esta sencilla técnica de detección de errores. ¿Qué significa la anotación que pone el analizador al lado de campo “Code” del mensaje ICMP de petición de eco? La anotación “Not used (MBZ)” significa que como el campo “Code” no se usa en este tipo de mensaje, su valor debe ser cero (MBZ = Must Be Zero). ¿Cómo es el mensaje ICMP de respuesta de eco que devuelve un host al recibir el correspondiente mensaje de petición de eco? Debe ser idéntico en todo al mensaje de petición de eco que acaba de recibir, salvo que el campo “Type” debe ser 0 (respuesta de eco) y que, como es lógico, el campo “Checksum” deberá ser calculado nuevamente. Página 3 del ejercicio5.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 6: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen listados a continuación: Página 1 del ejercicio6.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 192.5.5.55 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 192.5.5.1 C:\WINDOWS>arp –a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 192.5.5.18 00-04-76-99-09-dd Tipo dinámico dinámico C:\WINDOWS>ping -n 1 210.93.105.13 Haciendo ping a 210.93.105.13 con 32 bytes de datos: Tiempo de espera agotado. Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 0, perdidos = 1 (100% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS>arp –a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 Tipo dinámico C:\WINDOWS> ¿Concuerda el resultado del comando “ipconfig” con los datos de la red de la figura? Sí. La máscara de subred 255.255.255.0 es equivalente a “/24”, que es la que aparece en el diagrama como la máscara de subred de la red a la que está conectado el “PC_A0_55”. Por otra parte, la dirección IP, la 192.5.5.55, también es la correcta. Además, dado que el “Router_A” es el único router en la red de este ordenador, es correcto considerar que sea el router por defecto. Como es lógico la IP del router que aparece en la salida del comando “ipconfig” (192.5.5.1) es la IP de la interfaz Ethernet del router que se encuentra conectada al “Hub_A0” que es el mismo al que está conectado el “PC_A0_55”. ¿En que red está el ordenador al que le estamos haciendo PING? Estamos haciendo PING al “PC_DE_13” desde el “PC_A0_55”. El “PC_DE_13” está en una red distinta, que es 210.93.105.0 /24, pero conectada a la red del equipo que realiza los PINGs mediante una serie de routers y redes. ¿Cuántas rutas puede seguir un paquete para ir desde “PC_A0_55” a “PC_DE_13” y viceversa? Viendo la red de la figura nos damos cuenta de que solo hay una ruta posible. Esa ruta y atraviesa cuatro routers y tres redes intermedias (sin contar las redes origen y destino), por lo que si midiésemos la longitud de la ruta en saltos (hops) diríamos que mide 4. ¿Con cuantos PCs de nuestra propia red nos hemos comunicado antes de hacer el PING? Con uno solamente. La caché ARP muestra una entrada con la dirección IP 192.5.5.18, lo cuál hace pensar que hemos debido de tener algún tipo de comunicación con dicho PC, lo cual habrá hecho necesario que se tenga que averiguar su dirección MAC y guardarla temporalmente en la caché ARP. La otra dirección IP que aparece en la caché ARP es la del router por defecto de nuestra red. ¿Indica la presencia de la dirección IP del router en la caché ARP que nos hemos comunicado con otros equipos de otras redes distintas a la nuestra antes de ejecutar el comando PING? No necesariamente. Hay que tener en cuenta que al hacerle un PING al router nos estamos comunicando con el router y no con un equipo externo a nuestra red y sin embargo esto provocaría la aparición de la dirección IP del router en la caché ARP. ¿Por qué después del PING desaparece de la caché ARP la entrada correspondiente al PC cuya IP es la IP 192.5.5.18? Hay que tener en cuenta la caché ARP se va vaciando sola conforme las entradas que no se utilizan van caducando. Seguramente la entrada que ha desaparecido estaba punto de caducar y como el hecho de hacer PING al equipo 210.93.105.13 no generado tráfico con el equipo 192.5.5.18, dicha entrada ha caducado en el intervalo de tiempo comprendido entre los dos comandos “arp –a”. Página 2 del ejercicio6.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Conoce el comando PING cuál es la máscara de subred del equipo al que le va a enviar los mensajes ICMP, en esta caso el 210.93.105.13? No la conoce ni le hace falta conocerla. ¿Cómo se sabe si el equipo destino del PING está en la misma red que el equipo origen? Se compara el nombre de la red origen con el resultado de hacer la operación lógica AND bit a bit entre la máscara de subred de la red del equipo origen y la IP del equipo destino. Si son distintos es porque están es redes distintas. Si son iguales quiere decir que la parte de red de sus direcciones IP son idénticas, por lo que el equipo origen y el equipo destino pertenecen a la misma red. ¿Pertenece nuestro equipo, el “PC_A0_55” (con IP 192.5.5.55) a la misma red del equipo destino del PING, el “PC_DE_33” (con IP 210.93.105.13)? La máscara de la red del equipo 192.5.5.55 es 255.255.255.0, por lo que el nombre de la red de dicho equipo puede obtenerse haciendo el AND lógico bit a bit entre 192.5.5.55 y 255.255.255.0, lo cual nos da 192.5.5.0. Ahora hay que comparar es ese nombre de red (el de la red de origen) con el resultado de hacer la operación lógica AND bit a bit entre la máscara de red del equipo 192.5.5.55 (el origen) y la IP del equipo destino, 210.93.105.13, lo cual nos da como resultado 210.93.105.0. Como resulta que 192.5.5.0 y 210.93.105.0 son números diferentes, podemos decir que el equipo con la dirección IP 192.5.5.55 y el equipo con la dirección IP 210.93.105.13 pertenecen a redes diferentes. Se ha capturado el tráfico generado por los comandos anteriores tanto en la red origen de los PINGs como en la red destino de los PINGs. Es decir, se han capturado las tramas vistas por el “PC_A0_55” en su red y las tramas vistas por el “PC_DE_13” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_A0_55”: Página 3 del ejercicio6.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Y a continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del ordenador “PC_DE_13”: ¿A qué dirección MAC ha dirigido el equipo 192.5.5.55 la trama que contenía el mensaje ICMP de petición de eco que se muestra en la primera ventana? A la dirección MAC de su router por defecto, que es 00107B81AE26. Sabemos esto porque la dirección MAC que aparece como destino en dicha trama es la misma que aparece en su caché ARP asociada a la IP 192.5.5.1, que es la del router. De todas formas esto era lo lógico, pues el equipo 192.5.5.55 sabe que debe enviarle la trama al router por defecto para que sea él el que enrute hacia su destino el paquete contenido en esa trama. ¿Por qué no aparece en la primera ventana de captura una petición APR previa al envío del mensaje ICMP de petición de eco? Porque en la caché ARP del “PC_A0_55” ya se encontraba la dirección MAC del router, que es la que se ha usado como destino en la trama enviada por dicho PC. ¿Cuál es la dirección MAC de “PC_A0_55”? Es 000102B44EB0, que es la MAC origen de la trama que contiene el mensaje ICMP de petición de eco que se ha capturado en la red del “PC_A0_55”. ¿A que dirección IP va dirigido el paquete encapsulado en la trama que “PC_A0_55” ha dirigido al router por defecto de su red? A la IP 210.93.105.13, que es la IP del equipo al que le hemos hecho el PING. ¿Cómo se escribe en hexadecimal la IP 210.93.105.13? D25D690D, que son precisamente los cuatro octetos que aparecen resaltado en el panel inferior de la primera ventana de captura, correspondiendo a la IP 210.93.105.13 que se encuentra resaltada en el panel central de esa misma ventana. ¿Cuántos octetos de datos opcionales se han incluido en el mensaje ICMP de petición de eco? 32 octetos de datos opcionales, según se muestra en el campo “Optional Data” que se ve en el panel central de la primera ventana de captura. El comando PING implementado por Windows 98 incluye ese número de octetos a menos que se le diga otra cosa al comando PING con la opción adecuada. ¿Cuántos mensajes ICMP de petición de eco se han generado con el comando PING que hemos ejecutado en el “PC_A0_55”? Tan sólo uno, pues así lo hemos querido al usar la opción “-n” con el parámetro 1. ¿Cuál es el “EtherType” de IP? 0x0800 en hexadecimal, tal y como se ve en la trama de la primera ventana de captura. Página 4 del ejercicio6.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Por qué sabemos que el datagrama IP mostrado en la primera ventana de captura es un datagrama completo y no se trata de un fragmento. Como el campo “Fragment Offset” vale 0, sabemos que, caso de ser un fragmento, se trataría del primero, pues hay 0 octetos de datos delante suya. Como el bit “MF” vale 0, sabemos que, caso de ser un fragmento, sería el último. Pero si un datagrama es el primero de una serie de fragmentos y también es el último de dicha serie, quiere decir que realmente la serie de fragmentos se compone de un único fragmento. Es decir que no se ha producido fragmentación y lo que se nos está mostrando es un datagrama completo y no un fragmento. ¿Hemos obtenido respuesta al comando PING por parte de “PC_DE_13”? Entre el tráfico capturado en la red del equipo “PC_A0_55” no se muestra ningún mensaje ICMP de respuesta de eco. Además, la salida del comando PING nos dice “Tiempo de espera agotado”, indicando que no se ha recibido el mensaje de respuesta en el tiempo de espera que dicho comando PING tiene establecido por defecto. ¿Quién realiza la petición ARP que se muestra en la segunda ventana de captura? El equipo con IP 210.93.105.1, que es la IP que aparece en el campo “Sender IP Address”. Si buscamos esta IP en el gráfico de la red que estamos estudiamos, vemos que dicha IP corresponde a la interfaz e0 del “Router_D”, que es la interfaz que dicho router tiene conectada a la red del “PC_DE_13”, destino del PING que realizó el “PC_A0_55”. ¿Qué valor tiene el campo “Target Ethernet Address” en la petición ARP que se muestra en la segunda ventana de captura? Tiene el valor 000000000000, pues precisamente lo que se pretende averiguar con la petición ARP es el valor del “Target Ethernet Address”. En realidad en una petición ARP no tiene por qué ponerse este campo a ningún valor en concreto pues nadie va a usarlo. Sin embargo parece que para no dar lugar a confusiones es conveniente ponerlo todo a 0 o todo a 1. ¿A quién va dirigida la petición ARP que se muestra en la segunda ventana de captura? Va dirigida al equipo con IP 210.93.105.13, que es la IP que aparece en el campo “Target IP Address”. Esto quiere decir que el “Router_D”, que es el que ha hecho la petición ARP, no tenía en su caché ARP una entrada asociada a la dirección IP 210.93.105.13, pues de haber sido así no habría tenido que hacer la petición ARP. ¿Por qué se ha realizado la petición ARP que se muestra en la segunda ventana de captura? Es de suponer que el “Router_D” ha realizado la petición ARP porque está interesado en averiguar la dirección MAC del equipo “PC_DE_13” para poder, más tarde, comunicarse con él enviándole una trama que tenga por dirección MAC destino la de dicho PC. Parece lógico pensar que el deseo del “Router_D” por comunicarse con el “PC_DE_13” estará motivado por la llegada a dicho router de un datagrama IP destinado a este PC. Este datagrama IP que ha llegado al “Router_D” será con toda seguridad el datagrama IP que ha enviado el “PC_A0_55” y ha pasado por el “Router_A”, el “Router_B” y el “Router_C” hasta llegar al “Router_D”, que debe enviarlo al “PC_DE_13”. ¿Por qué no aparece en la segunda ventana de captura ninguna trama dirigida la dirección MAC del “PC_DE_13”, obtenida mediante ARP? Seguramente el “Router_D” posee una implementación del protocolo ARP que descarta los datagramas IP para los cuales no encuentra en su caché ARP la dirección MAC necesaria para enviarlos. El “Router_D” al recibir el paquete con la IP destino 210.93.105.13, la cual forma parte de una red directamente conectada al router, y ver que la dirección MAC de dicho equipo no se encontraba en su caché ARP, decidió que necesitaba hacer una petición ARP para dicha IP, pero en lugar de poner en espera el paquete IP mientras se recibía la respuesta ARP, decidió descartar el paquete. El router confía que el emisor del paquete detectará de alguna forma que el paquete no ha llegado a su destino y volverá a enviarlo de nuevo. Cuando llegue un nuevo paquete al router dirigido al mismo destino que antes, el router ya dispondrá en su caché ARP de una entrada con la dirección MAC que necesita, por lo que este paquete podrá ser enviado inmediatamente y no será descartado. Hay que hacer notar que otras implementaciones de ARP no descartan los paquetes por el mero hecho de que la dirección MAC necesaria para enviarlos no se encuentre en la caché ARP, sino que los retienen hasta que se obtiene mediante ARP la dirección MAC que se necesita y entonces son enviados encapsulados en una trama. ¿Qué habría ocurrido si después del primer comando PING hubiésemos ejecutado otro idéntico? Se generaría otro paquete IP, pero seguramente este segundo paquete IP conteniendo otro mensaje ICMP de petición de eco habría llegado correctamente a su destino final, el “PC_DE_13”, pues el “Router_D” aún tendría en su caché ARP la MAC del “PC_DE_13” y por tanto no descartaría este paquete, a diferencia de lo que hizo con el primer paquete. ¿Cuál es el “EtherType” del protocolo ARP? Es 0x0806, tal y como se muestra en la segunda ventana de captura. Página 5 del ejercicio6.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 7: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen listados a continuación: Página 1 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 192.5.5.55 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 192.5.5.1 C:\WINDOWS>ping Uso: ping [-t] [-a] [-n cantidad] [-l tamaño] [-f] [-i TTL] [-v TOS] [-r cantidad] [-s cantidad] [[-j lista de host] | [-k lista de host]] [-w Tiempo de espera agotado] lista de destino Opciones: -t -a -n -l -f -i -v -r -s -j -k -w cantidad tamaño TTL TOS cantidad cantidad lista de hosts lista de hosts tiempo Solicita eco al host hasta ser interrumpido. Para ver estadísticas y continuar: presione Ctrl-Inter. Para interrumpir: presione Ctrl-C. Resuelve direcciones a nombres de host. Cantidad de solicitudes de eco a enviar. Tamaño del búfer de envíos. No fragmentar el paquete. Tiempo de vida. Tipo de servicio. Registrar la ruta para esta cantidad de saltos. Registrar horarios para esta cantidad de saltos. Ruta origen variable en la lista de host. Ruta origen estricta en la lista de host. Tiempo de espera agotado de respuesta en milisegundos. C:\WINDOWS>ping -n 3 -l 22 -i 5 -f -v 64 -w 5000 210.93.105.13 Haciendo ping a 210.93.105.13 con 22 bytes de datos: Tiempo de espera agotado. Respuesta desde 210.93.105.13: bytes=22 tiempo=55ms TDV=124 Respuesta desde 210.93.105.13: bytes=22 tiempo=52ms TDV=124 Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 3, Recibidos = 2, perdidos = 1 (33% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 52ms, máximo = 55ms, promedio = 35ms C:\WINDOWS>ping -n 1 -l 54 -i 5 -f -v 64 -w 5000 210.93.105.13 Haciendo ping a 210.93.105.13 con 54 bytes de datos: Respuesta desde 210.93.105.13: bytes=54 tiempo=80ms TDV=124 Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 80ms, máximo = 80ms, promedio = 80ms C:\WINDOWS>ping -n 1 -l 25 -i 4 -f -v 64 -w 5000 210.93.105.13 Haciendo ping a 210.93.105.13 con 25 bytes de datos: Respuesta desde 204.204.7.2: El tiempo de vida caducó en tránsito. Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS>ping -n 1 -l 55 -i 3 -f -v 64 -w 5000 210.93.105.13 Haciendo ping a 210.93.105.13 con 55 bytes de datos: Respuesta desde 199.6.13.2: El tiempo de vida caducó en tránsito. Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS>arp –a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 Tipo dinámico C:\WINDOWS> Página 2 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Concuerda el resultado del comando “ipconfig” con los datos de la red de la figura? Sí. La máscara de subred 255.255.255.0 es equivalente a “/24”, que es la que aparece en el diagrama como la máscara de subred de la red a la que está conectado el “PC_A0_55”. Por otra parte, la dirección IP, la 192.5.5.55, también es la correcta. Además, dado que el “Router_A” es el único router en la red de este ordenador, es correcto considerar que sea el router por defecto. Como es lógico la IP del router que aparece en la salida del comando “ipconfig” (192.5.5.1) es la IP de la interfaz Ethernet del router que se encuentra conectada al “Hub_A0” que es el mismo al que está conectado el “PC_A0_55”. ¿En que red está el ordenador al que le estamos haciendo PING? Estamos haciendo PING al “PC_DE_13” desde el “PC_A0_55”. El “PC_DE_13” está en una red distinta, que es 210.93.105.0 /24, pero conectada a la red del equipo que realiza los PINGs mediante una serie de routers y redes. ¿Cuántas rutas puede seguir un paquete para ir desde “PC_A0_55” a “PC_DE_13” y viceversa? Viendo la red de la figura nos damos cuenta de que solo hay una ruta posible. Esa ruta y atraviesa cuatro routers y tres redes intermedias (sin contar las redes origen y destino), por lo que si midiésemos la longitud de la ruta en saltos (hops) diríamos que mide 4. Se ha capturado el tráfico generado por los comandos anteriores tanto en la red origen de los PINGs como en la red destino de los PINGs. Es decir, se han capturado las tramas vistas por el “PC_A0_55” en su red y las tramas vistas por el “PC_DE_13” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_A0_55”, el cual se ha almacenado en el archivo “fichero55.cap”: Y a continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del ordenador “PC_DE_13”, el cual se ha almacenado en el archivo “fichero13.cap”: Las dos ventanas anteriores están mostrando únicamente el listado de tramas capturadas, pues el panel central y el panel inferior de la ventana de captura han sido reducidos de tamaño hasta dejarlos reducidos a una simple línea. ¿Por qué algunas tramas se encuentran resaltadas en el listado de tramas? En ambas ventanas se observa que además de la trama que se encuentra seleccionada (la de ID=0), hay más tramas que presentan una banda de color (verde en este caso) para resaltarlas. El motivo de que aparezcan resaltadas es que el analizador tiene un modulo experto al que se le puede decir que nos muestre las tramas que el considere que son el “síntoma” de algún problema. Por ejemplo, la trama con ID=10 capturada en la red 192.5.5.0 /24 aparece resaltada y en el resumen (summary) se nos dice que es un mensaje ICMP de tiempo de vida excedido enviado por un router que ha descartado un paquete por ese motivo. Esto puede ser síntoma de un problema o puede ser algo Página 3 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ perfectamente normal, todo depende de lo que estemos haciendo en la red, lo cual es algo que el analizador de protocolos no puede saber. Otro ejemplo de actuación del módulo experto es la trama con ID=2 capturada en la red 210.93.105.13 /24, que aparece resaltada y se nos dice que contiene un paquete IP cuyo tiempo de vida está expirando (vale 1), por lo que no podrá atravesar ningún router más. ¿Es posible configurar el analizador para que nos muestre en el listado de tramas información acerca del instante en que se capturaron las tramas, las direcciones de red de los paquetes contenidos en ellas y que omita la información “extra” relativa a las tramas que presentan “síntomas” de errores? Sí. A continuación se muestra como, teniendo abierta la ventana de captura, es posible seleccionar una opción en el menú para que se nos abra la ventana “Capture View Display Options”: Una vez abierta la ventana “Capture View Display Options” podremos modificar a nuestra conveniencia las opciones de visualización de la ventana de captura. A continuación se muestra la ventana “Capture View Display Options” configurada para conseguir lo que se nos está pidiendo: Después de efectuar estos cambios en las opciones de visualización, se ilustra a continuación la ventana que muestra el contenido del archivo “fichero55.cap” que no es otro que el tráfico de la red en la que se encuentra el ordenador “PC_A0_55”: Página 4 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Con los mismos cambios se presenta a continuación la ventana que muestra el contenido del archivo “fichero13.cap” que no es otro que el tráfico de la red en la que se encuentra el ordenador “PC_DE_13”: ¿Se corresponde el primer mensaje ICMP que envía “PC_A0_55” con el primer mensaje ICMP que recibe “PC_DE_13”? A primera vista puede parecer que sí, pero en realidad no se corresponden. Ambos tienen 22 octetos de datos opcionales (Optional Data) lo cual da lugar (después de sumarle las cabeceras ICMP, IP, Ethernet y los 4 octetos de la cola de la trama Ethernet) a los 68 octetos que aparecen en la columna “Size” del listado de tramas. También son idénticas las direcciones IP origen y destino del datagrama IP contenido en ambas tramas. Lo que nos hace ver que son mensajes ICMP diferentes es que el campo “Sequence Number” tiene el valor 23296 en el primer mensaje enviado por “PC_A0_55” y un valor distinto, 23552, en el primer mensaje ICMP recibido por “PC_DE_13”. A continuación se muestra decodificada una trama transmitida por “PC_A0_55” conteniendo el segundo mensaje ICMP de petición de eco que envió dicho ordenador: Página 5 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Corresponde el segundo mensaje ICMP enviado por “PC_A0_55” con el primer mensaje ICMP recibido por “PC_DE_13”? Sí. No sólo coinciden los tamaños de las tramas y las direcciones IP origen y destino, sino que coinciden también los valores de los campos “Identified” y “Sequence Number” de la cabecera ICMP. ¿Qué ha ocurrido con el primer mensaje ICMP de petición de eco enviado por “PC_A0_55”? Da la impresión de que, por algún motivo, no ha llegado a su destino. Es cierto que puede ocurrir que dos paquetes que se envían en un cierto orden lleguen a su destino en orden inverso, pero no parece que esto haya ocurrido en este caso. Por un lado resulta que en la red que estamos estudiando sólo existe una ruta posible entre el origen y el destino, por lo que parece lógico que el primer paquete en enviarse vaya a llegar después del segundo en enviarse. Por otro lado, el segundo mensaje ICMP se ha enviado 5,218044 segundos después que el primero, lo cual parece tiempo más que suficiente para que el primer mensaje supere cualquier problema que haya podido encontrarse en el camino. Además, examinando la salida en pantalla ofrecida por el primer comando PING vemos que se envían 3 mensajes ICMP con 22 octetos de datos opcionales y se obtiene respuesta para el segundo y para el tercero, pero no para el primero, del cual se nos dice que se ha agotado el tiempo de espera sin haber obtenido respuesta. El primero en obtener respuesta es, como ya se ha demostrado, el contenido en la trama con ID=2 del “fichero13.cap”, mientras que el otro que obtiene respuesta debe ser el contenido en la trama ID=4 del “fichero13.cap”. Por tanto, no hay en el “fichero13.cap” ninguna otra trama que por tamaño y características pueda corresponder al primer mensaje ICMP enviado por “PC_A0_55”, así que podemos decir rotundamente que dicho mensaje se ha perdido por el camino antes de llegar a su destino. ¿Por qué se produce la petición ARP que se ve en la red del “PC_A0_55”? Porque en el momento de hacer el primer PING el “PC_A0_55” no conoce la dirección MAC del router por defecto y lo primero que tiene que hacer es averiguarla. Cuando, mediante ARP, haya obtenido dicha dirección MAC, ya podrá enviarle una trama a dicho router conteniendo el primer mensaje ICMP de petición de eco. El resto de PINGs no provocan más peticiones ARP porque una vez que se obtiene la MAC asociada a una determinada IP, dicha información permanecerá en la caché ARP del ordenador hasta que pase un cierto tiempo sin ser utilizada, en cuyo caso desaparecerá de la caché. ¿Por qué se produce la petición ARP que se ve en la red del “PC_DE_13”? La petición ARP la ha hecho el router de dicha red, el 210.93.105.1, porque tiene necesidad de comunicarse con el host con dirección IP 210.93.105.13, que es precisamente “PC_DE_13”. Lo curioso es que desde que el router tiene necesidad de comunicarse con “PC_DE_13” y le pregunta su dirección MAC, hasta que el router envía una trama al “PC_DE_13” transcurren 5,2172832 segundos, lo cuál no es lógico. No parece que sea la trama que envía el router después de la petición ARP la que le motivó a hacer dicha petición. Además resulta que el “PC_A0_55” envió su primer mensaje ICMP unos 5,218044 segundos antes de enviar su segundo mensaje ICMP. Parece razonable pensar que el primer mensaje ICMP dirigido al “PC_DE_13” llegó correctamente al router 210.93.105.1 y eso fue lo que provocó que el router generase una petición ARP al no encontrar en su caché ARP la MAC que necesitaba. Parece ser que lo que está ocurriendo es que el router cuando no encuentra en su caché ARP la dirección MAC que necesita para poder enrutar un paquete, procede a descartar dicho paquete y a realizar una petición ARP para averiguar dicha dirección MAC y almacenarla en la caché ARP, de forma que pueda usarla más tarde cuando le llegue un nuevo paquete que deba seguir el mismo camino que el anterior paquete que descartó. Efectivamente, el segundo mensaje ICMP dirigido al “PC_DE_13” llega al router 210.93.105.1 unos 5 segundos después de que el primer mensaje fuese descartado, pero en este caso el router es capaz de enrutarlo inmediatamente pues ya Página 6 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ dispone en su caché ARP de la dirección MAC que necesita. Este comportamiento no es algo anómalo, sino que es una de las posibles formas de implementar el protocolo ARP. ¿Por qué el primer comando PING espera aproximadamente 5 segundos desde que envía el primer mensaje ICMP hasta que envía el segundo? El primer comando PING va a enviar 3 mensajes ICMP al host destino, pues hemos usado la opción “–n” con el parámetro 3. Como, además, se le ha especificado la opción “–w” con el parámetro 5000, va a esperar 5000 milisegundos a que llegue la respuesta a un mensaje ICMP de petición de eco. Si no llega la respuesta en ese tiempo límite, (como en nuestro caso) procederá a enviar el siguiente mensaje ICMP que tenga programado. ¿Por qué hay tramas de cuatro tamaños diferentes (68, 100, 71 y 101 octetos según muestra la columna”Size”) conteniendo mensajes ICMP de petición de eco? Porque los mensajes ICMP de petición de eco que se han generado tenían datos opcionales de diferentes longitudes, pues se ha usado la opción “-l” con diferentes valores en cada uno de los comandos PING que se ejecutado. Así, el primer comando PING generó mensajes ICMP con 22 octetos de datos opcionales, el segundo comando PING lo hizo con 54 octetos de datos opcionales, el tercero con 25 octetos y el cuarto con 55 octetos. Por ejemplo, si sumamos 6 octetos de MAC origen, 6 de MAC destino, 2 de EtherType, 20 de cabecera IP, 8 de cabecera ICMP de petición de eco, 55 de datos opcionales de mensaje ICMP de petición de eco y 4 de campo “Frame Check Sequence” tenemos los 101 octetos que mide la trama que contiene el último mensaje ICMP de petición de eco, como siempre sin tener en cuenta el preámbulo ni el delimitador de inicio que vienen al principio de la trama. ¿Cuáles son los diez primeros caracteres de los datos opcionales del primer mensaje ICMP de petición de eco enviado por “PC_A0_55”? El campo “Opcional Data” del mensaje ICMP de petición de eco viene a continuación de la campo “Sequence Number”, que podemos ver resaltado en la trama con ID=2 del “fichero55.cap” en una de las ventanas de captura que se han visto anteriormente. En el panel inferior de dicha ventana se observa que los dos octetos que forman el mencionado campo “Sequence Number” ocupan la posición 0x28 y 0x29 (hexadecimal) dentro de la trama, por lo que el campo que nos interesa, el “Optional Data”, ocupa la posición 0x2A que está justo a continuación. En la parte derecha del panel inferior podemos ver en formato ASCII los mismos caracteres que estamos de forma numérica y en hexadecimal en la parte derecha, por lo que podemos decir que los diez caracteres que nos piden son “abcdefghij”. ¿Ha llegado al “PC_DE_13” el mensaje ICMP que enviamos con el segundo comando PING? El segundo comando PING genera una trama de 100 octetos (54 octetos de datos opcionales), la cual también llega a la red del PC destino, según se observa en las dos ventanas que muestran el tráfico capturado en ambas redes. Además, la salida en pantalla del segundo comando PING confirma que se ha recibido respuesta del PC con IP 210.93.105.13, lo cual es síntoma de que nuestro mensaje ha llegado a su destino y de que el mensaje de respuesta correspondiente también nos ha llegado a nosotros. ¿Han llegado al “PC_DE_13” los mensajes ICMP correspondientes los comandos PING que hemos ejecutado en tercer y cuarto lugar? En la red del “PC_A0_55” se observan dos tramas, una de 71 octetos y otra de 101 octetos, las cuales contienen los mensajes ICMP emitidos al ejecutarse los comandos PING tercero y cuarto. No obstante, en la red del “PC_DE_13” no se ha capturado ninguna trama de estas características. Podemos decir, por tanto, que dichos mensajes ICMP no han llegado a su destino. ¿Qué ha ocurrido con el mensaje ICMP enviado por el tercer comando PING? Según la salida en pantalla del tercer comando PING, el router 204.204.7.2 nos está informando de que el tiempo de vida de dicho mensaje ICMP ha caducado en tránsito. Si nos fijamos en la topología de la red vemos que el “Router_D” es el router que no s está respondiendo, pues es él el que tiene la dirección IP 204.204.7.2 en su interfaz s1 (interfaz serie número 1). Si además nos damos cuenta de que el mensaje ICMP se ha enviado con un tiempo de vida de valor 4, ya que hemos usado la opción “-i” con el parámetro 4, llegamos a la conclusión de que éste mensaje ICMP llegó al “Router_D” con un tiempo de vida de valor 1, pues ya ha atravesado tres routers. El “Router_D” al ir a enviarlo por su interfaz e0 debería decrementar en 1 dicho tiempo de vida, lo que haría que alcanzase el valor cero y por lo tanto no podría llegar a enviarlo. El “Router_D” avisa de esta circunstancia al emisor del datagrama mediante un mensaje ICMP especialmente diseñado para ello. A continuación se muestra la ventana de captura con el contenido del “fichero55.cap”. En la parte superior puede verse una pequeña parte del listado de tramas y en la parte central se observa completamente decodificado el mensaje ICMP que ha recibido “PC_A0_55” del “Router_D”: Página 7 del ejercicio7.doc Página 8 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Por qué el analizador de protocolos, al decodificar el campo “Type Of Service” del paquete IP contenido en la trama con ID=10 mostrada anteriormente, cataloga el valor de sus tres primeros bits como “Internetwork Control”? Los tres primeros bits del campo “Type Of Service” de la cabecera IP indican la precedencia asignada al datagrama. El significado de los diferentes valores que pueden tomar estos bits se define en la RFC791, que trata de IP (Internet Protocol), de la forma siguiente: 111 - Network Control 110 - Internetwork Control 101 - CRITIC/ECP 100 - Flash Override 011 - Flash 010 - Immediate 001 - Priority 000 - Routine El valor “110”, que es el que presenta el datagrama IP que contiene el mensaje ICMP que ha enviado el “Router_D” al host “PC_A0_55” al descartar un datagrama porque su TTL (“Time To Live”) ha expirado, indica que es un datagrama al que hay que darle precedencia de tipo “Internetwork Control”, que es una de las más elevadas. ¿Cuáles son las direcciones IP origen y destino del datagrama IP contenido en la trama con ID=10? En el panel central de la ventana anterior puede verse que dichas direcciones son 204.204.7.2 y 192.5.5.55 respectivamente. En otras ventanas de captura anteriores a ésta se podían ver también las direcciones de red en el listado de tramas, mientras que ésta ventana lo que se muestra en el listado de tramas son las direcciones origen y destino de nivel 2 (direcciones MAC). ¿De qué clase es el mensaje ICMP contenido en la trama con ID=10? Si nos fijamos en la cabecera del mensaje ICMP que aparece a continuación de la cabecera IP, podemos ver que el campo “Type” vale 11 lo que indica que es un mensaje del tipo “Time exceeded” (Tiempo excedido). Si queremos concretar aún mas, debemos mirar el valor del campo “Code”, que al valer 0 nos quiere decir que el tiempo que se ha excedido es el tiempo de vida del paquete “Time-ToLive Count Exceeded”. ¿Por qué aparecen dos cabeceras IP en la decodificación de la trama con ID=10? La trama en cuestión contiene un único datagrama IP, por lo que la única cabecera IP que tenemos que considerar es la primera de ellas. Todo lo que aparece a continuación de la primera cabecera IP forma parte de los datos del datagrama IP. Lo que ocurre es los datos del datagrama IP son un mensaje ICMP de tipo 11 y código 0 que ha enviado un router al descartar un datagrama por haber llegado a cero su TTL. Este mensaje ICMP de tipo 11 y código 0 incluye, entre otras cosas, una copia de parte del datagrama que el router ha descartado, con objeto de que el destinatario del mensaje ICMP sepa, no sólo que ha habido un problema, sino también qué datagrama concreto lo ha causado. Ese es el motivo de que a continuación del los primeros campos del mensaje ICMP aparezca una segunda cabecera IP. Eso nos permite ver que el datagrama descartado contenía a su vez un mensaje ICMP, pues, en la segunda cabecera IP que se muestra en la ventana, el campo “Protocol” vale 1. ¿A quién iba destinado el datagrama IP descartado a causa del TTL expirado del que se informa en el mensaje ICMP contenido en la trama con ID=10? Al host 210.93.105.13, pues ése es el valor del campo “Destination Address” que aparece en la segunda cabecera IP que se ve en la ventana. de la trama. Esto es así porque esa segunda cabecera IP es la copia de la cabecera IP del datagrama IP que se ha descartado. ¿Por qué en el interior del mensaje ICMP de tipo 11 y código 0 no aparece completo el datagrama IP que se ha descartado? Los mensajes ICMP que contienen a otros datagramas IP que han generado algún problema no tienen por qué incluir una copia del datagrama original completo. Sólo se copia la cabecera IP y 8 octetos de datos de dicho datagrama. Eso suele ser suficiente para que el receptor del mensaje ICMP sea capaz de averiguar, analizando el trozo de datagrama que se le adjunta, cuál ha sido la causa del problema. En el caso del mensaje ICMP que nos ocupa, vemos que sólo se ha podido adjuntar la cabecera IP del datagrama descartado, junto con 8 octetos de datos, que corresponden a la cabecera completa del mensaje ICMP de petición de eco. Lo único que se ha omitido son los 25 octetos de datos opcionales, que no son en este caso, importantes para la resolución del problema. De hecho, el receptor del mensaje ICMP de tipo 11 podrá darse cuenta de que el datagrama descartado contenía un mensaje ICMP de tipo 8 “Echo Request”, e incluso podrá saber cuáles son los valores de los campos “Identified” y “Sequence Number”, lo cuál le puede ser útil para investigar mejor las causas del problema. Página 9 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación se muestra el mensaje ICMP de petición de eco generado por el tercer comando PING, el cual se encuentra en el interior del datagrama IP contenido en la trama cuyo ID es 9: ¿Hay alguna diferencia entre el datagrama IP mostrado en la trama con ID=9 y el que se encuentra contenido en el interior del mensaje ICMP de tipo 11 que se muestra en la trama con ID=10? Son datagramas IP ligeramente diferentes pues el TTL y el checksum han cambiado. Además, el datagrama contenido en el mensaje ICMP no está completo, pues le faltan los 25 octetos de los datos opcionales del mensaje ICMP de tipo 8. ¿Por qué el datagrama IP de la trama con ID=9 se ha emitido con una precedencia “Immediate”? Porque al ejecutar el tercer comando PING se usó la opción “–v” con el valor 64. Ese valor 64 (0x40 en hexadecimal o 01000000 en binario) es el que se le ha dado al octeto que ocupa el campo “Type Of Service” del datagrama IP que encapsula al mensaje ICMP de petición de eco. Los tres primeros bits de ese octeto valen, por tanto, 010, lo que según la RFC791 indican que el datagrama tiene una precedencia de tipo “Immediate”. ¿Qué router es el que descarta el mensaje ICMP enviado por el cuarto comando PING? El “Router_C”. Al enviar un mensaje con un tiempo de vida inferior en una unidad al tiempo de vida del mensaje ICMP del tercer comando PING, el tiempo de vida del mensaje llega a cero un router antes que el otro. Un tiempo de vida de 3 hace que el mensaje sólo pueda atravesar 2 routers. Página 10 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación se muestra parte de la trama con ID=6 que se ha capturado en la red del “PC_DE_13”: ¿Qué contiene el datagrama IP que se muestra en la ventana anterior? Aunque no se ve en el panel central, el listado de tramas del panel superior nos dice que se trata de un mensaje ICMP de petición de eco. ¿Qué comando de los que se han ejecutado en el “PC_A0_55” ha generado el datagrama IP que se muestra en la ventana anterior? Este datagrama tiene 62 octetos de datos, lo cual quiere decir que el mensaje ICMP de petición de eco tiene 54 octetos de datos opcionales (62 menos los 8 octetos de los campos que van delante de los datos opcionales). Si nos fijamos en las opciones de los comandos PING vemos que únicamente el segundo comando PING genera mensajes ICMP con 54 octetos de datos opcionales. ¿Habría llegado hasta su destino este datagrama que estamos analizando si algún router intermedio lo hubiese tenido que fragmentar? En ese caso no habría podido llegar, pues el bit DF está puesto a 1, lo cual hace que los routers, en lugar de fragmentarlo, lo descarten cuando sea necesario fragmentarlo. Este bit se ha puesto a uno porque en el comando PING se ha usado la opción “–f”. Puede observarse como, efectivamente en el campo “Flags/Fragment Offset”, el segundo bit (el DF) está a 1 y por eso el analizador de protocolos lo etiqueta como “Don´t Fragment” (No Fragmentar). ¿Habría llegado hasta su destino este datagrama que estamos analizando si se hubiese encontrado en su camino con un red cuya MTU (Maximum Transfer Unit) fuese de 90 octetos? Sí, pues aunque tiene prohibido ser fragmentado, realmente no necesita ser fragmentado para atravesar una red con MTU de 90 octetos. El datagrama tiene una longitud total (“Total Length”) de 82 octetos, por lo que cabe sin fragmentarse por redes cuya MTU sea mayor o igual a 82 octetos. Página 11 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Ha llegado a su destino el datagrama IP contenido en la trama con ID=7 que se muestra en el listado de tramas de la ventana anterior? Este datagrama IP contiene la respuesta al mensaje ICMP que se ha enviado al ejecutarse el segundo comando PING. Si observamos la salida en pantalla del segundo comando PING podemos ver que efectivamente llega la respuesta desde 210,93.105.13, por lo que podemos afirmar que este datagrama llega correctamente a su destino. ¿Con qué tiempo de vida (“Time To Live”) se envía el datagrama contenido en la trama con ID=7 que se muestra en el listado de tramas de la ventana anterior? Con un tiempo de vida de 128. Sabemos esto porque la salida del segundo comando PING nos dice que este datagrama llega al “PC_A0_55” con un tiempo de vida de 124 (TDV=124) y como vemos en la topología de la red que el datagrama ha pasado por 4 routers para llegar a su destino, quiere decir que el tiempo de vida con el que se envió originalmente es de 124 más 4, lo que nos da 128. ¿Por qué sabe el analizador de protocolos que el campo “Checksum” de la cabecera IP contenida en la trama con ID=6 que se muestra en la ventana anterior tiene un valor correcto? El analizador etiqueta como “Correct” el campo “Checksum” porque se ha encargado de calcularlo. Para ello suma todas las palabras de 16 bits que componen la cabecera salvo el propio “Checksum”, sin olvidar que las opciones, de haberlas, también forman parte de la cabecera. En nuestro caso la suma sería 4540 + 0052 + B401 + 4000 + 0101 + C005 + 0537 + D25D + 690D lo cual daría como resultado 33B3A. Como es mayor de 16 bits, los bits más significativos se eliminan y se suman otra vez a los 16 bits menos significativos, lo que en nuestro caso significa sumar 3B3A + 3 obteniéndose 3B3D. Esta cifra aún no es el checksum, pues falta complementarlo a uno. Al hacer el complemento a uno de 3B3D obtenemos C4C2 que coincide con el “Checksum” que aparece en la cabecera, así que podemos decir que éste es correcto y que la cabecera está libre de errores, o al menos de errores que se puedan detectar mediante esta sencilla técnica de detección de errores. A continuación se muestra la trama con ID=9 contenida en el archivo “fichero55.cap”: ¿Cómo sabe el analizador que es correcto el campo “Checksum” del mensaje ICMP de esta trama? Lo calcula nuevamente y comprueba que coincide con el que ha recibido. Para calcularlo realiza la suma de todas las palabras de 16 bits del mensaje ICMP, salvo el propio checksum, que no es sumado. Si el número de octetos fuese impar, como en nuestro caso, se añade un octeto a cero al final para que haya un numero entero de palabras de 16 bits. En nuestro caso la suma es 0800 + 0100 + 5F00 + 6162 + 6364 + 6566 + 6768 + 696A + 6B6C + 6D6E + 6F70 + 7172 + 7374 + 7576 + 7761 + 6200 = 5DF05. Si el número que hemos obtenido fuese mayor de 16 bits, cogeríamos los bits sobrantes y los volveríamos a sumar a los 16 bits menos significativos, lo que en nuestro caso sería DF05 + 5 = DF0A. Por último, el resultado de 16 bits así obtenido se complementa a uno para obtener el checksum. En nuestro caso el complemento a uno de DF0A es 20F5, que coincide exactamente con el checksum que hemos recibido. Quiere esto decir que el mensaje ICMP no tiene errores, o al menos que no tiene errores que puedan detectarse con esta sencilla técnica de detección de errores. ¿Por qué no tiene problemas de tiempo de vida el mensaje ICMP generado por el segundo comando PING? Porque se genera con un tiempo de vida de valor 5, que es el valor mínimo suficiente para poder recorrer una ruta que tenga 4 routers, justo los que separan al “PC_A0_55” del “PC_DE_13”. Página 12 del ejercicio7.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 8: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen listados a continuación: Página 1 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 192.5.5.55 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 192.5.5.1 C:\WINDOWS>arp –a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 Tipo dinámico C:\WINDOWS>ping -n 1 -l 172 219.17.100.16 Haciendo ping a 219.17.100.16 con 172 bytes de datos: Respuesta desde 219.17.100.16: bytes=172 tiempo=64ms TDV=126 Estadísticas de ping para 219.17.100.16: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 64ms, máximo = 64ms, promedio = 64ms C:\WINDOWS>ping -n 1 -l 173 219.17.100.16 Haciendo ping a 219.17.100.16 con 173 bytes de datos: Respuesta desde 219.17.100.16: bytes=173 tiempo=73ms TDV=126 Estadísticas de ping para 219.17.100.16: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 73ms, máximo = 73ms, promedio = 73ms C:\WINDOWS>ping -n 1 -l 345 219.17.100.16 Haciendo ping a 219.17.100.16 con 345 bytes de datos: Respuesta desde 219.17.100.16: bytes=345 tiempo=122ms TDV=126 Estadísticas de ping para 219.17.100.16: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 122ms, máximo = 122ms, promedio = 122ms C:\WINDOWS> ¿En que red está el ordenador al que le estamos haciendo PING? Estamos haciendo PING al “PC_B_16” desde el “PC_A0_55”. El “PC_B_16” está en la red 219.17.100.0 /24, que es distinta a la red del equipo que realiza los PINGs, pero que está conectada a ella mediante una serie de routers y otras redes. ¿Se habrá generado alguna petición ARP en la red del “PC_A0_55”? Todo el tráfico de tramas es entre el “Router_A” y el “PC_A0_55” y por el comando “arp –a” vemos que el PC conoce la MAC del router antes de empezar a ejecutarse el primer comando PING. A menos que dicha entrada de la caché ARP del PC caduque justo antes de ejecutar el primer comando PING, el PC no realizará ninguna petición ARP. No sabemos si el router conoce la MAC del PC, aunque parece lógico pensar que si el PC conoce la del router, el router conocerá la del PC, así que es muy probable que el router tampoco realice una petición ARP para averiguar la dirección MAC del “PC_A0_55”. ¿Cuántas rutas puede seguir un paquete para ir desde “PC_A0_55” a “PC_B_16” y viceversa? Sólo hay una ruta posible, la que pasa por el “Router_A” y el “Router_B”. ¿Cuántos mensajes ICMP de petición de eco se han generado? Tres mensajes, uno por cada comando PING, ya que se ha usado la opción “-n” con el parámetro 1. ¿Se han recibido todos los mensajes ICMP de respuesta de eco que se estaban esperando? Sí. La salida en pantalla de los comandos PING indica que se han recibido todos las respuestas. Se ha capturado el tráfico generado por los comandos anteriores tanto en la red origen de los PINGs como en la red destino de los PINGs. Es decir, se han capturado las tramas vistas por el “PC_A0_55” en su red y las tramas vistas por el “PC_B_16” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_A0_55”, el cual se ha almacenado en el archivo “fichero55.cap”: Página 2 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Y a continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del ordenador “PC_B_16”, el cual se ha almacenado en el archivo “fichero16.cap”: Las dos ventanas anteriores están mostrando en el listado de tramas información acerca del instante de tiempo en que se capturaron las tramas, medido en segundos y de forma relativa al instante en que se capturó la primera de las tramas. En dicho listado se muestran también las direcciones MAC origen y destino de las tramas. Puede observarse que en ambas redes sólo hay intercambio de tramas entre el router por defecto de la red y un único PC. No hay señales de que otros PCs hayan enviado alguna trama. Página 3 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Tienen las tramas que emite el “PC_A0_55” el tamaño que se esperaba? El “PC_A0_55” ha emitido tres tramas dirigidas al router por defecto de su red. Se distinguen por tener como MAC origen 000102B44EB0 y como MAC destino 00107B81AE26. Todas ellas están etiquetadas en la columna “Summary” del listado de tramas con el texto “ICMP Echo Request”, y sus longitudes son 218, 219 y 391 octetos respectivamente. Cada trama se ha generado al ejecutar un comando PING. Son de diferentes longitudes porque cada comando PING usaba una longitud distinta para los datos opcionales del mensaje ICMP de petición de eco. El primer PING incluía en el mensaje ICMP de petición de eco unos 172 octetos de datos opcionales, que sumados a los 8 del principio del mensaje ICMP de petición de eco, los 20 de la cabecera mínima de IP y los 18 de los diferentes campos de cabecera y cola de la trama, dan lugar a una trama de un tamaño (“Size”) de 218 octetos, que es precisamente lo que nos dice el analizador que mide la primera de las tramas que aparecen en el listado de tramas. Análogamente, el segundo PING, con 173 octetos de datos opcionales, se comprueba que hecho que el PC genere una trama de 219 octetos. Lo mismo ocurre con el tercer PING de 345 octetos datos opcionales, que ha generado una trama con un tamaño de 391 octetos., así que podemos decir que las todas las tramas emitidas por “PC_A0_55” tienen una tamaño acorde al contenido que transportan. ¿Tienen las tramas que emite el “PC_B_16” el tamaño que se esperaba? El “PC_B_16” ha emitido tres tramas dirigidas al router por defecto de su red. Se distinguen por tener como MAC origen 00047699097C y como MAC destino 00D058ADCD17. Todas ellas están etiquetadas en la columna “Summary” del listado de tramas con el texto “ICMP Echo Reply”, y sus longitudes son 218, 219 y 391 octetos respectivamente. Cada trama se ha generado como respuesta a la llegada de un mensajes ICMP de petición de eco proveniente del “PC_A0_55”. Los mensajes ICMP de respuesta de eco son del mismo tamaño que los mensajes ICMP de petición de eco a los que están asociados. Quiere esto decir que los tres mensajes ICMP de respuesta de eco tendrán 172, 173 y 345 octetos respectivamente de datos opcionales, pues eso es lo que tenían los mensajes de petición de eco. Por tanto, que el “PC_B_16” haya generado tramas con un tamaño de 218, 219 y 391 octetos es completamente normal. Nótese que son los mismos tamaños de las tramas emitidas por el “PC_A0_55”. ¿Cuántas tramas le envía el “Router_A” al “PC_A0_55”? Le envía 5 tramas. ¿Le ha llegado al “PC_A0_55” algún fragmento de datagrama? Sí. Según se ve en el panel central de la primera ventana de captura, la trama con ID=3 del “fichero55.cap” muestra en su interior un fragmento de datagrama. El campo “Flags/Fragment Offset” vale 0x2000 (hexadecimal), luego los “Flags” valen 001 en binario, por lo que el bit MF vale 1, indicando que hay más fragmentos (“More Fragments”) detrás de este fragmento. Como el campo “Fragment Offset” vale 0, quiere decir que este fragmento es el primero de todos los fragmentos en los que se ha dividido el datagrama original. El datagrama original, en lugar de llegar entero y encapsulado en una sola trama, tendrá que llegar fragmentado y cada uno de los fragmentos encapsulado en una trama, lo cual parece ser la razón por la cual el “Router_A” le ha hecho entrega de más de tres tramas al “PC_A0_55”. ¿Se ha producido fragmentación en el primer PING? No. Ya hemos comentado antes que la primera trama que envía “PC_A0_55” contiene un datagrama completo y como la primera trama que recibe “PC_A0_55”, conteniendo el mensaje ICMP de respuesta de eco, tiene el mismo tamaño que la que envió, podemos decir que en el viaje desde “PC_B_16” hacia “PC_A0_55” no se produce fragmentación. Simplemente analizando el tráfico visto en la red de “PC_A0_55” no podemos saber si el datagrama que se ha enviado se ha fragmentado. Podría ocurrir que aunque el que nos llega no está fragmentado, el que hemos enviado si se haya fragmentado, debido a que haya seguido otra ruta distinta. En nuestro caso, como sabemos que la ruta seguida a sido la misma, sabemos que si no se ha fragmentado en el camino de vuelta, tampoco tienen por qué fragmentarse en el camino de ida. Además, puesto que nosotros también tenemos acceso al tráfico capturado en la red del “PC_B_16”, podemos confirmar que el mensaje de petición de eco que envió “PC_A0_55” ha llegado en un datagrama completo y sin fragmentar. ¿Podemos hacer alguna afirmación acerca de la MTU de las redes que unen “PC_A0_55” y “PC_B_16” después de analizar el tráfico generado por la ejecución del primer comando PING? Ya sabíamos que la MTU de las redes en las que se encuentran ambos PCs es de 1500, pues son redes Ethernet. Son redes capaces de transportar sin fragmentar datagramas IP con una longitud total de hasta 1500 octetos. De la red que une el “Router_A” con el “Router_B” lo único que podemos decir hasta el momento es que si ha sido capaz de dejar pasar un datagrama de 200 octetos de longitud total, su MTU debe ser mayor o igual a 200 octetos. Nótese que sabemos que el datagrama IP emitido por el primer comando PING tiene 200 octetos de longitud total porque 200 es la suma de Página 4 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ 20 octetos de la cabecera IP mínima, 8 octetos de cabecera ICMP de petición de eco y 172 octetos de datos opcionales del datagrama ICMP de petición de eco. ¿Cuándo se ejecutó el segundo comando PING? Analizando los tiempos que se muestran en la columna “Elapsed [sec]” del listado de tramas, podemos ver que el segundo comando PING se ejecutó, aproximadamente, unos 23 segundos después de que se ejecutase el primer comando PING. ¿Cuándo se ejecutó el tercer comando PING? Analizando los tiempos que se muestran en la columna “Elapsed [sec]” del listado de tramas, podemos ver que el tercer comando PING se ejecutó, aproximadamente, unos 46 segundos después de que se ejecutase el primer comando PING. ¿Se ha producido fragmentación en el segundo comando PING? Sí que se ha producido fragmentación. Sabemos, por el tamaño de la segunda trama enviada por “PC_A0_55”, que ésta contenía un datagrama IP sin fragmentar que transportaba el mensaje ICMP de petición de eco enviado por el segundo comando PING. Por otra parte, nos damos cuenta de que, a los pocos milisegundos de enviar la segunda trama, al “PC_A0_55” le llegan dos tramas que, por su tamaño, son incapaces de albergar un datagrama completo conteniendo el mensaje ICMP de respuesta de eco que se está esperando. Sin embargo, por la salida en pantalla del segundo comando PING, sabemos que la respuesta al PING llegó a los 73 milisegundos, por lo que podemos decir que esas dos tramas que se han recibido en la red del “PC_A0_55”, con ID=3 e ID=4, contienen los fragmentos en los que se ha dividido el datagrama con el mensaje ICMP de respuesta de eco que ha enviado el “PC_B_16”. Naturalmente se puede llegar a esta misma conclusión realizando, con ayuda del analizador de protocolos, una inspección más minuciosa del contenido de estas tramas. ¿Qué podemos decir de la MTU de la red que une al “Router_A” con el “Router_B”, a la vista del análisis del tráfico generado por el primer y el segundo PING? Ya habíamos dicho que la MTU de dicha red era mayor o igual que 200, pues dejó pasar un datagrama de 200 octetos de longitud total generado por el primer comando PING. Como acabamos de decir que se ha producido fragmentación con el segundo comando PING, en el cual lo que se envía y se recibe es un datagrama IP de 201 octetos de longitud total, esto quiere decir que la MTU de dicha red es inferior a 201 octetos. En conclusión, debemos afirmar que la MTU de la red que une al “Router_A” con el “Router_B” es de 200 octetos exactamente. ¿Por qué dice el analizador de protocolos que la trama con ID=3 del “fichero55.cap” tiene incorrecto el valor del campo “Checksum” del mensaje ICMP contenido en dicha trama? El analizador ha calculado el “Checksum” del trozo de mensaje ICMP contenido en esta trama, lo cual le da un valor de 0x7D8C. Sin embargo el valor almacenado en el campo “Checksum” del mensaje ICMP es de 0x3EB7, lo cual le induce a pensar que este “Checksum” es erróneo. En realidad no hay tal error, pues lo que debería hacer el analizador es calcular el “Checksum” del mensaje ICMP completo, para lo cual debería buscar todos los trozos del mensaje ICMP, que están repartidos en más de una trama, ya que este datagrama es realmente un fragmento de datagrama. ¿Qué estructura tiene el fragmento contenido en la trama con ID=3 del archivo “fichero55.cap”? Tiene una estructura idéntica a la de un datagrama normal y corriente. Los fragmentos de datagrama tienen una cabecera IP del mismo tipo que los datagramas normales. Lo que ocurre cuando un datagrama se fragmenta es que sus datos son repartidos en varios datagramas llamados fragmentos. Estos datagramas se sabe que son fragmentos porque, o tienen a valor 1 el bit “MF” de la cabecera IP, o tienen el campo “Fragment Offset” a un valor distinto de cero, o ambas cosas. ¿Qué contienen las trama con ID=2 e ID=3 del archivo “fichero16.cap”? Como ya hemos dicho anteriormente, la trama con ID=4 capturada en la red del “PC_B_16” contiene el mensaje ICMP que envía dicho PC como respuesta al mensaje ICMP de petición de eco generado por el segundo comando PING. Nótese como en el panel central de la ventana de captura puede verse que la longitud total de dicho datagrama es de 201 octetos, que es lo adecuado para contener un mensaje ICMP de petición de eco con 173 octetos de datos opcionales. Pues bien, si esta trama es la respuesta de eco, quiere decir que las tramas con ID=2 e ID=3 deben transportar los dos fragmentos en que se ha dividido el datagrama que contenía el mensaje ICMP de petición de eco. Nótese también que los tiempos de llegada de estas tres tramas son muy similares, en torno a los 23 segundos, y que los tamaños de las dos primeras son inferiores al tamaño de la tercera de ellas. ¿Qué quiere decir el texto “IP PRO=ICMP ID=62237 LEN=25 FRAG” que aparece en la columna “Summary”, asociado a la trama con ID=4 del archivo “fichero55.cap”? Quiere decir que la trama contiene un datagrama IP que a su vez contiene datos del protocolo ICMP. El datagrama IP tiene el valor 62237 en el campo “Identification” de su cabecera, siendo 25 octetos la longitud total del datagrama. Además, nos indica que el datagrama IP no es un datagrama completo, sino que se trata de un fragmento. Página 5 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación se muestra el contenido de la trama con ID=4 del archivo “fichero55.cap”: ¿Contiene un fragmento de datagrama la trama con ID=4 del “fichero55.cap”? Sí. Concretamente se trata del fragmento que ocupa el último lugar de la serie de fragmentos en que se ha dividido el datagrama original, pues el bit “MF” (“More Fragments”) está a cero. Nótese que el bit “MF” es el tercero de los bits del campo “Flags” y que, cuando su valor es cero, el analizador de protocolos lo etiqueta con el texto “Last Fragment” (último fragmento). ¿Dónde están los demás fragmentos que derivan del mismo datagrama original del que deriva el fragmento mostrado en la trama con ID=4 del ·fichero55.cap”? En la trama con ID=3 del “fichero55.cap”, mostrada en una de las ventanas anteriores, se encuentra el otro fragmento de datagrama que falta para poder reconstruir el datagrama completo. Sabemos que ese fragmento deriva del mismo datagrama original que el otro fragmento pues el campo “Identification” tiene el mismo valor en ambos casos, 62237. Por otro lado, en la cabecera de dicho fragmento puede verse que se trata del primer fragmento, pues el campo “Fragment Offset” vale cero y el bit “MF” está a valor 1. Se trata de un fragmento con 176 octetos de datos (196 de longitud total menos 20 de cabecera), que son precisamente los octetos que indica el campo “Fragment Offset” del fragmento de datagrama contenido en la trama con ID=4 del “fichero55.cap”. Es por eso que sabemos que un fragmento va justo a continuación del otro, sin más fragmentos intermedios. Nótese que el valor del campo “Fragment Offset” viene expresado en grupos de 8 octetos, por lo que los 176 octetos que hemos mencionado antes se calculan multiplicando por 8 el valor del dicho campo, que en este caso era de 22 (0000000010110 en binario). ¿Cómo sabemos de que tipo son los 5 octetos de datos contenidos en el fragmento de datagrama de la trama con ID=4 del “fichero55.cap”? A través del valor del campo “Protocol” de la cabecera IP del fragmento. En este caso, al valer 1 sabemos que se trata de 5 octetos de datos del protocolo ICMP. No podemos interpretarlos porque para ello necesitaríamos conocer de que tipo de mensaje ICMP se trata, lo cuál es algo que sólo se sabe analizando el primer octeto del mensaje ICMP. Página 6 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Por qué tiene un tamaño de 64 octetos la trama ID=4 del “fichero55.cap”, si el contenido de dicha trama es un fragmento de datagrama cuya longitud total (“Total Length”) es de sólo 25 octetos? En principio bastaría con una trama de 43 octetos para dar cabida un contenido de 25 octetos. Lo que ocurre es que las tramas Ethernet deben tener un tamaño mínimo de 64 octetos. Ese es el motivo de que el campo “Data/Padding” (Datos/Relleno) aparezca con una longitud de 21 octetos. Esos 21 octetos de relleno pueden tomar cualquier valor, pues no son serán tratados por el equipo que reciba los 25 octetos del fragmento de datagrama. Es la tarjeta Ethernet la que se encarga automáticamente de introducir este relleno siempre que sea necesario. ¿Porqué el fragmento de datagrama de la trama con ID=3 del “fichero55.cap” es de una longitud total de 196 octetos cuando sabemos que la red que ha causado la fragmentación tiene una MTU de 200 octetos? Todos los fragmentos, con excepción del último, tienen que tener unos datos cuya longitud sea múltiplo de 8. Esto es así porque un cada fragmento se anota la longitud del los datos que van delante de ellos, pero medida en grupos de 8 octetos. Así, este fragmento tiene 176 octetos de datos (196 menos 20 de cabecera) y el siguiente fragmento (el de la trama con ID=4 del “fichero55.cap”) tiene un valor de 22 en su campo “Fragment Offset”, indicando que hay 176 (22 por 8) octetos de datos delante de él. Por todo ello, si el fragmento que nos ocupa hubiese tenido una longitud total de 197, 198, 199 o 200 octetos (el máximo), los datos que hubiese contenido no habrían tenido una longitud múltiplo de 8. Cuando se fragmenta se intenta crear fragmentos del mayor tamaño posible, de forma que el último fragmento sea lo menor posible, cumpliendo siempre la norma de que todos los fragmentos, con excepción del último, deben tener unos datos cuya longitud sea múltiplo de ocho. A continuación se muestra el contenido de la trama con ID=2 del archivo “fichero55.cap”: ¿Por qué sabemos que el mensaje ICMP de respuesta de eco contenido en las tramas con ID=3 e ID=4 del “fichero55.cap” se corresponde con el mensaje ICMP de petición de eco contenido en la trama con ID=2 del “fichero55.cap”? Porque el valor del los campos “Identified” y “Sequence Number” es el mismo en ambos mensajes. ¿Cuáles son los tres últimos caracteres de los datos opcionales del mensaje ICMP de petición de eco que fueron enviados por “PC_A0_55” mediante la ejecución del segundo comando PING? Página 7 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Los datos opcionales que se devuelven en la respuesta de eco son los mismos que se han recibido en la petición de eco. En la trama con ID=4 del “fichero55.cap” pueden verse los 5 últimos octetos del datagrama IP que contiene el mensaje ICMP de respuesta de eco debido al segundo comando PING. Estos 5 caracteres que, según se aprecia en la parte inferior de la ventana de captura son “hijkl”, se corresponden con la parte final del mensaje ICMP, que es precisamente el campo “Optional Data”, por lo que podemos decir que los tres caracteres a los que se refiere la pregunta son “jkl”. ¿Debe coincidir el valor del campo “Identification” de la cabecera IP de un datagrama que contenga un mensaje ICMP de respuesta de eco con el valor del mismo campo del datagrama que contenga el mensaje ICMP de petición de eco al que se encuentra asociado dicho mensaje de respuesta? No. Cada equipo va numerando los datagramas IP de forma independiente al resto de equipos, sin tener en cuenta el contenido de los datagramas y procurando distanciar al máximo en el tiempo la emisión de datagramas con el mismo valor del campo “Identification”. ¿En cuantos fragmentos ha llegado al “PC_A0_55” la respuesta al tercer comando PING? En dos fragmentos. El primero le ha llegado en una trama con 214 octetos de tamaño, lo cual quiere decir que el primer fragmento mide 196 octetos de longitud total y tiene 176 octetos de datos (176 es múltiplo de ocho). El segundo fragmento le ha llegado en una trama con 215 octetos de tamaño, lo cual quiere decir que el segundo fragmento mide 197 octetos de longitud total y tiene 177 octetos de datos (177 no es múltiplo de ocho). 176 más 177 son 353 octetos de datos, lo que nos da una longitud total de 373 octetos para el datagrama original sin fragmentar. Esto concuerda perfectamente con los 391 octetos que tiene por tamaño la trama emitida por “PC_A0_55” como consecuencia de la ejecución del tercer comando PING. ¿Supone un error el que se haya recibido el segundo fragmento con una longitud mayor al primero? En este caso no pues el primer fragmento es de la mayor longitud posible y el último fragmento es de la menor longitud posible, aunque ésta sea mayor que la del primero. ¿Se habrían recibido estos dos mismos fragmentos como respuesta al tercer comando PING, caso de haber tenido una MTU de 196 octetos la red que une al “Router_A” con el “Router_B”? No. En ese caso el segundo fragmento no cabría por la red, por lo que se habrían generado tres fragmentos en lugar de dos. ¿Se habrían recibido estos dos mismos fragmentos como respuesta al tercer comando PING, caso de haber tenido una MTU de 197 octetos la red que une al “Router_A” con el “Router_B”? Sí. Ambos fragmentos habrían cabido perfectamente. ¿Se podría haber averiguado la MTU de la red que une al “Router_A” con el “Router_B” analizando únicamente el tráfico generado en la red del “PC_A0_55” como consecuencia de la ejecución del tercer comando PING? No. La prueba está en que una MTU de 197 octetos habría generado unos fragmentos iguales a los que se han generado para una MTU de 200 octetos, como resultado de la ejecución del tercer comando PING. A continuación se muestra el contenido de la trama con ID=7 del archivo “fichero16.cap”: ¿Cuál es el valor del campo “Checksum” de la cabecera IP del datagrama contenido en la trama con ID=7 del archivo “fichero16.cap”? Como estamos viendo únicamente el volcado en hexadecimal de la trama, debemos averiguar la posición que ocupa dicho campo “Checksum” en la trama sin ayuda del analizador de protocolos. Para ello podemos empezar a contar desde el principio de la trama los campo que le preceden: MAC destino (6 octetos), MAC origen (6 octetos), “EtherType” (2 octetos), “Version/Header Length” (1 octeto), “Type of Service” (1 octeto), “Total Length” (2 octetos), “Identification” (2 octetos), “Flags/Fragment Offset” (2 octetos), “Time To Live” (1 octeto) y “Protocol” (1 octeto), lo que nos indica que el campo “Checksum” de la cabecera IP está en la posición 0x18 (hexadecimal) empezando a contar desde el cero. Y como el campo “Checksum” ocupa dos octetos, resulta que su valor es 0x410C en hexadecimal. Página 8 del ejercicio8.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 9: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_DE_13” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen listados a continuación: Página 1 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 210.93.105.13 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 210.93.105.1 C:\WINDOWS>ping -n 1 -l 232 223.8.151.10 Haciendo ping a 223.8.151.10 con 232 bytes de datos: Respuesta desde 223.8.151.10: bytes=232 tiempo=98ms TDV=126 Estadísticas de ping para 223.8.151.10: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 98ms, máximo = 98ms, promedio = 98ms C:\WINDOWS>ping -n 1 -l 10 -f 223.8.151.10 Haciendo ping a 223.8.151.10 con 10 bytes de datos: Respuesta desde 223.8.151.10: bytes=10 tiempo=17ms TDV=126 Estadísticas de ping para 223.8.151.10: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 17ms, máximo = 17ms, promedio = 17ms C:\WINDOWS>ping -n 1 -l 233 223.8.151.10 Haciendo ping a 223.8.151.10 con 233 bytes de datos: Respuesta desde 223.8.151.10: bytes=233 tiempo=106ms TDV=126 Estadísticas de ping para 223.8.151.10: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 106ms, máximo = 106ms, promedio = 106ms C:\WINDOWS>ping -n 1 -l 1300 -f 223.8.151.10 Haciendo ping a 223.8.151.10 con 1300 bytes de datos: Respuesta desde 210.93.105.1: Es necesario fragmentar el paquete pero se especificó DF. Estadísticas de ping para 223.8.151.10: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS>ping -n 1 -l 1000 -f 223.8.151.10 Haciendo ping a 223.8.151.10 con 1000 bytes de datos: Es necesario fragmentar el paquete pero se especificó DF. Estadísticas de ping para 223.8.151.10: Paquetes: enviados = 1, Recibidos = 0, perdidos = 1 (100% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS> ¿En que red está el ordenador al que le estamos haciendo PING? Estamos haciendo PING al “PC_C_10” desde el “PC_DE_13”. El “PC_C_10” está en la red 223.8.151.0 /24, que es distinta a la red del equipo que realiza los PINGs, pero que está conectada a ella mediante una serie de routers y otras redes. ¿Cuántas rutas puede seguir un paquete para ir desde “PC_DE_13” a “PC_C_10” y viceversa? Sólo hay una ruta posible, la que pasa por el “Router_D” y el “Router_C”. ¿Cuántos mensajes ICMP hemos solicitado que se generen mediante los comandos PING? Cinco mensajes, uno por cada comando PING, ya que se ha usado la opción “-n” con el parámetro 1. ¿Se han recibido todos los mensajes ICMP de respuesta de eco que se estaban esperando? No. Sólo los tres primeros comandos PING han recibido de vuelta mensajes ICMP de respuesta de eco. Los dos últimos comandos PING no han recibido respuesta de parte de “PC_C_10” debido a que el mensaje ICMP de petición de eco no pudo llegar al necesitar fragmentarse y habérselo prohibido. Página 2 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Se ha capturado el tráfico generado por los comandos anteriores tanto en la red origen de los PINGs como en la red destino de los PINGs. Es decir, se han capturado las tramas vistas por el “PC_DE_13” en su red y las tramas vistas por el “PC_C_10” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_DE_13”, el cual se ha almacenado en el archivo “fichero13.cap”: Y a continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del ordenador “PC_C_10”, el cual se ha almacenado en el archivo “fichero10.cap”: ¿Qué información muestran las dos ventanas anteriores? Únicamente están mostrando el listado con de tramas capturadas en cada una de las redes. Para cada trama sólo se está mostrando el tamaño y las direcciones MAC origen y destino junto con un pequeño resumen (“Summary”) del contenido de la misma. ¿Cuántos equipos están intercambiando tramas en la red del “PC_DE_13”? Sólo dos, pues las dos únicas direcciones MAC que aparecen en dichas tramas son la 00D058ADCD11, que es la dirección MAC de la interfaz e0 del “Router_D” y la 000102B44F4B, que es la MAC del “PC_DE_13”. Esto no tiene por qué significar que los que están intercambiando paquetes sean el “Router_D” y el “PC_DE_13”. Habría que ver las direcciones IP de los paquetes contenidos en las tramas para saber qué equipos están enviándose de datagramas IP. ¿Cuántos equipos están intercambiando tramas en la red del “PC_C_10”? Sólo dos, pues las dos únicas direcciones MAC que aparecen en dichas tramas son la 00D058ADCD13, que es la dirección MAC de la interfaz e0 del “Router_C” y la 000476990971, que es la MAC del “PC_C_10”. ¿Genera el “PC_DE_13” alguna trama que contenga fragmentos de datagrama? No. Los comandos PING que se han ejecutado en “PC_DE_13” generan datagramas IP con una longitud menor de 1500 octetos, los cuales caben en la red Ethernet a la que está conectado dicho PC, sin necesidad de ser fragmentados. ¿Genera el “PC_C_10” alguna trama que contenga fragmentos de datagrama? No. Las tramas generadas por “PC_C_10” contienen datagramas del mismo tamaño que los que envió el “PC_DE_13”, puesto que son los mensajes ICMP de respuesta de eco asociados a los mensajes ICMP de petición de eco que ha enviado el “PC_DE_13”. Quiere esto decir que como los comandos PING que se han ejecutado en “PC_DE_13” han generado datagramas IP menores de 1500 octetos, los datagramas generados por “PC_C_10” también lo serán menores que y cabrán en la red Ethernet a la que está conectado el “PC_C_10” sin necesidad de ser fragmentados. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_DE_13”, el cual se ha almacenado en el archivo “fichero13.cap”, de forma que en el listado de tramas se vean las direcciones de red junto con información temporal: Página 3 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Proviene del “PC_C_10” el datagrama IP que se muestra decodificado en la ventana anterior? Página 4 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ No. Proviene del “Router_D”, pues la IP origen de dicho datagrama es la 210.93.105.1, que es precisamente la dirección IP de la interfaz e0 de dicho router. A juzgar por el listado de tramas que aparece en la ventana anterior, éste es el único datagrama de los que ha recibido el “PC_DE_13” que no ha sido enviado por el “PC_C_10”. ¿Qué indica el datagrama IP contenido en la ventana anterior? El datagrama IP que ha enviado el router contiene un mensaje ICMP del tipo 3, “Destination Unreachable” (Destino inalcanzable) y cuyo código es el 4, “Fragmentation Needed but Don’t-Fragment Bit Set” (Se necesita fragmentar pero el bit DF está activado). Este mensaje ICMP es enviado por el “Router_D” al “PC_DE_13” para avisarle de que va a descartar un datagrama que dicho PC ha enviado, siendo el motivo del descarte el que el datagrama necesita ser fragmentado para poder ser enviado y se ha prohibido su fragmentación mediante la activación del bit DF en dicho datagrama. Este mensaje ICMP de tipo 3 incluye una copia de parte del datagrama descartado, concretamente su cabecera IP y 8 octetos (64 bits) de datos. ¿Por qué en el datagrama mostrado en la ventana anterior se pueden ver dos cabeceras IP? La primera de ellas es la cabecera del datagrama que se encuentra encapsulado en la trama. Este datagrama contiene un mensaje ICMP de tipo 3 que informa de un problema con un datagrama. Dicho mensaje ICMP contiene un trozo del datagrama que ha tenido el problema con objeto de que el que lo envió pueda saber exactamente de qué datagrama se trata, así que ese es el motivo por el que el analizador de protocolos nos está mostrando una segunda cabecera IP. Como resulta que en este caso el datagrama con el problema era un mensaje ICMP de petición de eco, podemos ver un trozo de dicho mensaje ICMP a continuación de la segunda cabecera. Nótese como el router sola ha podido copiar los 8 primeros octetos del mensaje ICMP, por lo que ha tenido que omitir todos los datos opcionales. No obstante, estos datos opcionales del mensaje ICMP que han tenido que ser omitidos no son algo relevante para que el “PC_DE_13” averigüe la causa del problema. ¿Qué comando PING generó el datagrama IP del cuál nos está informando el “Router_D”? Ha sido el cuarto comando PING. Nótese que el campo “Total Length” de la segunda cabecera IP que podemos ver en la ventana anterior, correspondiente al datagrama descartado, tiene un valor de 1328. Precisamente es el cuarto comando PING el único que ha generado un datagrama IP de 1328 octetos de longitud total, pues es el único en el que se ha usado la opción “-l” con el parámetro 1300. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_C_10”, el cual se ha almacenado en el archivo “fichero10.cap”, de forma que en el listado de tramas se vean las direcciones de red junto con información temporal: ¿Con quién está intercambiando paquetes el “PC_C_10”? Unicamente con el “PC_DE_13”, según se puede comprobar en el listado de tramas tras analizar las direcciones IP origen y destino de los paquetes contenidos en cada una de las tramas. ¿Qué relación guarda cada trama del “fichero10.cap” con cada uno de los comandos PING? Es posible averiguar esto sin necesidad de entrar a analizar en detalle el interior de las tramas, simplemente estudiando el instante en el que se emiten las tramas, su tamaño y el resumen (“Summary”) de su contenido. Se observa en la ventana anterior que el “PC_C_10” transmite tres tramas de tamaños 278, 64 y 279 octetos, lo cual se corresponde con las tres tramas de idénticos tamaños que ha emitido el “PC_DE_13”. Es lógico pensar que estas tres tramas que contienen mensajes de respuesta de eco se corresponden con los tres primeros comandos PING que se han ejecutado, cuyos datos opcionales eran de 232, 10 y 233 octetos respectivamente. Por otro lado, pocos milisegundos antes de la transmisión de cada una de estas tramas se aprecia la llegada de unas tramas que contienen datagramas (fragmentos, sin duda) provenientes del “PC_DE_13” y que están relacionadas también con las ejecución de los tres primeros comandos PING. ¿Por qué no se aprecia en la red del “PC_C_10” el efecto del cuarto y del quinto comando PING? Página 5 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Porque, según nos muestra la salida en pantalla de dichos comandos, los datagramas no pueden llegar a su destino debido a que se está prohibiendo su fragmentación (usando la opción “-f” del comando PING) y sin embargo para llegar a su destino necesitan ser fragmentados. ¿Qué podemos decir de la MTU de la red que une al “Router_D” con el “Router_C” después de analizar el tráfico generado en la red del “PC_DE_13” por la ejecución del primer comando PING? Vemos que el primer comando PING ha generado la trama con ID=0 conteniendo un datagrama de 260 octetos de longitud total (240 octetos de datos). El datagrama que llega como respuesta a éste debería ser un datagrama del mismo tamaño pero en su lugar han llegado las tramas con ID=1, ID=2 e ID=3, que en este caso son todas del mismo tamaño y contienen cada una un datagrama de 100 octetos de longitud total (80 octetos de datos), que al reensamblarse darán lugar al datagrama que se espera de 260 octetos de longitud total (20 de cabecera más tres veces 80 octetos de datos). Dicho esto, la única conclusión que podemos sacar acerca de la MTU es que es mayor o igual que 100 y menor o igual que 107. Cualquier MTU en ese rango habría provocado los mismos resultados. ¿Qué podemos decir de la MTU de la red que une al “Router_D” con el “Router_C” después de analizar el tráfico generado en la red del “PC_DE_13” por la ejecución del tercer comando PING? Vemos que el primer comando PING ha generado la trama con ID=6 conteniendo un datagrama de 261 octetos de longitud total (241 octetos de datos). El datagrama que llega como respuesta a éste debería ser un datagrama del mismo tamaño pero en su lugar han llegado las tramas con ID=7, ID=8, ID=9 e ID=10, conteniendo los fragmentos que darán lugar al datagrama que se espera. Las tres primeras tramas son del mismo tamaño pues contiene cada una un datagrama de 100 octetos de longitud total (80 octetos de datos). La cuarta trama (ID=10) contiene un datagrama de 21 octetos de longitud total (1 octeto de datos), lo cuál es síntoma de que ese octeto de datos no cabía en el fragmento que portaba la trama con ID=9. Este hecho es lo que nos hace pensar que la MTU de la red es de 100 octetos exactamente, pues de haber sido 101 octetos, la trama con ID=10 no habría sido necesaria ya que la trama con ID=9 habría contenido un datagrama de 101 octetos. ¿Por qué el mensaje ICMP de tipo 3 mostrado en la trama con ID=12 del “fichero13.cap” no tiene su campo “Unused” a valor cero, tal y como especifica la RFC792, sino que su valor es 0x00000064 en hexadecimal? Eso es porque el router que está enviando este mensaje ICMP de tipo 3 y código 4 es un router que implementa el protocolo “Path MTU Discovery” (descrito en la RFC1191) y es capaz de enviar dichos mensajes ICMP con la siguiente estructura: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 3 | Code = 4 | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused = 0 | Next-Hop MTU | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Internet Header + 64 bits of Original Datagram Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Se observa que el campo “Unused” ocupa ahora solo dos octetos y aparece un nuevo campo “NextHop MTU”, que en nuestro caso vale 0x0064 hexadecimal (100 en decimal) y que sirve para que el router informe de cuál es la MTU de la red que ha provocado el descarte del datagrama al no caber por ella y tener el bit DF activado. ¿Ha generado algún tráfico el quinto comando PING? No. En la red del “PC_DE_13” no se observa ninguna trama con 1036 octetos de tamaño, como sería de esperar. Lo que ha ocurrido es que el mensaje ICMP de tipo 3 y código 4 que ha recibido el “PC_DE_13”, después de la ejecución del cuarto comando PING, ha conseguido que el “PC_DE_13” aprenda que en la ruta al “PC_C_10” hay un estrechamiento que no deja pasar sin fragmentar a los datagramas de tamaño mayor que 100 octetos, por lo que al ejecutar el quinto comando PING el PC nos informa de dicha circunstancia sin llegar siquiera a enviar el datagrama. ¿Qué habría ocurrido si no hubiésemos utilizado la opción “-f” en el segundo comando PING? El bit DF de la cabecera IP del datagrama generado estaría en ese caso a valor 0, permitiendo la fragmentación. No obstante, como el tamaño del datagrama generado es inferior a los 100 octetos de la MTU de la red que debe atravesar, da igual que se active o no se active el bit DF pues el datagrama, al no necesitar ser fragmentado, atravesará en ambos casos dicha red sin ninguna clase de problemas. Página 6 del ejercicio9.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 10: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen listados a continuación: Página 1 del ejercicio10.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 192.5.5.55 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 192.5.5.1 C:\WINDOWS>arp –a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 Tipo dinámico C:\WINDOWS>ping -n 1 -l 1000 210.93.105.13 Haciendo ping a 210.93.105.13 con 1000 bytes de datos: Respuesta desde 210.93.105.13: bytes=1000 tiempo=514ms TDV=124 Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 514ms, máximo = 514ms, promedio = 514ms C:\WINDOWS> ¿Se ha obtenido respuesta por parte del PC al que se le ha hecho PING? Sí. ¿Cuántas redes ha atravesado el datagrama que hemos enviado con el comando PING? Cinco, contando la red origen y la red destino. ¿Se conoce la MTU de las redes que tiene que atravesar el mensaje ICMP de petición de eco? De momento sólo sabemos que la red origen (192.5.5.0 /24) y la red destino (210.93.105.0 /24) son redes Ethernet, por lo que su MTU es de 1500 octetos. ¿Qué MTU deben tener como mínimo todas las redes que se van a atravesar para que no se produzca la fragmentación del datagrama que hemos enviado con el comando PING? El datagrama enviado tiene 1028 octetos de longitud total, luego necesita que las redes por la que pase tengan una MTU mayor o igual que 1028. ¿Enviará el “PC_A0_55” algún fragmento debido a la ejecución del comando PING? No, pues la MTU de 1500 de la red a la que está conectado dicho PC no hace necesaria la fragmentación en este caso, ya que el único datagrama IP que ha enviado mide 1028 octetos. ¿Enviará el “PC_DE_13” algún fragmento debido a la ejecución del comando PING? No, pues la MTU de 1500 de la red a la que está conectado dicho PC no hace necesaria la fragmentación en este caso, ya que el único datagrama IP que ha enviado mide 1028 octetos. Se ha capturado el tráfico generado por el comando PING tanto en la red origen del PING como en la red destino del PING. Es decir, se han capturado las tramas vistas por el “PC_A0_55” en su red y las tramas vistas por el “PC_DE_13” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por “PC_A0_55”, el cual se ha almacenado en el archivo “fichero55.cap”: ¿En cuantos fragmentos se ha dividido el mensaje de respuesta de eco enviado por “PC_DE_13”? Página 2 del ejercicio10.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ En 13 fragmentos. Todas las tramas que le han llegado al “PC_A0_55” contienen un fragmento del datagrama original, cuya longitud total era de 1028 octetos (1008 octetos de datos). Eso concuerda con las trece tramas recibidas. Hay 12 tramas que contienen datagramas con 80 octetos de datos, lo cual hace uno 960 octetos de datos. Si a eso le sumamos los 48 octetos de datos del datagrama de la última trama, tenemos los 1008 octetos de datos del datagrama que ha enviado el “PC_DE_13”. Es interesante destacar que todos los fragmentos son iguales salvo el último, que es donde se mete el sobrante. Todos los fragmentos, a excepción del último, están obligados a tener una longitud de los datos que sea múltiplo de 8, cosa que también se está cumpliendo. ¿Qué puede decirse de la MTU de las redes que han atravesado los datagramas IP, después de analizar el tráfico visto en la red del “PC_A0_55”? De momento sólo podemos decir que se ha atravesado una red con una MTU mayor o igual que 100 y menor o igual que 107. Puede haber otras redes con otras MTU mayores que esta, como por ejemplo las dos redes Ethernet con MTU de 1500 octetos. A continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del ordenador “PC_DE_13”, el cual se ha almacenado en el archivo “fichero13.cap”: ¿Cuántos fragmentos han llegado al “PC_DE_13”? Han llegado 17 fragmentos, de diferentes longitudes. ¿De qué tamaño son los fragmentos que han llegado al “PC_DE_13”? Hay 11 fragmentos de 100 octetos de longitud total, encapsulados en tramas de 118 octetos de tamaño. También hay 5 fragmentos de 36 octetos de longitud total, encapsulados en tramas de 64 octetos de tamaño, las cuales tendrán 10 octetos de relleno, pues sin él sólo tendrían un tamaño de 54 octetos, insuficiente para una trama Ethernet. Por último ha llegado un fragmento de 68 octetos de longitud total encapsulado en una trama de 86 octetos de tamaño. Todo esto concuerda, pues tenemos 11 fragmentos con 80 octetos de datos, 5 fragmentos con 16 octetos de datos y un fragmento con 48 octetos de datos, lo cual suma 1008 octetos de datos, que son exactamente los que contenía el datagrama original enviado por “PC_A0_55”. ¿Es imprescindible que todos los fragmentos de un mismo datagrama tengan el mismo valor en el campo “Identification” de la cabecera IP? Sí, pues de esta manera se evita que al reensamblar los fragmentos se cuele alguno que provenga de otro datagrama diferente, ya que éste tendrá un valor distinto en el campo “Identification”? podríamos unir inadvertidamente fragmentos que es la única forma de distinguir los fragmentos ¿Qué valor tienen en el campo “Identification” de la cabecera IP el datagrama que envió originalmente el “PC_A0_55”? 39680, pues es ese el valor que se observa también en los fragmentos de dicho datagrama. ¿A que se debe que al “PC_DE_13” hayan llegado fragmentos de tres tamaños diferentes? Está claro que si hubiese sido sólo un router el que ha creado estros fragmentos, entonces sólo habría, como mucho, dos tamaños distintos, siendo de igual tamaño todos los fragmentos distintos del último y pudiendo ocurrir que el último también fuese igual en tamaño a los demás fragmentos. Al no ocurrir esto, podemos decir, de momento, que se ha producido fragmentación en más de un router. Es decir, primero se crearon una serie de fragmentos en un router y luego esos fragmentos han debido ser fragmentados nuevamente en, al menos, otro router más. Página 3 del ejercicio10.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Por qué los fragmentos recibidos por “PC_A0_55” sólo presentan dos tamaños diferentes si la ruta que separa ambos PCs es la misma en la ida que en la vuelta? La ruta es la misma, pero no es lo mismo pasar primero por una red con una MTU pequeña y luego por una red con una MTU algo mayor que hacerlo al revés. Si la primera vez que se fragmenta se hace para ajustarse a la MTU más pequeña de entre todas las MTU de las redes que se van a atravesar, el resultado es que sólo se necesita fragmentar una vez. Por el contrario, si primero se fragmenta el datagrama para acomodarse a una MTU que no es la menor de todas, los fragmentos así creados van a tener que fragmentarse nuevamente al pasar por redes con MTU menores. ¿Es compatible el tráfico que ha recibido “PC_A0_55” con la hipótesis de que la red 201.100.11.0 /24 tenga una MTU de 200 octetos, la red 199.6.13.0 /24 tenga una MTU de 1500 octetos y que la red 204.204.7.0 /24 tenga una MTU de 100 octetos? Si las MTU de las redes fuesen esas, efectivamente el tráfico recibido por “PC_A0_55” sería idéntico al que ha recibido. Hay que tener en cuenta que los datagramas enviados por “PC_DE_13” se fragmentarían únicamente en el “Router_D” para acomodarse a una MTU de 100 octetos, que es precisamente el tamaño de todos los fragmentos recibidos por “PC_A0_55”, con excepción del último. ¿Es compatible el tráfico que ha recibido “PC_DE_13” con la hipótesis de que la red 201.100.11.0 /24 tenga una MTU de 200 octetos, la red 199.6.13.0 /24 tenga una MTU de 1500 octetos y que la red 204.204.7.0 /24 tenga una MTU de 100 octetos? Si las MTU de las redes fuesen esas, el datagrama enviado desde el “PC_A0_55” debería fragmentarse en el “Router_A” para acomodarse a la MTU de 200 octetos y luego esos fragmentos deberían fragmentarse otra vez en el “Router_C” para acomodarse a la MTU de 100 octetos. El datagrama original, con 1008 octetos de datos (1028 octetos de longitud total) se fragmentaría en el “Router_A” en 5 fragmentos de 196 octetos de longitud total (176 octetos de datos, múltiplo de 8) y un fragmento de 148 octetos de longitud total (128 octetos de datos). Al pasar por el “Router_C” los fragmentos deberían acomodarse a una MTU de 100 octetos, por lo que los fragmentos de 196 octetos de longitud total (176 de datos) se dividirían en dos fragmentos de 100 octetos de longitud total y uno de 36 octetos de longitud total, mientras que el fragmento de 148 octetos de longitud total se dividiría en uno de 100 octetos de longitud total y otro de 68 octetos de longitud total. Podemos comprobar que eso es precisamente lo que ha recibido el “PC_DE_13”, por lo que la hipótesis de partida es compatible con el tráfico recibido. A continuación se muestra parte de la cabecera IP del datagrama contenido de la trama con ID=5 del “fichero13.cap”: ¿Qué valor tiene el campo “Fragment Offset” del datagrama IP mostrado en la ventana anterior? 0000000101010 en binario o 42 en decimal, lo cuál quiere decir que los datos contenidos en este fragmento deben posicionarse dentro de los datos del datagrama original pero desplazados unos 336 octetos (42 por 8), a contar desde el comienzo de los datos originales. ¿Cuántos fragmentos de los que le llegan a “PC_DE_13” tienen el bit “MF” a valor cero? Sólo puede tener el bit “MF” a cero el fragmento cuyos datos ocupan el último lugar dentro de los datos del datagrama original. ¿Podría ocurrir que llegasen los fragmentos desordenados a su destino final? Podría ocurrir, si existiese más de una ruta posible y no todos los fragmentos siguiesen la misma. Aún así, el destino final podría reensamblar los fragmentos de forma ordenada gracias a la información contenida en cada uno de los fragmentos, la cual sirve para saber qué lugar ocupa cada uno de ellos. Página 4 del ejercicio10.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 11: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se ha ejecutado el comando que aparece listado a continuación: C:\WINDOWS>ping 210.93.105.2 Haciendo ping a 210.93.105.2 con 32 bytes de datos: Tiempo de Respuesta Respuesta Respuesta espera agotado. desde 210.93.105.2: bytes=32 tiempo=63ms TDV=251 desde 210.93.105.2: bytes=32 tiempo=62ms TDV=251 desde 210.93.105.2: bytes=32 tiempo=62ms TDV=251 Estadísticas de ping para 210.93.105.2: Paquetes: enviados = 4, Recibidos = 3, perdidos = 1 (25% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 62ms, máximo = 63ms, promedio = 46ms C:\WINDOWS> Página 1 del ejercicio11.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Se ha obtenido respuesta por parte del equipo al que se le ha hecho PING? Sí. El equipo destino del PING está respondiendo, aunque no se han recibido el 100% de los mensajes ICMP de respuesta de eco que se estaban esperando. ¿A que equipo se le ha hecho PING? Al “Router_E”, que está conectado a la red 210.93.105.0 /24 por su interfaz Ethernet e0. Se ha capturado el tráfico generado por el comando PING tanto en la red origen del PING como en la red destino del PING. Es decir, se han capturado las tramas vistas por el “PC_A0_55” en su red y las tramas vistas por el “Router_E” en su red. A continuación se muestra una ventana de un analizador de protocolos en la que aparece el tráfico visto por el “PC_A0_55”, el cual se ha almacenado en el archivo “fichero55.cap”: ¿Por qué se han generado cuatro mensajes ICMP de petición de eco? Porque el comando PING del “PC_A0_55” genera cuatro mensajes ICMP a menos que se le diga otra cosa con la opción “–n”. ¿Cuántos mensajes ICMP de respuesta de eco se han recibido? Tres. ¿Cuál de los mensajes ICMP de respuesta de eco no se ha recibido? A juzgar por la salida en pantalla del comando PING, el que se ha perdido es el que iba asociado al primer mensaje ICMP de petición de eco. ¿Cómo sabe el “PC_A0_55” que el primer mensaje ICMP de respuesta de eco que le llega es el que corresponde al segundo mensaje ICMP de petición de eco y no el que corresponde al primer mensaje ICMP de petición de eco? Página 2 del ejercicio11.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Lo sabe por el valor de los campos “Identified” y “Sequence Number” de la cabecera ICMP, los cuales son iguales en un mensaje de petición de eco y en su mensaje de respuesta de eco asociado. ¿Podría haber llegado con un tiempo de vida mayor el datagrama que se muestra en la ventana anterior? Teniendo en cuenta que el datagrama IP que se muestra en la ventana anterior ha atravesado cuatro routers y que ha llegado con un valor de TTL de 251, sabemos que se envió con un TTL de 255. Así, para que nos llegue con un TTL mayor de 251 debe enviarse con un TTL mayor de 255, lo cual es imposible. A continuación puede verse la ventana del analizador correspondiente al tráfico capturado en la red del “Router_E”, el cual se ha almacenado en el archivo “ficheroE.cap”: ¿Cuántos mensajes de petición de eco ha recibido el “Router_E”? Cuatro. ¿Cuántos mensajes de respuesta de eco ha enviado el “Router_E”? Tres. ¿Han llegado a su destino todos los mensajes ICMP enviados por el “Router_E”? Si, pues así lo muestra el contenido del “fichero55.cap” ¿Por qué hace el “Router_E” una petición ARP para preguntar la dirección MAC del “Router_D”? Porque no la tiene en su caché ARP y necesita averiguarla para comunicarse con dicho router. ¿Por qué no responde el “Router_E” al primer mensaje ICMP de petición de eco? Porque cuando iba a enviarlo se dio cuenta de que le hacía falta conocer la dirección MAC del “Router_D” y ésta no se encontraba en su caché ARP. Entonces decidió descartar ese paquete y Página 3 del ejercicio11.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ procedió a averiguar la dirección MAC del “Router_D” mediante una petición ARP. Otras inplementaciones de ARP no habrían descartado el paquete, sino que lo habrían dejado esperando hasta que hubiese llegado la respuesta de la petición ARP. ¿Qué dirección MAC origen tiene la primera trama recibida por el “Router_E”? 00D058ADCD11, que es la MAC del “Router_D” ¿Por qué no aprovecha el “Router_E” la llegada de la primera trama para aprender la dirección MAC del “Router_D”? El “Router_E” sólo sabe que le ha llegado una trama con un datagrama dentro, pero ignora si el que envía esa trama es el “Router_D” o es cualquier otro equipo. Para aprender la dirección MAC de un equipo a partir de la dirección IP se usa el protocolo ARP. No se utiliza la llegada de tramas con datagramas IP para deducir cuál es la dirección MAC de un determinado equipo. ¿Por qué el “Router_D” no ha realizado una petición ARP para averiguar la dirección MAC del “Router_E”, mientras que el “Router_E” sí ha tenido que hacerla? Porque el “Router_D” tendría en su caché ARP la MAC del “Router_E”, mientras que el “Router_E” no tendría la del “Router_D”. Un motivo de esto podría ser, por ejemplo, que el “Router_D” tenga establecido un periodo de caducidad para las entradas de la caché ARP más largo que el otro router. A continuación se muestra parte del contenido del primer mensaje ICMP que le llega al “Router_E”: A continuación se muestra parte del contenido del segundo mensaje ICMP que le llega al “Router_E”: ¿A cuál de los dos mensajes anteriores está respondiendo el “Router_E” con la emisión del mensaje ICMP de respuesta de eco contenido en la trama con ID=4? Está contestando al mensaje que ha recibido en la trama con ID=3, como ya habíamos dicho anteriormente. La ventana anterior nos sirve para confirmarlo, pues en ella podemos ver que el campo “Identified” vale 256 y el campo “Sequence Number” vale 35328, que son exactamente los mismos valores que tiene el mensaje ICMP de respuesta que se mostraba en la trama con ID=4. Página 4 del ejercicio11.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 12: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha capturado el tráfico generado por una serie de comandos ejecutados en dicho PC. A continuación se muestra una ventana de captura en la que puede verse dicho tráfico: Página 1 del ejercicio12.doc Página 2 del ejercicio12.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Los comandos que han provocado el tráfico anterior en la red 192.5.5.18 /24 son los siguientes: C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 192.5.5.55 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 192.5.5.1 C:\WINDOWS>arp -a No se encontraron entradas ARP C:\WINDOWS>ping 200.200.200.200 Haciendo ping a 200.200.200.200 con 32 bytes de datos: Respuesta Respuesta Respuesta Respuesta desde desde desde desde 192.5.5.1: 192.5.5.1: 192.5.5.1: 192.5.5.1: Host Host Host Host de de de de destino destino destino destino inaccesible. inaccesible. inaccesible. inaccesible. Estadísticas de ping para 200.200.200.200: Paquetes: enviados = 4, Recibidos = 4, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS>arp -a Interfaz: 192.5.5.55 on Interface 0x1000002 Dirección IP Dirección física 192.5.5.1 00-10-7b-81-ae-26 Tipo dinámico C:\WINDOWS> ¿Se ha obtenido respuesta por parte del equipo al que se le ha hecho PING? No. ¿Pertenece el equipo con dirección IP 200.200.200.200 a la Interred (“Internetwork”) mostrada en una de las páginas anteriores? No. Esa dirección IP no pertenece a ninguna de las redes que constituyen la Interred. ¿De que equipo provienen los mensajes ICMP que han llegado al “PC_A0_55”? Del router 192.5.5.1, que es el router por defecto del “PC_A0_55”. ¿Cuál es la dirección MAC origen de todas las tramas que han llegado al “PC_A0_55”? 00107B81AE26 ¿Por qué han llegado mensajes ICMP de tipo 3 y código 1 al “PC_A0_55”? Estos mensajes ICMP de tipo 3, “Destination Unreachable” (destino inalcanzable) y código 1, “Host Unreachable” (host inalcanzable), nos los envía el router cuando descarta un paquete que le hemos enviado y que no puede ser rutado debido a que no encuentra una ruta por la cuál poder enviarlo. Es decir, el router nos avisa de que en su tabla de rutado no hay información acerca de cómo enrutar un paquete cuya IP destino es la 200.200.200.200, adjuntándonos además una copia de parte del paquete que va a descartar, con idea de que nos ayude a nosotros a resolver el problema. ¿Ha enviado el “PC_A0_55” sus datagramas indicando que desea que sean enrutados preferentemente por redes de bajo retardo? No. Para ello debería haberse puesto a 1 el cuarto bit del campo “Type of Service” de la cabecera IP, de forma que el router que lo reciba intente enrutarlo por redes de “Low Delay” (Bajo retardo). Podemos observar, en la copia del paquete que nos devuelve el router, que dicho bit está a 0, indicando “Normal Delay” (Retardo normal). ¿Tienen todos los paquetes que ha enviado el “PC_A0_55” el mismo valor en el campo “Identification” de la cabecera IP? No. Ese campo debe variarse en cada paquete completo que se genera. ¿Por qué sabe el analizador de protocolos que el paquete que ha descartado el router tenía 40 octetos de datos pero al copiarlo dentro del mensaje ICMP de tipo 3 se han perdido 32 octetos? Sabe que tenía 40 octetos originalmente porque la cabecera IP cuya copia viene en el mensaje ICMP indica que la longitud total es de 60 octetos, que se quedan en 40 al restarle 20 de la cabecera. Por otra parte, sabe que el datagrama IP enviado por el router tiene 36 octetos de datos, por lo que descontando los 8 octetos de la cabecera ICMP, tan solo hay cabida para copiar 28 octetos de los 60 octetos que tenía el datagrama descartado, por lo que se han perdido 32 octetos. Estos octetos no son muy importantes, pues son los datos opcionales del mensaje ICMP de petición de eco. Página 3 del ejercicio12.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación se muestra uno de los datagramas IP enviados por el “PC_A0_55”: ¿Por qué el datagrama descartado por el router tiene un tiempo de vida de 31? El datagrama que ha enviado el “PC_A0_55” tenía un tiempo de vida de 32 pues eso es lo que le hemos indicado al comando PING que hiciera. Si el router descarta este datagrama con un tiempo de vida de 31, quiere esto decir que el router primero le ha decrementado en 1 el tiempo de vida y luego se ha dado cuenta de que debía descartarlo pues su destino no formaba parte de ninguna de las redes conocidas por el router. ¿Tiene el “Router_A” una ruta por defecto? No. Está claro que, si el router tuviese una ruta por defecto, habría enviado por dicha ruta a nuestro datagrama en lugar de haberlo descartado. ¿Tienen los cuatro mensajes ICMP de petición de eco el mismo valor en los campos “Identified” y “Sequence Number”? No. Estos campos sirven para luego poder saber a que petición de eco corresponde cada respuesta de eco, por lo que si fueran iguales en los cuatro, no sería posible saberlo. ¿Podemos saber analizando el tráfico capturado, si antes de hacer el PING, el router tenía en su caché ARP una entrada con la dirección IP y la dirección MAC del “PC_A0_55”? Al haber hecho el PC la petición ARP al router, es imposible saber si el router ya tenía la entrada o si la ha creado aprovechando la petición ARP que le hace el PC. Página 4 del ejercicio12.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 13: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se ha ejecutado el comando que aparece a continuación: Página 1 del ejercicio13.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ping 200.200.200.200 Haciendo ping a 200.200.200.200 con 32 bytes de datos: Respuesta Respuesta Respuesta Respuesta desde desde desde desde 201.100.11.2: 201.100.11.2: 201.100.11.2: 201.100.11.2: Host Host Host Host de de de de destino destino destino destino inaccesible. inaccesible. inaccesible. inaccesible. Estadísticas de ping para 200.200.200.200: Paquetes: enviados = 4, Recibidos = 4, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS> ¿Por qué está enviando el “Router_B” mensajes ICMP al “PC_A0_55”? Porque está descartando los datagramas Ip que le están llegando con destino al equipo con dirección IP 200.200.200.200, al no conocer a que por qué ruta debe enviarlo. A continuación se muestra el tráfico capturado en la red del “PC_A0_55” como consecuencia de la ejecución del comando PING: ¿Ha sido el “Router_A” capaz de enrutar los cuatro datagramas que le ha enviado el “PC_A0_55”? Sí. La prueba de ello es que han llegado al “Router_B”, que es el que al no poder enrutarlos los ha descartado y ha avisado al “PC_A0_55” con los correspondientes mensajes ICMP. ¿Es probable que el “Router_A” tenga una ruta específica para la red a la que pertenece el equipo con dirección IP 200.200.200.200? No es probable, puesto que la IP 200.200.200.200 no forma parte de ninguna de las redes que forman la interred a la que pertenece el “Router_A”. Lo que si es más normal es que el “Router_A” tenga establecida una ruta por defecto hacia el “Router_B”, de forma que todos aquellos paquetes para los que no encuentre una red concreta en la tabla de rutado serán enviados al “Router_B”, tal y como se ha hecho con los cuatro datagramas que provenían del “Router_A”. ¿Cuánto vale el “Checksum” del primer mensaje ICMP enviado por el “PC_A0_55”? vale 0xDF5B (hexadecimal), como puede verse en el panel inferior de la ventana de captura. Hay que tener en cuenta que en el primer mensaje ICMP enviado por el “Router_A” viene una copia de la cabecera ICMP del mensaje sobre el que nos están preguntando. Luego el valor que nos interesa está 22 octetos después de que acabe la cabecera de 8 octetos del mensaje ICMP de tipo 3. ¿Con qué tiempo de vida ha emitido el “Router_B” sus datagramas IP? Con 255, pues llegan al “PC_A0_55” con un TTL de 254 y sólo han atravesado un router. Página 2 del ejercicio13.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 14: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. En el “PC_A0_55” se ha abierto una sesión MS-DOS y se ha ejecutado el comando que aparece a continuación: Página 1 del ejercicio14.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ C:\WINDOWS>ping -n 1 -i 11 200.200.200.200 Haciendo ping a 200.200.200.200 con 32 bytes de datos: Respuesta desde 210.93.105.2: El tiempo de vida caducó en tránsito. Estadísticas de ping para 200.200.200.200: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 0ms, máximo = 0ms, promedio = 0ms C:\WINDOWS> ¿Qué está diciéndole el “Router_E” al “PC_A0_55” mediante un mensaje ICMP? El “Router_E”, con IP 210.93.105.2, está informando mediante un mensaje ICMP que el paquete enviado por el “PC_A0_55” ha sido descartado al haber expirado su tiempo de vida. ¿Cómo es posible que haya llegado al “Router_E” un paquete cuya IP destino es 200.200.200.200? No es normal que los routers tengan en sus tablas de enrutamieno una ruta específica para una red que es inalcanzable, como es el caso de la red a la que pertenece el equipo con IP 200.200.200.200, así que seguramente los routers tendrán una ruta por defecto, que es la que habrá seguido éste paquete. A continuación se muestra el tráfico capturado en la red del “PC_A0_55” como consecuencia de la ejecución del comando PING: ¿Qué dirección IP origen tiene el datagrama encapsulado en la trama recibida por “PC_A0_55”? Página 2 del ejercicio14.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ La “Source Address” del datagrama es 210.93.105.2, pues es la dirección que aparece en la primera de las dos cabeceras que se pueden ver en el panel central de la ventana de captura. La segunda cabecera forma parte de la copia del datagrama descartado acerca del cuál se está informando. ¿Con qué tiempo de vida ha envió el “Router_E” el datagrama que le ha llegado al “PC_A0_55”? Con un TTL de 255, pues al “PC_A0_55” ha llegado con un TTL de 251 después de haber atravesado cuatro routers. ¿Qué clase de mensaje ICMP ha enviado el “Router_E”? Es un mensaje ICMP de tipo 11 (tiempo excedido) y código 0 (Contador del tiempo de vida excedido), que indica que un router ha descartado un datagrama porque su tiempo de vida se ha excedido. A continuación se muestra el tráfico capturado en la red que une al “Router_D” con el “Router_E” como consecuencia de la ejecución del comando PING: ¿Cuántos routers ha atravesado el paquete IP de la trama con ID=0 del archivo “ficheroDE.cap”? Ese paquete fue enviado por el “PC_A0_55” con un TTL de 11 y se ha capturado en la red 210.93.105.0 /24 con un TTL de 7, luego ha tenido que atravesar 4 routers. Esto concuerda perfectamente con la topología de red mostrada en una de las figuras anteriores. ¿Quién ha enviado la trama con ID=0 del archivo “ficheroDE.cap”? El “Router_D”, cuya dirección MAC es 00D058ADCD11. ¿A quién ha enviado el “Router_D” la trama con ID=0? No puede habérsela enviado a su destinatario final, pues el equipo 200.200.200.200 no pertenece a la red 210.93.105.0 /24, así que se lo habrá enviado a otro router, el “Router_E” en este caso. ¿Qué equipos están intercambiando tramas en la red 210.93.105.0 /24? Únicamente el “Router_D” y el “Router_E”. A continuación se muestra el tráfico capturado en la red que une al “Router_D” con el “Router_E” pero presentando diferente información en el listado de tramas: Página 3 del ejercicio14.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Por qué el “Router_E” le vuelve a enviar al “Router_D” encapsulado en la trama con ID=1 el mismo datagrama que le ha llegado encapsulado en la trama con ID=0? Ambos routers están rutando el datagrama porque tienen una ruta por defecto y no porque sepan exactamente cual es la mejor ruta para alcanzar la red a la que pertenece el equipo al que va dirigido el datagrama. Parece ser que el “próximo salto” de la ruta por defecto del “Router_D” es el “Router_E”, mientras que el “próximo salto” de la ruta por defecto del “Router_E” es el “Router_D”. Esto quiere decir que hay un bucle de enrutamiento que va a provocar que el paquete destinado a la IP 200.200.200.200 vaya a ir dando saltos del “Router_D” al “Router_E” y viceversa. A continuación se muestra parcialmente decodificada otra de las tramas del archivo “ficheroDE.cap”: ¿Quién envía la trama con ID=5? El “Router_E”, cuya MAC es 00D058ADCD10. ¿Con qué tiempo de vida le llega al “Router_E” el último paquete que envía el “Router_D”? Con un TTL de 1, lo cual hace que el “Router_D” al ver que con ese tiempo de vida no va a poder llegar a su destinatario, decide descartarlo y avisar al que lo envió originalmente de que dicho paquete va a ser descartado por haber excedido su tiempo de vida. A continuación se muestra parcialmente decodificada otra de las tramas del archivo “ficheroDE.cap”: ¿En qué se diferencian el datagrama IP enviado por el “Router_D” al “PC_A0_55” del datagrama que finalmente recibe el “PC_A0_55”? La diferencia está únicamente en el valor del campo TTL y el valor del campo “Checksum” de la cabecera IP. El campo TTL se ha disminuido en una unidad en cada router que atraviesa. Al cambiar este campo el “Checksum” debe recalcularse también. El resto del datagrama no ha sufrido cambios. Página 4 del ejercicio14.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 15: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. Nótese que la red tiene rutas redundantes, de forma que puede existir más de un camino para que un paquete llegue a un determinado destino. Página 1 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ En el “PC_DE_13” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen a continuación: C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 210.93.105.13 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 210.93.105.1 C:\WINDOWS>route print Rutas activas: Dirección de red 0.0.0.0 127.0.0.0 210.93.105.0 210.93.105.13 210.93.105.255 224.0.0.0 255.255.255.255 Máscara de red Puerta de enlace 0.0.0.0 210.93.105.1 255.0.0.0 127.0.0.1 255.255.255.0 210.93.105.13 255.255.255.255 127.0.0.1 255.255.255.255 210.93.105.13 224.0.0.0 210.93.105.13 255.255.255.255 210.93.105.13 Interfaz Métrica 210.93.105.13 1 127.0.0.1 1 210.93.105.13 1 127.0.0.1 1 210.93.105.13 1 210.93.105.13 1 210.93.105.13 1 C:\WINDOWS>arp -a No se encontraron entradas ARP C:\WINDOWS>ping -n 1 -l 34 192.5.5.55 Haciendo ping a 192.5.5.55 con 34 bytes de datos: Respuesta desde 192.5.5.55: bytes=34 tiempo=31ms TDV=126 Estadísticas de ping para 192.5.5.55: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 31ms, máximo = 31ms, promedio = 31ms C:\WINDOWS>route print Rutas activas: Dirección de red Máscara de red Puerta de enlace 0.0.0.0 0.0.0.0 210.93.105.1 127.0.0.0 255.0.0.0 127.0.0.1 192.5.5.55 255.255.255.255 210.93.105.2 210.93.105.0 255.255.255.0 210.93.105.13 210.93.105.13 255.255.255.255 127.0.0.1 210.93.105.255 255.255.255.255 210.93.105.13 224.0.0.0 224.0.0.0 210.93.105.13 255.255.255.255 255.255.255.255 210.93.105.13 Interfaz Métrica 210.93.105.13 1 127.0.0.1 1 210.93.105.13 1 210.93.105.13 1 127.0.0.1 1 210.93.105.13 1 210.93.105.13 1 210.93.105.13 1 C:\WINDOWS>ping -n 1 -l 54 192.5.5.55 Haciendo ping a 192.5.5.55 con 54 bytes de datos: Respuesta desde 192.5.5.55: bytes=54 tiempo=29ms TDV=126 Estadísticas de ping para 192.5.5.55: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 29ms, máximo = 29ms, promedio = 29ms C:\WINDOWS>arp -a Interfaz: 210.93.105.13 on Interface 0x1000002 Dirección IP Dirección física Tipo 210.93.105.1 00-d0-58-ad-cd-11 dinámico 210.93.105.2 00-d0-58-ad-cd-10 dinámico C:\WINDOWS> ¿Cuántos routers hay en la red del PC en el que se han ejecutado los comandos PING? Hay dos routers. El “Router_D”, que tiene la interfaz Ethernet e0 en dicha red, con la IP 210.93.105.1, y el “Router_E”, que tiene la interfaz Ethernet e0 en dicha red, con la IP 210.93.105.2. ¿Cuál es el router por defecto del “PC_DE_13”, según indica la salida de los comandos ejecutados? El “Router_D”, según indica el valor de la “Puerta de enlace predeterminada“ de la salida del comando “ipconfig”. Lo mismo indica el comando “route print”, pues para la red 0.0.0.0 con mascara 0.0.0.0 muestra como puerta de enlace asociada la dirección IP 210.93.105.1, del “Router_D”. Página 2 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuántas direcciones IP forman parte de la red que tiene por nombre 0.0.0.0 y por máscara de red también el valor 0.0.0.0? Si a cualquier dirección IP se le hace el AND lógico con la máscara 0.0.0.0 y luego se compara el resultado (0.0.0.0) con el nombre de la red 0.0.0.0, resulta que son idénticos, luego cualquier dirección IP pertenece a dicha red. Es por eso que en las tablas de enrutamiento se suele asociar esta red con el router que es próximo salto de la ruta por defecto. ¿Qué significado tienen la dirección IP 127.0.0.1? Todas las direcciones IP de la forma 127.X.Y.Z son direcciones IP reservadas. Al enviar un paquete a una de esas direcciones IP lo que ocurre es que nos llega devuelto a nosotros mismos, pero sin llegar siquiera a transmitirse por el cable. ¿A qué direcciones nos estamos refiriendo con la red 224.0.0.0 y la máscara 224.0.0.0? 224 es 11100000 en binario, luego nos estamos refiriendo a todas las direcciones que empiezan por 111 en binario. ¿Cuántos mensajes ICMP de petición de eco va a enviar el “PC_DE_13”? Dos, pues se han ejecutado dos comandos PING con la opción –n y el parámetro 1. ¿De que tamaño serán los mensajes ICMP de petición de eco? El primer mensaje ICMP de petición de eco tendrá 34 octetos de datos y el segundo 54, lo cual hace una longitud de 42 octetos para el primer mensaje ICMP y 62 octetos para el segundo. ¿De que tamaño serán los datagramas IP enviados por “PC_DE_13” que van a contener a los mensajes ICMP de petición de eco? Puesto que en los comandos PING ejecutados no se han utilizado opciones especiales, los datagramas generados tendrán una cabecera IP de longitud mínima (20 octetos), lo que nos da un primer datagrama de 62 octetos de longitud total y un segundo datagrama de 82 octetos. ¿De que tamaño serán las tramas enviadas por “PC_DE_13” que van a contener los datagramas IP que a su vez contendrán a los mensajes ICMP de petición de eco? Como se trata de tramas Ethernet, sabemos que las tramas serán, como mínimo 18 octetos mayores que los datagramas que contenga, porque a lo mejor hay que añadir algún octeto de relleno para alcanzar el tamaño mínimo de trama. No es este el caso, pues nos sale una primera trama de 80 octetos de tamaño y una segunda trama de 100 octetos. ¿Ha obtenido el “PC_DE_13” respuesta del “PC_A0_55” como consecuencia de los comandos PING PINGs que se han ejecutado? El “PC_A0_55” ha enviado respuesta a los dos PINGs, y las dos han llegado al equipo en el que se ejecutaron los comandos PING, según se muestra en la salida en pantalla de dichos comandos. Se ha capturado el tráfico generado en la red del “PC_DE_13” a consecuencia de la ejecución de los comandos PING. Este tráfico está almacenado en el archivo “fichero13.cap” y se muestra a continuación en la ventana de captura del analizador de protocolos: ¿Cuántos equipos diferentes están enviando tramas en la red 210.93.105.0 /24? Según puede verse en la ventana anterior, hay tres equipos enviando tramas, pues se observan tres direcciones MAC diferentes en la columna “Source” del listado de tramas. Está el equipo con MAC 000102B44FFB, el equipo con MAC 00D058ADCD11 y el equipo con MAC 00D058ADCD10. ¿Qué equipo tiene la dirección MAC 000102B44FFB? La primera trama que se observa en la ventana anterior es una petición ARP en la que se pregunta por la dirección MAC del router por defecto del “PC_DE_13”, luego es lógico pensar que es el “PC_DE_13” el que está haciendo esa petición para informarse de la dirección MAC de su router por defecto y luego poderle enviar una trama conteniendo el primer mensaje ICMP de petición de eco, tal y como se puede ver en la trama con ID=2 del “fichero13.cap”. Luego si esta primera trama es una petición realizada por el “PC_DE_13” y resulta que la dirección MAC “Source” (origen) de dicha trama Página 3 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ es la 000102B44FFB, podemos afirmar que esa dirección MAC corresponde al “PC_DE_13”, que además tiene asociada la dirección IP 210.93.105.13, como ya sabemos por el gráfico de la topología de la red y por la salida del comando “ipconfig” que se ha ejecutado en el mismo. ¿De quién es la dirección MAC 00D058ADCD11? La segunda trama mostrada en la ventana anterior es la respuesta ARP asociada a petición ARP de la primera trama, en la cual se preguntaba por la dirección MAC de la IP 210.93.105.1, que es la de la interfaz Ethernet e0 del “Router_D”. En esta respuesta ARP se dice que la MAC asociada a dicha IP del “Router_D” es la 00D058ADCD11. Además puede verse como el “PC_DE_13” utiliza luego esa dirección MAC como destino de la trama que contiene el primer mensaje de petición de eco. ¿De quién es la dirección 00D058ADCD10? Del mismo modo que hemos razonado anteriormente podemos hacerlo ahora con la petición y la respuesta ARP contenidas en las tramas con ID=6 e ID=7 del “fichero13.cap”. De ellas se deduce que la dirección MAC 00D058ADCD10 corresponde dirección IP 210.93.105.2, que como sabemos es la IP asociada a la interfaz Ethernet e0 del “Router_E”. ¿Qué origen y qué destino tiene la trama que contiene el primer mensaje ICMP de petición de eco que puede verse en el “fichero13.cap”? Es una trama enviada por el “PC_DE_13” al “Router_D”. ¿Qué origen y qué destino tiene la trama que contiene el segundo mensaje ICMP de petición de eco que puede verse en el “fichero13.cap”? Es una trama enviada por el “Router_D” al “Router_E”. ¿Qué origen y qué destino tiene la trama que contiene el tercer mensaje ICMP de petición de eco que puede verse en el “fichero13.cap”? Es una trama enviada por el “PC_DE_13” al “Router_E”. A continuación se muestra parte del contenido de la trama que contiene el primer mensaje ICMP de petición de eco que se ha capturado en la red del “PC_DE_13”: A continuación se muestra parte del contenido de la trama que contiene el segundo mensaje ICMP de petición de eco que se ha capturado en la red del “PC_DE_13”: ¿Muestran el mismo mensaje ICMP de petición de eco las dos ventanas anteriores? Página 4 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Los paquetes que contienen a ambos mensajes tienen las mismas direcciones IP origen y destino, además ambos mensajes ICMP tienen los mismos valores en los campos “Identified” y “Sequence Number”. Se observa que el primer paquete tiene un tiempo de vida superior en una unidad al tiempo de vida del segundo paquete. Por otro lado la dirección MAC destino de la primera trama es igual que la dirección MAC origen de la segunda trama. Todo hace pensar que se trata del mismo mensaje ICMP en ambos casos y que lo que ha ocurrido es que el paquete que lo contenía ha sido enviado a un router (el “Router_D”), el cual lo ha vuelto a enviar por la misma interfaz por la que lo ha recibido, no sin antes decrementar en una unidad el tiempo de vida del paquete. A continuación se muestra parte del contenido de la trama con ID=3 del “fichero13.cap”: ¿Por qué ha enviado el “Router_D” la trama mostrada en la ventana anterior? Esta trama contiene un mensaje ICMP de tipo 3 “Redirect” (redirigir) y código 0 “Redirect for Network” (redirigir para la red). Es un mensaje ICMP contenido en un datagrama IP cuyo origen es el 210.93.105.1 y cuyo destino es el 210.93.105.13, tal y como puede verse en la cabecera IP del datagrama, que se muestra parcialmente en la parte superior del panel en el que aparece decodificado el contenido de la trama. Este mensaje ICMP de redirección pretende informar al “PC_DE_13” acerca de cuál es la mejor ruta para alcanzar la red a la que pertenece el destinatario del paquete IP que se adjunta en ese paquete. El campo “Gateway Internet Address” a valor 210.93.105.2 en la cabecera del mensaje ICMP de redirección le está indicando al host 210.93.105.13 cuál es el router que debe usar para enviar el datagrama que se le adjunta justo a continuación de la cabecera ICMP. Efectivamente, puede verse la cabecera IP del datagrama que ha originado este mensaje de redirección junto con algunos octetos de datos, lo cuál nos hace darnos cuenta de que se trata del primer datagrama enviado por el “PC_DE_13” al “PC_A0_55”. Por otra Página 5 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ parte, hay que hacer notar que el concepto de “mejor ruta” del “Router_D” dependerá de la métrica que esté utilizando, la cual podrá ser el número de saltos (hops), el retardo, el ancho de banda, etc. Obsérvese que el “Router_D” está seguro de que es preferible que el “PC_DE_13” envíe el paquete directamente al “Router_E” porque sabe que los tres (el “Router_E”, el “PC_DE_13” y él mismo) se encuentran en la misma red y de esa forma se evitaría que el paquete dé un salto adicional que es completamente innecesario. ¿Ha descartado el “Router_D” el datagrama al que hace referencia el mensaje ICMP de redirección? No. El “Router_D” ha enviado un mensaje ICMP de redirección para avisar de cuál es la mejor ruta para ese paquete (el “Router_E”, con IP 210.93.105.2), pero no lo ha descartado. La prueba de ello es que, justo a continuación del mensaje ICMP de redirección, el “Router_D” ha procedido a enviar al “Router_E” una trama conteniendo dicho paquete. A continuación se muestra parte del contenido de la trama que contiene el tercer mensaje ICMP de petición de eco que se ha capturado en la red del “PC_DE_13”: ¿Por qué se ha enviado al “Router_E” la trama que se muestra en la ventana anterior? Porque el “PC_DE_13” quiere que sea el “Router_E” el encargado de enrutar el paquete contenido en dicha trama. Puede observarse que se trata del mensaje ICMP asociado al segundo comando PING, pues tiene 54 octetos de datos opcionales. En el momento de ejecutar el segundo comando PING, el “PC_DE_13” ya ha recibido un mensaje ICMP de redirección que le ha hecho aprender que el mejor camino para llegar al “PC_A0_55” es el “Router_E” y no la ruta por defecto, que es el “Router_D”. Se comprende mejor ahora el motivo por el cual la salida en pantalla del comando “route print” ejecutado justo antes del segundo comando PING nos muestra una línea en la cual se dice que para la “Red” 192.5.5.55, con “Máscara de red” 255.255.255.255, la mejor “Puerta de enlace” es la 210.93.105.2, que es precisamente el “Router_E”. ¿Podemos eliminar la nueva ruta que se ha creado en la tabla de rutas del “PC_DE_13”? Sí, simplemente ejecutando el comando “route delete 192.5.5.55” conseguiríamos borrar dicha ruta, de forma que si se tuviese que enviar otro paquete al 192.5.5.55, éste seguiría la ruta por defecto. ¿Cuántas entradas se han añadido a la caché ARP del “PC_DE_13” a consecuencia de la ejecución de los dos comandos PING? Según la salida mostrada en pantalla por los dos comandos “arp –a” se puede ver que antes de la ejecución del primer PING la caché ARP estaba vacía, mientras que después de ejecutarse los dos Página 6 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ PINGs el contenido de la misma ha aumentado en dos entradas, correspondientes a los dos routers a los que se les han enviado tramas. Se ha capturado en el archivo “fichero55.cap” el tráfico generado en la red del “PC_A0_55” como consecuencia de la ejecución de los dos comandos PING. A continuación se muestra parte de la trama con ID=0 del “fichero55.cap”. ¿Qué mensaje ICMP se muestra decodificado en la ventana anterior? Se trata del primer mensaje ICMP que envió el “PC_DE_13” al “PC_A0_55”. Obsérvese que coinciden todos los valores de todos los campos de la cabecera ICMP con los de los mensajes ICMP contenidos en las tramas con ID=2 e ID=4 del “fichero13.cap”. Las direcciones IP origen y destino de los paquetes en los que viajan los mensajes ICMP también son idénticos en los tres casos. Lógicamente, los valores del campo “Time to Live” de dichos paquetes son diferentes, pues en cada router que atraviesa el paquete se decrementa en uno su valor. Eso explica que el paquete que envió el “PC_DE_13” a consecuencia del primer PING tuviese un TTL de valor 32 mientras que ese mismo paquete al llegar a su destino tiene un TTL de valor 29, pues ha pasado por 3 routers, el “Router_D”, el “router_E” y el “Router_A”. ¿Qué tiempo de vida tendrá el paquete contenido en la trama con ID=4 del “fichero55.cap”? Ese paquete ha atravesado sólo dos routers para llegar al “PC_A0_55” desde el “PC_DE_13”, pues corresponde al segundo comando PING, que fue ejecutado cuando el “PC_DE_13” ya sabía que la mejor ruta hacia el “PC_A0_55” pasaba por el “Router_E”. Luego, como el paquete que envió el “PC_DE_13” tenía un TTL de 32, tal y como se aprecia en la trama con ID=8 del “fichero13.cap”, el paquete contenido en la trama con ID=4 del “fichero55.cap” tendrá un TTL de valor 30. ¿Tenía el “Router_A” en su caché ARP la dirección MAC del “PC_A0_55” antes de llegarle el primer mensaje ICMP de petición de eco? Sí, pues no ha tenido necesidad de realizar ninguna petición ARP. ¿ Tenía el “PC_A0_55” en su caché ARP la dirección MAC del “Router_A” antes de llegarle el primer mensaje ICMP de petición de eco? No, pues justo después de llegarle dicho mensaje ICMP de petición de eco y antes de poder enviar de vuelta el correspondiente mensaje ICMP de respuesta de eco, el “PC_A0_55” ha realizado una petición ARP para preguntar por la dirección MAC del “Router_A”. Nótese que la implementación que hace el “PC_A0_55” pone en espera el datagrama IP mientras se averigua mediante ARP la dirección MAC destino de la trama en la que se va a encapsular dicho datagrama. ¿Qué perjuicios se han producido al no usar el “PC_DE_13” el router adecuado para enrutar su primer mensaje ICMP de petición de eco? El mensaje ha llegado a su destino a través de una ruta que contiene una salto extra que podía haberse evitado el cuál está consumiendo ancho de banda en la red “PC_DE_13” y recursos en el “Router_D”. Además, el mensaje ICMP de redirección enviado por el “Router_D” también consume recursos en dicho router y ancho de banda en la red del “PC_DE_13”. Por estas razones es aconsejable que el “PC_DE_13” tome nota de cuál es la mejor ruta para este paquete y la use para los sucesivos paquetes que tengan el mismo destino que éste. Página 7 del ejercicio15.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 16: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. Nótese que la red tiene rutas redundantes, de forma que puede existir más de un camino para que un paquete llegue ir a un determinado destino. Los routers usan RIP como protocolo de enrutamiento. Página 1 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ En el “PC_C_10” se ha abierto una sesión MS-DOS y se han ejecutado los comandos que aparecen a continuación: C:\WINDOWS>ping Uso: ping [-t] [-a] [-n cantidad] [-l tamaño] [-f] [-i TTL] [-v TOS] [-r cantidad] [-s cantidad] [[-j lista de host] | [-k lista de host]] [-w Tiempo de espera agotado] lista de destino Opciones: -t -a -n -l -f -i -v -r -s -j -k -w Solicita eco al host hasta ser interrumpido. Para ver estadísticas y continuar: presione Ctrl-Inter. Para interrumpir: presione Ctrl-C. Resuelve direcciones a nombres de host. cantidad Cantidad de solicitudes de eco a enviar. tamaño Tamaño del búfer de envíos. No fragmentar el paquete. TTL Tiempo de vida. TOS Tipo de servicio. cantidad Registrar la ruta para esta cantidad de saltos. cantidad Registrar horarios para esta cantidad de saltos. lista de hosts Ruta origen variable en la lista de host. lista de hosts Ruta origen estricta en la lista de host. tiempo Tiempo de espera agotado de respuesta en milisegundos. C:\WINDOWS>ipconfig Configuración IP de Windows 98 0 Ethernet adaptador : Dirección IP . . . . . . . . . . . . . : 223.8.151.10 Máscara de subred . . . . . . . . . . : 255.255.255.0 Puerta de enlace predeterminada . . . : 223.8.151.1 C:\WINDOWS>ping -n 1 -k 223.8.151.1 199.6.13.1 201.100.11.1 202.2.2.1 210.93.105.13 Haciendo ping a 210.93.105.13 con 32 bytes de datos: Respuesta desde 210.93.105.13: bytes=32 tiempo=94ms TDV=124 Ruta: 202.2.2.1 -> 201.100.11.1 -> 199.6.13.1 -> 223.8.151.1 Estadísticas de ping para 210.93.105.13: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 94ms, máximo = 94ms, promedio = 94ms C:\WINDOWS> ¿Cuántos routers hay en la red del PC que ha emitido el mensaje ICMP de petición de eco? En la red del “PC_C_10” sólo está el “Router_C”, con la IP 204.204.7.1 en su interfaz Ethernet e0. ¿Cuántos routers hay en la red del PC al que se le ha hecho PING? En la red del “PC_DE_13” hay dos routers. El “Router_D”, que tiene la interfaz Ethernet e0 en dicha red, con la IP 210.93.105.1, y el “Router_E”, que tiene la interfaz Ethernet e0 en dicha red, con la IP 210.93.105.2. Según se nos ha dicho anteriormente, el “Router_D” es el que tienen asignado como router por defecto los PCs de dicha red. ¿Cuántos caminos posibles puede seguir un paquete que vaya desde el “PC_C_10” al “PC_DE_13”? Hay sólo dos caminos posibles. El camino más corto en número de saltos es el que pasa por el “Router_C” y el “Router_D”. El camino más largo en número de saltos es el que pasa por el “Router_C”, el “Router_B”, el “Router_A” y el “Router_E”. ¿Qué se pretende con la opción “-k” del comando PING? Esta opción va acompañada de una lista de direcciones IP correspondientes a los equipos por los que se desea que pase el paquete IP generado por el comando PING. Esta lista debe incluir, de forma ordenada, absolutamente a todos los equipos intermedios por los que ha de pasar el paquete, sin omitir ninguno de ellos. Para conseguir esto el paquete generado debe incluir en su cabecera IP la opción “Strict Source and Record Route”. ¿Qué ruta habría seguido el mensaje ICMP de petición de eco generado si no se hubiese utilizado la opción “–k“ en el comando PING? Hubiese seguido la ruta que los routers hubiesen considerado más adecuada. En este caso, puesto que nos dicen que los routers usan RIP como protocolo de enrutamiento, esa ruta habría sido la que pasa por el “Router_C” y el “Router_D”, que es la que tiene menos saltos. Página 2 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué ruta va a seguir el paquete IP que ha generado el “PC_C_10” mediante el comando PING? El paquete conteniendo al mensaje ICMP de petición de eco va a salir del equipo con dirección IP 223.8.151.10 y se le ha dicho (mediante la opción “Strict Source and Record Route”) que su próximo salto debe ser el equipo con dirección IP 223.8.151.1, el siguiente ha de ser el equipo 199.6.13.1, luego el 201.100.11.1, a continuación el 202.2.2.1 y por último, el destino final del paquete es el host con dirección IP 210.93.105.13, que es el que debe contestar al mensaje ICMP de petición de eco con un mensaje ICMP de respuesta de eco. A continuación se muestra el tráfico capturado en la red del “PC_C_10”: ¿Se ha obtenido respuesta del equipo al que se le ha hecho PING? Según la salida en pantalla del comando PING, el equipo 210.93.105.13 ha respondido al PING. Además, se nos muestra que la respuesta enviada por el equipo 210.93.105.13 ha seguido la ruta inversa a la seguida por el mensaje ICMP de petición de eco. Página 3 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué ruta habría seguido el mensaje ICMP de respuesta de eco si no se hubiese utilizado la opción “-k” en el comando PING? Hubiese seguido la ruta que los routers hubiesen considerado más adecuada. En este caso, puesto que nos dicen que los routers usan RIP como protocolo de enrutamiento, esa ruta habría sido la que pasa por el “Router_D” y el “Router_C”, que es la que tiene menos saltos. ¿Tiene que ser idéntica la ruta de ida de un mensaje ICMP de petición de eco a la ruta de vuelta del un mensaje ICMP de respuesta de eco asociado a éste? Cuando se especifica en el paquete IP la opción “Strict Source Route”, la ruta de ida la fija el que ha generado el paquete y la ruta de vuelta será la misma pero en orden inverso. Cuando no se especifican opciones especiales en el paquete, la ruta de ida y la de vuelta son calculadas por los routers, según lo que ellos consideren en cada momento que es la mejor ruta, por lo que no se puede garantizar que el camino de vuelta vaya a ser igual al camino de ida pero en orden inverso. ¿Cuántos octetos mide la cabecera IP del paquete contenido en la trama con ID=2? El campo “Version/Header Length” vale 0x4A (hexadecimal), luego los cuatro bits del campo “Header Length” valen 0xA (hexadecimal). Quiere esto decir que la cabecera mide 10 palabras de 32 bits, o lo que es lo mismo, 40 octetos. ¿Cuántos octetos correspondientes a opciones tiene la cabecera IP del paquete contenido en la trama con ID=2? Al restarle a los 40 octetos de la cabecera los 20 octetos que ocupa la parte fija de la cabecera, nos sale que la parte correspondiente a las opciones también ocupa 20 octetos en este caso. ¿Cuál es la primera opción que aparece en el campo de opciones de la cabecera IP del paquete contenido en la trama con ID=2? Las opciones se identifican por el valor de su primer octeto, “option-type” (“option ID según el analizador de protocolos). En nuestro caso , el primer octeto que aparece tiene el valor 137 (0x89 en hexadecimal), que corresponde a la opción “Strict Source and Record Route” que, según se muestra en la RFC791, correspondiente a IP, en su página 19, tiene la siguiente estructura: Strict Source and Record Route +--------+--------+--------+---------//--------+ |10001001| length | pointer| route data | +--------+--------+--------+---------//--------+ Type=137 ¿Qué estructura tiene el campo “Option ID”? Tal y como se explica en la página 15 de la RFC791, éste es un campo de 8 bits estructurado en tres partes: Una primera parte de un bit (“copied flag”), una segunda parte de dos bits (“option class”) y una tercera parte de cinco bits (“option number”). Si el “option flag” está a 1, la opción debe copiarse en todos los fragmentos (y no sólo en el primero), si es que el datagrama es fragmentado. La “option class” indica de que clase es la opción, según el siguiente criterio: 0=”control”, 1=”reserved”, 2=”debugging and measurement”, 3=”reserved”. Por último, el valor de la parte “option number” es el que define de qué tipo de opción se trata. Por ejemplo: 0=”End of Option List”, 1=”No operación”, 3=”Loose Source and Record Route”, 9=”Strict Source and Record Route”. ¿Cuál es el valor de todos los octetos correspondientes a la primera opción, de tipo “Strict Source and record Route” en la trama de ID=2 mostrada en la ventana anterior? Para saber cuáles son todos los octetos, lo primero es saber cuantos octetos ocupa la opción. Como es del tipo 137, sabemos que es una opción multi-octeto, cuyo segundo octeto indicará la longitud de la misma, en este caso 19 octetos, según podemos ver en el panel inferior de la ventana de captura, donde se muestra el octeto 0x13 (19 en decimal) justo a continuación del código 0x89 (137 en decimal).Ya podemos decir, puesto que los vemos en el panel inferior de la ventana, que los 19 octetos que componen la primera opción son, en hexadecimal: 89, 13, 04, C7, 06, 0D, 01, C9, 64, 0B, 01, CA, 02, 02, 01, D2, 5D, 69 y 0D. ¿Cuál es la segunda opción presente en el campo de opciones de la cabecera IP de la trama de ID=2 mostrada en la ventana anterior? Es una opción de un único octeto, concretamente la opción “End of Option List”, de valor 0. Se usa para rellenar al final el campo de opciones para conseguir que la longitud de la cabecera sea un múltiplo de cuatro objetos. Con este octeto adicional y los 19 de la opción anterior se consigue una longitud de 40 octetos para la cabecera. ¿Qué contienen los 16 últimos octetos de la opción SSRR (“Strict Source and Record Route”) de la trama de ID=2 mostrada en la ventana anterior? Página 4 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Esos 16 octetos corresponden a 4 direcciones IP, que son 199.6.13.1, 201.100.11.1, 202.2.2.1 y 210.93.105.13 respectivamente. Son las direcciones IP de los equipos por los que tiene que pasar el datagrama una vez que llegue a su primer destino. Si nos fijamos nos damos cuenta de que el destino final del datagrama, el “PC_DE_13” está anotado al final de la lista, mientras que la IP del primer equipo por el que debe pasar el datagrama, el “Router_C”, está presente en el campo “Destination Address” de la cabecera IP del datagrama. ¿Qué va a hacer el “Router_C” cuando reciba el datagrama IP contenido en la trama de ID=2 mostrada en la ventana anterior? El “Router_C” verá que el datagrama tiene la opción SSRR (“Strict Source and Record Route”), por lo que aunque ve que la dirección IP destino del datagrama es la suya, la 223.8.151.1, sabe que se trata de un caso especial y que debe reenviar el datagrama para que llegue a su verdadero destino, pues según puede verse en dicha opción, éste aún no ha sido alcanzado . Es más, no sólo debe reenviarlo, sino que debe hacerlo de forma que siga la ruta que el equipo que lo envió originalmente ha dejado marcada en la opción SSRR. Además tiene que encargarse de grabar su IP en dicha opción para que luego el datagrama pueda seguir el camino inverso. Para conseguir todo esto el router se fija en el valor del octeto “Pointer”, que es el tercero de la opción. Su valor es 4, lo que indica que el router debe enviar el datagrama a la IP colocada en octeto número 4 (y siguientes) de la opción SSRR, colocando antes en dicha posición su propia IP. Esta IP es la 199.6.13.1 (C7060D01 en hexadecimal), luego es esa IP la que aparecerá en el campo “Destination Address” del datagrama. Hay que hacer notar que la IP que grabará el “Router_C” en la posición ocupada por la IP 199.6.13.1 dentro de la opción SSRR será la IP 199.6.13.2 y no la 223.8.151.1, pues esa IP se usará luego para que el datagrama pueda seguir el camino de vuelta en orden inverso. Un último detalle a tener en cuenta es que el valor del campo “Pointer” debe ser incrementado en cuatro antes de enviar el datagrama. ¿Qué va a hacer el “Router_B” cuando reciba el datagrama IP con la opción SSRR que le ha enviado el “Router_D”? Actuará de forma análoga a como lo ha hecho el ”Router_B”. Verá que aunque la “Destination Address” del datagrama es la suya propia, como existe la opción SSRR y el valor del campo “Pointer” es 8, menor que 19, la longitud de la opción SSRR, quiere decir que ese datagrama aún no ha llegado a su destino. Procederá a pasárselo al siguiente de la lista, el “Router_A”, grabando la IP 210.100.11.2 en la posición 8 de la opción e incrementando en 4 el valor del campo “Pointer”. A continuación se muestra un trozo del paquete IP conteniendo un mensaje ICMP de petición de eco capturado en la red del “PC_DE_13”, al cual va destinado: ¿Qué contiene la opción SSRR del datagrama IP que le llega al “PC_DE_13”? Los 19 octetos de la opción SSRR son, en hexadecimal, los siguientes: 89, 13, 14, C7, 06, 0D, 02, C9, 64, 0B, 02, CA, 02, 02, 02, D2, 5D, 69 y 02. Las cuatro direcciones IP almacenadas en la lista son 199.6.13.2, 210.100.11.2, 202.2.2.2 y 210.93.105.2, correspondientes a las direcciones IP que han ido grabando los cuatro routers por los que ha pasado el datagrama. ¿Cómo sabe el “PC_DE_13” que el datagrama que ha recibido es para él y que no debe reenviarlo a nadie más? Página 5 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Lo sabe porque la “Destination Address” de la cabecera IP es la suya y resulta que, aunque existe la opción SSRR, el valor de su campo “Pointer” es 20, superior a los 19 octetos de longitud que tiene dicha opción, lo cuál indica que la lista de equipos intermedios ya ha sido recorrida por completo. Además sabe quién se lo ha enviando originalmente, pues el valor del campo “Source Address” de la cabecera IP no ha cambiado a lo largo de todo el viaje que ha seguido el datagrama. A continuación se muestra parte del contenido de la trama enviada por “PC_DE_13”: ¿Qué ha hecho el “PC_DE_13” al recibir el datagrama IP que le envió el “PC_C_10”? Al ver que era para él lo ha procesado y como contenía un mensaje ICMP de petición de eco, le ha devuelto un mensaje ICMP de respuesta de eco. Este mensaje viajará en una datagrama con la opción SSRR, pues el mensaje ICMP de petición de eco también viajaba en un paquete con dicha opción. El datagrama enviado tendrá la IP 210.93.105.2 como “Destination Address”, correspondiente al “Router_E”, pues ese es el primer salto que debe dar. En la opción SSRR se incluirán las IPs 202.2.2.2, 210.100.11.2, 199.6.13.2 y 223.8.151.10, siendo esta última la IP del equipo final al que va destinado el datagrama. El “Pointer” de la opción SSRR se pondrá a valor 4 inicialmente. A continuación se muestra el contenido del datagrama recibido por “PC_C_10”: ¿Ha seguido el datagrama recibido por “PC_C_10” la misma ruta que el que envió este PC? Sí, tal y como puede verse en el interior de la opción SSRR. El comando PING ha utilizado el contenido de esta opción para mostrarnos en pantalla las IPs de los routers por los que ha pasado el datagrama que contenía al mensaje ICMP de respuesta de eco. Página 6 del ejercicio16.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 17: Observe la siguiente red de ordenadores: Estrictamente hablando, lo que se muestra en la figura no es una red (dominio de broadcast) sino que es un conjunto de redes interconectadas mediante routers. Por tanto, lo más correcto sería decir que estamos frente a una interred o una internetwork. En esta interred podemos distinguir cinco redes Ethernet, implementadas con un sencillo concentrador (Hub). Nótese que los enlaces Ethernet entre equipos están etiquetados con la palabra “Eth”. Los enlaces que no están etiquetados con “Eth” están etiquetados con “PPP” indicando que son enlaces serie punto a punto que usan como protocolo de nivel 2 el protocolo PPP (Point to Point Protocol). En esta interred, la mayoría de enlaces entre routers son de tipo “PPP”. Cada enlace “PPP” es una red independiente con tan solo dos equipos. Cada equipo tiene asignado un nombre. Los PCs tienen asignada una dirección IP y una máscara de subred en la notación “/n”, donde “n” es el número de bits a uno en la máscara de subred. Los hubs son modelos sencillos, no gestionables, y no tienen dirección IP. Los routers tienen una dirección IP en cada interfaz. Las interfaces Ethernet están etiquetadas con “e0” o “e1”. Las interfaces serie están etiquetadas con “s0” o “s1”. Los PCs conectados al “Hub_DE” tienen configurado como router por defecto al “Router_D”, de forma que dirigirán a él los paquetes que quieran hacer llegar fuera de su propia red. Nótese que la red tiene rutas redundantes, de forma que puede existir más de un camino para que un paquete llegue ir a un determinado destino. Los routers usan RIP como protocolo de enrutamiento. Página 1 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Se ha capturado el tráfico generado en la red 210.93.105.13 /24 durante algunos minutos y se ha almacenado en el archivo “ficheroDE.cap”. Las tramas capturadas se muestran a continuación: ¿Qué equipos están generando tráfico en la red 210.93.105.0 /24? Por lo que se ve en el listado de tramas de la ventana anterior, sólo hay dos equipos generando tramas. El equipo cuya dirección MAC es la 00D058ADCD11, y el equipo cuya dirección MAC es la 00D058ADCD10. No sabemos qué equipos son pero es de suponer que sean los dos routers que existen en dicha red, puesto que las tramas contienen actualizaciones del protocolo RIP, que es un protocolo de enrutamiento usado por los routers para mantener actualizadas sus tablas de rutado. ¿A quién van dirigidas las tramas generadas en la red 210.93.105.0 /24? La dirección MAC destino de todas las tramas es FFFFFFFFFFFF (BROADCAST), por lo que son tramas que serán procesadas a nivel 2 por todos los equipos. Es decir, todos los equipos abrirán esas tramas y comprobarán si deben procesar o no su contenido. A continuación se muestra el listado de tramas capturadas pero de forma que muestre información temporal y las direcciones de red de los paquetes contenidos en las tramas: ¿Qué equipos están generando paquetes IP? Ahora ya sabemos quién está generando el tráfico, pues podemos ver las direcciones IP de los paquetes contenidos en las tramas. Son, como ya suponíamos, el “Router_D”, con IP 210.93.105.1 y el “Router_E”, con IP 210.93.105.2, los únicos en generar tráfico en la red. ¿A quién van destinados los paquetes IP generados por el “Router_D” y el “Router_E”? Página 2 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Los datagramas IP generados tienen una dirección IP destino de valor 255.255.255.255 (BROADCAST de red local o BROADCAST inundado o BROADCAST limitado) por lo que cualquier equipo que reciba este datagrama deberá abrirlo y averiguar si debe procesar o no su contenido. ¿Cada cuanto tiempo están enviando actualizaciones RIP los routers? Si nos fijamos en la información temporal que nos muestra el analizador asociada a cada trama, podemos ver que no es un tiempo fijo, pero que es cercano a los 30 segundos, que es el tiempo que debe separar las actualizaciones periódicas enviadas por el protocolo RIP, salvo que se diga lo contrario. ¿Contienen lo mismo todos los paquetes enviados por un mismo router? Es imposible saberlo por que sólo estamos viendo el listado de tramas y no el contenido de todas ellas. No obstante, parece ser que sí, pues el tamaño de todas las tramas enviadas por un mismo router es siempre el mismo. Además, en la columna “Summary” de la primera de las ventanas podía verse el número de entradas de enrutamiento (“Routing Entries”) que contenía cada uno de los mensajes RIP, y éste era siempre el mismo para los mensajes que provienen de un mismo router (4 los del “Router_D” y 5 los del “Router_E”). Si a esto añadimos que la topología de la red es muy simple, es de suponer que lo que está ocurriendo es que en el intervalo de tiempo en el que se han capturado las tramas, el estado de la red es constante (no ha habido cambios) y por tanto las actualizaciones RIP enviadas por los routers reflejan siempre el mismo estado de la red. A continuación se muestra parte del contenido de la primera trama emitida por el “Router_D”: ¿Qué equipos van a procesar el contenido del segmento UDP (datagrama UDP) que se muestra en la ventana anterior? Este datagrama UDP va a llegar a todos los equipos de la red Ethernet del “Router_D” (salvo él mismo, que es el emisor), pues el paquete IP que lo transporta lleva como destino la dirección IP 255.255.255.255, y la trama que transporta a dicho paquete tiene como destino la dirección MAC FFFFFFFFFFFF. Sin embargo, una vez dentro del equipo, el datagrama UDP será descartado a menos que exista algún proceso asignado al puerto 520 (decimal), que es el puerto destino que tiene este datagrama UDP. Es de suponer que únicamente el “Router_E” tendrá un proceso asignado a dicho puerto (que es el puerto asociado a RIP) y por tanto será el único que procesará su contenido. Página 3 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cómo se sabe cuáles son los números de puerto reservados para cada uno de los protocolos? Hasta el 1994, al organización IANA publicaba periódicamente la RFC “Assigned Numbers”, cuya edición más reciente es la RFC1700, en la cual se recopilan muchas tablas con asignaciones de parámetros de protocolos, entre las cuales se encuentra la tabla con los “Well Known Ports” (Puertos Bien Conocidos). No obstante, en la RFC3232, de enero de 2002, se nos advierte que dicha RFC1700 está ya obsoleta (su estado actual es “Historic”) y que su contenido puede (y debe) consultarse en la página web de la organización IANA, que actualmente es www.iana.org. ¿Cómo sabe el analizador de protocolos que el datagrama UDP mostrado en la ventana anterior contiene 84 octetos de datos? Sabe que el campo “Length” del datagrama UDP vale 92, luego si a 92 octetos de longitud total se le restan los 8 octetos que ocupa la cabecera del datagrama UDP, nos queda que el datagrama tiene 84 octetos en el campo de datos. ¿Sabe siempre el analizador de protocolos a que protocolo pertenecen los datos contenidos en un datagrama UDP? No siempre. Sólo cuando el datagrama tiene como puerto origen o como puerto destino un puerto bien conocido (“Well Known Port”), el analizador es capaz de saber a que protocolo pertenecen los datos y podrá presentarlos decodificados en el panel central de la ventana de captura. ¿Qué precedencia tiene el datagrama IP mostrado en la ventana anterior? “Internetwork Control”, pues los tres primeros bits del campo “Type of Service” son 110. ¿Cómo sabe el analizador de protocolos que el paquete IP mostrado en la ventana anterior contiene un datagrama UDP? Porque el campo “Protocol ID” del paquete tiene el valor 17 (decimal), que es el que identifica a UDP. ¿En qué documento puede consultarse la descripción del protocolo RIP? El documento de referencia es la RFC1058, “Routing Information Protocol”, donde se describe la primera versión de este protocolo. No obstante, actualmente dicho documento es obsoleto y ha recibido el estado “Historic”, por lo que es preferible consultar la RFC2453, “RIP Version 2”, que además de detallar el funcionamiento de la primera versión, RIPv1, también explica el de RIPv2. A continuación se muestra el primer mensaje ICMP capturado en “ficheroDE.cap”: ¿Qué aparece al principio de un mensaje RIP, justo antes de la lista de entradas de enrutamiento? Todo mensaje RIP debe comenzar por cuatro octetos. El primero puede ser 1 ó 2, indicando si se trata de una pregunta (1=“Request”) o de una respuesta (2=”Response”). El segundo octeto es la versión del protocolo RIP que se está usando, que en este caso es la 1. Los otros dos octetos no se usan en la versión 1 del protocolo RIP, por lo que deben estar a cero. ¿Cuántas entradas de enrutamiento pueden aparecer en un mensaje RIPv1? Según se cuenta en la RFC2453, el número de entradas RIP (de 20 octetos de longitud), que pueden aparecer en un mensaje RIPv1 debe estar comprendido entre 1 y 25 (ambos inclusive). Página 4 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál es la estructura de una entrada de enrutamiento de un mensaje RIPv1? Esta es la estructura de una entrada RIPv1, según se muestra en la RFC2453: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | address family identifier (2) | must be zero (2) | +-------------------------------+-------------------------------+ | IPv4 address (4) | +---------------------------------------------------------------+ | must be zero (4) | +---------------------------------------------------------------+ | must be zero (4) | +---------------------------------------------------------------+ | metric (4) | +---------------------------------------------------------------+ Entre paréntesis aparecen las longitudes de cada campo en octetos. Sólo hay tres campos que no deben estar obligatoriamente a cero. El primero de ellos es el campo “address family identifier”, debe tener el valor 2 cuando RIP se esté usando con direcciones IP, como es este caso. Los otros dos campos útiles son la dirección IP de la red a la que se refiere la entrada y la métrica que le ha asignado a esa red el router que está enviando la actualización. ¿Acerca de qué redes está informando el “Router_D” en su primer mensaje RIP? Según puede verse en la ventana anterior, el “Router_D” está informando acerca de las redes cuyas IP son 199.6.13.0, 204.204.7.0, 219.17.100.0 y 223.8.151.0. ¿Qué conclusión sacan los routers (el “Router_E” en este caso) al recibir la información de enrutamiento contenido en el primer mensaje RIP enviado por el “Router_D”? El “Router_E” se entera de que existe una ruta que pasa por el “Router_D” (el que envía el mensaje RIP) y que llega a la red 199.6.13.0 en 2 saltos (pues es 2 la métrica que aparece asociada a dicha red en el mensaje RIP). Se entera de que existe una ruta hacia la red 204.204.7.0, pasando por el “Router_D”, que llega a ella en 1 salto. Sabe que hay una ruta a la 219.17.100.0 en 3 saltos y otra a la 223.8.151.0 en 2 saltos, ambas pasando por el “Router_D”. Si nos fijamos en el gráfico con la topología de la red, vemos que toda esta información que recibe el “Router_E” es correcta. A continuación se muestra parte de la primera trama enviada por el “Router_E”: ¿Acerca de qué redes está informando el “Router_E” con su primer mensaje RIP? Acerca de las redes 192.5.5.0, 201.100.11.0, 202.2.2.0, 205.7.5.9 y 219.17.100.0. ¿Qué máscara de red tienen las redes acerca de las que está informando el “Router_E” en su primer mensaje RIP? Página 5 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Nosotros sabemos que las cinco redes acerca de las que informa el “Router_E” tienen una máscara de red de 24 bits de longitud, o lo que es lo mismo la máscara 255.255.255.0, puesto que en el gráfico de la topología de la red vemos que dichas redes tienen asignada esa máscara. Sin embargo, los mensajes RIPv1 informan exclusivamente acerca del nombre de la red, pero no de la máscara de red. El destinatario de un mensaje RIPv1 tiene que intentar “adivinar” la máscara de red. Lo normal es que le asigne la máscara de red “natural”, propia de la clase de dirección IP de que se trate. En este caso, como las cinco redes son de clase C, el “Router_D” pensaría que la máscara de red de estas cinco redes es la 255.255.255.0, pues esa es la máscara “natural” o “por defecto” para esa clase. ¿Qué pasaría si se utilizase RIPv1 en una internetwork en la que existiesen subredes creadas mediante la realización de subnetting en una red mayor? Esta claro que pueden darse situaciones en las que la información de enrutamiento no sea la correcta. Al publicar información de enrutamiento acerca de una subred (red obtenida mediante subnetting) pero sin poder decir cuál es la máscara de subred, el destinatario de un mensaje RIPv1 se encuentra con un problema difícil de resolver. Si el destinatario del mensaje RIPv1 está conectado directamente a una subred “hermana” de aquella acerca de la cuál le están informando, entonces sí que puede conocer la máscara de red de dicha subred, pues debe ser la misma que la de la subred a la que está directamente conectado. Esto es correcto sólo si se ha hecho subnetting con una única máscara de red, porque si lo que se ha hecho es subnetting con máscara de red de longitud variable (VLSM), los routers pueden llegar a confundirse al intentar “adivinar” la máscara de subred. Ese es uno de los motivos por los que se aconseja el uso de RIPv2, que si informa de la máscara de red. ¿Por qué no informa el “Router_E” en su primer mensaje RIP acerca de la red 223.8.151.0? El “Router_E” sabe que puede alcanzar la red 223.8.151.0 en 2 saltos, pasando por el “Router_D”, puesto que el “Router_D” así se lo ha comunicado en un mensaje RIP. La otra ruta que existe para que el “Router_E” alcance la red 223.8.151.0, es una ruta en 3 saltos que pasa por el “Router_A”. En los mensajes RIP se informa sólo acerca de la mejor ruta para alcanzar una red, así que si el “Router_E” informase acerca de la red 223.8.151.0 en su mensaje, lo haría diciendo que su métrica es de 3 saltos (uno más que la mejor ruta, pues se incluye a él mismo como salto). No tiene sentido que, si el “Router_E” ha escuchado en la red 210.93.105.0 un mensaje RIP que informa que la red 223.8.151.0 es accesible en 2 saltos, ahora él envíe otro mensaje RIP a la red 210.93.105.0 informando de que la red 223.8.151.0 es accesible en 3 saltos (uno más que la otra). A nadie le sería de utilidad este mensaje pues en realidad la ruta que se publica es igual que la otra salvo que la otra no pasa por el “Router_E” y es un salto más corta. Además, no sólo es inútil publicar esta información, sino que en ciertas circunstancias puede llegar a confundir a los otros routers. A esta técnica que evita que una información que se obtenido a través de una red sea enviada de nuevo hacia la misma red se la llama “split horizon” (horizonte dividido). Se ha abierto una sesión en la consola del “Router_E” y se ha ejecutado el comando “show ip route” para que éste nos muestre su tabla de enrutamiento. A continuación se muestran los resultados: Router_E#show ip route Codes: C – connected, S - static, I - IGRP, R - RIP, M – mobile, B - BGP D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2 E1 - OSPF external type 1, E2 - OSPF external type 2, E – EGP i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area * - candidate default, U - per-user static route, o – ODR P - periodic downloaded static route Gateway of last resort is not set C C R R R R R R R 210.93.105.0/24 is directly connected, Ethernet0 202.2.2.0/24 is directly connected, Serial0 205.7.5.0/24 [120/1] via 202.2.2.2, 00:00:04, Serial0 219.17.100.0/24 [120/2] via 202.2.2.2, 00:00:04, Serial0 199.6.13.0/24 [120/2] via 210.93.105.1, 00:00:16, Ethernet0 [120/2] via 202.2.2.2, 00:00:04, Serial0 204.204.7.0/24 [120/1] via 210.93.105.1, 00:00:16, Ethernet0 192.5.5.0/24 [120/1] via 202.2.2.2, 00:00:04, Serial0 223.8.151.0/24 [120/2] via 210.93.105.1, 00:00:17, Ethernet0 201.100.11.0/24 [120/1] via 202.2.2.2, 00:00:04, Serial0 Router_E# ¿Cuántas redes conoce el “Router_E”? El router sabe cómo llegar a nueve redes. Si nos fijamos podemos ver que todas las redes que aparecen en el gráfico con la topología de la red también se encuentran en la tabla de enrutamiento que nos ha mostrado el “Router_E” al ejecutar el comando “show ip route”. Página 6 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cómo ha obtenido el “Router_E” la información acerca de las redes a las que sabe como llegar? El “Router_E” tiene la interfaz s0 configurada con la dirección IP 202.2.2.1 y la máscara “/24” y tiene la interfaz e0 configurada con la dirección IP 210.93.105.2 y la máscara “/24”. Por eso sabe cómo llegar a las redes 210.93.105.0 /24 y 202.2.2.0 /24, porque está directamente conectado a ellas. Al ejecutar el comando “show ip route” el router muestra su tabla de enrutamiento, marcando con una “C” inicial las redes a las cuales está directamente conectado. Las redes marcadas con una “R” inicial son redes a las que el router sabe llegar porque ha obtenido información acerca de ellas mediante mensajes RIP que le han enviado otros routers. ¿Por qué ni el “Router_D” ni el “Router_E” informan acerca de la red 210.93.105.0 en los mensajes RIP mostrados en las ventanas anteriores? Porque están aplicando la técnica del “horizonte dividido”. Ambos routers están directamente conectados a esa red. Si enviasen un mensaje RIP a esa red informando de una ruta para llegar a ella, la métrica sería de 1 salto, lo cual no sería de utilidad para ningún router que pudiera escuchar este mensaje, pues sólo lo escuchan los equipos directamente conectados a la red 210.93.105.0 /24. ¿Tiene el “Router_E” más de una ruta asignada para cada red en su tabla de enrutamiento? Para las redes aprendidas mediante RIP, el router guarda en su tabla de enrutamiento sólo la mejor de las rutas. En el caso de que se conozcan dos rutas iguales hacia una misma red, el router muestra las dos rutas en la tabla de enrutamiento, como en el caso de la red 199.6.13.0/24, que es accesible en dos saltos a través del router 210.93.105.1 y del router 202.2.2.2. ¿Cuál es el significado de los diferentes elementos que aparecen en las entradas de la tabla de enrutamiento del “Router_E” asociadas a redes aprendidas mediante RIP? Para las redes aprendidas mediante RIP, el “Router_E” muestra una línea de este estilo: R 219.17.100.0/24 [120/2] via 202.2.2.2, 00:00:04, Serial0 La R inicial significa que ha obtenido la información mediante RIP. A continuación aparece el nombre de la red a la que se refiere la entrada y su máscara de red. El segundo número entre corchetes es la distancia a la que está la red en número de saltos, la cual coincide con la métrica que tenía esa red asignada en uno de los mensajes RIP que ha recibido el “Router_E”. El primer número entre corchetes es la distancia administrativa asignada por el administrador para esa ruta, cuya misión es ayudar al router a decidirse en el caso de que existan varias rutas hacia la misma red, cada una aprendida mediante un método diferente (RIP, IGRP, OSPF...). La IP que aparece después de la palabra “via” corresponde a la del router vecino que nos ha informado acerca de la red, el cuál actúa como “próximo salto” en la ruta hacia la red. La hora que puede verse cerca del final de la línea es el tiempo que hace que recibimos el mensaje RIP que nos informaba acerca de esta red. Por último se muestra el nombre de la interfaz por la que hay que enviar los datos para alcanzar el router que actúa de “próximo salto”. Hay que destacar que si existiesen varias rutas con la misma métrica hacia la misma red, se agruparían en la misma entrada de la tabla de enrutamiento, de esta forma: R 199.6.13.0/24 [120/2] via 210.93.105.1, 00:00:16, Ethernet0 [120/2] via 202.2.2.2, 00:00:04, Serial0 ¿Qué tienen en común las redes 210.93.105.0/24, 199.6.13.0/24, 204.204.7.0/24 y 223.8.151.0/24 que aparecen en la tabla de enrutamiento del “Router_E”? Son redes a las se puede llegar de forma óptima saliendo del “Router_E” por la interfaz Ethernet número 0 (e0). Nótese que ninguna de estas redes es “publicada” en los mensajes RIP que el “Router_E” inyecta a través de la interfaz Ethernet e0, pues está usando la técnica del horizonte dividido. ¿Envía el “Router_E” actualizaciones RIP por su interfaz serie número 0 (s0)? Lo lógico es que sí, pues de lo contrario el “Router_A” no podría aprender las mejores rutas a todas las redes de la internetwork. Lo que si es seguro es que el “Router_A” está enviándole actualizaciones RIP al “Router_E”, pues el “Router_E” tiene en su tabla de enrutamiento varias rutas aprendidas mediante RIP en las que aparece el “Router_A” como “próximo salto”. ¿Enviará el “Router_E” mensajes RIP al “Router_A” informándole acerca de la red 199.6.13.0? No, pues la aplicación de la técnica del horizonte dividido se lo impide. Nótese que de nada le serviría al “Router_A” saber que a través del “Router_E” puede alcanzar dicha red en 3 saltos, puesto que el “Router_A” puede alcanzarla en sólo un salto. Página 7 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Contradice la técnica del horizonte dividido el que tanto el “Router_D” como el “Router_E” incluyan información acerca de la red 219.17.100.0 en las actualizaciones RIP que envían hacia la red 210.93.105.0 y que se han capturado en el “ficheroDE.cap”? No, pues ambos routers tienen anotada en su tabla de enrutamiento que la mejor ruta para llegar a la red 219.17.100.0 no pasa por la red 210.93.105.0, luego es útil para los equipos que oyen las actualizaciones RIP enviadas en ésta red el recibir dicha información. Hay que tener en cuenta que los routers nunca saben cuantos routers reciben los mensajes RIP que ellos envían a la dirección IP 255.255.255.255, por lo que aunque el “Router_D” pueda pensar que al “Router_E” no le interesa la información acerca de la red 219.17.100.0, a lo mejor en la red 210.93.105.0 hay un router al que sí le puede interesar dicha información. ¿Tiene el “Router_E una ruta por defecto a la que enviar los paquetes que no sabe a dónde enviar? No. El “Router_E”, justo antes de mostrarnos su tabla de enrutamiento nos está diciendo “Gateway of last resort is not set”, lo que significa que no conoce cuál es el router que debe usar como “último recurso” en el caso de no encontrar en su tabla de enrutamiento la ruta adecuada para un paquete. ¿Cómo aparecería marcada una entrada de la tabla de enrutamiento del “Router_E” que hubiese sido introducida “a mano” por el administrador de la red? Una entrada introducida a mano por el administrador de la red aparecería marcada con un “S” inicial, indicando que es una entrada “Static” (estática). ¿Qué ocurre cuando un router recibe un mensaje RIP en el que se dice que una determinada red tiene una métrica 16? El router que recibe ese mensaje sabe que no puede utilizar al router que ha enviado el mensaje para intentar llegar a la red en cuestión. Es decir, el router que envía el mensaje está diciéndole a otros routers que la red esa es inaccesible a través suya. La métrica 16 se considera como “infinita” en el caso del protocolos RIP. ¿Cómo será la métrica RIP con la que publique un router una red que tiene marcada en su tabla de enrutamiento como accesible en 14 saltos? La publicará en un mensaje RIP con una métrica de 15. Este mensaje RIP, como es lógico, será enviado sólo por los interfaces que permita la aplicación de la técnica del horizonte dividido. ¿Es posible que, en una internetwork que usa RIP como protocolo de enrutamiento, un router aprenda las rutas para llegar a redes que se encuentran a 16 saltos de él? No. El router no tendría en cuenta los mensajes RIP que le llegasen informando acerca de redes con métricas de valor 16. La información de redes con métricas mayores de 16 ni siquiera le llegarían, pues ningún router genera mensajes RIP con métricas mayores de 16. ¿Cómo serían los mensajes RIP que envía un router por cada una de sus interfaces si no se emplease la técnica del horizonte dividido? El router enviaría por sus interfaces actualizaciones periódicas idénticas informando acerca de todas las redes que tiene anotadas en su tabla de enrutamiento. No habría diferencias entre los mensajes RIP enviados por una interfaz y el enviado por otra, pues al no emplear la técnica del horizonte dividido no es necesario eliminar del mensaje RIP las referencias a redes cuya mejor ruta tiene como próximo salto un router que pertenece a la misma red en la cual se está enviando el mensaje. Página 8 del ejercicio17.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 18: En nuestro PC hemos abierto una ventana MS-DOS y hemos ejecutado los siguientes comandos: C:\WINDOWS>ipconfig /all Configuración IP de Windows 98 Nombre del host . . . . . . . . . . . : smartin Servidores DNS . . . . . . . . . . . . : 193.152.63.197 195.235.113.3 Tipo de nodo . . . . . . . . . . . . . : Difusión Id. De ámbito NetBIOS . . . . . . . . : Enrutamiento IP activado . . . . . . . : No WINS Proxy activado . . . . . . . . . : No Resolución NetBIOS usa DNS . . . . . . : No 0 Ethernet adaptador : Descripción . . . . . . . . . . Dirección física . . . . . . . . DHCP activado . . . . . . . . . Dirección IP . . . . . . . . . . Máscara de subred . . . . . . . Puerta de enlace predeterminada Servidor DHCP . . . . . . . . . Servidor WINS primario . . . . Servidor WINS secundario . . . . Permiso obtenido . . . . . . . . Permiso caduca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : : : : : Realtek 8139-series PCI NIC 00-C0-26-26-0D-14 Sí 200.200.200.5 255.255.255.0 200.200.200.1 200.200.200.1 04 05 02 0:12:10 04 05 02 1:12:10 C:\WINDOWS>arp -a No se encontraron entradas ARP C:\WINDOWS>ping -n 1 www.c2.com Haciendo ping a www.c2.com [209.162.215.78] con 32 bytes de datos: Respuesta desde 209.162.215.78: bytes=32 tiempo=268ms TDV=228 Estadísticas de ping para 209.162.215.78: Paquetes: enviados = 1, Recibidos = 1, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: Mínimo = 268ms, máximo = 268ms, promedio = 268ms C:\WINDOWS> ¿Cuál es nuestra dirección MAC? 00C026260D14 ¿Cuál es la dirección IP y la máscara de red de nuestro PC? La 200.200.200.5, con máscara 255.255.255.0. ¿Cómo ha averiguado nuestro PC su dirección IP? La ha obtenido de un servidor DHCP, pues la salida del comando “ipconfig /all” nos indica que el DHCP está activado. ¿Cuál es el router por defecto de la red de nuestro PC? Es el 200.200.200.1, también llamado “Puerta de enlace predeterminada”. ¿Cuál es el servidor DHCP del que hemos obtenido la dirección IP? El servidor DHCP es el equipo 200.200.200.1, lo cual quiere decir que es el mismo router el que también está también haciendo las funciones de servidor DHCP. Hay que hacer notar que esto no es obligatorio y que dicha función de servidor DHCP podría haber sido implementada en cualquier otro equipo. ¿Cuándo obtuvimos por última vez permiso del servidor para usar nuestra dirección IP? El 4 de mayo de 2002 a las cero horas, 12 minutos y 10 segundos. ¿Por cuánto tiempo nos dieron permiso para usar nuestra dirección IP en el momento de concedérnosla? Por una hora, pues la salida del comando “ipconfig /all” nos indica que el permiso caduca justo una hora después del instante en que nos la concedieron. Antes de que transcurra ese tiempo debemos intentar que el servidor DHCP nos renueve la licencia de uso de la IP que nos ha asignado. ¿Qué hemos empleado al ejecutar el comando PING en lugar de la IP del host destino? Hemos utilizado el nombre de dominio de la máquina destino del ping. Queremos hacerle ping a una máquina llamada “www” dentro del dominio “c2” que se encuentra a su vez dentro del dominio de primer nivel “com”. ¿A qué dirección IP hemos dirigido el mensaje ICMP de petición de eco? Página 1 del ejercicio18.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A la 209.162.215.78, que es la dirección IP asociada al nombre de dominio “www.c2.com”. A continuación se muestra el tráfico generado en la red 200.200.200.0 /24 como consecuencia de la ejecución del comando PING: ¿Cuál es la dirección MAC de nuestro router por defecto? 0020EA18D151, según se muestra en el mensaje ARP que nos ha enviado como respuesta a la petición ARP que hemos enviado en una trama con dirección destino BROADCAST. ¿A qué equipo hemos enviado el paquete IP cuyo contenido se muestra en la ventana anterior? A un equipo cuya IP es la 193.152.63.197, que sabemos que es un servidor DNS pues así nos lo ha indicado la salida del comando “ipconfig /all”. ¿Qué contiene el paquete IP mostrado en la ventana anterior? Contiene un segmento UDP (Datagrama UDP), pues el campo “Protocol ID” del paquete contiene el valor 17, que es el que identifica al protocolo UDP. ¿Cómo sabe el analizador de protocolos de qué tipo son los datos que contiene un datagrama UDP? Si el puerto origen o el puerto destino del datagrama UDP es un puertos bien conocido (“Well Known Port”), el analizador considera que los datos del datagrama son del protocolo asociado a dicho puerto. Por ejemplo, en la ventana anterior en analizador está decodificando los datos del datagrama UDP como si fuesen datos del protocolo DNS, pues se ha dado cuenta de que el puerto destino del datagrama UDP es el 53, que es un puerto bien conocido reservado para dicho protocolo. ¿Qué contiene el datagrama UDP mostrado en la ventana anterior? Contiene una pregunta realizada a un servidor DNS. En ella nuestro PC esta requiriendo que se le informe de la IP asociada al nombre “ww.c2.com". ¿Qué significado tiene el contenido de la columna “Summary” en el caso de la trama con ID=2? Página 2 del ejercicio18.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ El texto mostrado en la columna “Summary” pretende describir de forma resumida el contenido de la trama. En este caso nos aparece la descripción a nivel de aplicación, pues actualmente el analizador está configurado para describir en la columna “Summary” los datos de mayor nivel encontrados en cada trama. Concretamente se nos da la cadena “DNS C ID=1 OP=Query QN=www.c2.com” como descripción de la trama con ID=2. La cadena aparece en color azul para indicar que el contenido descrito es de nivel de aplicación. La palabra “DNS” nos dice que los datos pertenecen al protocolo de aplicación DNS. La “C” indica que es un “Command”. Con “ID=1” se nos informa del valor del campo “Identification” del mensaje DNS. Por último, con “OP=Query QN=www.c2.com” nos confirma que se trata de una pregunta acerca del nombre “www.c2.com”. A continuación se muestra parte del contenido de la trama con ID=3, la cuál forma parte del tráfico generado en la red 200.200.200.0 /24 a consecuencia del comando PING. ¿Qué equipo envía la trama con ID=3? El equipo con IP 200.200.200.1, que es el router por defecto de nuestro PC, pues suya es la dirección MAC origen de dicha trama. ¿Qué equipo envía el paquete contenido en la trama con ID=3? El servidor DNS, cuya IP es la 193.152.63.197, como podemos ver en el campo “Source Address” del datagrama IP. ¿A qué equipo pertenecen la MAC destino de la trama con ID=3 y la “Destination Address” del paquete IP contenido en dicha trama? A nuestro PC. Página 3 del ejercicio18.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Ha respondido el servidor a la pregunta que le ha realizado nuestro PC? Efectivamente, una análisis de los datos del protocolo DNS contenido en el datagrama muestran, entre otras cosas, que la IP asociada al nombre “www.c2.com” es la 209.162.215.78 . ¿Por qué el puerto destino del datagrama UDP mostrado en la ventana anterior es el 1044? Este datagrapa UDP nos lo envía el servidor DNS en respuesta al datagrama que le hemos enviado anteriormente. Como en nuestro datagrama el puerto origen era el 1044, el servidor DNS ha utilizado ese mismo puerto como destino a su respuesta, a sabiendas de que el proceso que le hizo la pregunta estará esperando la respuesta en ese mismo puerto. ¿Por qué el proceso que ha efectuado la labor de cliente DNS en nuestro PC ha escogido el puerto UDP 1044 para comunicarse con el proceso que efectúa la labor de servidor DNS? El proceso cliente puede escoger para comunicarse cualquier puerto que no se esté usando avtualmente en el PC y que no pertenezca al rango de puertos bien conocidos, o puertos reservados, que son los que van del 0 al 1023. Por tanto, se ha usado el 1044, pero podría haberse escogido el 2444, el 3902 o cualquier otro. Cuando no tiene libertad de elección para el proceso cliente DNS es a la hora de decidir qué puerto destino debe usar, pues forzosamente debe usar el 53, que es el que se reserva en las máquinas que actúan de servidor DNS para ubicar al proceso que efectúa dicha labor. A continuación se muestra parte de la trama que contiene el mensaje ICMP de petición de eco: ¿Se habría capturado en la red un tráfico diferente si en lugar de haber usado el nombre de dominio se hubiese usado la dirección IP 209.162.215.78 al hacer el PING? Las únicas tramas que no se habrían generado las tramas con ID=2 e ID=3 relacionadas con el servidor DNS. Los mensajes ICMP habrían sido exactamente iguales, al igual que los paquetes ARP, pues el equipo 209.162.215.78 está fuera de la red del PC, igual que los estaba el equipo 193.152.63.197, lo que obliga a averiguar la MAC del router para hacerle llegar a él los paquetes IP, de forma que puedan salir de la red 200.200.200.0 /24 en la que se encuentra el PC. ¿Se le ocurre alguna ventaja derivada de usar el nombre de dominio en lugar de la IP de un equipo? Es más fácil de recordar que la IP. Página 4 del ejercicio18.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 19: Hemos encendido nuestro PC y se han capturado en el fichero “captura.cap” las tramas generadas como consecuencia del proceso de arranque. A continuación se muestra un listado con las tramas: ¿Qué son las tres últimas tramas capturadas, con ID=10, ID=11 e ID=12? Estas tramas contienen un mensaje ICMP de tipo 10 (“Router Solicitation”). Estos mensajes puede enviarlos un host después de arrancar para indicarle a todos los routers de la red a la que está directamente conectado que envíen un mensaje ICMP de tipo 9 (“Router Advertisement”), de forma que pueda conocerlos a todos. Puede observarse que ningún router ha respondido al mensaje, seguramente porque no tienen implementados estos dos mensajes ICMP. Nótese que la dirección IP a la que se envían estos mensajes es una dirección IP de clase D (Multicast), concretamente la 224.0.0.2, que está asignada a todos los routers de una subred. La dirección MAC asociada a esta IP multicast es la 01005E000002, que también es una dirección MAC especial, pues tiene a 1 el bit menos significativo de su primer octeto, indicando que es una dirección MAC multicast. Después del proceso de arranque hemos ejecutado lo siguiente en una ventana MS-DOS: C:\WINDOWS>ipconfig /all Configuración IP de Windows 98 Nombre del host . . . . . . . . . . . : PC1 Servidores DNS . . . . . . . . . . . . : 193.152.63.197 195.235.113.3 Tipo de nodo . . . . . . . . . . . . . : Difusión Id. De ámbito NetBIOS . . . . . . . . : Enrutamiento IP activado . . . . . . . : No WINS Proxy activado . . . . . . . . . : No Resolución NetBIOS usa DNS . . . . . . : No 0 Ethernet adaptador : Descripción . . . . . . . . . . Dirección física . . . . . . . . DHCP activado . . . . . . . . . Dirección IP . . . . . . . . . . Máscara de subred . . . . . . . Puerta de enlace predeterminada Servidor DHCP . . . . . . . . . Servidor WINS primario . . . . Servidor WINS secundario . . . . Permiso obtenido . . . . . . . . Permiso caduca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . : : : : : : : : : : : Realtek 8139-series PCI NIC 00-C0-26-26-0D-14 Sí 200.200.200.5 255.255.255.0 200.200.200.1 200.200.200.1 06 05 02 23:59:57 07 05 02 0:59:57 C:\WINDOWS> Página 1 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿En qué RFC se describen los mensajes ICMP de tipo 9 y tipo 10? Buscando en la web http://www.rfc-editor.org aquellas que tienen en su título la palabra “ICMP” y después de un breve análisis de las mismas, hemos comprobado que la RFC1256, “ICMP Router Discovery Messages”, que actualmente no tiene el estado de “STANDARD”, es la que describe ambos mensajes ICMP. ¿Cuál es el servidor DHCP del que hemos obtenido la dirección IP? El servidor DHCP es el equipo 200.200.200.1, lo cual quiere decir que es el mismo router el que también está también haciendo las funciones de servidor DHCP. Hay que hacer notar que esto no es obligatorio y que dicha función de servidor DHCP podría haber sido implementada en cualquier otro equipo. A continuación se muestra parte del primer mensaje DHCP capturado en la red 200.200.200.0 /24: ¿Qué puertos origen y destino tiene la PDU de nivel 4 contenida en la trama con ID=0? La PDU de nivel 4 es, en este caso, un datagrama UDP, cuyo puerto origen es el 68 y cuyo puerto destino es el 67. Ambos puertos son “Well Known Ports” listados en la página web “http://www.iana.org/assignments/port-numbers”. En ella se nos dice que el puerto 67 de UDP es usado por los servidores del protocolo Bootstrap (BootP) y que el puerto 68 de UDP es usado por los clientes del protocolo Bootstrap. ¿Cuál es la estructura de un mensaje BootP? Página 2 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Según la RFC951, un mensaje BootP tiene una parte fija de 236 octetos, que es obligatoria, y una parte variable, que es opcional. La parte fija comprende desde el campo “Op Code”, justo a continuación de la cabecera UDP, hasta el campo “Boot File name”, ambos inclusive. La parte opcional está pensada para que los diferentes diseñadores de protocolos incluyan ahí la información que ellos estimen necesaria para complementar y extender la funcionalidad del protocolo Bootstrap. Es por ello que, caso de existir parte opcional, el único campo obligatorio es el primero, llamado “Magic Cookie”, que contiene un número de 32 bits que sirve para saber de qué forma hay que interpretar la información opcional que vienen a continuación. Lo más habitual es encontrarnos con que “Magic Cookie” vale 0x63825363 (hexadecimal), lo cual indica que se trata de opciones del protocolo DHCP. ¿Puede existir el protocolo DHCP sin el protocolo BootP? No. Tal y como se ha diseñado DHCP (“Dynamic Host Configuration Protocol”), no se trata de un protocolo “autónomo”. Ha sido concebido como una “extensión” de un protocolo ya existente, el BootP, que había sido diseñado de forma que fuese “extensible” gracias a su campo de opciones. ¿Dónde se definen el funcionamiento del protocolo DHCP así como las diferentes opciones que pueden aparecer en un mensaje BootP? Las RFC2131 describe el funcionamiento del protocolo DHCP y la RFC2132 describe las diferentes opciones que pueden aparecer en un mensaje BootP. ¿Cuánto ocupa la parte opcional del mensaje BootP contenido en la trama con ID=0? Según nos dice el analizador, el mensaje BootP contenido en el datagrama UDP mide 300 octetos. Si a esto le restamos los 236 octetos de la parte fija, tenemos que, en este caso, las opciones DHCP ocupan 64 octetos. ¿Cuántos tipos de mensajes BootP existen? Hay dos tipos. Los mensajes de tipo BOOTREQUEST, que tienen el campo “Op Code” a valor 1, y los mensajes BOOTREPLY, que tienen el campo “Op Code” a valor 2. Se pueden distinguir los dos tipos en el listado de tramas pues aparecen etiquetados con “Req” o “Rep” respectivamente en la columna “Summary” del listado de tramas. ¿Cuántos tipos de mensajes DHCP se han capturado en la red 200.200.200.0 /24? En el listado de tramas vemos que son cuatro mensajes DHCP los que se han capturado, cada uno de un tipo diferente. Estos tipos son DHCPDISCOVER, DHCPOFFER, DHCPREQUEST y DHCPACK. El analizador lo indica de forma resumida diciendo “MT=DISCOVER” (Message Type=DHCPDISCOVER). ¿A qué dirección IP va dirigido el paquete IP que contiene al mensaje DHCPDISCOVER? A la IP 255.255.255.255, puesto que el cliente DHCP acaba de arrancar y no conoce la IP del servidor o servidores DHCP. Este paquete será recibido por todos los equipos de la red Ethernet en la que se encuentra el cliente. Si los routers de esta red son capaces de actuar como retransmisores BootP (“relay agents”), entonces el mensaje BootP podrá salir de la red origen y alcanzar otras redes. ¿Qué dirección MAC destino tiene la trama que contiene al mensaje DHCPDISCOVER? BROADCAST, pues al igual por las mismas razones expuestas anteriormente. ¿Qué dirección IP origen tiene el paquete IP que contiene al mensaje DHCPDISCOVER? La IP 0.0.0.0, indicando que el que lo envía no conoce su dirección IP. Ésta es una dirección IP reservada que sólo puede ser utilizada en el campo “Source Address”. ¿Envía el cliente DHCP su dirección MAC en el mensaje BootP? Sí. El campo “Client Hardware Address” sirve para esto. Es un campo de 16 octetos de longitud, por lo que es necesario que en el campo “Hardware Address Length” se diga que son 6 octetos los que ocupa realmente dicha dirección MAC. ¿Qué pretende el cliente con su mensaje DHCPDISCOVER? Pretende, como su propio nombre indica, descubrir los servidores DHCP que se encuentran disponibles. Los servidores, al recibir este mensaje podrán enviarle al cliente mensajes DHCPOFFER en los que le ofrecerán una dirección IP. ¿Qué dirección IP se nos ha ofrecido? Por el comando “ipconfig /all” sabemos que nuestra dirección IP es la 200.200.200.5, luego como sólo nos han ofrecido una dirección IP, debe ser esa. ¿Por qué hace el servidor DHCP una petición ARP asociada a la 200.200.200.5? Antes de ofrecérnosla a nosotros, el servidor DHCP se asegura de que nadie está utilizándola haciendo una petición ARP y comprobando que nadie le responde. A continuación se muestran las opciones DHCP del primer mensaje enviado por nuestro PC: Página 3 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué estructura tienen las opciones DHCP? Las opciones DHCP pueden ocupar un único octeto o bien ser opciones multiocteto. Con un solo octeto sólo existe la opción “Padding” (de valor 0) y la opción “End” (de valor 255 en decimal). Las opciones multiocteto son todas las demás, y se componen de un primer octeto llamado “Option Tag” que indica el tipo o código de la opción, un segundo octeto que indica la longitud de la opción en octetos (sin contar los dos primeros octetos) y luego un número variable de octetos, que puede ser cero. Un ejemplo de esto es la opción “Requested IP Address” que puede verse en la ventana anterior. Su “Option Tag” es 50 (en decimal), su longitud vale 4, por lo que a continuación vienen los 4 octetos de la dirección IP que contiene esta opción DHCP. ¿De que sirve la opción “Requested IP Address”? Permite que el cliente solicite una dirección IP concreta en su mensaje DHCPDISCOVER. Nótese que el cliente no está obligado a solicitar una IP en concreto, ni el servidor está obligado a ofrecérsela. No obstante el cliente suele estar interesado en que le ofrezcan la misma dirección IP que se la haya asignado anteriormente y, normalmente, si el servidor tiene disponible dicha dirección IP, suele satisfacer su petición. En el caso que nos ocupa, parece ser que nuestro PC ha tenido en otra ocasión la dirección 200.200.200.5 y desea que le sea asignada otra vez, cosa que el servidor no ha tenido inconveniente en hacer. ¿De qué sirve la opción “Padding”? Sirve para rellenar espacio y/o separar opciones. ¿De qué sirve la opción “End”? Marca el fin de la información válida en el campo de opciones del mensaje BootP. Después de esta opción la única opción que puede aparecer es la opción “Padding”. ¿Qué tamaño máximo tienen los mensajes DHCP que está obligado a aceptar un cliente DHCP? En la RFC2131 se establece que un cliente debe ser capaz de aceptar mensajes BootP con hasta 312 octetos de opciones. Si a esto le sumamos los 236 octetos de la parte fija del mensaje BootP, los 8 octetos de la cabecera UDP y los 20 octetos de la cabecera IP, tenemos un datagrama de 576 octetos de longitud total, que es el mayor datagrama que está obligado a aceptar cualquier equipo. ¿Solicita nuestro PC, en su mensaje DHCPDISCOVER, algo más aparte de una dirección IP? Página 4 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Mediante el uso de la opción “Parameter Request List” el cliente puede solicitar al servidor una cantidad variable de parámetros que le hagan falta para configurarse adecuadamente. En este caso ha solicitado 9 parámetros. Cada uno de los parámetros solicitados viene identificado por un octeto, cuyo valor debe ser el de la “Option Tag” de una opción DHCP. Por ejemplo, vemos que nuestro PC ha incluido como primer parámetro el que tiene valor 1, que corresponde a la opción “Subnet Mask”, indicando por tanto que desea que se le informe de cuál es su máscara de red y poder así completar su configuración IP. También ha incluido en la lista de parámetros requeridos el parámetro de valor 6, correspondiente a la opción “Domain Name Server”, pues desea que se le informe de cuáles son los servidores DNS que puede utilizar. A continuación se muestran algunas de las opciones DHCP incluidas en el mensaje DHCPOFFER: ¿Qué tipo de mensaje BootP se muestra en la ventana anterior? Como el “Op Code” es 2, se trata de un mensaje BOOTREPLY. ¿Se utilizan los mismos puertos origen y destino en los mensajes BOOTREQUEST y BOOTREPLY? No. Ya hemos visto los puertos usados en los mensajes BOOTREQUEST. En los mensajes BOOTREPLY se invierten los puertos con respecto al mensaje BOOTREQUEST, pues ahora es el servidor DHCP el que envía el mensaje al cliente. ¿Cómo se sabe cuál es el tipo de un mensaje DHCP? Basta con mirar el contenido de la opción “DHCP Message Type” cuyo “Op Code” es el 53. Ésta es una opción multiocteto de longitud 1, lo que quiere decir que tiene un único campo de longitud 1. El valor de este único octeto es el que indica de que clase de mensaje DHCP se trata: 1=DHCPDISCOVER, 2=DHCPOFFER, 3=DHCPREQUEST, 4=DHCPDECLINE, 5=DHCPACK, 6=DHCPNAK, 7=DHCPRELEASE y 8=DHCPINFORM. Esta opción debe aparecer obligatoriamente en todos los mensajes DHCP. Página 5 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué dirección IP está ofreciendo el servidor al cliente en este mensaje DHCPOFFER? La 200.200.200.5, que es le valor que aparece en el campo “Your (client) IP Address”. ¿Por cuánto tiempo dice que nos “presta” la dirección IP el servidor en su mensaje DHCPOFFER? La opción “IP Address Lease Time” nos indica que podemos disponer de la dirección durante 3600 segundos (1 hora). No obstante, lo normal es que podamos ir renovando el “préstamo” con el servidor antes de que expire el tiempo límite que éste nos indica cuando nos “presta” la IP. ¿Cómo sabe el cliente qué servidor le está enviando el mensaje DHCPOFFER? El cliente sabe que la IP del servidor es la 200.200.200.1 gracias a la opción “Server Identifier”. ¿Qué router podrá usar el cliente, a juzgar por el contenido del mensaje DHCPOFFER? El router con IP 200.200.200.1, según aparece en la opción “Router Option”. ¿Cuáles son las direcciones MAC origen y destino de la trama que contiene al mensaje DHCPOFFER? En este caso la MAC origen es la del servidor y la MAC destino es la del cliente. El servidor ha podido extraer la dirección MAC del cliente del mensaje DHCPDISCOVER. ¿Cuáles son las direcciones IP origen y destino del datagrama IP que contiene al mensaje DHCPOFFER? En este caso se observa que la dirección IP origen es la del servidor, mientras que la dirección IP destino corresponde a la que se ofrece al cliente. Quiere esto decir que el cliente debe ser capaz de aceptar un paquete IP dirigido a una IP concreta, la 200.200.200.5, pese a que él aún no tiene esa IP asignada. Algunos clientes antiguos no son capaces de hacer esto y se hace necesario usar otra técnica diferente, pero no es lo habitual. A continuación se muestra parte del contenido del mensaje DHCPREQUEST enviado por el cliente: ¿Qué contiene el mensaje DHCPREQUEST? Básicamente es muy parecido al mensaje DHCPDISCOVER. La diferencia es que ahora lo que el cliente ya conoce al servidor o servidores que la han hecho las ofertas y este mensaje le debe servir a todos los servidores para darse cuenta de que el cliente se ha decidido a aceptar la oferta de sólo uno de ellos. Ese es el motivo de enviar éste mensaje en BROADCAST, conseguir que llegue a todos los servidores. La opción “Server Identifier” incluida en este mensaje puede servir para que el servidor seleccionado sepa que el mensaje va dirigido a él y no a otro. ¿Cuál es la utilidad del campo “Transaction Id” del mensaje BootP”? Página 6 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Es un número aleatorio escogido por el cliente que sirve para poder asociar las preguntas y respuestas que se intercambian el cliente y el servidor. A continuación se muestra el contenido del mensaje DHCPACK: ¿Qué sentido tiene la existencia del mensaje DHCPACK? Confirmar al cliente que el servidor le concede la IP que le ofreció en el anterior mensaje DHCPOFFER. Por lo demás, su contenido es idéntico al del mensaje DHCPOFFER. A veces, cuando al servidor le llega el mensaje DHCPREQUEST, puede ocurrir que la dirección ya haya sido asignada a otro cliente, por lo que en lugar de una DHCPACK el servidor enviaría un DHCPNAK para decirle al cliente que finalmente no es posible realizar el “préstamo” de la IP. ¿Están obligados todos los equipos de Internet a aceptar un paquete IP del tamaño que tiene el paquete IP mostrado en la ventana anterior? Página 7 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Sí. El datagrama IP de la ventana anterior tiene 556 octetos de datos, que sumados a los 20 octetos de su cabecera IP nos dan 576 octetos, que es precisamente el tamaño del mayor datagrama que están obligados a aceptar todos los equipos que implementen el protocolo IP. ¿Se ha utilizado en el mensaje DHCPACK todo el espacio disponible para opciones BootP diferentes de la opción “Padding”? No. Se puede observar en el panel inferior de la ventana de captura que detrás de la opción “End” aparecen muchos octetos de relleno (la opción “Padding”), lo cual indica que a pesar de que se ha creado un mensaje BootP con un campo de opciones bastante grande, realmente hubiese bastado con un tamaño menor. ¿Qué servidores DNS le ha asignado el servidor al cliente? Según se observa en el interior de la opción “Domain Name Server” contenida en el mensaje DHCPACK mostrado en la ventana anterior, los servidores asignados son el 193.152.63.197 y el 195.235.113.3, lo cual coincide plenamente con la salida mostrada por el comando “ipconfig /all”. ¿Le ha suministrado el servidor al cliente todos los parámetros que solicitó el cliente en su mensaje DHCPDISCOVER? No. Por ejemplo, la opción 44, “NETBIOS over TCP/IP Name Server” no está incluida entre las que ha enviado el servidor, a pesar de que es un parámetro de los que solicitó el cliente. ¿Por qué se ha generado la trama con ID=5? Es una petición ARP realizada por el cliente al que acaba de concedérsele el uso de la dirección IP 200.200.200.5, en la cual se pregunta precisamente por a dirección MAC asociada a dicha dirección IP. Nadie ha respondido a la petición, lo cuál es una buena señal. Si alguien hubiese respondido a la petición ARP sería porque ya habría alguien usando esa dirección IP en la misma red que el cliente. En ese caso el cliente no haría uso de la dirección que se le ha asignado y debería avisar de este hecho al servidor mediante el mensaje DHCPDECLINE. ¿Quién ha generado un mensaje ICMP de petición de eco y por qué? El servidor DHCP, cuya IP es la 200.200.200.1 ha enviado un mensaje de petición de eco al cliente al poco tiempo de haberle enviado el mensaje DHCPACK. El objeto este mensaje es comprobar que efectivamente el cliente ha recibido el DHCPACK y ha empezado a usar con éxito la dirección IP 200.200.200.5, tal y como se le ha asignado. Nótese que el cliente no disponía en su caché ARP de la dirección MAC asociada a la IP 200.200.200.1, por lo que ha tenido que efectuar una petición ARP. Página 8 del ejercicio19.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ejercicio 20: En un PC conectado a una red Ethernet hemos abierto la ventana “Ejecutar” y hemos tecleado esto: ¿Qué pretendemos hacer al ejecutar ese comando? Queremos ejecutar el programa “telnet”, el cual nos abrirá una ventana de terminal “virtual” en nuestra máquina, desde la cual podremos enviar comandos a la máquina “route-server.ip.att.net” y ver la salida en pantalla de dichos comandos. ¿Qué es un terminal? Dicho de forma sencilla, un terminal es un equipo que sólo consta de una pantalla, un teclado y un puerto de comunicaciones serie, normalmente de muy baja velocidad. Los caracteres que se teclean en el terminal son transmitidos por la línea serie. Los caracteres que llegan por la línea serie se muestran en la pantalla conforme van llegando. La función de los terminales es poder conectarse de forma local (pocos metros de distancia) a equipos que dispongan de un puerto de comunicaciones serie, de forma que podamos introducir comandos y ver en pantalla los resultados. Es normal usarlos para dotar de pantalla y teclado a dispositivos que normalmente no lo tienen o bien tienen sólo uno. Por ejemplo podemos usarlo para conectarnos a un router e introducir su configuración. Otro uso típico es dotar a un equipo con varias pantallas en las que los usuarios puedan ejecutar programas en modo texto. Hoy por hoy, en el caso de que necesitemos un terminal, lo normal es que ejecutemos en nuestro PC una aplicación de emulación de terminal, del estilo al programa “Hyperterminal” que viene incluido en algunas versiones de Windows, el cual hace uso de la pantalla, el teclado y el puerto serie del PC para comportarse exactamente igual a como lo haría un terminal verdadero. El uso de los terminales plantea algunos inconvenientes. Por un lado, si queremos conectar varios usuarios simultáneamente a una máquina, necesitaremos que la máquina disponga de varios puertos de comunicaciones serie. Además, las técnicas de comunicación serie utilizadas en los terminales son muy sencillas y no suelen alcanzar más de unas decenas de metros de distancia, por lo que el terminal debe estar físicamente cerca de la máquina salvo que empleemos un par de modems que permitan extender la distancia. El uso de modems telefónicos permite que el terminal y la máquina a la que se conectan estén en cualquier lugar, siempre que ambos tengan acceso a una línea telefónica. ¿Qué es un terminal “virtual”? Cuando tanto el equipo al que nos queremos conectar (el servidor) como el equipo en el que vamos a ejecutar el programa de emulación de terminal (el cliente) están conectados a través de una red, el cable de comunicación serie ya no es necesario y su función puede ser implementada haciendo uso de la red. Por tanto, un terminal virtual es un emulador de terminal que no usa el puerto de comunicaciones serie para comunicarse con la máquina a la que se conecta, sino que en su lugar usa una red de comunicaciones. La información tecleada es transportada desde el terminal virtual al servidor a través de la red. Análogamente, la información que la máquina que hace de servidor desea mostrar en la pantalla del terminal será transportada también a través de la red. ¿Qué protocolo usa el programa “telnet” que hemos ejecutado en nuestro PC? El programa “telnet” que hemos ejecutado en nuestro PC (el terminal), usa para comunicarse con la otra máquina (el servidor) el protocolo “telnet”, descrito en la RFC854 y la RFC855. El protocolo “telnet” es un protocolo de nivel de aplicación (según la arquitectura TCP/IP), que viaja, por tanto, sobre una conexión TCP que habrá de establecerse antes de que puedan enviarse datos. ¿Qué puerto TCP utiliza para comunicarse el proceso servidor que se encuentra en la máquina a la que queremos conectarnos? La RFC854, en su página 15, indica que los procesos servidores que hablen el protocolo “telnet” deben usar el puerto 23 (decimal). Eso mismo es lo que nos encontramos si consultamos en http://www.iana.org/assignments/port-numbers la lista de puertos bien conocidos (Well Known Ports). Página 1 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación podemos ver la ventana que nos muestra nuestro PC después de haber ejecutado el comando “telnet route-server.ip.att.net”: ¿A qué equipo nos hemos conectado como usuarios? Por lo que podemos ver en pantalla parece ser que estamos conectados a un router de la compañía AT&T (American Telephone and Telegraph). En la última línea de la pantalla, justo después de la información inicial que se nos muestra, podemos ver el “prompt” del router y el cursor, indicando que el router está a la espera de que tecleemos algún comando. Nótese que en este caso no se nos ha pedido ningún tipo de clave para poder iniciar la sesión TELNET con el router. Desde la ventana de terminal virtual que tenemos abierta en nuestro PC hemos ejecutado varios comandos, los cuales veremos en detalle más adelante. A continuación se muestra parte del tráfico generado en la red de nuestro PC como consecuencia del diálogo que ha tenido nuestro PC con el router: ¿Cuál es la IP de nuestro PC? Es la 200.200.200.5, pues la IP “Source” de la petición ARP contenida en la primera trama generada. ¿Cuál es la máscara de red de nuestro PC? Con la información que se nos ha dado hasta ahora es imposible saberlo. Página 2 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál es la IP del equipo que tiene por nombre “route-server.ip.att.net”? Según se ve en el listado de tramas, hay una conexión conexión TELNET establecida entre el equipo con IP 200.200.200.5 (nuestro PC) y el equipo con IP 12.0.1.28, por lo que podemos decir que esta última es la IP del equipo al que nos hemos conectado mediante “telnet” y cuyo nombre es “route-server.ip.att.net”. Nótese que una conexión TELNET es una conexión TCP por la cuál viajan datos del protocolo TELNET. ¿Cómo hemos averiguado la IP del equipo “route-server.ip.att.net”? Se lo hemos consultado a un servidor DNS (“Domain Name Server”). Concretamente, podemos ver en el listado de tramas que la IP del servidor DNS que hemos utilizado es la 193.152.63.97, pues esa es la IP “Destination” de la petición DNS contenida en la trama con ID=2. ¿cuántas tramas contiene el archivo “captura.cap”? 106 tramas. ¿Está el servidor DNS en la misma red que nuestro PC? No, pues antes de comunicarnos con él hemos hecho una petición ARP para conseguir la dirección MAC del equipo con dirección IP 200.200.200.1, lo cuál nos hace pensar que el equipo 200.200.200.1 es el router que vamos a utilizar para que nos enrute el paquete IP que queremos hacerle llegar al servidor DNS. Si el servidor DNS estuviese en nuestra misma red, la petición ARP hecha al equipo 200.200.200.1 no se habría efectuado. ¿Se habría efectuado una petición ARP para averiguar la dirección MAC del servidor DNS si éste hubiese estado en la misma red que nuestro PC? En ese caso se habría mirado primero en la caché ARP en busca de la IP del servidor DNS y, si no se hubiese encontrado, se habría procedido a efectuar la petición ARP correspondiente. ¿Es posible que la máscara de red de nuestro PC esté configurada actualmente a valor 0.0.0.0? Si estuviese configurada a 0.0.0.0, nuestro PC creería que la IP 193.152.63.97 forma parte de su misma red, cosa que no ha ocurrido, por lo que podemos afirmar que la 0.0.0.0 no es la máscara de red que tenemos asignada. Recuérdese que con la máscara “/0”asignada, cualquier equipo considerará que cualquier dirección IP forma parte de su misma red. ¿Qué valor tiene en binario la IP del servidor DNS? La IP 193.152.63.97 es 11000001 10011000 00111111 01100001 en binario. ¿Qué valor tiene en binario la IP del router por defecto de nuestro PC? La IP 200.200.200.1 es 11001000 11001000 11001000 00000001 en binario. ¿Qué valor tiene en binario la IP de nuestro PC? La IP 200.200.200.5 es 11001000 11001000 11001000 00000101 en binario. ¿Qué valor tiene en binario la IP del equipo “route-server.ip.att.net”? la IP 12.0.1.28, es 00001100 00000000 00000001 00011100 en binario. ¿Consideraría nuestro PC que el servidor DNS forma parte de su propia red si la máscara de red asignada a nuestro PC fuese la 224.0.0.0? La máscara 224.0.0.0 equivale a “/3”, por lo que nuestro PC consideraría que una IP forma parte de su red si los tres primeros bits de dicha IP son idénticos a los tres primeros bits de su propia dirección IP, que son “110” en este caso. Como resulta que la IP 193.152.63.97 tiene los tres primeros bits a “110”, podemos decir que con dicha máscara nuestro PC consideraría al servidor DNS como perteneciente a su misma red. ¿Qué máscara de red tendría que tener configurada nuestro PC para que éste considerase que la IP 12.0.1.28 forma parte de su misma red? Para que ocurra eso, la única máscara posible es la 0.0.0.0 (“/0”), pues se observa que las direcciones IP 200.200.200.5 y 12.0.1.28 no tienen ni siquiera el primer bit en común. Nótese que, como anteriormente habíamos llegado a la conclusión de que esa no era la máscara de red de nuestro PC, podemos decir que nuestro PC considera que la IP 12.0.1.28 no forma parte de su misma red. A continuación se muestra, de otra forma, algo del tráfico contenido en el fichero “captura.cap”: Página 3 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Cuál es la dirección MAC del equipo con IP 200.200.200.1? 0020EA18D151, según se ve en la respuesta ARP. ¿A qué dirección MAC va dirigida la trama que contiene la petición DNS dirigida al servidor DNS? A la dirección MAC 0020EA18D151, que corresponde a la del equipo con IP 200.200.200.1, lo cuál nos confirma lo que ya decíamos antes: el 200.200.200.1 es un router y el servidor DNS está ubicado en una red diferente a la de nuestro PC. A continuación se muestra el contenido de la trama con ID=4 capturada en la red de nuestro PC: ¿Qué tipo de segmento TCP contiene la trama con ID=4? Un segmento SYN, tal como se indica en el listado de tramas, usado para abrir la conexión TCP. ¿A qué dirección MAC va dirigida la trama que contiene el segmento TCP que sirve para abrir la conexión con el equipo “route-server.ip.att.net”. Página 4 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A la dirección MAC 0020EA18D151, según podía verse en una de las ventanas anteriores, la cual corresponde a la del equipo con IP 200.200.200.1, lo cuál nos confirma lo que ya decíamos antes: el 200.200.200.1 es un router y el equipo al que le estamos haciendo TELNET está fuera de la red de nuestro PC. ¿Habría llegado al equipo 12.0.1.28 el segmento SYN que le ha enviado el 200.200.200.5 si en la ruta que tiene que seguir a través de Internet se hubiese encontrado con una red cuya MTU fuese de 45 octetos? No habría podido llegar, puesto que el datagrama dirigido al 12.0.1.28 tiene una longitud total de 48 octetos (20 de cabecera y 28 de datos) y se observa que tiene activado el bit DF , lo cual habría impedido la fragmentación necesaria para poder atravesar la red de 45 octetos de MTU. ¿Cuál es la longitud de la cabecera IP del paquete contenido en la trama con ID=4? En la ventana anterior el analizador nos muestra decodificada la parte final de la cabecera IP y puede verse que no hay opciones al final de la misma, justo detrás de la “Destinación Address”, así que la longitud de la cabecera es de 20 octetos, la mínima posible. Otra forma de averiguarlo es localizar en el panel inferior de la ventana de captura el octeto asociado al campo “Versión/Header Length”, que en este caso vale 0x45 (hexadecimal) y está colocado en la posición 0x0E (hexadecimal) de dicho panel. El valor 0x45 indica que el campo “Header Length” vale 5, por lo que la cabecera mide 5 palabras de 32 bits, que son los 20 octetos que habíamos dicho. ¿Cuál es la longitud de la cabecera TCP del segmento que hay en el interior de la trama con ID=4? El campo “Header Length” de la cabecera tiene una anchura de 4 bits y su valor es 7 en este caso, lo cual indica que la longitud de la cabecera TCP es de 28 octetos (7 palabras de 32 bits). ¿Incluye opciones el segmento TCP mostrado en la ventana anterior? Efectivamente, pues todo segmento TCP con más de 20 octetos de cabecera es un segmento con opciones. Según lo que nos muestra el analizador, hay una opción de tipo 2 (Maximum Segment Size), dos opciones de tipo 1 (No Operation) y una opción de tipo 4 (TCP Selective ACK Permitted). ¿Qué está indicando nuestro PC al usar la opción MSS (“Maximum Segment Size”) con el valor 1460 en el segmento SYN que envía al 12.0.1.28 para abrir la conexión TCP? Está informando al 12.0.1.28 de que está dispuesto a recibir segmentos TCP que contengan como mucho 1460 octetos de datos. Nótese que esta opción sólo puede usarse en segmentos SYN. No es obligatorio hacer uso de esta opción, pero es muy recomendable hacerlo. ¿Qué está indicando nuestro PC al usar la opción SACK-permitted (“TCP Selective ACK Permitted”) en el segmento SYN que envía al 12.0.1.28 para abrir la conexión TCP? Permitiendo al equipo 12.0.1.28 usar la opción SACK (“TCP Selective ACK”). Esto hay que hacerlo pues no todos los hosts implementan esta mejora sobre el funcionamiento normal de TCP, por lo que si no se le da permiso explícitamente, dicha opción no será utilizada por la otra parte. Nótese que la opción SACK-permitted sólo puede usarse en segmentos SYN. ¿Para que se han usado las dos opciones “No Operation” en el segmento TCP mostrado en la ventana anterior? Para conseguir que las opciones TCP ocupen 8 octetos, que es múltiplo de 4 octetos. ¿Cómo sabe el analizador que el datagrama IP mostrado en la ventana anterior contiene datos del protocolo TCP? Porque el valor del campo “Protocol ID” del cabecera IP es 6, que es le valor que identifica al protocolo TCP. ¿Qué flags tiene activados el segmento TCP contenido en la trama con ID=4? Sólo tiene activado (a valor 1) el bit SYN. Los otros cinco, URG, ACK, PSH, RST Y FIN están desactivados (a valor 0). Un segmento con el bit SYN es un segmento de sincronización que sirve para abrir la conexión y comunicarle al otro host nuestro número de secuencia inicial. ¿Es posible enviar un segmento TCP cuya longitud sea mayor que la longitud máxima de los datos que puede transportar un datagrama IP? No. Un segmento debe viajar siempre dentro de un único datagrama IP, por lo que si no cabe en un datagrama IP la solución es crear un segmento TCP más pequeño, con menos datos en su interior. Nótese que no hay ningún inconveniente en fragmentar un datagrama IP que contenga un segmento TCP, pues la fragmentación de un datagrama IP no tiene nada que ver con el contenido del mismo. ¿Cómo se sabe cuál es la longitud total de un segmento TCP? En la cabecera del segmento TCP existe un campo que indica la longitud de dicha cabecera, pero no existe ningún campo que indique la longitud total de un segmento TCP ni tampoco la longitud de los datos. Sin embargo, sabemos que es posible conocer la longitud de los datos contenidos en un datagrama IP, lo cual permite conocer la longitud del segmento TCP contenido en un datagrama IP. Página 5 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ A continuación puede verse el primer segmento TCP enviado por el equipo al que se le está haciendo TELNET, cuya IP es 12.0.1.28. ¿Qué opción TCP ha usado el equipo 12.0.1.28 en su primer segmento TCP? Únicamente ha usado la opción MSS (“Maximum Segment Size”) para decir que no se le deben enviar segmentos que contengan más de 536 octetos de datos. Nótese que no aparece la opción SACK-Permitted, lo cuál indica que es un host que no reconoce las opciones SACK y por tanto ni las enviará ni deben enviársele. ¿Qué flags tiene activados el primer segmento TCP enviado por el equipo 12.0.1.28? Está activado el bit SYN, indicando que es un segmento de sincronización. También está activado el bit ACK para indicar que el campo “Acknowledgement Number” es significativo y su valor debe tenerse en cuenta. ¿Qué número de secuencia inicial han escogido los equipos 200.200.200.5 y 12.0.1.28 para ir numerando los datos? El 200.200.200.5 escogió en su segmento SYN el número 2221078 como número de secuencia inicial. Por su parte, el 120.0.1.28 ha escogido el 3077941795 en el segmento SYN mostrado en la ventana anterior. ¿Para que ha servido el segmento SYN enviado por el 12.0.1.18 además de para informar al 200.200.200.5 del número de secuencia inicial que escogido por el 12.0.1.28? El segmento SYN que le llega al 200.200.200.5 tiene el bit ACK activado y el valor del campo “Acknowledgement Number” es 2221079, lo cual indica que el 12.0.1.28 ha recibido correctamente el bit SYN (que tenía asociado el número de secuencia 2221078) y está esperando recibir el octeto de Página 6 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ datos con número de secuencia 2221079. Nótese que no se está reconociendo el segmento SYN sino el bit SYN, que tiene asociado un número de secuencia como si se tratase de un octeto de datos, el primero de todos. ¿Indica algo especial el valor 0 que tiene el campo “Identification” de la cabecera IP del primer datagrama IP que ha enviado el equipo 12.0.1.28? No. El valor 0 es tan válido como otro cualquiera. Este campo sólo se usa para reconocer los diferentes fragmentos en los que ha quedado dividido un datagrama. Lo importante es procurar que todos los datagramas IP enviados de un equipo a otro tengan valores distintos en ese campo o, por lo menos, que cuando se repita un valor, el anterior datagrama IP que lo usó ya haya llegado a su destino. ¿Qué puertos TCP se están usando en esta conexión? Cuando el cliente TELNET ubicado en nuestro PC envió el primer segmento TCP al servidor ubicado en el equipo 12.0.128, lo hizo poniendo como “Destination Port” el 23, pues ese es el puerto bien conocido que usan por defecto todos los procesos que hacen el papel de servidores TELNET. En ese mismo segmento, el cliente TELNET escogió el 1165 como “Source Port”, seguramente porque era un puerto que no estaba siendo usado por ningún otro proceso en ese momento. A partir de ese momento, todos los segmentos enviados por el cliente van desde el puerto 1165 al 23, mientras que los segmentos que le envía el servidor van del puerto 23 hacia el 1165. La ubicación de los servidores en puertos bien conocidos es simplemente una cuestión práctica, pues hace muy fácil averiguar en que puerto se encuentra esperando una conexión un determinado servidor dentro de una máquina. A continuación se muestra parte del contenido de la trama con ID=6: ¿Por qué en la ventana anterior nos muestra el analizador, justo después del segmento TCP, un campo llamado “Data/Padding” que tiene una longitud de 6 octetos? En el panel inferior de la ventana de captura podemos ver que la trama con ID=6 tiene 64 octetos de longitud y contiene 46 octetos de datos, al descontarle la MAC destino, MAC fuente, campo Ethertype y campo FCS. Los 46 octetos de longitud mínima que deben tener los datos contenidos en una trama Página 7 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Ethernet no han podido alcanzarse con el datagrama IP que contiene esta trama, pues éste sólo ha ocupado 40 octetos en este caso (20 de la cabecera IP y 20 de la cabecera TCP), así que la tarjeta Ethernet ha debido de añadir 6 octetos de relleno (“Padding”) para completar los datos de la trama. ¿Qué está queriendo decir el equipo 200.200.200.5 al enviar el segmento TCP mostrado en la ventana anterior? El segmento TCP mostrado en la ventana anterior no contiene datos. Su misión es indicarle al equipo 12.0.1.28 que se ha recibido correctamente el segmento SYN que éste ha enviado. Realmente el reconocimiento no va asociado al segmento SYN sino al bit SYN, cuyo número de secuencia era el 3077941795. Es por eso que el éste segmento tiene activado el flag ACK y el valor del campo “Acknowledgement Number” es 3077941796, indicando que se está esperando recibir el octeto con dicho número de secuencia y que se han recibido todos los anteriores a éste (incluyendo, por tanto, al bit SYN). Normalmente el analizador de protocolos muestra en la columna “Summary” del listado de tramas información relativa a los datos del protocolo de mayor nivel que se encuentran encapsulados en cada trama, tal y como se puede apreciar en la siguiente ventana: No obstante, también se puede configurar el analizador de protocolos para que en la columna “Summary” la información mostrada sea del protocolo de mayor nivel posible, siempre que éste no sea mayor que el nivel de transporte, tal y como se puede ver en la siguiente ventana: ¿Qué ventajas ofrece cada una de las dos formas de presentar el listado de tramas frente a la otra? La presentación del listado de tramas omitiendo la información del nivel de aplicación hace que podamos ver de un vistazo un resumen del los principales campos de todos los segmentos TCP y de Página 8 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ los datagramas UDP, incluso de aquellos que contienen datos de nivel de aplicación. Esto es muy útil si lo que queremos es hacer un estudio del comportamiento del nivel de transporte sin importarnos los niveles superiores. Por otro lado, si lo que nos interesa es analizar el comportamiento del protocolo del nivel de aplicación, TELNET y DNS en nuestro caso, lógicamente lo mejor es que se muestre la información del protocolo de mayor nivel contenido en cada trama. De todas formas, se seguirá mostrando exclusivamente información de nivel de transporte para los segmentos TCP que no contengan datos (LEN=0). ¿Qué campos de las cabeceras de nivel de transporte se muestran en la columna “Summary” del listado de tramas? Lo primero es el tipo de protocolo de nivel de transporte (UDP o TCP) en este caso. Si es un datagrama UDP se muestran también el puerto origen, el puerto destino y la longitud total del datagrama. Si es un segmento UDP se muestra el puerto origen (SP), el puerto destino (DP), el número de secuencia (SEQ), el número de reconocimiento (ACK), el tamaño de la ventana (WS), los flags (PSH, SYN, etc. a excepción del ACK), la longitud de los datos contenidos en el segmento (LEN=n) y una indicación de si el segmento incluye opciones (OPT). ¿Qué se está indicando cuando se envía un segmento con el flag ACK activado? Si el flag ACK está activado, entonces el valor del campo “Acknowledgement Number” está indicando el número de secuencia de un octeto que aún no ha sido recibido. Además, implícitamente se está reconociendo que han llegado correctamente todos los octetos cuyos números de secuencia son inferiores ése. ¿Por qué, de los 102 segmentos TCP que se han intercambiado los dos equipos durante el tiempo que ha durado la conexión, tan sólo el primer segmento, enviado por el equipo 200.200.200.5, tenía el flag ACK desactivado? En ese primer segmento, el equipo 200.200.200.5 no podía indicar qué octeto estaba esperando recibir, pues la conexión no estaba establecida y el otro equipo no había elegido aún su número de secuencia inicial, así que el campo “Acknowledgement Number” tenía un valor sin sentido (cero en este caso) y el flag ACK estaba desactivado para indicar esta circunstancia. Sin embargo, en el resto de segmentos, el emisor ya sabía cual era el octeto que estaba esperando recibir de su interlocutor y por eso se incluye siempre dicho valor en el campo “Acknowledgement Number” y se activa el bit ACK. Téngase en cuenta que hacer esto no implica que el segmento tenga un mayor tamaño, pues tanto el flag ACK como el campo “Acknowledgement Number” ocupan espacio en la cabecera TCP, sea cual sea su valor. ¿Qué indica la llegada de un segmento con el campo “Sequence Number” a valor “x”? Quiere decir que el primer octeto de los datos contenidos en ese segmento tiene asignado el número de secuencia “x”, el segundo octeto de datos tendrá asignado el “x+1” y así sucesivamente. Si el segmento no contiene datos nos da igual el valor de este campo. Nótese que el flag SYN y el flag FIN consumen un número de secuencia, igual que si fueran un octeto de datos, aunque viajen en un segmento que no contenga datos. A continuación se muestra otra vez el listado de las tramas capturadas en la red de nuestro PC, encontrándose resaltada la trama con ID=6, la cual contiene el segundo segmento TCP enviado por el equipo 200.200.200.5: ¿Qué indica el equipo 200.200.200.5 con el valor 8576 en el campo “Window Size” del segmento contenido en la trama con ID=6? Ese valor es el tamaño de la ventana de recepción del equipo 200.200.200.5, por lo que cuando el 120.0.1.28 reciba este segmento sabrá que puede enviarle al 200.200.200.5 hasta 8576 octetos sin tener que esperar a que le vayan llegando los reconocimientos. Estos 8576 octetos se cuentan a partir del octeto con número de secuencia 3077941796, que es el número del primer octeto que el Página 9 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ equipo 200.200.200.5 está esperando recibir, pues ese es el valor del campo “Acknowledgement Number” presente en este mismo segmento. Podemos decir que la ventana de recepción de un equipo es un intervalo de números de secuencia que comprende desde el “Acknowledgement Number” (inclusive) hasta el “Acknowledgement Number + Window Size ” (exclusive). A estos números se les conoce como borde izquierdo y borde derecho de la ventana de recepción, respectivamente. ¿Ha reducido en algún momento el tamaño de la ventana de recepción el equipo 200.200.200.5? Sí. Por ejemplo, en la trama con ID=8 hay un segmento con el campo “Window Size” a valor 8564, que es una ventana de recepción 12 octetos menor que la que tenía antes. Se puede agrandar o reducir la ventana de recepción pero sin mover ninguno de sus dos bordes hacia atrás. En este caso lo que se ha hecho para reducir la ventana es avanzar en 12 octetos su borde izquierdo (“Acknowledgement Number” = 3077941808 = 3077941796 + 12) y se ha dejado quieto el borde derecho (“Acknowledgement Number + Window Size” = 3077941808 + 8564 = 3077941796 + 8576). ¿Ha reducido en algún momento el tamaño de la ventana de recepción el equipo 12.0.1.28? Sí. En la trama con ID=11 se ve que la anchura de la ventana de recepción es de 4288 octetos, mientras que en la trama con ID=12 la ventana de recepción del 12.0.1.28 es de 4285 octetos, tres menos que antes. La reducción de la anchura se ha efectuado correctamente, pues no se ha movido ninguno de los bordes de la ventana hacia atrás. El único que se ha movido ha sido el borde izquierdo, pues el campo “Acknowledgement Number” ha pasado de valer 2221079 a valer 2221082, que son tres octetos más que antes. A continuación se muestran los datos contenidos en un segmento TCP enviado por el servidor TELNET que se encuentra en la máquina 12.0.1.28: ¿Por qué sabe el analizador de protocolos que los datos contenidos en el segmento TCP mostrado en la ventana anterior corresponden al protocolo TELNET? El analizador, tal y como se muestra una de las ventanas anteriores, sabe que el puerto origen de este segmento TCP es el 23. Como el 23 es el puerto bien conocido reservado para el protocolo TELNET, se deduce que los datos son de dicho protocolo. Nótese que la misma deducción habría tenido lugar si hubiese sido 23 el valor del puerto destino. ¿Por qué aparece la etiqueta “Data” a la izquierda de los datos del protocolo TELNET? Porque se trata de datos y no de comandos TELNET. Página 10 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué ha hecho el cliente TELNET al recibir los datos del protocolo TELNET que se muestran en la ventana anterior? Como se trata de datos (caracteres de texto), el cliente TELNET ha procedido a representarlos en la ventana de salida del programa “telnet” que se está ejecutando en nuestro PC. Nótese que lo que el analizador nos muestra como <0D><0A> son los caracteres de control 0x0D y 0x0A correspondientes a un retorno de carro (CR, “Carriage Return”) y un avance de línea (LF, “Line Feed”), que tienen en pantalla el efecto de volver el cursor a la izquierda de la ventana y dejar una línea en blanco. Si nos fijamos en la ventana inicial que nos mostró el programa “telnet” nada más ejecutarlo, vemos que los datos mostrado en la parte final de dicha ventana son precisamente los datos contenidos en el segmento TCP mostrado en la ventana anterior. En la ventana del cliente TELNET, en la que se nos mostraba una pantalla de presentación y un “prompt”, hemos tecleado una interrogación “?” para ver qué comandos tenemos disponibles en el router y esto es lo que se nos ha mostrado en pantalla: Como consecuencia de la pulsación de esta tecla se han generado en la red del PC 6 tramas, siendo la primera de ellas la que tiene el ID=21. A continuación puede verse un listado de las mismas: ¿Cuántos octetos de datos envía el PC al servidor TELNET, según lo visto en la ventana anterior? Sólo un octeto, el contenido en el segmento TCP de la trama con ID=21. Ese octeto será sin duda el carácter “?” que hemos tecleado en la ventana del terminal virtual. Los otros dos segmentos que envía el equipo 200.200.200.5 están vacíos. ¿Por qué están vacíos dos de los segmentos enviados por el cliente TELNET y mostrados en la ventana anterior? Página 11 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Esos dos segmentos vacíos se han emitido para reconocer la llegada de los datos enviados por el servidor TELNET. Por ejemplo, en el tercer segmento mostrado en la ventana anterior han llegado al cliente 536 octetos con números de secuencia que van desde el 3077943310 al 3077943845. En el cuarto segmento se ve cómo con un ACK=3077943846 el 200.200.200.5 avisa al 12.0.1.28 de que le han llegado todos los octetos anteriores al 3077943846 y que está esperando precisamente el octeto con número de secuencia 3077943846. Lo mismo ocurre con el sexto segmento mostrado en la anterior ventana, que sirve únicamente para reconocer la llegada de los datos del quinto segmento y todos los anteriores. Nótese que si por algún motivo el cuarto segmento no llegase a su destino, bastaría con que llegase el sexto segmento para que todos los datos enviados hasta ahora por el servidor hubiesen quedado correctamente reconocidos. ¿Ha reconocido el servidor el octeto de datos que le ha enviado el cliente en el primer segmento mostrado en la pantalla anterior? Sí. En el segundo segmento que puede verse en la pantalla anterior se observa como ACK=2221105, indicando que se reconoce al octeto con SEQ=2221104 y a todos los anteriores. Este segundo segmento tiene datos, pero se trata solamente de un octeto. Sin duda debe ser el carácter “?” que llega devuelto al cliente desde el servidor debido a que éste último está haciendo “eco” de todos los caracteres que le envía el cliente. A continuación se muestran dos pantallas con el contenido de los dos primeros segmentos mostrados en la pantalla anterior, los cuales se encuentran en el interior de las tramas con ID=21 e ID=22: ¿Por qué ha enviado el cliente el carácter “?” al servidor, como puede verse en la trama con ID=21? Porque nosotros lo hemos tecleado. La misión del cliente es enviar al servidor TELNET todos los caracteres tecleados en la máquina en la que está el cliente, de manera que sean interpretados por el proceso de aplicación que está por encima del servidor TELNET. ¿Por qué el segmento enviado por el cliente con el “?” tiene activado el flag PSH? Para indicar que el cliente TELNET al decirle a la entidad TCP que enviase el carácter “?” solicitó la realización de un “PUSH” para provocar que ese dato se enviase inmediatamente, sin esperar a que se llenase con más datos el segmento en el que iba a ser transportado dicho carácter. ¿Por qué he enviado el servidor el carácter “?” al cliente, como puede verse en la trama con ID=22? Porque el servidor y el cliente han quedado previamente de acuerdo en que el servidor haga “eco” de todos los caracteres que le envíe el cliente. El cliente no pinta en pantalla los caracteres tecleados, sino que muestra sólo los caracteres que llegan desde el servidor. Esto provoca que a veces exista un retraso apreciable entre el instante en que se teclea un carácter y el instante en que lo vemos aparecer en pantalla. Con esta técnica el usuario está siempre seguro de que los caracteres que está tecleando le están llegando el servidor TELNET. Además esto permite el servidor pueda no mostrar Página 12 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ los caracteres que se teclean cuando lo considere oportuno, simplemente omitiendo el eco de dichos caracteres. Un ejemplo de esto puede ser el instante en el que estamos introduciendo una clave de acceso que no deseamos que puedan ver los que están cerca de nosotros. A continuación se muestran los segmentos TCP contenidos en las tramas con ID=23 e ID=25? ¿Qué contienen los dos segmentos mostrados en las dos pantallas anteriores? Contienen el resultado que el proceso de aplicación que actúa como usuario del servidor TELNET quiere que se muestre en la ventana del usuario del cliente TELNET como resultado de haber pulsado el carácter “?”. Dicho carácter es un comando de petición de ayuda, por lo que la respuesta obtenida es un listado de los comandos que podemos utilizar junto con una breve descripción. Nótese que, como el equipo al que le hemos hecho TELNET es un router, los comandos disponible son comandos los comandos típicos que tiene un router: “enable”, “show”, “ping”, etc. ¿Por qué el servidor TELNET ha enviado los resultados del comando “?” en dos segmentos TCP distintos en lugar de enviarlo en uno sólo? Los resultados ocupan 684 octetos y han sido enviados en un primer segmento con 536 octetos de datos y otro de 148 octetos. El hecho de no usar un segmento mayor seguramente es debido a que el servidor TELNET no quiere crear datagramas muy grandes, bien por que no quepan sin fragmentar en la propia red a la que está él directamente conectado, bien porque piense que es probable que vayan a tener que fragmentarse en su camino hacia el cliente. Nótese también que el primer Página 13 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ segmento de 536 octetos de datos irá encapsulado en un datagrama de 576 octetos de longitud total, pues las cabeceras sin opciones de IP y TCP ocupan 20 octetos cada una. Precisamente son 576 octetos la longitud total del mayor datagrama que está obligado a aceptar cualquier equipo conectado a Internet. No obstante hay que recordar que el equipo 200.200.200.5 le había dado permiso al 12.0.1.28 para que le enviase segmentos que contuviesen hasta 1460 octetos de datos, cosa que no está haciendo por ahora. A continuación se muestra parte del contenido de dos segmentos TCP que se han intercambiado el cliente y el servidor TELNET: ¿Qué tipo de datos contienen los dos segmentos TCP mostrados en las pantallas anteriores? Son datos del protocolo TELNET. Sin embargo no se trata de caracteres tecleados por el usuario del terminal ni es información que el servidor TELNET desee mostrar en la pantalla del cliente. Se trata de comandos TELNET, los cuales permiten que el cliente y el servidor se envíen información especial al margen de los datos normales. ¿Cuál es la estructura de un comando TELNET? Los comandos TELNET empiezan por el octeto IAC (“Interpret As Command”) que tiene el valor 255, lo cual permite distinguirlos de los datos normales. A continuación viene un octeto que nos dice de que tipo es el comando. Dependiendo del tipo de comando, su longitud podrá ser mayor o menor. ¿Qué clase de comando TELNET ha enviado el servidor en el segmento mostrado en la primera de las dos pantallas anteriores? Se trata de un comando “WILL”, con código 253, que indica el deseo de implementar una determinada opción que no forma parte del funcionamiento por defecto del protocolo TELNET. La opción que el servidor quiere empezar a ejecutar en este caso es el “ECHO”, con código 1. Es decir, lo que el servidor está haciendo es decirle al cliente que desea empezar a hacer eco de todos los caracteres de datos que le vayan llegando. No obstante, hasta que el cliente no de su conformidad, el servidor no empezará a implementar dicha opción. ¿Qué clase de comando TELNET ha enviado el cliente el segmento mostrado en la pantalla mostrada anteriormente? Es un comando TELNET, concretamente el comando “DO”, de código 253, asociado a la opción “ECHO”, de código 1. Cuando un comando “DO”, referido a una cierta opción, es enviado como respuesta a un comando “WILL” referido a esa misma opción, se entiende que se está dando permiso al que envió el “WILL” para que empiece a implementar dicha opción. Quiere esto decir que a partir de ahora el servidor TELNET empezará a hacer eco de todos los caracteres de datos que le lleguen desde el cliente. ¿Es posible que el servidor o el cliente TELNET empiecen a ejecutar una determinada opción sin contar con la otra parte? Página 14 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ No. Siempre que se desee implementar una opción hay que avisarlo a la otra parte y esperar a que nos de permiso. También puede ocurrir que no nos de permiso. ¿Es posible que el servidor o el cliente TELNET le solicite a la otra parte que empiece a desarrollar una opción determinada? Efectivamente, si deseamos que la otra parte ejecute una cierta opción, podemos pedírselo con el comando “DO”, y ella podrá aceptarlo con el comando “WILL”. Sin embargo puede que no quiera hacerlo y nos lo diga con el comando “WON´T”. La idea es siempre la misma: Existe una serie de comandos que permiten al cliente y al servidor TELNET negociar el conjunto de opciones que desean añadir al funcionamiento por defecto del protocolo TELNET. A continuación se muestra el resultado que hemos obtenido en pantalla después de teclear el comando “ping www.dte.us.es”: ¿Qué equipo ha generado los mensajes ICMP de petición de eco asociados a este comando PING? El equipo 12.0.1.28 es el que envía los mensajes ICMP. Nosotros, desde el equipo 200.200.200.5 lo único que estamos haciendo es darle al equipo 12.0.1.28 la orden de que haga el PING. Como consecuencia de haber tecleado el comando “ping www.dte.us.es” y de la presentación en pantalla de los resultados de dicho comando, en la red del PC se han capturado una gran cantidad de tramas. Concretamente, todas las tramas capturadas en la red del PC cuyo ID está comprendido entre 27 y 90, ambas inclusive, contienen segmentos TCP relacionados con lo que se ha hecho. La primera de dichas tramas se muestra a continuación: ¿Qué datos TELNET contiene la trama con ID=27? Página 15 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Son datos que envía el equipo 200.200.200.5 al 12.0.1.28, concretamente se trata de la letra “p”, que es la primera letra del comando “ping” que se ha tecleado. A continuación se muestra la segunda de las tramas capturadas en la red del PC relacionadas con el comando PING que se ha tecleado: Página 16 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ ¿Qué datos TELNET pueden verse en la trama con ID=28? El servidor TELNET ha enviado el eco “eco” del carácter “p” que le envió el cliente en el segmento anterior. Obsérvese que la trama ha Ethernet ha sido rellenada con 5 octetos de relleno para poder alcanzar su longitud total mínima, que son 64 octetos. Tener que enviar un segmento casi vacío para enviar sólo una letra supone un gran desperdicio, pero a veces no hay más remedio que hacerlo. El último segmento que envía el 12.0.1.28 al 200.200.200.5 en relación al comando PING es el que se muestra a continuación: ¿Qué datos TELNET envía el servidor al cliente en el segmento de la trama con ID=89? Envía la última línea de resultados del comando PING, en la que aparecen las estadísticas de tiempos. También envía una línea adicional con el “prompt”, que es “route-server>”. El último segmento que envía el cliente TELNET en relación al comando PING puede verse en la pantalla siguiente: ¿Qué contiene el segmento TCP que se encuentra en la trama con ID=90? No contiene datos, pues en la columna ”Summary2 aparece “LEN=0” y también puede verse que el analizador nos dice “[20 bytes of data]” para indicarnos que el datagrama IP sólo contiene los 20 octetos que corresponden a la cabecera TCP de tamaño mínimo. Se trata, por tanto de un segmento TCP cuya única misión es indicarle al 12.0.1.28 que al equipo 200.200.200.5 le han llegado todos los Página 17 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ octetos anteriores al 3077944277, pues el campo “Acknowledgement Number” tiene ese valor. Es importante darse cuenta de que el último segmento que ha recibido el 200.200.200.5 tenía 90 octetos de datos y sus números de secuencia iban desde el 3077944187 al 307794276, ambos inclusive, lo cuál nos confirma que efectivamente el segmento enviado por el cliente tenía como único objetivo reconocer estos datos y, de paso, todos los anteriores. El último comando que vamos a teclear en la ventana de terminal que nos muestra el programa “telnet” va a ser el comando “exit”, que va a obligar al servidor TELNET a iniciar el cierre de la conexión TCP que tenía establecida con el cliente. En la siguiente pantalla puede verse el resultado que se le muestra al usuario del terminal: Las tramas capturadas en la red del PC como consecuencia del comando “exit” son éstas: ¿Qué contiene el segmento de la trama con ID=91? La letra “e”, que es la primera del comando “exit” que se ha tecleado. ¿Qué pretende el servidor con el envío del segmento contenido en la trama con ID=102? Página 18 del ejercicio20.doc htt p:/ /w ww . pa dte ra .us Ent de .e ra e s s / de ca tec n ca rga _in ptu r lo f/i ra s f tig/ *.C ich com AP ero u_ s do s/ Es un segmento que tiene el flag FIN activado, así que lo que quiere decir el servidor TELNET es que desea finalizar la conexión y que a partir de ahora no va a enviar ningún octeto más al cliente. Al pulsar el botón “Aceptar” de la ventana en la que el programa “telnet” nos decía que “Se perdió la conexíón con el host”, se han generado dos tramas más, con ID=104 e ID=105 respectivamente. A continuación se muestran esas dos tramas junto con las de ID=102 e ID=103: ¿Qué ha hecho el 200.200.200.5 cuando hemos pulsado el botón “Aceptar”? También le ha enviado un segmento con el flag FIN al 12.0.1.28 para indicarle que desea finalizar la conexión y que no desea enviar más datos. ¿Es posible que una entidad TCP le siga enviando datos a su interlocutor después de haber recibido el flag FIN? Efectivamente, mientras nosotros no enviemos el flag FIN podemos seguir enviando datos aunque el otro extremo nos haya enviado el flag FIN. Es el que envía el flag FIN el que no puede enviar más datos. Cuando los dos extremos envían el flag FIN y ambos han recibido los respectivos reconocimientos es cuando la conexión TCP se da por cerrada definitivamente. ¿Qué pretende el 200.200.200.5 al enviar el segmento contenido en la trama con ID=103? Este segmento no tiene datos (LEN=0) por lo que su única función es reconocer la llegada de todos los octetos con números de secuencia anteriores al 3077944284. Efectivamente el último número de secuencia recibido por el 200.200.200.5 era el 3077944283, pero dicho número de secuencia iba asociado al flag FIN. Es decir, el flag FIN es tratado como si fuera un octeto, pues se le asigna un número de secuencia y por tanto debe ser reconocido como tal, aunque no ocupe espacio en la zona de datos del segmento TCP. ¿Qué pretende el 12.0.1.28 al enviar el segmento contenido en la trama con ID=105? Este segmento no tiene datos (LEN=0) por lo que su única función es reconocer la llegada de todos los octetos con números de secuencia anteriores al 2221132. Se está reconociendo, por tanto, la llegada del flag FIN, cuyo número de secuencia es el 2221131. Nótese que el flag FIN consume el número de secuencia siguiente al último número de secuencia que se haya asignado al último octeto de datos que se haya transmitido. En este instante el equipo 200.200.200.5 da por cerrada la conexión. Página 19 del ejercicio20.doc