lunes, 16 de enero de 2012

Introducción al Protocolo Spanning Tree (IEEE 802.1D)


Para iniciar a escribir sobre este protocolo explicare un poco la manera en que me tope con el e iré describiendo algunos conceptos importantes para comprender mejor el funcionamiento del mismo.

Hace algún tiempo, trabajaba en los laboratorios del departamento de computación de la universidad, especialmente en un laboratorio que tenia 30 equipos, para conectar estos equipos utilizábamos dos switches L2 uno de 24 puertos 10/100 y otro de 16 puertos 10/100 con la siguiente Tolopologia.


Con el fin de evitar problemas de comunicación y brindar un poco de redundancia en la red de laboratorio, conecte un cable entre los switches de 24 y 16 puertos, por lo que comencé a notar que la red después de unos minutos presentaba problemas y la comunicación era imposible.

Realmente el problema se debía a que se generaban tormentas de broadcast, las cuales se producen cuando existen tantas tramas de broadcast atrapadas en un bucle de Capa 2, que se consume todo el ancho de banda disponible en la red. Esto en consecuencia, evita que no exista ancho de banda disponible para el tráfico. Por supuesto este no era el único problema en la red. Tal como se muestra en la siguiente imagen 


Para solucionar este problema pues la única alternativa en aquel entonces fue desconectar el cable y todo el problema se resolvió, mas adelante encontré que existe una excelente forma de solucionarlo mediante el uso de un protocolo llamado spanning tree definido en el estándar IEEE 802.1D.

El protocolo spanning tree (STP) fue desarrollado para enfrentar estos inconvenientes.STP asegura que exista sólo una ruta lógica entre todos los destinos de la red, al realizar un bloque de forma intencional a aquellas rutas redundantes que puedan ocasionar un bucle.

Un puerto se considera bloqueado cuando el tráfico de la red no puede ingresar ni salir del puerto. Esto no incluye las tramas de unidad de datos del protocolo comúnmente llamadas (BPDU) utilizadas por STP para evitar bucles. Las rutas físicas aún existen para proporcionar la redundancia, pero las mismas se deshabilitan para evitar que se generen bucles. Si alguna vez la ruta es necesaria para compensar la falla de un cable de red o de un switch, STP vuelve a calcular las rutas y desbloquea los puertos necesarios para permitir que la ruta redundante se active.

Descripción del Algoritmo STP
STP utiliza el algoritmo de spanning tree (STA) para determinar los puertos de switch de la red que deben configurarse para el bloqueo a fin de evitar que se generen bucles. El STA designa un único switch como Root Bridge (puente raíz) y lo utiliza como punto de referencia para todos los cálculos de rutas. De esta selección depende toda la topología de STP, en equipos Cisco esta selección se realiza de manera automática, lo cual no siempre resulta eficiente, lo recomendable es realizar las configuraciones necesarias para definir el root bridge de nuestra conveniencia.

Paso No 1.  Elección del puente Raiz (root bridge)
La primera decisión que deben de toman todos los switches de la red en un entorno que funciona con STP, es identificar el puente raíz ya que esto afectará al flujo de tráfico. Cuando un switch se enciende, supone que es el switch raíz y envía las BPDU que contienen la dirección MAC de sí mismo tanto en el BID raíz (Bridge ID) como emisor. El BID es el Bridge IDentifier: Bridge Priority + Bridge Mac Addres. El Bridge Priority es un valor configurable que por defecto está asignado en 32768. El Bridge Mac Address es la dirección MAC (única) del Switch.
Este es el esquema del Bridge ID , 32768.00-50-56-C0-00-04  sin embargo es importante identificar que este seria un valor por defecto, lo recomendable es bajar el valor inicial en el caso del Root Bridge (ver configuraciones >>)

 

