CCNP SWITCH 642-813 Official Certification Guide (Part II – Chapter 7.1 IEEE 802.1D Overview)

1. IEEE 802.1D Overview

Spanning Tree Protocol (STP) proporciona soporte a nivel de capa 2 (enlace de datos),  la versión que actualmente se utiliza es la estándar 802.1d.

Su principal función es la de gestionar la presencia de bucles en topologías de red debido a la existencia de enlaces redundantes. Este protocolo permite a los dispositivos de interconexión activar o desactivar automáticamente los enlaces, de forma que se garantice que la topología está libre de bucles.

Antes de pasar a explicar el funcionamiento de STP (Spanning Tree Protocol) vamos a ver como funcionan los Bridge o Switch:

  • Inicialmente un switch no posee ningún conocimiento de la red, por lo que debe “escuchar” las tramas que le llegan a cada uno de sus puertos para saber en que red se encuentra cada dispositivo. El Bridge asume que cada dispositivo de origen está localizado detrás del puerto por el cual ha recibido dicha trama consultando su MAC. A medida que el proceso de escucha continúa, el bridge construye una tabla que relaciona direcciones MAC de origen con números de puertos. El bridge puede actualizar la tabla para remplazar las direcciones MAC o detectar el cambio de localización de un puerto a otro. De esta forma podremos enviar la trama por el puerto donde el dispositivo final está localizado.
  • Si una trama llega con una dirección de destino Broadcast el bridge debe enviar dicha trama por todos los puertos disponibles excepto por el puerto por donde hemos recibido dicha trama (flood). Si una trama llega con una dirección de destino que no está localizada en la tabla del bridge, éste no podrá determinar por cual de sus puertos enviar dicha trama. En estos casos el bridge trata esta trama como si fuera un Broadcast siguiendo el mismo proceso que haría con una trama de difusión (unknown unicast). Una vez que el destino responde a dicha trama, el bridge localiza el puerto para usos futuros.

Las tramas enviadas a  través del bridge no pueden ser modificadas por el propio bridge, es decir, que el proceso de bridging es absolutamente transparente.

El bridging o switching son efectivos, cualquier trama es enviada, tanto cuando se conoce la dirección de destino como cuando no. Siempre alcanzaremos el destino final, por cualquiera de los métodos mencionados anteriormente.

Redundancia con switches

Cuando es necesaria la redundancia entre segmentos, podemos utilizar dos o más switches interconectando los segmentos de red.

Redundancia

Este conexionado no debería afectar al funcionamiento de la red. Sin embargo cuando las tramas son enviadas y los switches no tienen conocimiento en su tabla MAC de los puertos de entrada y salida pueden producirse algunos problemas.

Al recibir una trama desde el segmento A ambos switches envían la trama por los puertos correspondientes hacia el segmento B. El resultado es que el segmento B recibe una trama duplicada, sin ser esto un gran problema.

Cuando los switches no tienen conocimiento de las direcciones MAC recibidas el problema puede ser mayor. Al recibir una trama por el segmento A sucede lo siguiente:

  1. El switch A y B reciben la trama por los puertos conectados en el segmento A. Como es la primera vez que se recibe esta trama ambos switches se guardan la MAC en sus respectivas tablas.
  2. Debido a que la localización del destino en el segmento B es desconocida, ambos switches deciden enviar esa trama a través de todos los puertos disponibles (unknown unicast).
  3. Cada switch envía una copia de la trama a sus puertos en el segmento B. El destino recibe dos tramas destinadas hacia él, pero a su vez el switch A recibe la trama enviada por el switch B y viceversa.
  4. El switch A al recibir la nueva trama detecta que el origen está en el segmento B y actualiza sus tablas, pero este dato es incorrecto. El mismo proceso es replicado por el switch B.
  5. A este nivel ninguno de los switches tiene información certera sobre el destino debido a que aún no existe registro en las correspondientes tablas MAC. la trama es enviada, entonces, por todos los puertos excepto por el que ha sido recibida.
  6. Los switches vuelven a recibir la trama por los puertos correspondientes al segmento A, por lo que se reinicia todo el proceso nuevamente y de forma permanente.

