El protocolo Spanning Tree ( STP ) es un protocolo de red que crea una topología lógica sin bucles para redes Ethernet . La función básica de STP es evitar los bucles de puente y la radiación de difusión que se produce a partir de ellos. El Spanning Tree también permite que el diseño de una red incluya enlaces de respaldo que proporcionen tolerancia a fallas si falla un enlace activo.
Como sugiere el nombre, STP crea un árbol de expansión que caracteriza la relación de los nodos dentro de una red de puentes de capa 2 conectados y desactiva aquellos enlaces que no son parte del árbol de expansión, dejando una única ruta activa entre dos nodos de red. STP se basa en un algoritmo que fue inventado por Radia Perlman mientras trabajaba para Digital Equipment Corporation . [1] [2]
En 2001, el IEEE introdujo el protocolo Rapid Spanning Tree Protocol ( RSTP ) como 802.1w. El RSTP proporciona una recuperación significativamente más rápida en respuesta a cambios o fallas de la red, introduciendo nuevos comportamientos de convergencia y funciones de puerto puente para lograrlo. El RSTP fue diseñado para ser compatible con versiones anteriores del STP estándar.
STP se estandarizó originalmente como IEEE 802.1D, pero la funcionalidad de árbol de expansión (802.1D), árbol de expansión rápido (802.1w) y árbol de expansión múltiple (802.1s) se ha incorporado desde entonces a IEEE 802.1Q-2014 . [3]
Si bien STP todavía se utiliza en la actualidad, en la mayoría de las redes modernas su uso principal es como mecanismo de protección de bucle en lugar de un mecanismo de tolerancia a fallas. [ cita requerida ] Los protocolos de agregación de enlaces como LACP unirán dos o más enlaces para proporcionar tolerancia a fallas y, al mismo tiempo, aumentarán la capacidad general del enlace.
La necesidad del Protocolo de árbol de expansión (STP) surgió porque los conmutadores en redes de área local (LAN) a menudo están interconectados mediante enlaces redundantes para mejorar la resiliencia en caso de que falle una conexión. [4] : 386 Sin embargo, esta configuración de conexión crea un bucle de conmutación que da como resultado radiaciones de difusión e inestabilidad de la tabla MAC . [4] : 388 Si se utilizan enlaces redundantes para conectar conmutadores, entonces se deben evitar los bucles de conmutación. [4] : 385
Para evitar los problemas asociados con los enlaces redundantes en una LAN conmutada, se implementa STP en los conmutadores para supervisar la topología de la red. Se catalogan todos los enlaces entre conmutadores, y en particular los enlaces redundantes. A continuación, el algoritmo de árbol de expansión bloquea el reenvío en enlaces redundantes configurando un enlace preferido entre conmutadores en la LAN. Este enlace preferido se utiliza para todas las tramas Ethernet a menos que falle, en cuyo caso se habilita un enlace redundante no preferido. Cuando se implementa en una red, STP designa un conmutador de capa 2 como puente raíz . A continuación, todos los conmutadores seleccionan su mejor conexión hacia el puente raíz para el reenvío y bloquean otros enlaces redundantes. Todos los conmutadores se comunican constantemente con sus vecinos en la LAN utilizando § Unidades de datos del protocolo de puente (BPDU). [4] : 388
Siempre que haya más de un enlace entre dos conmutadores, el puente raíz STP calcula el coste de cada ruta en función del ancho de banda. STP seleccionará la ruta con el coste más bajo, es decir, el mayor ancho de banda, como enlace preferido. STP habilitará este enlace preferido como la única ruta que se utilizará para las tramas Ethernet entre los dos conmutadores y deshabilitará todos los demás enlaces posibles designando los puertos del conmutador que conectan la ruta preferida como puerto raíz . [4] : 393
Una vez que los conmutadores habilitados para STP en una LAN han elegido el puente raíz, todos los puentes que no son raíz asignan uno de sus puertos como puerto raíz. Este es el puerto que conecta el conmutador al puente raíz o, si hay varias rutas, el puerto con la ruta preferida calculada por el puente raíz. Debido a que no todos los conmutadores están conectados directamente al puente raíz, se comunican entre sí mediante BPDU de STP. Cada conmutador suma el costo de su propia ruta al costo recibido de los conmutadores vecinos para determinar el costo total de una ruta dada al puente raíz. Una vez que se han sumado los costos de todas las rutas posibles al puente raíz, cada conmutador asigna un puerto como puerto raíz que se conecta a la ruta con el costo más bajo o el ancho de banda más alto que eventualmente conducirá al puente raíz. [4] : 394
El costo predeterminado de la ruta STP se calculó originalmente mediante la fórmula1 Gbps/ancho de banda . Cuando se dispuso de velocidades más rápidas, se ajustaron los valores predeterminados, ya que de lo contrario, las velocidades superiores a 1 Gbit/s no habrían sido distinguibles por STP. Su sucesor, RSTP, utiliza una fórmula similar con un numerador más grande: 20 Tb/s/ancho de bandaEstas fórmulas conducen a los valores de muestra de la tabla. [5] : 154
Todos los puertos de conmutación en la LAN donde está habilitado STP están categorizados. [4] : 388
Cuando un dispositivo se conecta por primera vez a un puerto de conmutador, no comenzará a reenviar datos inmediatamente. En su lugar, pasará por una serie de estados mientras procesa BPDU y determina la topología de la red. El puerto conectado a un host, como una computadora, impresora o servidor , siempre pasa al estado de reenvío, aunque después de un retraso de aproximadamente 30 segundos mientras pasa por los estados de escucha y aprendizaje. El tiempo que pasa en los estados de escucha y aprendizaje está determinado por un valor conocido como retraso de reenvío (el valor predeterminado es 15 segundos y lo establece el puente raíz). Si se conecta otro conmutador , el puerto puede permanecer en modo de bloqueo si se determina que causaría un bucle en la red. Las BPDU de notificación de cambio de topología (TCN) se utilizan para informar a otros conmutadores sobre los cambios de puerto. Las TCN se inyectan en la red por un conmutador no raíz y se propagan a la raíz. Al recibir la TCN, el conmutador raíz establecerá el indicador de cambio de topología en sus BPDU normales. Este indicador se propaga a todos los demás conmutadores y les indica que eliminen rápidamente sus entradas de la tabla de reenvío.
Antes de configurar STP, se debe planificar cuidadosamente la topología de la red. [6] La configuración básica requiere que STP esté habilitado en todos los conmutadores de la LAN y que se elija la misma versión de STP en cada uno. El administrador puede determinar qué conmutador será el puente raíz y configurar los conmutadores de manera apropiada. Si el puente raíz deja de funcionar, el protocolo asignará automáticamente un nuevo puente raíz en función del ID del puente. Si todos los conmutadores tienen el mismo ID de puente, como el ID predeterminado, y el puente raíz deja de funcionar, surge una situación de empate y el protocolo asignará un conmutador como puente raíz en función de las direcciones MAC del conmutador. Una vez que se ha asignado un ID de puente a los conmutadores y el protocolo ha elegido el conmutador de puente raíz, se calcula la mejor ruta al puente raíz en función del costo del puerto, el costo de la ruta y la prioridad del puerto. [7] En última instancia, STP calcula el costo de la ruta en función del ancho de banda de un enlace, sin embargo, los enlaces entre conmutadores pueden tener el mismo ancho de banda. Los administradores pueden influir en la elección de la ruta preferida por parte del protocolo configurando el costo del puerto: cuanto menor sea el costo del puerto, más probable es que el protocolo elija el enlace conectado como puerto raíz para la ruta preferida. [8] La selección de cómo otros conmutadores en la topología eligen su puerto raíz, o la ruta de menor costo hacia el puente raíz, puede verse influenciada por la prioridad del puerto. La prioridad más alta significará que la ruta será, en última instancia, la menos preferida. Si todos los puertos de un conmutador tienen la misma prioridad, se elige el puerto con el número más bajo para reenviar tramas. [9]
El puente raíz del árbol de expansión es el puente con el ID de puente más pequeño (más bajo). Cada puente tiene un número de prioridad configurable y una dirección MAC; el ID de puente es la concatenación de la prioridad del puente y la dirección MAC. Por ejemplo, el ID de un puente con prioridad 32,768 y MAC 0200.0000.1111 es 32768.0200.0000.1111 . La prioridad predeterminada del puente es 32,768 y solo se puede configurar en múltiplos de 4096. [a] Al comparar dos ID de puente, las partes de prioridad se comparan primero y las direcciones MAC se comparan solo si las prioridades son iguales. El conmutador con la prioridad más baja de todos los conmutadores será la raíz; si hay un empate, entonces el conmutador con la prioridad más baja y la dirección MAC más baja será la raíz. Por ejemplo, si los conmutadores A (MAC = 0200.0000.1111 ) y B (MAC = 0200.0000.2222 ) tienen ambos una prioridad de 32.768, entonces el conmutador A se seleccionará como puente raíz. [b] Si los administradores de red desean que el conmutador B se convierta en el puente raíz, deben establecer su prioridad para que sea menor que 32.768. [c]
La secuencia de eventos para determinar la mejor BPDU recibida (que es la mejor ruta a la raíz) es:
Las reglas anteriores describen una forma de determinar qué árbol de expansión calculará el algoritmo, pero las reglas tal como están escritas requieren el conocimiento de toda la red. Los puentes tienen que determinar el puente raíz y calcular los roles de los puertos (raíz, designado o bloqueado) únicamente con la información que tienen. Para garantizar que cada puente tenga suficiente información, los puentes utilizan tramas de datos especiales denominadas unidades de datos de protocolo de puente (BPDU) para intercambiar información sobre el protocolo de árbol de expansión, los identificadores de puente y los costos de la ruta raíz.
Un puente envía una trama BPDU utilizando la dirección MAC única del puerto mismo como dirección de origen y una dirección de destino de la dirección de multidifusión STP con MAC de destino 01:80:C2:00:00:00 , [13] o 01:00:0C:CC:CC:CD para el árbol de expansión por VLAN propietario de Cisco. [14]
Hay dos tipos de BPDU en la especificación STP original (802.1D) [5] : 63 (la extensión Rapid Spanning Tree (RSTP) utiliza una BPDU RSTP específica):
Las BPDU se intercambian regularmente (cada 2 segundos de manera predeterminada) y permiten que los conmutadores realicen un seguimiento de los cambios en la red e inicien y detengan el reenvío en los puertos según sea necesario. Para evitar la demora al conectar hosts a un conmutador y durante algunos cambios de topología, se desarrolló Rapid STP, que permite que un puerto de conmutador pase rápidamente al estado de reenvío durante estas situaciones.
Las BPDU IEEE 802.1D e IEEE 802.1aq tienen el siguiente formato:
1. Identificación del protocolo: 2 bytes (0x0000 IEEE 802.1D) 2. ID de versión: 1 byte (0x00 Config & TCN / 0x02 RST / 0x03 MST / 0x04 SPT BPDU) 3. Tipo de BPDU: 1 byte (BPDU de configuración STP 0x00, BPDU TCN 0x80, BPDU de configuración RST/MST 0x02) 4. Banderas: 1 byte bits: uso 1: 0 o 1 para cambio de topología 2: 0 (sin usar) o 1 para propuesta en BPDU RST/MST/SPT 3–4: 00 (sin usar) o 01 para función de puerto alternativa/de respaldo en BPDU RST/MST/SPT 10 para la función de puerto raíz en BPDU RST/MST/SPT 11 para el rol del puerto designado en BPDU RST/MST/SPT 5: 0 (sin usar) o 1 para aprendizaje en BPDU RST/MST/SPT 6: 0 (sin usar) o 1 para reenvío en BPDU RST/MST/SPT 7: 0 (sin usar) o 1 para acuerdo en BPDU RST/MST/SPT 8: 0 o 1 para reconocimiento de cambio de topología 5. ID de raíz: 8 bytes (ID de raíz CIST en BPDU MST/SPT) bits: uso 1–4: Prioridad del puente raíz 5–16: Extensión de ID del sistema de puente raíz 17–64: Dirección MAC del puente raíz 6. Costo de ruta raíz: 4 bytes (costo de ruta externa CIST en BPDU MST/SPT) 7. ID de puente: 8 bytes (ID de raíz regional CIST en BPDU MST/SPT) bits: uso 1–4 : Prioridad del puente 5–16 : Extensión de identificación del sistema de puente 17–64: Dirección MAC del puente 8. ID de puerto: 2 bytes 9. Antigüedad del mensaje: 2 bytes en 1/256 segundos 10. Edad máxima: 2 bytes en 1/256 segundos 11. Hola Tiempo: 2 bytes en 1/256 segundos 12. Retardo de reenvío: 2 bytes en 1/256 segundos 13. Versión 1 Longitud: 1 byte (0x00 no hay información de protocolo de la versión 1 presente. Solo BPDU RST, MST, SPT) 14. Versión 3 Longitud: 2 bytes (solo BPDU MST, SPT) El TCN BPDU incluye solo los campos 1 a 3.
El primer protocolo de árbol de expansión fue inventado en 1985 en Digital Equipment Corporation por Radia Perlman . [1] En 1990, el IEEE publicó el primer estándar para el protocolo como 802.1D, [15] basado en el algoritmo diseñado por Perlman. Las versiones posteriores se publicaron en 1998 [16] y 2004, [17] incorporando varias extensiones. El protocolo de árbol de expansión original inspirado en Perlman, llamado DEC STP, no es un estándar y difiere de la versión IEEE en el formato de los mensajes, así como en la configuración del temporizador. Algunos puentes implementan tanto la versión IEEE como la DEC del protocolo de árbol de expansión, pero su interfuncionamiento puede crear problemas para el administrador de la red. [18]
No se garantiza que las diferentes implementaciones de un estándar puedan interoperar entre sí , por ejemplo, debido a diferencias en las configuraciones predeterminadas de los temporizadores. El IEEE alienta a los proveedores a proporcionar una Declaración de conformidad de implementación de protocolo , que declare qué capacidades y opciones se han implementado, [17] para ayudar a los usuarios a determinar si las diferentes implementaciones interoperarán correctamente.
En 2001, el IEEE introdujo el protocolo de árbol de expansión rápido (RSTP) como IEEE 802.1w . Luego, el RSTP se incorporó al IEEE 802.1D-2004, lo que hizo que el estándar STP original quedara obsoleto. [19] El RSTP fue diseñado para ser compatible con versiones anteriores del estándar STP.
RSTP proporciona una convergencia de árbol de expansión significativamente más rápida después de un cambio de topología, introduciendo nuevos comportamientos de convergencia y roles de puerto de puente para lograr esto. Si bien STP puede tardar entre 30 y 50 segundos en responder a un cambio de topología, RSTP generalmente puede responder a los cambios dentro de 3 × tiempos de saludo (predeterminado: 3 × 2 segundos) o dentro de unos pocos milisegundos de una falla de enlace físico. El tiempo de saludo es un intervalo de tiempo importante y configurable que RSTP usa para varios propósitos; su valor predeterminado es 2 segundos. [20] [21]
RSTP agrega nuevos roles de puerto de puente para acelerar la convergencia luego de una falla de enlace:
La cantidad de estados de puerto de conmutación en los que puede estar un puerto se ha reducido a tres en lugar de los cinco originales de STP:
Detalles operativos del RSTP:
STP y RSTP no segregan los puertos de conmutación por VLAN. [22] Sin embargo, en entornos conmutados Ethernet donde existen múltiples VLAN , a menudo es deseable crear múltiples árboles de expansión para que el tráfico en diferentes VLAN utilice enlaces diferentes.
Antes de que el IEEE publicara un estándar de protocolo de árbol de expansión para VLAN, varios proveedores que vendían conmutadores con capacidad para VLAN desarrollaron sus propias versiones de protocolo de árbol de expansión que sí eran compatibles con VLAN. Cisco desarrolló, implementó y publicó el estándarProtocolo propietario Per-VLAN Spanning Tree ( PVST ) que utiliza su propio enlace entre conmutadores (ISL) propietario para la encapsulación de VLAN , y PVST+ que utiliza la encapsulación de VLAN 802.1Q . Ambos estándares implementan un árbol de expansión independiente para cada VLAN. Los conmutadores Cisco ahora implementan comúnmente PVST+ y solo pueden implementar árboles de expansión para VLAN si los otros conmutadores en la LAN implementan el mismo protocolo STP de VLAN. HP proporciona compatibilidad con PVST y PVST+ en algunos de sus conmutadores de red. [22] Algunos dispositivos de Force10 Networks , Alcatel-Lucent , Extreme Networks , Avaya , Brocade Communications Systems y BLADE Network Technologies admiten PVST+. [23] [24] [25] Extreme Networks lo hace con dos limitaciones: falta de soporte en puertos donde la VLAN no está etiquetada/es nativa, y también en la VLAN con ID 1. PVST+ puede tunelizar a través de una región MSTP . [26]
A su vez , el proveedor de conmutadores Juniper Networks desarrolló e implementó su protocolo VLAN Spanning Tree Protocol (VSTP) para brindar compatibilidad con PVST de Cisco, de modo que los conmutadores de ambos proveedores se puedan incluir en una LAN. [22] El protocolo VSTP solo es compatible con las series EX y MX de Juniper Networks. Existen dos restricciones a la compatibilidad de VSTP:
De manera predeterminada, VSTP utiliza el protocolo RSTP como su protocolo de árbol de expansión principal, pero se puede forzar el uso de STP si la red incluye puentes antiguos. [28] Se publicó más información sobre la configuración de VSTP en los conmutadores Juniper Networks en la documentación oficial. [29]
Cisco también publicó una versión patentada del protocolo Rapid Spanning Tree Protocol, que crea un árbol de expansión para cada VLAN, al igual que PVST. Cisco lo denominaÁrbol de expansión rápido por VLAN ( RPVST ).
El protocolo de árbol de expansión múltiple (MSTP), definido originalmente en IEEE 802.1s -2002 y luego fusionado con IEEE 802.1Q -2005, define una extensión de RSTP para desarrollar aún más la utilidad de las VLAN.
En el estándar, un árbol de expansión que asigna una o más VLAN se denomina árbol de expansión múltiple (MST). En MSTP, se puede definir un árbol de expansión para VLAN individuales o para grupos de VLAN. Además, el administrador puede definir rutas alternativas dentro de un árbol de expansión. Primero se asignan los conmutadores a una región MST, luego se asignan o asignan las VLAN a este MST. Un árbol de expansión común (CST) es un MST al que se asignan varias VLAN; este grupo de VLAN se denomina instancia MST (MSTI). Los CST son compatibles con versiones anteriores del estándar STP y RSTP. Un MST al que solo se le asigna una VLAN es un árbol de expansión interno (IST). [22]
A diferencia de algunas implementaciones patentadas de árboles de expansión por VLAN, [30] MSTP incluye toda la información de su árbol de expansión en un único formato BPDU. Esto no solo reduce la cantidad de BPDU necesarias para comunicar la información del árbol de expansión para cada VLAN, sino que también garantiza la compatibilidad con versiones anteriores de RSTP y, en efecto, también con STP clásico. MSTP logra esto codificando una región adicional de información después del BPDU RSTP estándar, así como una cantidad de mensajes MSTI (de 0 a 64 instancias, aunque en la práctica muchos puentes admiten menos). Cada uno de estos mensajes de configuración MSTI transmite la información del árbol de expansión para cada instancia. A cada instancia se le puede asignar una cantidad de VLAN configuradas y las tramas asignadas a estas VLAN operan en esta instancia del árbol de expansión siempre que estén dentro de la región MST. Para evitar transmitir toda su asignación de VLAN a árbol de expansión en cada BPDU, los puentes codifican un resumen MD5 de su tabla de VLAN a instancia en el BPDU MSTP. Luego, otros puentes MSTP utilizan este resumen, junto con otros valores configurados administrativamente, para determinar si el puente vecino está en la misma región MST que él.
MSTP es totalmente compatible con los puentes RSTP en el sentido de que un puente RSTP puede interpretar un BPDU MSTP como un BPDU RSTP. Esto no solo permite la compatibilidad con los puentes RSTP sin cambios de configuración, sino que también hace que cualquier puente RSTP fuera de una región MSTP vea la región como un solo puente RSTP independientemente de la cantidad de puentes MSTP dentro de la región misma. Para facilitar aún más esta vista de una región MSTP como un solo puente RSTP, el protocolo MSTP utiliza una variable conocida como saltos restantes como un contador de tiempo de vida en lugar del temporizador de antigüedad de mensajes utilizado por RSTP. El tiempo de antigüedad de los mensajes solo se incrementa una vez cuando la información del árbol de expansión ingresa a una región MST y, por lo tanto, los puentes RSTP verán una región como un solo salto en el árbol de expansión. Los puertos en el borde de una región MSTP conectados a un puente RSTP o STP o a un punto final se conocen como puertos de límite. Al igual que en RSTP, estos puertos se pueden configurar como puertos de borde para facilitar cambios rápidos en el estado de reenvío cuando se conectan a puntos finales.
IEEE 802.1aq, también conocido como Shortest Path Bridging (SPB), permite que los enlaces redundantes entre conmutadores estén activos a través de múltiples rutas de igual costo, y proporciona topologías de capa 2 mucho más grandes, convergencia más rápida y mejora el uso de las topologías de malla a través de un mayor ancho de banda entre todos los dispositivos al permitir que el tráfico comparta la carga en todas las rutas en una red de malla. [31] [32] SPB consolida múltiples funcionalidades existentes, incluido el Protocolo de árbol de expansión (STP), el Protocolo de árbol de expansión múltiple (MSTP), el Protocolo de árbol de expansión rápido (RSTP), la agregación de enlaces y el Protocolo de registro MAC múltiple (MMRP) en un protocolo de estado de enlace. [33]
El ID de puente (BID) es un campo dentro de un paquete BPDU. Tiene ocho bytes de longitud. Los primeros dos bytes son la prioridad del puente, un entero sin signo de 0 a 65.535. Los últimos seis bytes son una dirección MAC suministrada por el puente. Antes de IEEE 802.1D-2004, los primeros dos bytes proporcionaban una prioridad de puente de 16 bits. Desde IEEE 802.1D-2004, los primeros cuatro bits son una prioridad configurable y los últimos doce bits llevan la extensión de ID de sistema de puente. En el caso de MST, la extensión de ID de sistema de puente lleva el número de instancia MSTP . Algunos proveedores configuran la extensión de ID de sistema de puente para que lleve una ID de VLAN, lo que permite un árbol de expansión diferente por VLAN, como PVST de Cisco .
El árbol de expansión es un protocolo más antiguo con un tiempo de convergencia más largo. El uso o la implementación inadecuados pueden contribuir a las interrupciones de la red. El bloqueo de enlaces es un enfoque rudimentario para lograr una alta disponibilidad y evitar bucles. Las redes modernas pueden hacer uso de todos los enlaces conectados mediante el uso de protocolos que inhiben, controlan o suprimen el comportamiento natural de los bucles de topología lógica o física.
Los protocolos más nuevos y robustos incluyen el protocolo TRILL (Interconexión transparente de muchos enlaces), también creado por Perlman, [34] y Shortest Path Bridging del IEEE.
Configurar conexiones entre equipos de red como enlaces IP de capa 3 y confiar en el enrutamiento IP para lograr resiliencia y evitar bucles es una alternativa popular.
Las técnicas de virtualización de switches, como Cisco Virtual Switching System y Virtual PortChannel y HP Intelligent Resilient Framework, combinan varios switches en una única entidad lógica. Este grupo de agregación de enlaces de varios chasis funciona como un enlace troncal de puerto normal , pero distribuido a través de varios switches. Por el contrario, las tecnologías de particionamiento dividen un único chasis físico en varias entidades lógicas.
En el borde de la red, la detección de bucles está configurada para evitar bucles accidentales por parte de los usuarios. [ se necesita más explicación ]
{{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite book}}
: CS1 maint: varios nombres: lista de autores ( enlace ){{cite journal}}
: Requiere citar revista |journal=
( ayuda )Dado que el Protocolo de árbol de expansión (STP) original se ha eliminado de la revisión de 2004 de IEEE Std 802.1D, se requiere una implementación de RSTP para cualquier reclamo de conformidad con una implementación de IEEE Std 802.1Q-2003 que haga referencia a la revisión actual de IEEE Std 802.1D
Shortest Path Bridging reemplazará a Spanning Tree en la estructura Ethernet.