Spanning Tree Protocol: 4 - Avanzado

Rapid Spanning Tree Protocol (RSTP) está definido por IEEE 802.1w.

Comportamiento de los puertos RSTP

El Root Bridge se elige de igual manera que con STP (802.1D) mirando el Bridge ID (prioridad + MAC) más bajo. Los puertos en RSTP pueden ser:

  • Root Port: El el único puerto de cada switch el cual tiene el mejor camino hacia el Root Bridge. Esto es idéntico a STP (802.1D) así como que el Root Bridge no tiene puerto Root.
  • Designated Port: El puerto de switch en un segmento de red que tiene el mejor coste (root path cost) hacía el root.
  • Alternate Port: Es un puerto que tiene un camino alternativo hacía el Root, un camino diferente del que toma el Root Port, por lo que es menos deseable (por ejemplo dos uplinks de un switch de acceso uno será el Root y el otro el Alternate).
  • Backup Port: Es un puerto que provee de redundancia (pero menos deseable) a un segmento donde ya hay otro enlace. (un switch puede o no tener un camino de backup).

RSTP define los estados de los puertos de acuerdo a lo que el puerto hace con las tramas entrantes. Los estados son:

  • Discarding: Las tramas entrantes son rechazadas (dropped), tampoco se aprenden MACs (en STP 802.1D sería una combinación de los estados Disabled, Blocking y Listening. El estado Listening no se necesita porque RSTP puede negociar rápidamente un cambio de estado sin escuchar primero las BPDUs).
  • Learning: Se rechazan (dropped) las tramas entrantes, pero se aprenden MACs.
  • Forwarding: Se envían las tramas entrantes de acuerdo con la MACs aprendidas (y que se aprenden).

BPDUs en RSTP

Ya que RSTP distingue sus BPDUs de los BPDUs de 802.1D pueden coexistir ambos. Cada puerto intenta funcionar de acuerdo al BPDU que recibe, por ejemplo cuando se recibe en un puerto una BPDU 802.1D (version 0) empieza a funcionar de acuerdo a las reglas de 802.1D.

Sin embargo, cada puerto tiene una medida que bloquea el protocolo en uso, en el caso de que se reciban BPDU de 802.1D y RSTP dentro de un corto período de tiempo. Esto puede ocurrir si los switches en una red se migran de un tipo de STP a otro. En lugar de alternar el tipo de STP durante una migración, el switch mantiene el tipo de protocolo durante el temporizador de retardo de migración. Después de que este temporizador caduque, el puerto puede cambiar los protocolos si es necesario.

Tipos de puerto

  • Edge Port: es un puerto en el extremo de la red donde se conecta solo un servidor. Es lo mismo que en STP un puerto PortFast. Por definición este tipo de puerto no puede formar un bucle por lo que puede pasar directamente a Forwarding. Es importante tener en cuenta que si se recibe una BPDU en un puerto Edge este puerto pierde su estado de Edge.
  • Root Port: Es el puerto que tiene mejor coste hacia el raiz y solo puede haber un puerto Root en cada switch (aunque puede haber caminos alternativos en otros puertos hacia el raiz, Alternate que pueden ponerse en estado de Forwarding cuando el Root por cae).
  • Point-to-Point Port: cualquier puerto que se conecta a otro switch y se convierte en Designated Port. El estado del puerto lo decide un acuerdo rápido ente ambos switches en vez de que un temporizador expire.

Sincronización

Para participar en la convergencia RSTP un switch debe decidir el estado de cada uno de sus puertos. Los puertos que no son Edge empiezan en estado Discarding. Después de que los switches (cada uno con su vecino) intercambian BPDUs se puede identificar el Root Bridge. Si un puerto recibe una BPDU superior de un vecino ese puerto se convierte en Root Port.

Cambios de topología y RSTP

RSTP detecta un cambio de topología solo cuando un puerto que no es Edge (nonedge) pasa su estado a Forwardingg. Esto puede parecer extraño ya que un fallo de un enlace no se usa como desencadenante.

Configuración RSTP

Para configurar un puerto como Edge usamos:

Switch(config-if)# spanning-tree portfast

Para forzar un puerto que actue como point-to-point usamos:

Switch(config-if)# spanning-tree link-type point-to-point

Rapid Per-VLAN spaning Tree Protocol

Para pasar a modo Rapid PVST+ (o RPVST+) usamos:

Switch(config)# spanning-tree mode rapid-pvst

Para designar y configurar un switch como root bridge primario usamos:

Switch(config)# spanning-tree vlan vlan-id root primary

Para designar y configurar un switch como root bridge secundario usamos:

Switch(config)# spanning-tree vlan vlan-id root secondary

Para verificar la configuración de un switch usamos:

Switch(config)# show spanning-tree vlan vlan-id

MST se define en el estándar IEEE 802.1s. Se deben determinar el número de instancias a ejecutar (por redundancia) y que vlans se configuran en cada instancia.

Regiones MST

MST es diferente de 802.1d y PVST+ aunque puede interoperar con ellos. Cada switch configurado con MST debe saber que tipo de STP están ejecutando sus vecinos. Esto se hace configurando los switches en regiones MST comunes, donde en cada switch en una región ejecuta MST con parámetros compatibles.