Los loops o bucles infinitos ocurren cuando hay rutas alternativas hacia una misma máquina o segmento de red destino. Estas rutas alternativas son necesarias para proporcionar redundancia, ofreciendo una mayor fiabilidad a la red. Si existen varios enlaces, en el caso que uno falle, otro enlace puede seguir soportando el tráfico de la red. Los problemas aparecen cuando utilizamos dispositivos de interconexión de nivel de enlace, como un puente de red o un conmutador de paquetes.

Cuando existen bucles en la topología de red, los dispositivos de interconexión de nivel de enlace de datos renvían indefinidamente las tramas Broadcast y Multicast creando un bucle infinito que consume tanto ancho de banda en la red como de CPU en los dispositivos de enrutamiento. Esto provoca que la red se degrade en un periodo de tiempo muy corto dejando la misma inutilizable. Al no existir un campo TTL (Time To Live, Tiempo de Vida) en las tramas de capa 2 se quedan atrapadas indefinidamente hasta que el administrador de sistemas rompe el bucle.

A continuación se presenta un ejemplo de topología en la cual no está implementado STP, si realizamos una simulación en la cual se hace un ping desde la máquina PC1 a la máquina PC4 veremos como los paquetes empiezan a circular por la red indefinidamente.

Solución a los bucles de capa 2

Los switches de capa 2 cuando funcionan en paralelo, no se dan cuenta de la existencia del otro. STP calcula una ruta única libre de bucles entre los dispositivos de la red pero manteniendo los enlaces redundantes desactivados como reserva, para activarlos en caso de falla.   Si la configuración de STP cambia, o si un segmento en la red redundante llega a ser inalcanzable, el algoritmo reconfigura los enlaces y restablece la conectividad, activando uno de los enlaces de reserva. Si el protocolo falla, es posible que ambas conexiones estén activas simultáneamente, lo que podrían dar lugar a un bucle de tráfico infinito en la LAN.

A continuación se presenta un ejemplo con la misma topología del caso anterior, pero esta vez STP está configurado.

Funcionamiento de STP

STP funciona de manera que los switches puedan operar entre ellos intercambiando mensajes de datos a través de las BPDU (Bridge Protocol Data Units). Cada switch envía las BPDU a través de un puerto usando la dirección MAC de ese puerto como dirección de origen, el switch no sabe de la existencia de otros switches por lo que las BPDU son enviadas con la dirección de destino multicast 01-80-C2-00-00-00.

Existen dos tipos de BPDU:

  • Configuration BPDU: Utilizadas para el cálculo de STP.
  • Topology Change Notification (TCN) BPDU: Utilizada para anunciar los cambios en la topología de la red.

Las Configuration BPDU contienen los siguientes campos:

Campos Configuration BPDU

El intercambio de los mensajes BPDU tiene la función de elegir puntos de referencia para conseguir una topología STP estable. Los bucles pueden ser identificados y eliminados poniendo puertos redundantes específicos en los estados de bloqueado o standby. Varios de los campos de BPDU son relativos a la identificación del switch, el coste de las rutas y los valores de los temporizadores. Todos ellos trabajan al unísono para que la red pueda converger en una topología STP común eligiendo los mismos puntos de referencia dentro de la red.

Por defecto las BPDU son enviadas a través de todos los puertos cada 2 segundos de tal forma que la información de la topología actual se intercambia para identificar los bucles rápidamente.

Elección del Puente raíz (root Bridge)

Cada instancia del árbol de extensión en una LAN conmutada cuenta con un switch designado como puente raíz. El puente raíz sirve como punto de referencia para todos los cálculos del árbol de extensión para determinar qué rutas redundantes se tienen que bloquear. Un proceso de elección determina el switch que se convertirá en el puente raíz.

ID de Puente

El BID se compone de un valor de prioridad de puente, un ID de sistema extendido y la dirección MAC.

  • Bridge Priority: son 2 bytes, y se compone del campo Prioridad de puente y el ID de sistema extendido. Este campo puede tener un valor comprendido entre 0 y 65535, siendo el valor por defecto 32768 (0x8000).
  • Dirección MAC: son 6 bytes, esta dirección puede tener origen en un módulo Supervisor o en el backplane, dentro de un rango de 1024 direcciones que son asignadas a cada uno dependiendo del modelo de switch.

