24 de noviembre de 2011 Redes de Datos 2do parcial – 2011 Solución Esta es una posible solución a las preguntas planteadas. Por razones didácticas puede contener más información que la mínima necesaria para responder la pregunta. Los textos marcados de esta forma, corresponden a aclaraciones e imprecisiones de la letra indicados oralmente durante la prueba. Pregunta 1 (9 puntos) En el esquema de la figura las tablas de enrutamiento de los equipos tienen las siguientes entradas: A 192.168.0.5 B 192.168.3.10 192.168.0.254 R1 192.168.0.0/24 LAN1 172.16.0.1 172.16.0.6 R3 192.168.3.254 192.168.3.0/24 LAN2 172.16.0.0/26 LAN3 Tabla de A Red destino Máscara Próximo salto Tabla de R3 Red destino Máscara Próximo salto 192.168.0.0 255.255.255.0 if0 192.168.3.0 255.255.255.0 if0 192.168.3.0 255.255.255.0 192.168.0.254 172.16.0.0 255.255.255.192 if1 Máscara Próximo salto Tabla de R1 Red destino Máscara Próximo salto Tabla de B Red destino 192.168.0.0 255.255.255.0 if0 192.168.3.0 255.255.255.0 if0 172.16.0.0 255.255.255.192 if1 192.168.0.0 255.255.255.0 192.168.3.254 192.168.3.0 255.255.255.0 172.16.0.6 a) Un usuario en A realiza un ping a B y reporta que no funciona. Se verifica el correcto funcionamiento de todos los equipos involucrados. Identifique cuál es el problema y proponga una solución. Debido a que R3 no tiene una entrada en su tabla para la red 192.168.0.0/24 a través de R1 (172.16.0.1). Esto hara que las respuestas que B envia a A sean descartadas por el Router R3 por no poseer ruta para llegar a la red en la cual esta A. Se puede solucionar el problema agregando la ruta faltante en la tabla de R3. b) Aún con la solución de la parte a), un administrador en la consola de R3 realiza un ping a A y diagnostica que el equipo A no está encendido. ¿Es correcto este diagnóstico? Justifique El diagnostico del administrador es equivocado. Esto se debe a que cuando el administrador realiza un ping a A desde R3 la IP de origen de estos paquetes sera la 172.16.0.6. Entonces cuando llegan a A estos paquetes y A trata de responder revisa su tabla de ruteo y no encuentra ninguna entrada para enviar el paquete de respuesta. Esto se puede solucionar agregando una ruta por defecto a través de R1 (192.168.0.254) o agregando una ruta para la red 172.16.0.0/26 a través de R1 (192.168.0.254). c) Para un paquete IP que viaja de A hacia B, indique en cada segmento de red (LAN1, LAN2 y LAN3) las direcciones MAC e IP de origen y destino de las tramas involucradas. Se supone que las tablas de ARP ya fueron resueltas En LAN1: MAC Origen MAC Destino IP Origen IP Destino MAC_A MAC_R1_if0 192.168.0.5 192.168.3.10 1/6 24 de noviembre de 2011 En LAN3: MAC Origen MAC Destino IP Origen IP Destino MAC_R1_if1 MAC_R3_if1 192.168.0.5 192.168.3.10 En LAN2: MAC Origen MAC Destino IP Origen IP Destino MAC_R3_if0 MAC_B 192.168.0.5 192.168.3.10 Pregunta 2 (8 puntos) Explique el funcionamiento de los códigos detectores de errores basados en polinomios (CRC). En particular, explicar: a) Cómo se construyen los mensajes intercambiados entre equipos. b) Cómo se reconstruye el mensaje original. c) Cómo se detectan los errores y en qué casos no se detectan los mismos. d) Qué propiedades debe cumplir el polinomio generador para detectar errores simples y errores dobles. a) Los métodos de detección de errores mediante CRC se basan en tratar las cadenas de bits como polinomios cuyos coeficientes serán 0 o 1. Un marco m con k bits corresponde a los coeficientes de un polinomio M(x) de grado k-1 que van desde xk-1 hasta x0. Por ejemplo 1101 corresponde al polinomio x3+x2+ 1. Para utilizar este método el transmisor y receptor deben ponerse de acuerdo en un polinomio generador G(x) de grado r. Dicho polinomio deberá cumplir algunas condiciones, algunas de las cuáles se mencionarán después. Por ejemplo, G(x) deberá tener el primero y el último de sus coeficientes en 1. Supongamos que el marco m que se quiere transmitir corresponde al polinomio M(x). Lo que se hace es agregar una suma de comprobación al final del marco, de manera que el polinomio representado sea divisible por G(x). El procedimiento es el siguiente: – Sea r el grado de G(x). Se anexan r bits en “0” al final del marco, con lo que tendrá m+r bits y corresponderá al polinomio: xrM(x). – Se divide la cadena de bits que corresponde a x rM(x) entre la que corresponde a G(x), usando división módulo 2 (sumas y restas son OR exclusivo sin acarreo). xrM(x) = G(x)*Q(x)+R(x) – Se resta el residuo (que tiene r o menos bits) a la cadena de bits correspondiente a x rM(x), usando resta módulo 2. Esto último es equivalente a poner los r bits del resto al final del mensaje de m bits. Llamemos a este polinomio T(x), que obviamente será divisible entre G(x), y es el marco que será transmitido. T(x) = xrM(x) – R(x) Observar que la resta o suma módulo 2 son equivalentes a XOR, por lo que sumar o restar es equivalente y además como xrM(x) tiene los r términos de menor grado en 0 y el residuo tiene grado r o menor, la resta (suma) indicada en el tercer paso, no es más que una concatenación de M(x) con el residuo. Esto facilita la implementación en hardware del método. b) Teniendo en cuenta la observación vista antes, una vez verificado que no hubieron errores, el mensaje original se reconstruye de forma sencilla. Alcanza con tomar los primeros m bits de mensaje equivalente del polinomio T(x). Notar que los primeros m bits corresponderian al mensaje y los últimos r bits al resto de la división antes mencionada. c) En el receptor se recibirá una trama que corresponderá a un polinomio Q(x)=T(x)+E(x), representando 2/6 24 de noviembre de 2011 E(x) al patrón de errores ocurrido en el canal y en el que serán 1 los bits alterados. Se divide Q(x) entre G(x) y se toma el resto. Como T(x) es divisible por G(x), el resto obtenido será simplemente el resto correspondiente a dividir E(x) entre G(x). Por lo tanto, si la división tiene un resto diferente a cero se habrá detectado la existencia de error(es) en el canal. El único caso en que no se detectarían los errores, es cuando E(x) es divisible entre G(x). (E(x) diferente de 0). d) Todos los errores simples siempre serán detectados, ya que se tratarán de casos en que E(x)=x i (para algun valor de i), que nunca será divisible entre un polinomio G(x) que contenga a los coeficientes de menor y mayor orden en 1, de un polinomio de grado r mayor o igual a 1. xr-1 + ...+ 1 No es posible sacar de factor común un xk Los errores dobles llevarán a polinomios E(x) de la forma xi+xj ( i>j ) que es representable como xj(xi-j+1). Por lo tanto una manera de detectar todos los los errores dobles es que G(x) no divida a polinomios de la forma xk+1 para ningún k hasta la longitud máxima del marco. Existen polinomios de bajo grado que no dividen a polinomios de la forma xk+1 para valores muy altos de k. De esa manera se han estandarizado algunos valores de G(x) para tener en cuenta los criterios anteriores y varias otras cosas más. Se puede encontrar más referencia a este tema en el Libro: “Redes de Computadores” de Andrew Tanenbaum – Sección 3.2 (tercera edición). Pregunta 3 (6 puntos) a) ¿Qué ventajas presenta, en una red 802.3, el uso de switches (puentes) para interconectar los equipos, en comparación con el uso de repetidores o hubs? b) ¿Qué problema se presenta si, para lograr redundancia en la red, se instalan switches en una topología que genera un loop? ¿Qué solución se dispone para solucionarlo? (Indique muy resumidamente cómo evita el problema dicha solución) a) Los puntos importantes a remarcar ante esta pregunta son: • Dado que el método de arbitraje para el acceso al medio genera colisiones cuando muchas estaciones intentan acceder al mismo, una ventaja importante de los switches es que al particionar la red en distintos dominios de colisión disminuyen la probabilidad de colisión mientras que los repetidores o hubs no. • Dado que el switch aprende la ubicación de cada dirección MAC activa, solo repetirá las tramas en los segmentos de destino adecuados, permitiendo múltiples comunicaciones entre pares de estaciones disjuntas, aumentando la capacidad efectiva de la red comparado con el uso de repetidores. • En caso de conectar una única estación por segmento y utilizar cableado UTP o Fibra, puede utilizarse el modo “full-duplex”, donde el switch y el equipo pueden transmitir simultáneamente, no existiendo colisiones y aumentando el ancho de banda efectivo. • Al reenviar las tramas solamente por el puerto donde se encuentra la MAC de destino, introduce una pequeña mejora en la seguridad de la red Ethernet, no siendo tan fácil “espiar” el tráfico dirigido a otra estación. • Permite alcanzar distancias mayores que las impuestas en un solo dominio de colisión por 802.3 (porque las colisiones no se propagan a través del switch, con lo que la distancia máxima dada por la detección de colisiones debe cumplirse en cada segmento conectado al switch, no en el total de la red. b) El problema de los switches en este tipo de topologías es que para cualquier trama que deba inundar (ya sea tramas enviadas a la dirección de difusión, o tramas enviadas a una dirección de capa MAC que no se encuentra en las tablas de los switches) se generan múltiples copias, las cuales inundan la red impidiendo el tráfico útil en la misma La solución que se dispone es el protocolo Spanning Tree en sus diferentes variantes (Spanning tree original, Rapid Spanning tree, etc.), el cual de forma automática genera una topología activa sin loops deshabilitando los puertos que generan loops. Para esto resumidamente los pasos son: • Se elige un switch como raíz • Cada switch elige el camino de menor costo a la raíz • Se bloquean aquellos puertos que generarían un loop 3/6 24 de noviembre de 2011 Pregunta 4 (9 puntos) Un sistema de transmisión de música sobre IP se basa en estaciones emisoras que mediante un sistema de suscripción envían tráfico UDP unidireccional hacia dispositivos receptores especializados cuya única función es recibir ese tráfico UDP (del mismo modo que lo haría un receptor de radio convencional), sin nunca enviar paquetes IP. En la figura, “Emisor” es la estación emisora y “M1” es el receptor. Switch ethernet (Puente) R Emisor M1 Dado que las máquinas de la red son de alta confiabilidad, el administrador ha decidido fijar en 1 día el tiempo de expiración de las entradas en la tabla de ARP del enrutador R, pensando en que esto reducirá el tráfico de broadcast. El puente (switch o bridge) tiene un tiempo de expiración de sus tablas de MAC de 5 minutos. Los computadores conectados al puente experimentan un aumento no deseado del tráfico en sus interfaces de red desde que se implantó este servicio. a) Suponiendo que el puente está encendido y que en determinado instante (t=0) se enciende el enrutador R. Explique el comportamiento del sistema en los siguientes intervalos de tiempo: i. 0 < t < 5min ii. 5min < t < 1día i. Cuando el router tenga que enviar el primer paquete a M1 este necesitara saber la direccion MAC por lo que realiza una consulta ARP, cuando el switch vea pasar la consulta ARP del router y la respuesta ARP de M1 colocara en la tabla de direcciones MAC la direccion de M1 y la de R. El router R incluirá en su tabla ARP la relacion IP_M1 <--> MAC_M1. Entonces cuando el router R envíe paquetes a M1 el switch que posee en su tabla la direccion MAC de M1 enviará los paquetes sólo por el puerto en el cual se encuentra conectado M1 no recibiendo tráfico extra los demas equipos. ii. Luego de pasados los 5 minutos, dado que M1 únicamente recibe tráfico y no envía ningún paquete, el switch no puede volver a aprender en que puerto se encuentra conectada. Entonces pasados los 5 minutos el switch borra de su tabla MAC la dirección de M1. Dado que el router aún mantiene en su tabla ARP la entrada para M1 no requiere realizar consultas ARP y sigue enviando los paquetes UDP a M1. Cuando el switch recibe estas tramas al mirar su tabla MAC no encuentra la dirección MAC de M1 por lo que envía la trama por todos los puertos menos por el que recibio la trama (Flooding o Inundación) y así se presenta el problema de aumento de tramas en los otros equipos. b) Proponga una solución. Justifique su respuesta La solución se basa en que la máquina M1 envie algun tipo de trama antes de que la entrada de la tabla MAC del switch caduque. Esto lograra que el switch siempre tenga actualizada la entrada en la tabla y no realice Flooding. Para lograr esto hay varias opciones: 1) Cambiar el tiempo del vida de las entradas ARP para que sea menor que el tiempo de expiración de la tabla del switch, esto hace que las peticiones ARP se den antes que el vencimiento de las tablas MAC 2) Cambiar el tiempo de vida de las entradas MAC para que sea mayor que las entrada de las tablas ARP obteniendo el mismo resultado que en 1. 3) Programar a la maquina M1 para que envie paquetes periódicamente en tiempos menores que los tiempos de vencimiento de la tabla MAC. Pregunta 5 (9 puntos) a) Explique el funcionamiento del protocolo de acceso al medio CSMA/CD. b) Explique la necesidad de estandarizar un tamaño mínimo de trama. c) Para el caso de 802.3 (que implementa CSMA/CD), explique qué sucede en el caso de que haya colisiones y en el caso que éstas se reiteren en intentos sucesivos. d) A lo largo de los años se han ido incrementando las velocidades de los estándares de Ethernet de 10 4/6 24 de noviembre de 2011 Mbps, a 100 Mbps, 1 Gbps y más. ¿Fue necesario modificar el tamaño mínimo de trama? Justifique su respuesta. a) Los protocolos CSMA (Carrier Sense, Medium Access) son protocolos para arbitrar el acceso al medio en canales compartidos y basan su funcionamiento en la posibilidad de las estaciones de detectar cuando se está transmitiendo y actuar acorde a ello, de modo de acotar la probabilidad de colisiones. Aún cuando se sense el medio antes de intentar transmitir, es posible que ocurran colisiones ya que una estación puede ver el canal libre más o menos simultáneamente con otra y ambas pueden decidir comenzar a transmitir en función de los retardos inherentes al canal. Cuando ocurren colisiones, las señales eléctricas correspondientes a ambas tramas se suman en el canal, corrompíendose los datos enviados por ambas estaciones. Hay tres modalidades de los protocolos CSMA, que se describen a continuacion: CSMA persistente-1 Este protocolo es el más sencillo de los que implementan detección de portadora. Cada vez que una estacion desea transmitir una trama, sensa el canal (detección de portadora). Si el canal esta libre comienza la transmisión de la trama. Si está ocupado, entonces permenece sensando el canal y cuando se desocupa, transmite. Se le llama persistente-1, ya que con probabilidad 1 transmite cuando se encuentra el canal libre. Esta característica es la que diferencia las restantes modalidades. En caso de ocurrir una colision, la estacion espera una cantidad aleatoria de tiempo e intenta nuevamente el proceso indicado. CSMA no persistente La modalidad no persistente se diferencia de la persistente-1 solamente cuando una estación encuentra el canal ocupado. En lugar de escuchar el canal hasta que la estación que estaba haciendo uso del canal lo libere y comenzar a transmitir de inmediato; espera un tiempo aleatorio y vuelve a sensar el canal, siguiendo el mismo comportamiento luego. De esta manera se obtiene una mejor utilizacion del canal que en el caso anterior y también mayores retardos. CSMA persistente-p Esta modalidad se aplica solamente a canales ranurados, es decir, en los que las estaciones solamente pueden transmitir en instantes determinados de tiempo (o ranuras). El funcionamiento es similar a la modalidad persistente-1, salvo que cuando una estación está lista para transmitir y observa que el canal esta en reposo, transmite con probabilidad p y espera a la siguiente ranuta con una probabilidad 1-p. En la siguiente ranura vuelve a sensar el canal y repite el proceso. De esta forma continúa hasta que logra transmitir la trama. El protocolo CSMA/CD agrega a los anteriores la detección de colisión (Colision detection, CD). Esta detección se realiza escuchando el canal mientras se transmite y comparando lo que se recibe con lo que se transmite. Si se recibe lo mismo que se transmite, entonces no hay colisiones. b) El largo mínimo de trama es necesario porque puede suceder que la estación A vea el canal libre y comience a transmitir pero por los retardos de propagación del canal, en otro punto del medio compartido, otra estación B aún vea el canal libre y también comience a transmitir. En este caso habría una colisión y para que A pueda detectarla deberá permanencer leyendo el canal y comparando con lo que está enviando. Si A parara de transmitir antes, no sabría si la señal que le llega de B es de una estación lejana que colisionó con su trama o de una estación cercana que comenzó a transmitir en cuanto A se detuvo. Por lo tanto, se necesita que en el peor caso A transmita al menos el tiempo necesario para que la señal de A llegue a B más el tiempo en que la señal de B llegue a A, y este tiempo multiplicado por la velocidad de transmisión en bits/s nos da la longitud mínima de trama (en bits). Este tiempo depende de la distancia máxima admitida entre cualquier par de estaciones (peor caso de separación entre A y B) y la velocidad de propagación de la señal electromagnética por el medio elegido. O sea L (bits)=V (bps) * T (s), siendo V la velocidad en bps y T el tiempo de ida y vuelta entre las estaciones más lejanas. Según la norma 802.3, en una LAN a 10 Mbps con una distancia máxima entre estaciones de 2500 metros y 4 repetidores, el tiempo de ida y vuelta (incluyendo la propagación en el cable y los retardos introducidos por los repetidores), se considera alrededor de 50 μsec en el peor caso. Por lo tanto el tamaño mínimo de trama será de 10 x 10 6 x 50 x 10 -6 = 500 bits, por lo que se toma agregando cierto márgen de seguridad 512 bits = 64 bytes como tamaño mínimo de trama. c) En 802.3 en caso que haya colisiones se elige un tiempo de reintento utilizando el algoritmo de retroceso exponencial binario (binary exponential backoff). Luego de la detección de la colisión, se discretiza el tiempo en ranuras del tamaño de una trama mínima o sea de 51,2 μsec que permiten 512 bits. En la 5/6 24 de noviembre de 2011 primer colisión, las estaciones eligen reintentar en el intervalo 0 o en el 1. Solamente si eligen el mismo intervalo volverán a colisionar. Para resolver esta segunda colisión eligen entre los intervalos 0,1,2,3 para reintentar, de modo que disminuya la probabilidad de una nueva colisión. En general se elige entre los intervalos 0 a 2n-1, siendo n el número de veces que se colisionó. d) En base al cálculo del tamaño mínimo de trama explicado en b), si no se cambian los parámetros físicos de la red, T no cambiará, por lo que al aumentarse V, aumentaría en la misma proporción el largo mínimo de trama. Para evitar esto, lo que cambió en las normas al aumentar la velocidad de transmisión es la distancia máxima admitida entre cualquier par de estaciones en el medio compartido. Pregunta 6 (9 puntos) a) En seguridad, ¿a qué se hace referencia cuando se habla de seguridad incondicional y de seguridad computacional? b) ¿Qué información contiene un Certificado de clave pública? ¿Qué utilidad tiene? c) El siguiente es el funcionamiento simplificado que se vio en clase del protocolo SSL/TLS. 1. El cliente envía los algoritmos soportados 2. El servidor envía su certificado de clave pública y los algoritmos elegidos 3. El cliente valida certificado del servidor 4. El cliente genera una clave secreta para la sesión, la encripta con la clave pública del servidor y la envía al mismo 5. El servidor obtiene la clave de sesión 6. Servidor y cliente comienzan a transmitir información usando esa clave i. Explique cómo el cliente debe validar el certificado del servidor. ¿Qué información debe tener el cliente? ii. ¿En qué momento el cliente puede asumir que su contraparte es el servidor con el cual quería comunicarse? Justifique. a) Seguridad incondicional se refiere a aquellos métodos en los cuales el atacante no puede obtener información del mensaje original solo con disponer del texto cifrado, ya que no hay suficiente información en el mismo para determinar unívocamente el mensaje Seguridad computacional nos dice que, dado un poder de recursos computacionales, el tiempo necesario para quebrar un código es más grande que el tiempo de vida del mensaje. b) El certificado de clave pública sirve para relacionar una identidad con su correspondiente clave pública, de una forma que la validez de esta relación pueda ser verificada por terceros. Al menos debe tener: - Una identidad (nombre, dirección de sitio web, etc.) - La clave pública correspondiente a esta identidad. - Información que permita identificar la autoridad certificadora que firma el certificado - Debe estar firmado por la autoridad certificadora (o sea que la autoridad certificadora genera un hash del contenido del certificado con un formato preestablecido, y luego encripta ese hash con su clave privada). Puede tener (y de hecho normalmente la tiene) otra información como fechas de validez del certificado, usos permitidos del certificado, un link a la lista de revocación correspondiente, etc. c) i) Para validar el certificado del servidor, el cliente precisa disponer de la clave pública de la autoridad de certificación (CA) correspondiente (obtenida de alguna manera “confiable”). El cliente debe verificar que la identidad corresponde con el servidor al que se está conectando, que el certificado está dentro de su período de validez y el resto de los datos del certificado. Luego genera el hash del contenido del certificado, desencripta la firma con la clave pública de la CA, y verifica que los hashes coinciden. Si coinciden, como es computacionalmente muy difícil generar otro hash que coincida con el del mensaje, y también es computacionalmente muy difícil tanto averiguar la clave privada a partir de la clave pública como generar una nueva firma sin conocer la clave privada, tiene la confianza que alguien que tiene la clave privada correspondiente a la clave pública que dispongo asegura la relación entre la identidad y la clave pública presentes en el certificado. ii) Recién en el paso 6, cuando el cliente reciba del servidor alguna información encriptada con la clave de sesión y pueda validar que se desencripta correctamente con la clave de sesión calculada por el, puede estar tranquilo que con quien se está comunicando tiene la clave privada correspondiente (ya que pudo desencriptar la clave de sesión encriptada con la clave pública) 6/6