Por lo general en la mayoría de las redes, es suficiente una sola región MST, aunque se puede configurar más de una región. Dentro de la región, todos los switches deben ejecutar la instancia de MST que está definida por los siguientes atributos:

  • Nombre de la configuración MST (32 caracteres). Region name.
  • Número de revisión de la configuración MST (de 0 a 65535). Se debe configurar manualmente en todos los switches el mismo número.
  • Tabla con la relación entre instancia MST y la(s) vlan(s) (4096 entradas). Indica que instancia que vlans contiene o que vlan está en que instancia.

Si dos o más switches tiene los mismos atributos están en la misma región, si no, están en regiones diferentes.

IST Instances

Dentro de una única región MST corre una instancia Internal Spanning Tree (IST) para que no haya bucle entre los enlaces donde CST se une con la frontera de la región y todos los switches dentro de la región. Debemos pensar en IST como un gran switch que se conecta a otro que usa CST.

Instancias MST

La idea detrás de MST es agrupar multiples VLANs a un número pequeño de instancias de STP. Dentro de una región las instancias MST coexisten con IST. Cisco soporta un máximo de 16 instancias MST (MSTI) dentro de una misma región, que van desde el 1 al 15 siendo la 0 utilizada por IST. Por defecto todas la VLANs pertenecen a la instancia MST00, por lo que debemos explícitamente mapear las VLANs ala instancia.

NOTA: en el esquema de arriba la región MST correo TRES instancias de MST, IST (0), MST1 (1) y MST2 (2).

Solo el IST (MSTI 0) puede enviar y recibir BPDUs MST. La información sobre cada uno de los otros MSTI se adjunta a la BPDU del MST como un registro M. Por lo tanto, incluso si una región tiene las 16 instancias activas, solo se necesita 1 BPDU para transmitir información STP sobre todas ellas.

Configuración MST

Para definir y configurar una región MST debemos seguir estos 7 pasos, de forma manual, en cada uno de los switches que participen:

  1. Activar MST en el switch:
    Switch(config)# spanning-tree mode mst
  2. Entrar en el modo de configuración de MST:
    Switch(config)# spanning-tree mst configuration
    Podemos ver como está actualmente la configuración con:
    Switch(config)# show current
  3. Asignar un nombre de configuración a la región (hasta 32 caracteres):
    Switch(config-mst)# name name
  4. Asignar un número de revisión de configuración (0 to 65,535):
    Switch(config-mst)# revision version

    Este número nos sirve a modo de seguimiento, por lo que cada vez que se haga un cambio en la configuración se debe incrementar en 1 manualmente. Como la configuración dentro de una región debe coincidir en TODOS los switches debemos replicar este incremento en todos los switches de la misma región.

  5. Mapear VLANs a una instancia MST:
    Switch(config-mst)# instance instance-id vlan vlan-list
    el parámetro instance-id (0 to 15) lleva información de la topología de las VLANs listadas, que podemos incluirlas con rangos (usando el guión) o separadas por comas. Resaltar que por defecto TODAS las VLANs van por la instancia 0, el IST.
  6. Mostrar los cambios que hemos realizado, es importante para verificar la configuración:
    Switch(config-mst)# show pending
  7. Salir del modo de configuración de MST que inmediatamente aplica los cambios y los hace activos:
    Switch(config-mst)# exit
    O podemos cancelar los cambios con este comando:
    Switch(config-mst)# abort

NOTA: Una vez activado y configurado MST, PVST+ se para y el switch cambia a RSTP. Un switch NO puede operar a la vez MST y PVST+.

Comandos de configuración MST

Configura root bridge (macro):

Switch(config)# spanning-tree mst instance-id root {primary | secondary} [diameter diameter]

Configura la prioridad del switch:

Switch(config)# spanning-tree mst instance-id priority bridge-priority

Configura el coste del puerto:

Switch(config)# spanning-tree mst instance-id cost cost

Configura la prioridad del puerto:

Switch(config)# spanning-tree mst instance-id port-priority port-priority

Configura los temporizadores:

Switch(config)# spanning-tree mst hello-time seconds

Switch(config)# spanning-tree mst forward-time seconds

Switch(config)# spanning-tree mst max-age seconds

Comandos de verificación MST

Switch# show spanning-tree mst
Switch# show spanning-tree mst Instancia
Switch# show spanning-tree mst Instancia detail
Switch# show spanning-tree mst interface tipo mod/num
  • Los puertos en RSTP pueden ser:
    • Discarding: Las tramas entrantes son rechazadas (dropped), tampoco se aprenden MACs.
    • Learning: Se rechazan (dropped) las tramas entrantes, pero se aprenden MACs.
    • Forwarding: Se envían las tramas entrantes de acuerdo con la MACs aprendidas (y que se aprenden).
  • Los estados de los puertos en RSTP son:
    • Edge Port: es un puerto en el extremo de la red donde se conecta solo un servidor. Es lo mismo que en STP un puerto PortFast. No puede formar un bucle, pasa directamente a Forwarding. Si se recibe una BPDU en un puerto Edge este puerto pierde su estado de Edge.
    • Root Port: Es el puerto que tiene mejor coste hacia el raiz y solo puede haber un puerto Root en cada switch.
    • Point-to-Point Port: cualquier puerto que se conecta a otro switch y se convierte en Designated Port. El estado del puerto lo decide un acuerdo rápido ente ambos switches en vez de que un temporizador expire.

Retro

Lugares

Redes

Sistemas

Varios