Una vez que los switches son inicializados, inicia un proceso de intercambio de información en la cual cada switch reemplaza los BID de raíz más alta por BID de raíz más baja en las BPDU que se envían. Todos los switches reciben las BPDU y determinan que el switch que cuyo valor de BID raíz es el más bajo será el puente raíz. El administrador de red puede establecer la prioridad de switch en un valor más pequeño que el del valor por defecto (32768), lo que hace que el BID sea más pequeño. Por lo que se recomienda utilizar el valor mas bajo posible.

Nota: En el caso de que no se realice la modificación del valor del ID del switch, y en el caso de que todos los switches tengan configurado por defecto el valor 32768, la selección se realizara en base a la dirección mac del sistema. Para tal caso el switch que tenga la dirección mac mas baja sera el root bridge o puente raíz.

Después de determinar el puente raíz, el STA calcula la ruta más corta hacia el mismo. Todos los switches utilizan el STA para determinar los puertos que deben bloquearse. Mientras el STA determina las mejores rutas hacia el puente raíz para todos los destinos del dominio de broadcast, se evita que todo el tráfico sea enviado a través de la red.


Paso No 2.  Elección de los Puertos Raíz (Root Ports)
Ahora que se ha determinado el puente raíz, los switches comienzan a configurar las funciones de los puertos para cada uno de sus puertos de switch. La primera función de puerto que debe determinarse es la de puerto raíz.

Todos los switches de un topología spanning-tree, poseen un único puerto raíz definido, excepto el puente raíz (Root Bridge). El puerto raíz es el puerto de switch con el menor costo de ruta hacia el puente raíz. Normalmente, sólo el costo de ruta determina el puerto de switch que se convierte en puerto raíz. Sin embargo, algunas características adicionales de los puertos determinan el puerto raíz cuando dos o más puertos del mismo switch poseen el mismo costo de ruta hacia la raíz.

Paso No 3.  Elección de los Puertos Designados (Designated Ports)
Después de que el switch determina qué puerto es el raíz, los puertos restantes deben configurarse como puerto designado (DP) o puerto no designado (no DP) para finalizar la creación del spanning tree lógico sin bucles.

Todos los segmentos de una red conmutada sólo pueden contar con un puerto designado. Cuando dos puertos de switch que no son raíz se conectan al mismo segmento de LAN, se lleva a cabo una competencia por las funciones de puertos. Los dos switches intercambian tramas de BPDU para decidir cuál de los puertos se establece como designado y cuál como no designado. 


En general, cuando un puerto de switch se configura como designado, se basa en el BID. Sin embargo, tenga en cuenta que la primera prioridad es el menor costo de ruta hacia el puente raíz y que el BID del emisor sólo lo es cuando los costos de los puertos son iguales.
Cuando dos switches intercambian sus tramas de BPDU, examinan el BID enviado en la trama de BPDU recibida para verificar si es menor que los propios. El switch con el menor BID gana la competencia y su puerto se configura con la función de designado. El switch restante configura su puerto de switch como no designado y, por lo tanto, en el estado de bloqueo para evitar la generación de bucles.

De esta manera STP asegura que exista sólo una ruta lógica entre todos los destinos de la red, al realizar un bloqueo de forma intencional a aquellas rutas redundantes que puedan ocasionar un bucle. El bloqueo de las rutas redundantes es fundamental para evitar bucles en la red. Las rutas físicas aún existen para proporcionar la redundancia, pero las mismas se deshabilitan para evitar que se generen bucles. Si alguna vez la ruta es necesaria para compensar la falla de un cable de red o de un switch, STP vuelve a calcular las rutas y desbloquea los puertos necesarios para permitir que la ruta redundante se active.

Ver también

3 comentarios:

Anónimo dijo...

Muy buena y clara tu información, me ayudó bastante a entender el tema

Kenneth Rivas dijo...

Excelente explicacion, Gracias.

Anónimo dijo...

Muy bueno y facil de entender

Gracias

Publicar un comentario