Puentes Transparentes (IEEE 802.1d) Puentes “No Frills”. Puentes “Learning”. Problema de los ciclos. Algoritmo de Spanning Tree. Extensiones a los puentes transparentes. Bibliografía R. Perlman, “Interconnections Second Edition Bridges, Routers, Switches and Internetworking protocols”, Addison Wesley, 1999. 1 Puente = Switch HUB Diferencias: 1) Número de puertos 2) Velocidad de conmutación (SW vs HW) 3) Multipunto vs. Punto-a-punto No relevante, evolución lógica Engañoso Igualdades: 1) Escuchar promiscuo 2) Aprendizaje 3) Spanning Tree Protocol 2 Puentes Transparentes No Frills (“tontos”) Puentes Transp. Administrador “Listos” Dir. en rangos Dir. Estructuradas Puentes “learning” 3 Puentes “Learning” A B C D E F A B C D B A ------ A B -----BA ------ C A B E F B A ------ D E F 1. Escuchar “promiscuo” (como todos los puentes transparentes). 2. Con la DIR. ORIGEN... Actualizar la CACHE del puerto por donde la ha recibido. 3. Con la DIR. DESTINO ... Comprobar las CACHES de todos los puertos ... SI la encuentra SI es el mismo puerto ---> eliminar la trama SI NO ---> transmitir por el puerto correspondiente SI NO ---> Transmitir por todos los puertos menos por el que recibió la trama. 4. Eliminar de las CACHES la información con tiempo mayor a “aging time”. 4 A Problema de los ciclos B ¿Solución al problema? Æ Evitarlo 1. Prohibir los bucles Æ Si existen ... culpar al administrador (como con los repetidores). 2. Que un puente (u otra máquina) pueda detectar la existencia de un bucle. (¿cómo?) 3. Diseñar un algoritmo que seleccione un ÁRBOL de la topología original. Existirían los ciclos, pero no “activos” Æ algoritmo de SPANNING TREE Es interesante que existan los ciclos. Ciclo Æ camino alternativo Æ tolerancia a fallos. 5 SPANNING TREE ÁRBOL: ÁRBOL: NNnodos nodosunidos unidospor por N-1 N-1líneas. líneas. ÁRBOL ÁRBOLde deEXPANSIÓN: EXPANSIÓN: ...que ...quese seexpande expandeaapartir partirde deun unnodo nodoraíz. raíz. RAÍZ: RAÍZ:ElElpuente puentecon conelelBRIDGE-ID BRIDGE-IDmás másbajo. bajo. MÉTRICA: MÉTRICA:Criterio Criteriopara paralalaexpansión. expansión.Usaremos Usaremoslalamás mássencilla, sencilla,elelHOP HOP(otras (otrasposibilidades) posibilidades). . Cada Cadapuente puentese seune unealalárbol árbolbuscando buscandolalamétrica métricamejor mejoraalalaraíz. raíz. 6 Expansión vista desde fuera Root 18 1 HOP 2 HOP 3 HOP 22 56 14 25 6 STP: Operación Spanning Tree Protocol (STP) es un algoritmo DISTRIBUIDO a) Muy sencillo de ejecución en cada puente b) Complejo de controlar globalmente Idea Ideabásica básica 1) 1) Los Lospuentes puentestransmiten transmiten periódicamente periódicamenteaalos losvecinos vecinosmensajes mensajes de deconfiguración configuración(BPDU). (BPDU). 2) 2) Los Lospuentes puentesseleccionan seleccionanalalpuente puenteraíz raíz (el (elde denúmero númerode deidentificación identificaciónmás más bajo). bajo). 3) 3) Cada Cadapuente puentecalcula calculalalamejor mejormétrica métrica aalalaraíz. raíz. 4) 4) Para Paracada cadaLAN, LAN,se seselecciona seleccionaun un designate bridge entre los puentes designate bridge entre los puentes que queconectan conectanaalalaLAN LAN(el (elpuente puentecon con mejor métrica a la raíz). mejor métrica a la raíz). 5) En 5) Encada cadapuente, puente,se seselecciona seleccionacomo como root port el puerto que da al puente root port el puerto que da al puente acceso accesoaalalaraíz raízcon conlalamejor mejormétrica. métrica. 6) Puertos en el árbol = 6) Puertos en el árbol = root rootport port++designate designateports ports resto = blocking resto = blocking 1 2 3 X 4 X X 5 7 Selección del puente ROOT ROOT-ID ROOT-ID==Prioridad Prioridad(16 (16bits) bits)++Dirección DirecciónMAC MACde deuna unade delas lasplacas placasde dered red(48 (48bits) bits) Valor Valorde defábrica fábrica==32.535 32.535 Configurable Configurablepor poreleladministrador administrador ¿Que puente seleccionarías como ROOT? 100Mbps 8 Mensajes de configuración Dest. 1.......... Orig. Tipo 42 42 Hello time (1 a 10 seg) Datos Mensaje de configuración (BPDU) Root-ID Cost Bridge-ID Port-ID ..... Otros 9 “Mejor mensaje” Los Lospuente puentereciben recibenlos losmensajes mensajesde deconfiguración configuraciónde desus susvecinos vecinosyy... ... eligen el “MEJOR MENSAJE”. eligen el “MEJOR MENSAJE”. Configuran Configuransus suspuertos puertosen enbase basealalmejor mejormensaje mensajeentre entre --los recibidos los recibidos --yyelelque quepuede puedegenerar generarelelpropio propiopuente. puente. Sean SeanM(A)=(a1, M(A)=(a1,a2, a2,a3, a3,a4) a4)yyM(B)=(b1,b2,b3,b4) M(B)=(b1,b2,b3,b4)dos dosBPDUs. BPDUs. Decidimos Decidimosque queelelmensaje mensajeM(A) M(A)es esmejor mejorque queM(B) M(B)con conbase baseen: en: sisi(a1<b1) (a1<b1)entonces entoncesM(A) M(A)es esmejor mejorque queM(B); M(B); sisi(a1=b1) (a1=b1)entonces entoncessisi(a2<b2) (a2<b2)entonces entoncesM(A) M(A)es esmejor mejorque queM(B); M(B); sisi(a1=b1) (a1=b1)entonces entoncessisi(a2=b2) (a2=b2)entonces entoncessisi(a3<b3) (a3<b3) entonces M(A) es mejor que M(B); entonces M(A) es mejor que M(B); sisi(a1=b1) (a1=b1)entonces entoncessisi(a2=b2) (a2=b2)entonces entoncessisi(a3=b3) (a3=b3)entonces entoncessisi(a4<b4) (a4<b4) entonces M(A) es mejor que M(B); entonces M(A) es mejor que M(B); 10 Estado de los puertos Estados Estados Puerto Puerto forwarding forwarding ------------------- root-port, root-port,designated-port designated-port listening -----------estado intermedio listening ------------ estado intermedio(forward (forwarddelay) delay) learning ----------“ “ “ learning ----------“ “ “ blocking blocking ----------------------- resto restode depuertos puertos dp 27 rp dp dp 7 dp 14 Blocking Blocking Listening Learning Listening Learning Forward Forwarddelay=30 delay=30seg. seg.tip. tip. rp = root-port dp = designated-port 37 rp Forwarding Forwarding RSTP 802.1w forwarding blocking listening/learning dp 11 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo Tx-1 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c 12 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c 13 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 14 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c 15 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c 16 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 17 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c 18 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Puerto Æ estado Æ dp dp Forwarding Forwarding 19 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Puerto Æ estado Æ dp dp rp dp Forwarding Forwarding Forwarding Forwarding 20 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Puerto Æ estado Æ dp dp rp dp rp Forwarding Forwarding Forwarding Forwarding Forwarding blocked 21 Ejemplo ( root-id . cost . bridge-id . port-id ) Tiempo 1.0.1.x 2.0.2.x 3.0.3.x 4.0.4.x Puente-1 Puente-2 Puente-3 Puente-4 a b a c b c b c Tx-1 1.0.1.a 1.0.1.b 2.0.2.a 2.0.2.c 3.0.3.b 3.0.3.c 4.0.4.b 4.0.4.c Rx-1 2.0.2.a 3.0.3.b 4.0.4.b 1.0.1.a 3.0.3.c 4.0.4.c 1.0.1.b 4.0.4.b 2.0.2.c 4.0.4.c 1.0.1.b 3.0.3.b 2.0.2.c 3.0.3.c Tx-2 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c Rx-2 1.1.2.a 1.1.3.b 1.1.4.b 1.0.1.a 1.1.3.c 1.1.4.c 1.0.1.b 1.1.4.b 1.1.2.c 1.1.4.c 1.0.1.b 1.1.3.b 1.1.2.c 1.1.3.c Tx-3 1.0.1.a 1.0.1.b 1.1.2.a 1.1.2.c 1.1.3.b 1.1.3.c 1.1.4.b 1.1.4.c blocked rp Forwarding blocked Puerto Æ estado Æ dp dp rp dp rp Forwarding Forwarding Forwarding Forwarding Forwarding 22 Ejemplo (2) TAREAS: 4 A B 1. Dar direcciones a los puentes. 2. Calcular el árbol (God mode :-)) 3 1 3. Calculo distribuido (tablas de configuración) C 4. Simular un error en (p.e.) línea C-3 2 D E F 5 6 23 Cache TimeOuts 1. Dilema del TimeOut largo (minutos) frente al corto (segundos) 2. Dos TimeOuts configurables por el administrador. TimeOut largo ---> funcionamiento normal TimeOut corto ---> activado por el mensaje TC (topology change) 24 Formato de los mensajes Topology change notification Configuration msg Protocol identifier version menssage type TCA, reserved, TC root-ID cost bridge-ID port-ID message age max. Age hello time forward delay Protocol identifier version message type 0 0 0 0 0 128 Message-age=0 20 [6-40] 2 [1-10] 15 [4-30] Message-age=1 Message-age=2 25 Detalles de implementación Considerando: 1. Que en ausencia de mensajes de configuración en un puerto, el puente asume ser el ‘designated port’ para ese puerto. 2. Que los ciclos son potencialmente desastrosos. Debe procurarse: Diseñar el árbol de tal manera que si la red se congestiona, el ST funcione correctamente. ¿Como? 1. Suficiente potencia en la CPU de los puentes para evitar que el puente descarte tramas. (Si descarta .... Posible pérdida de mensajes de configuración.) 2. El puente debe poder transmitir mensajes de configuración no importa lo congestionada que este la red. 26 Problemas con el Spanning Tree 1. One way connectivity. 2. Estaciones multi-homed s Tx pero no Rx s s s s s s s s s s s s 27 No tan transparente Diferencias entre una LAN y una LAN Extendida Diámetro máximo recomendado por IEEE Æ 7 puentes 1. Mayor probabilidad de pérdida de tramas 2. Mayor retardo ---> mayor tiempo de vida de una trama ---> TimeOuts de aplicaciones 3. Mayor probabilidad de errores en trama. (fallos en memoria de puentes) (mantener CRC si es posible) 4. Posibilidad de recepción de tramas desordenadas (reconfiguraciones del árbol) 5. Posibilidad de duplicados (bucles temporales) Además, si coexisten diferentes tecnologías de LAN ... 6. Las estaciones tienen que controlar cual es el tamaño máximo de trama (MTU) 7. Información específica de una tecnología puede perderse (p.e. Las prioridades en FDDI, TR) Y además, se asume ... A. Una estación sólo debe aparecer en un único punto de la red. B. Una estación destino, especialmente si recibe mucho tráfico, responderá identificandose (y siendo localizada por los puentes). 28 C. No habrá alumnos de la FI maliciosos mandando desde una estación “mensajes de desconfiguración” El árbol como topología de interconexión - Problemas de sobrecarga de tráfico cuanto más cerca de la Raíz. - Solución: Fat Tree - Nuevo problema: Varias tecnologías, no pudiendo utilizar la mejor en las hojas. Internet G UPVnet basada en dorsal 1GE 29 30