Todos los switches del dominio de broadcast participan en el proceso de elección. Una vez que un switch arranca envía, cada 2 segundos, tramas BPDU que contienen el BID del switch y el ID raíz. Por defecto, el ID raíz es igual al BID local para todos los switches de la red; es decir, el ID raíz identifica al puente raíz de la red, y inicialmente, cada switch se identifica a sí mismo como puente raíz después de arrancar.

A medida que los switches reenvían tramas BPDU, los switches adyacentes del dominio de broadcast leen la información relativa al ID raíz de la trama BPDU. Si este valor es menor que el ID raíz del switch receptor, este switch actualiza la información que tiene en su caché con la recibida en la BPDU.

Elección del Puerto raíz

Una vez determinado el Puente raíz (root Bridge), cada uno de los demás switches que no son puente raíz deben identificar su posición en la red en relación con el Puente raíz (root bridge). Esta acción se realiza seleccionando solamente un puerto raíz en cada uno de los switches. El puerto raíz siempre apunta hacia el actual Puente raíz (root Bridge). STP utiliza el concepto de coste para determinar y seleccionar un puerto raíz, lo que significa evaluar el coste de la ruta (Root Path Cost). Este valor es el coste acumulativo de todos los enlaces hasta el Puente raíz (root Bridge).

A medida que los Root Path Cost atraviesan la red, otros switches pueden modificar su valor de manera acumulativa. El Root Path Cost no está dentro de la BPDU, solamente atañe al puerto del switch local donde éste reside. Cuanto mayor sea el ancho de banda del enlace, menor será el coste del enlace. IEEE 802.1d define un Root Path Cost de 1000 Mbps dividido por el ancho de banda del enlace en Mbps. Las redes modernas superan este valor por lo que fue necesario cambiar los valores de coste.

STP Path Cost

El valor del coste se determina de la siguiente forma:

  • El Puente raíz (root Bridge) envía una BPDU con un valor de root path cost de 0 ya que su puerto está asociado directamente al switch.
  • Cuando el siguiente switch recibe la BPDU añade su propio coste donde fue recibida la BPDU.
  • El vecino envía esa BPDU con el valor acumulativo modificando así el root path cost.
  • El incremento es directamente proporcional al coste de los puertos de entrada a medida que la BPDU se recibe en cada uno de los switches de la topología.
  • El root path cost se va incrementando a medida que las BPDU entran en los puertos.

Después de este incremento el switch guarda ese valor en la memoria, el valor más bajo de los almacenados será el nuevo path cost.

En resumidas cuentas, el coste de ruta es la suma de todos los costes de puerto de salida a lo largo de la ruta hacia el Puente raíz (root Bridge). Las rutas con el coste mas bajo se convertirán en las preferidas, mientras que el resto de rutas redundantes serán bloqueadas.

Coste de Ruta

Elección del Puerto designado

Para eliminar la posibilidad de que se creen loops (bucles) en la red, STP realiza un cálculo para determinar los puertos designados en cada segmento de la red. Cuando una trama aparece en un segmento todos los switches intentan enviarla hacia el otro segmento. Este comportamiento debe ser controlado de tal forma que sólo un puerto envíe tráfico desde y hacia ese segmento. El puerto que realiza esta función se llama puerto designado.

Los switches seleccionan sólo un puerto designado para cada segmento de la red basándose en el menor root path cost acumulativo hacia el root bridge. Cuando un switch recibe un root path cost mayor al que tiene asume el rol de puerto designado para ese segmento por el que recibe la root path cost mayor que la que posee.

Después de lo visto hasta ahora los puertos siguen activos con lo que aún se pueden producir loops (bucles). STP tiene una serie de estados por los cuales cada puerto debe pasar. En cada proceso de determinación cuando dos o más enlaces tienen el mismo root path cost, se determina la diferencia en el siguiente orden:

  1. El menor de los root bridge ID.
  2. El menor root path cost hacia el root bridge.
  3. El menor sender bridge ID.
  4. El menor sender port ID.

Elección del Puerto no designado

El puerto no designado es aquel puerto de switch que está bloqueado, de manera que no envía tramas de datos ni llena la tabla de direcciones MAC con direcciones de origen. Un puerto no designado no es un puerto raíz o un puerto designado. Para algunas variantes de STP, el puerto no designado se denomina puerto alternativo.

