STP (Spanning Tree Protocol) Adaptado para ISI por Enrique Ostúa Noviembre 2015 ISI: Infraestructura de Sistemas de Información 1/52 Índice Redundancia en una red convergente Cómo STP elimina los bucles de nivel 2 El algoritmo STP Rapid STP ISI: Infraestructura de Sistemas de Información 2/52 ¿Dónde estamos? LAN Design Switching Básico VLANs VTP Wireless STP Rutado entre VLANs ISI: Infraestructura de Sistemas de Información 3/52 ¿Qué queremos? Redundancia en el nivel de distribución y/o el núcleo Multiples switches y enlaces troncales Cuando un enlace o switch se cae, otro toma su lugar ISI: Infraestructura de Sistemas de Información 4/52 Pero redundancia provoca bucles Los bucles en switchs traen estos problemas si todos los enlaces están activos: Tormenta de broadcasts Transmisión multiple de una trama Tablas de conmutación inconsistentes ISI: Infraestructura de Sistemas de Información 5/52 Tormenta de broadcasts 2º El broadcast lo reenvía el primer switch, salen 2 tramas (rojo y rosa) 3º Cada uno se reenvia una y otra vez, no hay manera de pararlo 1º Envía ARP request ISI: Infraestructura de Sistemas de Información 6/52 Transmisión multiple de una trama 2º A en E3, B no sé, así que reenvío por E1 y E2 (rojo y rosa) 1º Envía trama a B 3º Llega la roja ¡ok! A ISI: Infraestructura de Sistemas de Información B 4º Llega la rosa ¡duplicado! 7/52 Tablas de conmut. inconsistentes 2º A en E3, B no sé, así que reenvío por E1 y E2 A está en E1! A está en E2?!? 1º Envía trama a B A ISI: Infraestructura de Sistemas de Información B 8/52 ¡Bucles por error! Incluso aunque no busquemos tener bucles para añadir redundacia, puede que se produzca un bucle por un error de conexionado... ISI: Infraestructura de Sistemas de Información 9/52 Etherchannel – no provoca bucles En Etherchannel se agregan los enlaces para que actuen como un único enlace y poder combinar su ancho de banda. Esas multiples conexiones no forman un bucle. ISI: Infraestructura de Sistemas de Información 10/52 Redundancia sin bucles Debe haber un único camino en cada momento Los caminos redundantes deben ser desactivados, pero estar alerta para ser activados si fuese necesarios Esto se debe conseguir de manera rápida y automática Spanning Tree Protocol lo hace. ISI: Infraestructura de Sistemas de Información 11/52 ¿Qué es un árbol de expansión? (Spanning Tree) Un topología en Árbol (Tree) Un árbol no tiene bucles Expansión (Spanning) a todos los dispositivos Todos los dispositivos están interconectados ISI: Infraestructura de Sistemas de Información 12/52 Esto no es un “spanning tree” No es un árbol, porque tiene bucles. ISI: Infraestructura de Sistemas de Información 13/52 Esto no es un “spanning tree” No es expandido, hay un dispositivo fuera. ISI: Infraestructura de Sistemas de Información 14/52 Esto sí es un “spanning tree” Es un aŕbol (no hay bucles), incluye a todos los dispositivos. ISI: Infraestructura de Sistemas de Información 15/52 Spanning tree protocol Lo usan los switches para convertir una topologia redundante en un “spanning tree” Desactiva enlaces bloqueando algunos puertos STP: IEEE 802.1d (de 1990, revisado en 1998) Rapid STP: IEEE 802.1w (de 2004, deja en desuso a STP) Switchs normalmente corren STP por defecto – no es necesario activarlo. ISI: Infraestructura de Sistemas de Información 16/52 Algoritmo “Spanning tree” Se sigue este algoritmo para decidir qué puertos se van a desactivar 1. Elegir un switch que sea “root bridge” 2. Elegir un “root port” en los demás switchs. 3. Elegir un “designated port” en cada segmento LAN. 4. Desactivar todos los demás ports (los que no son “root” ni “designated”). ISI: Infraestructura de Sistemas de Información 17/52 Un primer vistazo Root bridge Designated port Root port Root port Designated port Root port Designated port Designated port ISI: Infraestructura de Sistemas de Información Not chosen Close down 18/52 1º Elegir un “root bridge” Cada switch tiene un bridge ID (BID) con un “valor de prioridad seguido de dirección MAC”. Los switchs intercambian BPDUs (Bridge Protocol Data Units) para comparar sus BIDs. El switch con el BID más bajo es elegido el “root bridge”. El administrador puede fijar la “prioridad” del BID para forzar la elección (vale 32768 por defecto). ISI: Infraestructura de Sistemas de Información 19/52 Configurar prioridad Puede fijar un valor (¡siempre multiplos de 4096!): SW1# spanning-tree vlan 1 priority 24576 O indirectamente: SW1# spanning-tree vlan 1 root primary (fija a 24576, o a un valor 4096 menos el valor más bajo detectado en la red) SW1# spanning-tree vlan 1 root secondary (fija a 28672. este switch será el “root bridge” cuando el primario falle) ISI: Infraestructura de Sistemas de Información 20/52 Detalle de la elección Un switch arranca. Envía BPDU con su propio BID y el “root bridge BID” cada 2 segundos. Inicialmente los switchs se identifican a si mismos como el “root bridge”. Si un switch recibe un BPDU de un BID más bajo entonces identifica al switch con ese BID como “root bridge”. Y pasa esa información en las siguientes BPDUs que envíe. En algún momento todos los switchs se pondrán de acuerdo en que el switch con el BID más bajo es único y es el “root bridge”. ISI: Infraestructura de Sistemas de Información 21/52 2º Elegir los “root ports” Todos los switchs, salvo el “root bridge”, tendrán un “root port”, que será el que tenga el menor coste en el camino hacia el “root bridge”. ISI: Infraestructura de Sistemas de Información 22/52 El coste de un enlace Depende de la velocidad del enlace, fijada por el IEEE, y actualizada en nuevas revisiones de Ethernet. Velocidad enlace 10 Gbps 1 Gbps 100 Mbps 10 Mbps Coste revisado 2 4 19 100 ISI: Infraestructura de Sistemas de Información Coste previo 1 1 10 100 23/52 Fijando el coste de un enlace SW1(config)# int fa0/1 SW1(config-if)# spanning-tree cost 25 SW1(config-if)# end SW1(config)# int fa0/1 SW1(config-if)# no spanning-tree cost SW1(config-if)# end ISI: Infraestructura de Sistemas de Información 24/52 ¿Si se tiene el mismo coste? Usamos la prioridad del puerto y el número de la interfaz. Por defecto: Fa0/1 es 128.1 Fa0/2 es 128.2 ISI: Infraestructura de Sistemas de Información 25/52 Fijando la prioridad del puerto SW2(config-if)# spanning-tree port-priority 112 Prioridad desde 0 - 240, en saltos de 16. Más bajo es más prioritario. Por defecto será 128. ISI: Infraestructura de Sistemas de Información 26/52 Distribución de los costes Cada BPDU incluye el coste del camino hasta el “root bridge”, sumando el coste total de todos los enlaces por los que pasa. Cuando un switch recibe una BPDU, actualiza el coste, añadiendo el coste del puerto por el que ha recibido esa BPDU. ISI: Infraestructura de Sistemas de Información 27/52 3º Elegir los “designated ports” En cada segmento LAN, el puerto con el menor coste del camino hasta el “root bridge” se marca como “designated port”. (“Des” en la figura) ISI: Infraestructura de Sistemas de Información 28/52 En caso de mismo coste Si hay más de uno con el mismo coste mínimo, se elige al del switch con el BID más bajo. En el ejemplo es B. ISI: Infraestructura de Sistemas de Información 29/52 4º Desactivamos los bucles Cualquier puerto que no sea “root port” ni “designated port” pasa a un estado bloqueado. ISI: Infraestructura de Sistemas de Información 30/52 BPDU: campos 2 bytes Protocol ID 1 byte Version 1 byte Message type 1 byte Flags 8 bytes Root ID 4 bytes Cost of path 8 bytes Bridge ID 2 bytes Port ID 2 bytes Message age 2 bytes Max age 2 bytes Hello time 2 bytes Forward delay ISI: Infraestructura de Sistemas de Información Admin BID and path information Timers 31/52 Estados de los puertos en STP Blocking – recibe y transmite tramas BPDU. Listening - recibe y transmite tramas BPDU. Learning - recibe y transmite tramas BPDU y aprende direcciones MAC. Forwarding – actividad completa, reenvía los datos de usuario. Disabled – “shut-down” administrativo. ISI: Infraestructura de Sistemas de Información 32/52 Estados y timers Blocking Pérdida BPDU antig. máx = 20 seg Listening retraso forw. = 15 seg Learning retraso forw. = 15 seg Forwarding ISI: Infraestructura de Sistemas de Información Blocking Al levantar el enlace por primera vez “Hello timer” de 2 segundos para enviar BPDUs. Puede tardar hasta 50 segundos desde enlace caido hasta forwarding otra vez... 33/52 Cisco PortFast Un puerto de acceso que conecta con una estación de trabajo o un servidor no necesita usar STP y pasar por distintos estados de espera que ello conlleva, porque ese puerto no se debe desactivar. PortFast permite que un puerto pase del estado inicial “blocking” al final de “forwarding” Si después se conecta un switch en ese puerto, al recibirse una BPDU pasará otra vez al estado normal. SW1(config-if)# spanning-tree portfast ISI: Infraestructura de Sistemas de Información 34/52 Verificando spanning tree Switch-1# show spantree 1 VLAN 1 spanning-tree enabled spanning-tree type Designated Root Designated Root Priority (1 es el Vlan-ID) ieee 00-10-0d-b1-78-00 8192 Root bridge Designated Root Cost Designated Root Port Root Max Age 20 sec 0 1/0 Hello Time 2 Bridge ID MAC ADDR Bridge ID Priority Bridge Max Age 20 sec 00-10-0d-b1-78-00 8192 Hello Time 2 sec Forward Delay 15 sec sec ISI: Infraestructura de Sistemas de Información Forward Delay 15 sec Este switch 35/52 TCN: Notificando cambios topología Una vez que la red converge, el “root bridge” envía BDPUs pero el resto de switchs no lo hacen normalmente. Si hay un cambio en la topología un switch envía una BPDU especial llamada TCN (Topology Change Notification) con destino al “root bridge”. Cada switch que recibe un TCN manda un ACK de vuelta y reenvia el TCN hacia el “root bridge”, hasta que finalmente este lo recibe. El “root bridge” entonces envia BPDUs con el bit TC (Topology Change) activo. ISI: Infraestructura de Sistemas de Información 36/52 Mejoras de STP Propietarias de Cisco Per-VLAN STP (PVST). Per-VLAN STP plus (PVST+) - soporta IEEE 802.1Q (enlaces troncales) Rapid per-VLAN STP+ (RapidPVST+) Standard IEEE: Rapid spanning tree protocol (RapidSTP) Multiple STP (MSTP) - ISI: Infraestructura de Sistemas de Información 37/52 PVST+ STP separada para cada VLAN. Es el que usan por defecto muchos switch Catalyst. ISI: Infraestructura de Sistemas de Información 38/52 RapidSTP (RSTP) Mejora a STP, pero es compatible con él. La convergencia es mucho más rápida. Misma BPDU, el campo versión es un “2”. Envía BPDUs cada 2 segundos. Cambiar los roles de los puertos y sus estados. No se usan los timers del mismo modo. Un enlace se considera caido cuando se pierden 3 BPDUs (6 segundos) ISI: Infraestructura de Sistemas de Información 39/52 “edge port” en RapidSTP Un puerto que nunca se conectará a otro switch. Pasa al estado de 'forwarding' inmediatamente. La misma idea de Cisco PortFast. De hecho es la misma sintaxis: SW1(config-if)# spanning-tree portfast ISI: Infraestructura de Sistemas de Información 40/52 Estado de un puerto Operación... STP RapidSTP ACTIVADO Blocking Discarding ACTIVADO Listening Discarding ACTIVADO Learning Learning ACTIVADO Forwarding Forwarding DESACTIVADO Disabled Discarding ISI: Infraestructura de Sistemas de Información 41/52 Puertos en RapidSTP “root” y “designated” como en STP. ISI: Infraestructura de Sistemas de Información “alternate port” se activa si el puerto “Des” falla. 42/52 Puertos en RapidSTP “backup port” se activa si falla el “root port”. ISI: Infraestructura de Sistemas de Información 43/52 RapidSTP: roles de los puertos Forwarding Root port Designated port Discarding Backup port Alternate port Edge Ambos desactivados, pero listos para activarse rápidamente... port ISI: Infraestructura de Sistemas de Información 44/52 Consejos de diseño “Root bridge” debería ser un switch de buenas prestaciones en el centro de la red. Minimiza el número de puertos que deben ser desactivados por STP. Usar “VTP pruning” Usar switches de nivel 3 en el core. Mantener STP corriendo aunque ningun puerto tenga que ser desactivado. ISI: Infraestructura de Sistemas de Información 45/52