SPANNING TREE PROTOCOL
Como se forman los loops (bucles)?
Primero hay que recodar como funcionan los switches.
1.
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.
3.
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 (unknown unicast).
 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.
4.
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
PC-1
B
1
1
2
2
MAC: xxxx.xxxx.xx00d
MAC: xxxx.xxxx.xx00f
1
Secuencia de eventos. PC-1 envía datos a PC-2
PC-2
2
C
Estado inicial: Ningún switch conoce la ubicación de PC-1 ni PC-2
1. El switch A recibe la trama y no conoce la ubicación del PC-2, entonces emite un mensaje broadcast.
2. El switches B recibe el broadcast y registra la MAC del PC-1 en el puerto 1
3. El switch C recibe el broadcast y registra la MAC del PC-1 en el puerto 1
4. Como B no conoce la MAC del PC-2 hace también un broadcast por todos los puertos menos el puerto por el que recibió la trama
5. Como C no conoce la MAC del PC-2 hace tambiéo unbroadcast por todos los puertos menos el puerto por el que recibió la trama
6. C recibe entonces un nuevo mensaje indicando que la MAC del PC-1 la encuentra por el puerto 2.
7. B recibe también el nuevo mensaje indicando que la MAC del PC-1 esta en el puerto 2.
8. De nuevo C y B contestan a ese nuevo broadcast pero esta vez el mensaje llega a A.
9. A recibe el broadcast indicando que la MAC del PC-1 la encuentra primero por el puerto 1 y luego por el puerto 2.
10. 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 – Spanning Tree Protocol
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:
Ancho de banda
Costo STP
10 Mbps
100
100 Mbps
19
1 Gbps
4
10 Gbps
2
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:
1. Disabled: Puertos apagados
2. Blocking: Estado inicial para evitar loops, no envían ni reciben datos, ni pueden adicionar
MAC a su tabla. Solo reciben BPDUs
3. 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.
4. 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.
5. 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 root port ( 1 por switch)
Paso 4. Seleccionar el designated port (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:
1. El root bridge
2. Root port y designated port por cada switch
3. Puertos bloqueados
SW-A
MAC: 0001.43CB.3722
Prioridad: 32769
SW-B
Fa0/1
Fa0/1
Fa0/2
Fa0/2
Fa0/1
Fa0/2
SW-C
MAC: 0002.4A19.0191
Prioridad: 32769
MAC: 00E0.F91B.BD40
Prioridad: 32769
SPANNING TREE PROTOCOL
Taller 2.
Dada la siguiente topología de red, realice el cálculo manual de STP para determinar:
1. El root bridge
2. Root port y designated port por cada switch
3. Puertos bloqueados
SW-D
MAC: 0002.163D.A023
Prioridad: 32769
SW-A
MAC: 0090.0CB5.3320
Prioridad: 32769
Fa0/1
Gig0/1
Gig0/1
Fa0/2
SW-C Fa0/1
Fa0/3
Fa0/1
Fa0/2
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
SW-F
MAC: 0009.7CCA.59E5
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
1. Buen performace del switch
2. Redundancia
3. Su ubicación en la topología
Para evitar comportamientos inesperados haga lo siguiente:
1. Configure algún switch como el root
2. Configure otro como secundario
3. 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-tree vlan numero_de_vlan priority valor_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.
Root Guard
BPDU Guard
 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.
 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-tree portfast default
 Se aplica por puerto
Configuración global de BPDU guard
(config-if )#spanning-tree guard root
(config)# spanning-tree portfast bpduguard default
Configuración de porfast y BPDU guard en un puerto
(config-if)# spanning-tree portfast
(config-if)# spanning-tree bpduguard
SPANNING TREE PROTOCOL
Taller 3.
Dada la siguiente topología modifique la configuración STP para cumplir con los siguientes requerimientos:
1. El switch A debe ser el root y B el secundario
2. No se debe permitir que ningún otro switch pueda ser root (use todas las técnicas posibles)
3. Documente la configuración que va a aplicar (crear scripts)
4. Obtenga los siguientes “outputs” antes y después de los cambios en todos los switches:
1. #show spanning-tree (por la vlan que le corresponde a cada grupo)
2. #show running-config por cada switch
CONDICIONES:
SW-A
172.18.9.159
SW-B
172.18.9.160
1. Se utilizaran los equipos Cisco reales
2. Cada grupo deberá trabajar sobre una vlan
diferente.
3. Cada vlan debe tener un PC conectado a
cada uno de los switches C y D
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
UPLINKFAST
Rápido establecimiento de la conexión para
PC.
Le dice a todos los puertos “access mode”
que se conviertan en portfast.
Permite definir un backup para el “root port”, 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”
Configuración global de porfast
(config)# spanning-tree portfast default
(config)#spanning-tree uplinkfast
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-tree backbonefast
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.
SW-A
1.1.1.1
SW-B
1.1.1.2
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.
SW-C
1.1.1.3
Paso 5.
Obtenga copia de la configuración de cada switch y envíela por corre a su profesor.
Use la topología lograda luego de terminar el taller #3.
SW-D
1.1.1.4
Descargar

Spanning Tree Protocol