Con la combinación de puertos raíz, puertos designados y puertos bloqueados conseguimos tener una red sin loops (bucles).

En la siguiente imagen se muestra un ejemplo de una red libre de loops (bucles).

Red libre de loops

Estado de los puertos

STP determina la ruta lógica sin bucles a través de todo el dominio de broadcast, esta se determina a través de la información obtenida en el intercambio de tramas de BPDU entre los switches interconectados. Para facilitar el aprendizaje del spanning tree lógico, cada puerto de switch sufre una transición a través de cinco estados posibles y tres temporizadores de BPDU. Un puerto empieza en el estado de desconectado hasta llegar al estado de activo si este tiene permitido enviar tramas.

A continuación de identifican los estados de STP:

  • Desconectado, son los puertos que han sido deshabilitados por el administrador de forma manual (shutdown) o por un fallo en el sistema. Cuando un puerto se encuentra en este estado, este no participa en el progreso STP.
  • Bloqueado, son los puertos en estado no designado y no participa en el envío de tramas. El puerto recibe tramas de BPDU para determinar la ubicación y el ID de raíz del switch del puente raíz y las funciones de puertos que cada uno de los mismos debe asumir en la topología final de STP activa.
  • Escuchando, un puerto pasa a este estado si el switch interpreta que el puerto puede ser seleccionado como puerto raíz o puerto designado como previo al envío de tramas. En este estado no se pueden enviar ni recibir tramas pero sí pueden recibir y enviar BPDU de tal forma que el switch participa activamente en el proceso de STP. Si no hay mayores cambios el puerto vuelve al estado anterior, si por el contrario los cambios ocurren se pasa al siguiente estado.
  • Aprendiendo, después del período transcurrido llamado forward delay el puerto pasa a este estado donde puede enviar y recibir BPDU registrando, ahora sí, las direcciones MAC a las correspondientes tablas. El puerto participa de esta manera de forma silenciosa en el proceso mientras puede tener una visión de las tablas de direcciones MAC.
  • Enviando, después de otro período transcurrido el puerto pasa a este estado donde puede enviar y recibir tramas, aprender direcciones MAC y guardarlas en las tablas, y enviar y recibir BPDU. El puerto es ahora totalmente funcional en la topología STP.

Estado de los puertos

A continuación se muestra un ejemplo de como progresa el estado de un puerto.

Ejemplo de progreso de un puerto

En este ejemplo empieza con el interface administrativamente deshabilitado. Cuando se habilita, el comando show spanning interface muestra el estado que va tomando sucesivamente. Para poder realizar esto utilizaremos el comando debug spanning-tree switch state.

Temporizadores STP

STP opera de tal forma que los switches intercambian las BPDU entre sí. Estas toman una cantidad finita de tiempo para viajar por la red de un switch a otro, además los cambios o fallos en la topología pueden influir en la propagación de las mismas. Es importante que los switches no converjan hasta que éstos reciban exactamente la misma información.

STP utiliza 3 temporizadores para asegurarse de que la convergencia de la red sea la correcta y que no se puedan formar loops (bucles). Estos temporizadores y sus valores por defecto son:

  • Hello, es el intervalo de tiempo en el cual las configuration BPDU se envían desde el root switch. La configuración se realiza únicamente en el root bridge y determina el temporizador Hello de todos los demás switches debido a que éstos sólo confían en las BPDU de configuración recibidas desde el root. Aun así todos los demás switches tienen un temporizador local incorporado utilizado para temporizar las BPDU cuando hay cambios de topología. El valor por defecto es de 2 segundos.
  • Forward delay, es el intervalo de tiempo en el que un switch está entre los estados de escuchando y aprendiendo, el valor por defecto es de 15 segundos para cada uno de los estados.
  • Max (maximun) age, es el intervalo de tiempo que un switch guarda una BPDU antes de descartarla. Mientras se está ejecutando STP cada puerto del switch mantiene un registro de la mejor BPDU que ha escuchado. En caso de que el puerto del switch pierda contacto con el origen de esta BPDU el switch asume que ha ocurrido algún cambio en la topología, cuando el período Max Age termine la BPDU es eliminada. El valor por defecto de este temporizador es de 20 segundos.

