160 likes | 401 Views
SPANNING TREE PROTOCOL. Como se forman los loops (bucles)? Primero hay que recodar como funcionan los switches . El switch en su estado inicial no conoce la ubicación de ningún dispositivo final. Por lo tanto debe escuchar en cada puerto a las tramas que llegan.
E N D
SPANNING TREE PROTOCOL • Como se forman los loops (bucles)? • Primero hay que recodar como funcionan los switches. • El switch en su estado inicial no conoce la ubicación de ningún dispositivo final. • Por lo tanto debe escuchar en cada puerto a las tramas que llegan. • El switch asume que un dispositivo usando la MAC origen que acaba de recibir esta ubicado atrás del puerto por el cual recibió la trama. • Se construye la tabla de correspondencia entre MACs y puertos. • 2. Dicha tabla se actualiza constantemente en la medida en que se detectan nuevas MAC, o que estas cambian de ubicación. De esta manera, el switch reenvía las tramas considerando la MAC destino. • Si llega una trama con dirección broadcast, el switch la tiene que reenviar por todos los puertos. • Si llega una trama cuyo destino no este en la tabla, el switch no puede determinar el puerto de reenvío (unknownunicast). • En este caso se le da el mismo tratamiento que a una trama broadcast y se reenvía por todos los puertos. • Cuando la estación contesta, el switch aprende la ubicación y actualiza su tabla para uso futuro.
SPANNING TREE PROTOCOL El problema llega cuando se tienen enlaces redundantes: MAC: xxxx.xxxx.xx00f MAC: xxxx.xxxx.xx00d • El detonante es cuando entra en la red una nueva estación de la cual los switches no saben su ubicación. • Se genera un ciclo infinito de solicitudes brodcast entre los switches para tratar de encontrar el equipo destino. Se genera una tormenta de broadcast
SPANNING TREE PROTOCOL A B 1 1 PC-1 PC-2 2 2 MAC: xxxx.xxxx.xx00d MAC: xxxx.xxxx.xx00f 1 2 C • Secuencia de eventos. PC-1 envía datos a PC-2 • Estado inicial: Ningún switch conoce la ubicación de PC-1 ni PC-2 • El switch A recibe la trama y no conoce la ubicación del PC-2, entonces emite un mensaje broadcast. • El switches B recibe el broadcast y registra la MAC del PC-1 en el puerto 1 • El switch C recibe el broadcast y registra la MAC del PC-1 en el puerto 1 • Como B no conoce la MAC del PC-2 hace también un broadcastpor todos los puertos menos el puerto por el que recibió la trama • Como C no conoce la MAC del PC-2 hace tambiéounbroadcast por todos los puertos menos el puerto por el que recibió la trama • C recibe entonces un nuevo mensaje indicando que la MAC del PC-1 la encuentra por el puerto 2. • B recibe también el nuevo mensaje indicando que la MAC del PC-1 esta en el puerto 2. • De nuevo C y B contestan a ese nuevo broadcast pero esta vez el mensaje llega a A. • A recibe el broadcast indicando que la MAC del PC-1 la encuentra primero por el puerto 1 y luego por el puerto 2. • En algún momento el switch B recibe contestación al mensaje broadcast desde el PC-2 y encuentra la ubicación y la propaga, pero ese mensaje es alterado varias veces en los otros switches debido a los múltiples mensajes broadcast que circulan por la red. Al cabo de un tiempo, la red se satura de mensajes broadcast y se vuelve indisponible. Ejercicio en Packet Tracert
SPANNING TREE PROTOCOL La solución es utilizar STP – SpanningTreeProtocol • Se debe crear un árbol lógico con una entidad central ROOT BRIDGE. • Se usan unos paquetes de información llamados BPDU – Bridge Protocol Data Unit – para todo el proceso STP • Paso 1. Elección del Root bridge: • Cada switch tiene un “bridge ID” de 8 bytes compuesto por : • Bridge priority (2 bytes). Puede ir desde 0 hasta 65535, el default es 32768 • MAC ( 6 bytes). • Cuando un switch se enciende envia BPDU indicando que él es el root. • Cada switch al recibir BPDU de los demás, analiza si el “bridge ID” recibido es menor al propio; si lo es lo asume como el root. Si el “bridge ID ” es igual, se selecciona como root el que tenga la MAC más baja. • Ese switch envía ahora BPDU avisando del nuevo root • Al cabo de un tiempo la red converge • cada que se conecta un nuevo switch a la red, ese envía BPDU diciendo que es el root y el proceso inicia de nuevo.
SPANNING TREE PROTOCOL Paso 2. Elección del Root-port Luego de seleccionar el root bridge, cada switch debe encontrar el mejor camino a ese root. Ese camino es el root-port. STP encuentra el “root-port” basándose en el costo o “root path cost”: valor acumulado desde el switch hasta el root. Se selecciona el menor costo. El costo depende del tipo de enlace:
SPANNING TREE PROTOCOL • Paso 3. Elección de puertos designados • En este punto aunque ya hay un “root bridge” y “root-port” por cada switch, aún todos los enlaces están activos y pueden generarse loops. • Para eliminar la posibilidad de loops, se identifica un “designated port” en cada segmento de la red. Los criterios son: • Solo un puerto designado por segmento • El DP es el path root de valor más bajo • En caso de empate entre dos puertos del mismo segmento, se escoge al puerto con la MAC más baja. • Un puerto que no sea ni “root” ni “designated” se bloquea. • Todos los puertos del “root bridge” son “designated”
SPANNING TREE PROTOCOL • Cada puerto debe pasar por los siguientes estados: • Disabled: Puertos apagados • Blocking: Estado inicial para evitar loops, no envían ni reciben datos, ni pueden adicionar MAC a su tabla. Solo reciben BPDUs • Listening: El puerto se mueve a “listening” si el switch cree que se puede convertir en “root “ o en “designated”. No envía no recibe datos. Puede enviar y recibir BPDUs para participar en STP. Si no llega a ser ni “root” ni “designated” vuelve a estado blocking. • Learning: Luego de un período de tiempo llamado “forward delay” se llega a este estado. Envía y recibe BPDUs, ahora el switch puede aprender MAC. Todavía no puede envíar ni recibir datos. • Forwarding: Puede envíar y recibir datos.
SPANNING TREE PROTOCOL Cálculo manual: Paso 1. identificar el costo de cada enlace Paso 2. Identificar el root bridge Paso 3. Seleccionar el rootport ( 1 por switch) Paso 4. Seleccionar el designatedport (1 por switch) Paso 5. Identificar los puertos bloqueados.
SPANNING TREE PROTOCOL Taller 1. Dada la siguiente topología de red, realice el cálculo manual de STP para determinar: El root bridge Rootport y designatedport por cada switch Puertos bloqueados SW-A SW-B MAC: 0001.43CB.3722 Prioridad: 32769 Fa0/1 MAC: 00E0.F91B.BD40 Prioridad: 32769 Fa0/1 Fa0/2 Fa0/2 Fa0/2 Fa0/1 SW-C MAC: 0002.4A19.0191 Prioridad: 32769
SPANNING TREE PROTOCOL Taller 2. Dada la siguiente topología de red, realice el cálculo manual de STP para determinar: El root bridge Rootport y designatedport por cada switch Puertos bloqueados SW-D MAC: 0002.163D.A023 Prioridad: 32769 SW-A Fa0/2 Fa0/1 MAC: 0090.0CB5.3320 Prioridad: 32769 Gig0/1 SW-C Fa0/1 Fa0/1 Gig0/1 Fa0/3 MAC: 0009.7CCA.59E5 Prioridad: 32769 Fa0/2 SW-F Gig0/2 Fa0/2 Fa0/3 Gig0/1 MAC: 000C.CF35.1598 Prioridad: 32769 MAC: 0002.4A21.B5BE Prioridad: 32769 Fa0/2 Fa0/1 SW-B SW-G MAC: 0001.C9C1.5C3C Prioridad: 32769
SPANNING TREE PROTOCOL PERSONALIZACION DE STP Algunas veces STP por si solo no selecciona el mejor root bridge de acuerdo con la topología. Ver ejemplo “STP se porta mal.ptk” Criterios para seleccionar el root bridge Buen performace del switch Redundancia Su ubicación en la topología • Para evitar comportamientos inesperados haga lo siguiente: • Configure algún switch como el root • Configure otro como secundario • Protéjase contra BPDUs indeseados • Donde poner el root? • Es mejor en el nivel de distribución que en el de acceso, porque en distribución pasa más tráfico. • Si el core es L2 prefiera poner el root bridge allí. Hoy día se prefiere core L3. • En redes planas (sin L3) ubicarlo cerca de los servidores o “server farm” • El root debe tener la menor prioridad • (config)#spanning-treevlannumero_de_vlanpriorityvalor_prioridad
SPANNING TREE PROTOCOL PERSONALIZACION DE STP Para protegerse de BPDUs inesperados: El problema es que luego de que la red esta funcionando, se conecte un nuevo switch con una menor prioridad y MAC e intente convertirse en el nuevo root bridge. • BPDU Guard • Es complementaria a portfast • Si se recibe un BPDU en el puerto, este de inmediato se bloquea. (errdisable) • Se puede aplicar globalmente a todos los puertos o por puerto. • Se debe usar junto con portfast. • Configuración global de porfast • (config)# spanning-treeportfast default • Configuración global de BPDU guard • (config)# spanning-treeportfastbpduguard default • Configuración de porfast y BPDU guard en un puerto • (config-if)# spanning-treeportfast • (config-if)# spanning-treebpduguard • RootGuard • Sirve para determinar o controlar donde se puede conectar y/o encontrar un candidato para root bridge. • El switch se aprende el “bridge ID” del root actual. • Si recibe un BPDU indicando que existe un “bridge ID ” menor, no lo tiene en cuenta. De esta manera el nuevo switch nunca se convierte en root porque los demás switches nunca cambian su información. • Se aplica por puerto • (config-if )#spanning-treeguardroot
SPANNING TREE PROTOCOL Taller 3. • Dada la siguiente topología modifique la configuración STP para cumplir con los siguientes requerimientos: • El switch A debe ser el root y B el secundario • No se debe permitir que ningún otro switch pueda ser root (use todas las técnicas posibles) • Documente la configuración que va a aplicar (crear scripts) • Obtenga los siguientes “outputs” antes y después de los cambios en todos los switches: • #show spanning-tree (por la vlan que le corresponde a cada grupo) • #show running-config por cada switch CONDICIONES: Se utilizaran los equipos Cisco reales Cada grupo deberá trabajar sobre una vlan diferente. Cada vlan debe tener un PC conectado a cada uno de los switches C y D SW-A 172.18.9.159 SW-B 172.18.9.160 SW-C 179.18.9.161 SW-D 179.18.9.171
SPANNING TREE PROTOCOL OPTIMIZACIÓN DE STP Por defecto cuando un enlace falla STP se toma algún tiempo antes de habilitar un camino alterno. Esto se debe al recalculo que hace STP ante un evento. Algunas técnicas para lograr una mayor velocidad de convergencia son: • PORTFAST • Rápido establecimiento de la conexión para PC. • Le dice a todos los puertos “accessmode” que se conviertan en portfast. • Configuración global de porfast • (config)# spanning-treeportfast default • UPLINKFAST • Permite definir un backup para el “rootport”, de manera que si el principal falla usa automáticamente el backup sin recalcular STP. • Es una configuración global • NO se permite en el “root bridge” • (config)#spanning-treeuplinkfast • BACKBONEFAST • Si un switch detecta un enlace caído gracias a un BPDU, debe esperar que expire el MaxAge antes de reaccionar. • Esta opción permite que apenas se reciba el BPDU avisando de la falla se busque una solución de inmediato. • Cuando el MaxAge termina, ya STP tiene la solución. • (config)#spanning-treebackbonefast
SPANNING TREE PROTOCOL Taller 4. Optimice la configuración de STP para lograr un menor tiempo de convergencia. Para ello, utilice los comandos de optimización vistos anteriormente y compare los resultados entre dos modelos de red usando STP, uno sin optimizar y el otro optimizado. Paso 1. Haga píng desde el switch SW-D hacia el SW-A. Para ello ejecute el comando ping en el switch y envíe 10000 mensajes. Paso 2. Durante el envío de los mensajes ICMP desconecte el “root port” entre SW-D y SW-A Tome nota del tiempo que toma recuperar el ping. Paso 3. Aplique los comandos de optimización de convergencia de STP Paso 4. Realice de nuevo el paso 2 y compare los resultados. Paso 5. Obtenga copia de la configuración de cada switch y envíela por corre a su profesor. SW-A 1.1.1.1 SW-B 1.1.1.2 SW-C 1.1.1.3 SW-D 1.1.1.4 Use la topología lograda luego de terminar el taller #3.