Los temporizadores de STP pueden se configurados en el switch, no obstante cualquier cambio debe ser debidamente planificado y es recomendable hacerlo sólo en el root. Todos estos son apropiados para una red de hasta 7 switches. Finalmente el tiempo total desde el primer estado hasta el último es de 50 segundos.

Temporizadores STP

Cambios de Topología

Para anunciar un cambio de topología en una red activa los switches utilizan las BPDU TCN, la siguiente tabla muestra el formato de estos mensajes.

Cambios de Topología

Puede considerarse un cambio de topología cuando un switch cambia el estado de un puerto a enviando o lo hace desde el estado enviando o aprendiendo al estado bloqueado. el switch envía las BPDU TCN a través de su puerto root para que lleguen al root bridge para informar del cambio de topología. si un puerto estuviese configurado como Port fastno enviaría las BPDU TCN. El switch continúa enviando estas BPDU en intervalos de hello hasta recibir un ACK desde su vecino. Cuando los vecinos reciben las BPDU TCN las propagan hacia el root bridge y envían sus propias ACK. Lo mismo ocurre con el root bridge, pero además éste agrega etiqueta llamada topology change para señalizar el cambio de topología. Esta información sirve para que los otros switches acorten los temporizadores de 300 segundos al tiempo del Forward delay, que son 15 segundos. Esta condición tiene el efecto de eliminar las tablas MAC mucho más rápido de lo habitual.

Cambios de topología directos: son aquellos que pueden ser detectados directamente en una interfaz de un switch, por ejemplo un enlace trunk que se cae, los switches de ambos extremos pueden detectar el fallo. La ausencia de este enlace cambia la topología de bridging y otros switches de la red deben ser informados para que asuman los cambios de la nueva topología.

Cambios de topología indirectos: son cuando se produce un que no involucra directamente a los puertos del switch pero que afecta al funcionamiento de la topología, por ejemplo un firewall del proveedor entre el enlace. El efecto final será que las BPDU no pueden llegar al destino. STP puede detectar y recuperarse de fallos indirectos gracias a los mecanismos de los temporizadores. Aunque los enlaces permanecen activos, las BPDU son filtradas en algún punto. Como resultado del fallo indirecto, la topología no cambia directamente, la ausencia de BPDU provoca el inicio de los temporizadores. El Max Age puede ser de 20 segundos a lo que se le suma el tiempo hasta que la siguiente BPDU de configuración es recibida (2 segundos), más el tiempo de retardo del puerto en los estados escuchando (15 segundos) y aprendiendo (15 segundos), sumando un total de 52 segundos.

Cambios de topología insignificantes: un puerto de un switch conectado a un Host que cambia de estado, provoca que el switch tenga que informar al root de los cambios en la topología lo que conlleva que el proceso de STP se inicie. A pesar del cambio en la topología las modificaciones no alteran el funcionamiento del bridging STP. Las tablas en los switches son modificadas eliminando las entradas en desuso. En principio esto no causaría ningún problema en el funcionamiento de la red, pero en redes grandes muchos altibajos en los puertos debido a apagado y encendido de los host generarán re cálculos  en las tablas, envíos innecesarios de broadcast y  de paquetes unknown unicast, degradando el funcionamiento de la red.

Los dispositivos Catalyst poseen un mecanismo de prevención llamado PortFast que se configura en los puertos donde tengamos un dispositivo final (Host), evitando el envío de BPDU TCN cuando existe algún cambio en el estado del puerto.

Saludos a tod@s,

JMHAlegre

Esta entrada fue publicada en CCNP SWITCH 642-813 Official Certification Guide (Part II – Chapter 7.1 IEEE 802.1D Overview), Cisco, SWITCH 642-813 y etiquetada , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , . Guarda el enlace permanente.

4 respuestas a CCNP SWITCH 642-813 Official Certification Guide (Part II – Chapter 7.1 IEEE 802.1D Overview)

  1. jaminton dijo:

    Mil Gracias Esto me a Sido de Gran Gran Ayuda

  2. benja2a dijo:

    Excelente explicado, saludos desde Mexico!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s