Este documento proporciona la teoría que hay detrás del balanceo de carga de VLAN entre trunks, y también proporciona ejemplos de configuración para los switches que ejecutan CatOS e IOS Integrado.
Para obtener más información sobre las convenciones del documento, consulte Convenciones de Consejos Técnicos de Cisco.
No hay requisitos previos específicos para este documento.
Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.
Los comandos utilizados en este documento están disponibles en las familias Catalyst 4000, 5000 y 6000 que ejecutan CatOS e IOS integrado. Las secciones teoréticas de este documento estás relacionadas con el protocolo de árbol de expansión (STP) y son independientes de la plataforma.
La configuración que se muestra en la figura 1 a continuación, en la que dos switches están conectados de forma directa a través de más de un tronco, es muy común para fines de redundancia. Si uno de los dos links falla, el segundo pronto estará disponible para transmitir tráfico. Cuando ambos links están activos, el algoritmo de árbol de expansión (STA) deshabilita a uno de ellos para evitar un loop de conexión en puente entre los dos switches.
En la configuración de la figura 1 anterior, con dos troncales FastEthernet que vinculan Catalyst R y Catalyst D, el STP elige el mismo puerto de bloqueo para todas las VLAN configuradas. En este caso, Catalyst R es el puente raíz y Catalyst D decide bloquear el puerto D2 para VLAN 1 y VLAN 2. El problema principal con este diseño es que el link R2-D2 simplemente se sacrifica y sólo hay 100 Mb/s disponibles entre los dos switches. Para aprovechar ambos links, puede cambiar la configuración y permitir VLAN 1 sólo en el link R1-D1 y VLAN2 sólo en el link R2-D2.
La red resultante, mostrada en la figura 2, pierde su redundancia. Ahora tiene ambos links reenviando al mismo tiempo y prácticamente puede utilizar 200 Mb/s entre los dos switches. Sin embargo, si falla un link, pierde completamente la conectividad para una VLAN. La solución ideal es la que se describe en la figura 3:
En la figura 3, usted mantiene los troncales entre los dos switches, pero el puerto D1 está bloqueando la VLAN 1 y reenviando la VLAN 2; el puerto D2 está bloqueando la VLAN 2 y reenviando la VLAN 1. Este diseño mantiene las mejores características de las figuras 1 y 2:
Ambos links están reenviando, proporcionando de este modo 200 Mb/s de conectividad total entre los dos switches.
Si falla un link, el restante desbloquea la VLAN correspondiente y mantiene la conectividad en ambas VLAN entre los switches.
Este documento explica cómo lograr esta configuración, luego de una breve explicación de las operaciones STP.
La descripción detallada de cómo funciona STA está fuera del alcance de este documento. Sin embargo, resume brevemente cómo el algoritmo decide, en este caso, si un puerto bloquea o reenvía. Se centra en la configuración más simple posible con sólo una VLAN; Catalyst R es el puente raíz en esta VLAN y Catalyst D tiene varias conexiones redundantes a Catalyst R. Catalyst D bloquea todos sus puertos a Catalyst R pero su puerto raíz. ¿Cómo selecciona Catalyst D su puerto raíz? Los puentes que ejecutan las Bridge Protocol Data Units (BPDUs) del intercambio STA a través de links y estos mismos BPDU se pueden clasificar estrictamente de acuerdo a sus contenidos. Una BPDU es superior que otra si tiene:
Un ID del puente de la raíz inferior.
Un costo menor de trayecto hacia la raíz.
Un ID del puente de envío más baja.
Una ID de puerto de envío más lento.
Estos cuatro parámetros se analizan en orden, es decir, el parámetro 2 es importante solamente si el parámetro 1 es el mismo en las dos BPDU sujetas a comparación. El puerto que se elige como puerto raíz en Catalyst D es aquél que recibe el mejor BPDU.
En este caso específico, figura 4, todas las BPDU enviadas por Catalyst R tienen el mismo ID de puente raíz, el mismo costo de trayectoria a la raíz y el mismo ID de puente de envío. El único parámetro que queda para seleccionar el mejor es el ID de puerto de envío. El ID de puerto de envío es un parámetro de 16 bits, dividido en dos campos: la prioridad de puerto y un índice de puerto. El valor predeterminado para la prioridad de puerto es 32 y el índice de puerto es exclusivo de cada puerto del switch.
prioridad de puerto | Índice del puerto | |
---|---|---|
Tamaño en bits | 6 | 10 |
Valor predeterminado | 32 | Valor único fijo |
La Figura 4 ilustra los parámetros de Id de puerto en los BPDU. En este caso, Catalyst D selecciona el puerto D1 como su puerto raíz porque el índice de puerto R2 es inferior al de R1. Si desea que D2 se reenvíe finalmente, debe forzarlo como puerto raíz. La única manera de hacerlo es reducir el valor de prioridad de puerto R2 (o aumentar el valor de prioridad de puerto R1). Esto es lo que se hizo en la figura 5.
Para lograr el balanceo de carga entre dos troncales, usted ajusta en una VLAN la prioridad de puerto en Catalyst R.
Este es el estado actual de STP en Catalyst R. Es la raíz para VLAN 1 y 2, por lo que todos sus puertos están reenviando.
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 32 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
En Catalyst D, como se esperaba, el puerto 5/2 está bloqueado para las redes VLAN 1 y 2.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 forwarding 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 blocking 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Va a disminuir el valor de prioridad de puerto para VLAN 1 en el puerto 3/2. De esta manera, el puerto 5/2 correspondiente en Catalyst D recibe mejores BPDU que los que se envían en el puerto 5/1 (que aún tiene un valor de prioridad de puerto de 32).
Catalyst_R> (enable) set spantree portvlanpri 3/2 16 1 Port 3/2 vlans 1 using portpri 16. Port 3/2 vlans 2-1004 using portpri 32. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable)
Puede verificar que el valor de prioridad del puerto ha cambiado para VLAN 1:
Catalyst_R> (enable) show spantree 3/1 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/1 1 forwarding 19 32 disabled 0 3/1 2 forwarding 19 32 disabled 0 Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Puede ver en Catalyst D que, para VLAN 1, el puerto 5/1 está bloqueando y el puerto 5/2 está reenviando, como era de esperarse.
Catalyst_D> (enable) show spantree 5/1 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/1 1 blocking 19 32 disabled 5/1 2 forwarding 19 32 disabled Catalyst_D> (enable) show spantree 5/2 Port Vlan Port-State Cost Priority Fast-Start Group-Method --------- ---- ------------- ----- -------- ---------- ------------ 5/2 1 forwarding 19 32 disabled 5/2 2 blocking 19 32 disabled Catalyst_D> (enable)
Sólo hay dos valores posibles para la prioridad por tronco del puerto VLAN y únicamente uno de ellos se puede configurar con el comando portvlanpri. Significa que en un trunk dado, usted tiene dos grupos de VLAN:
Aquellos que tienen el valor de prioridad de puerto "global" (32 por defecto).
Los que tienen un valor "personalizado" ingresado con el comando portvlanpri.
Un ejemplo puede aclarar esto. Considere agregar una tercera VLAN en el ejemplo. De manera predeterminada, esta VLAN pertenece al grupo con valor de prioridad del puerto global (el valor predeterminado es 32).
Catalyst_R> (enable) set vlan 3 Vlan 3 configuration successful Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 32 disabled 0 3/2 3 forwarding 19 32 disabled 0 Catalyst_R> (enable)
Cambie la prioridad global para el puerto, usando el comando set spantree portpri:
Catalyst_R> (enable) set spantree portpri 3/2 48 Bridge port 3/2 port priority set to 48. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 16 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Observe que todas las VLAN que pertenecen al grupo "global" cambiaron su prioridad a 48. Ahora asigne VLAN 3 al otro grupo "personalizado" de VLAN, dándole un valor de 8 con el comando portvlanpri:
Catalyst_R> (enable) set spantree portvlanpri 3/2 8 3 Port 3/2 vlans 1,3 using portpri 8. Port 3/2 vlans 2,4-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 8 disabled 0 Catalyst_R> (enable)
Observe que todas las VLAN del grupo "personalizado" han cambiado su prioridad a 8, no sólo a VLAN 3. Para volver a colocar VLAN 3 en el grupo predeterminado, utilice el comando clear spantree portvlanpri:
Catalyst_R> (enable) clear spantree portvlanpri 3/2 3 Port 3/2 vlans 1 using portpri 8. Port 3/2 vlans 2-1004 using portpri 48. Port 3/2 vlans 1005 using portpri 4. Catalyst_R> (enable) show spantree 3/2 Port Vlan Port-State Cost Priority Portfast Channel_id ------------------------ ---- ------------- ----- -------- ---------- ---------- 3/2 1 forwarding 19 8 disabled 0 3/2 2 forwarding 19 48 disabled 0 3/2 3 forwarding 19 48 disabled 0 Catalyst_R> (enable)
Hay una última restricción en este comando. El valor asignado al grupo "global" debe ser superior al configurado en el grupo "personalizado".
Catalyst_R> (enable) set spantree portvlanpri 3/2 62 3 Portvlanpri must be less than portpri. Portpri for 3/2 is 48.
Para resumir:
"grupo “global” | "grupo "personalizado |
---|---|
De forma predeterminada, todas las VLAN pertenecen a este grupo. | Las VLAN seleccionadas con el comando set spantree portvlanpri pertenecen a este grupo. |
La prioridad para estas VLAN se determina usando el comando set spantree port priority. | El valor de prioridad para todas estas VLAN es configurado por el comando set spantree portvlanpri. |
El valor de prioridad configurado para el grupo "global" debe ser superior al configurado para el grupo "personalizado". | El comando clear spantree portvlanpri permite volver a poner una VLAN de este grupo en otro. |
Nota: Este ejemplo de configuración se aplica a los switches que ejecutan IOS - Catalyst 2900/3500XL, Catalyst 2950, Catalyst 3550, Catalyst 4000 Supervisor III/IV y Catalyst 6000.
Este es el estado actual de STP en Catalyst R. Es la raíz para VLAN 1 y 2, por lo que todos sus puertos están reenviando.
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
En Catalyst D, como se esperaba, el puerto 5/2 está bloqueado para las redes VLAN 1 y 2.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Va a disminuir el valor de prioridad de puerto para VLAN 1 en el puerto 3/2. De esta manera, el puerto 5/2 correspondiente en Catalyst D recibe mejores BPDU que los que se envían en el puerto 5/1 (que aún tiene un valor de prioridad de puerto de 128).
Catalyst_R#config terminal Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 1 port-priority 64 Catalyst_R(config-if)#end Catalyst_R#
Puede verificar que el valor de prioridad del puerto ha cambiado para VLAN 1:
Catalyst_R#show spanning-tree interface FastEthernet 3/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 128.129 P2p VLAN0002 Desg FWD 19 128.129 P2p Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p
Puede ver en Catalyst D que, para VLAN 1, el puerto 5/1 está bloqueando y el puerto 5/2 está reenviando, como era de esperarse.
Catalyst_D#show spanning-tree interface FastEthernet 5/1 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Altn BLK 19 128.129 P2p VLAN0002 Root FWD 19 128.129 P2p Catalyst_D#show spanning-tree interface FastEthernet 5/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Root FWD 19 128.130 P2p VLAN0002 Altn BLK 19 128.130 P2p
Hay dos maneras de definir la prioridad del puerto VLAN:
El valor de prioridad de puerto "global" (128 de forma predeterminada) que se puede modificar por interfaz mediante el comando port-priority
El valor de prioridad de puerto "por VLAN" que se puede modificar por interfaz y por VLAN mediante el comando VLAN port-priority
Un ejemplo puede aclarar esto. Considere la posibilidad de agregar una tercera VLAN en este ejemplo. De manera predeterminada, esta VLAN pertenece al grupo con valor de prioridad del puerto global (el valor predeterminado es 128).
Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 128.130 P2p VLAN0003 Desg FWD 19 128.130 P2p
Cambie la prioridad global para el puerto, usando el comando de configuración de interfaz spanning-tree port-priority:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree port-priority 160 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
Observe que todas las VLAN que pertenecen al grupo "global" cambiaron su prioridad a 160. Ahora asigne VLAN 3 a su propia prioridad 48 con el comando de interfaz spanning-tree vlan port-priority:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#spanning-tree vlan 3 port-priority 48 Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 48.130 P2p
Observe que sólo la VLAN 3 ha cambiado su prioridad a 48. Para volver a colocar VLAN 3 en el grupo predeterminado, utilice el comando de interfaz no spanning-tree vlan port-priority:
Catalyst_R(config)#interface FastEthernet 3/2 Catalyst_R(config-if)#no spanning-tree vlan 3 port-priority Catalyst_R# Catalyst_R#show spanning-tree interface FastEthernet 3/2 Vlan Role Sts Cost Prio.Nbr Type ---------------- ---- --- --------- -------- -------------------------------- VLAN0001 Desg FWD 19 64.130 P2p VLAN0002 Desg FWD 19 160.130 P2p VLAN0003 Desg FWD 19 160.130 P2p
La configuración del equilibrio de carga en la VLAN que se acaba de completar optimiza el uso de troncos redundantes entre dos Catalyst.
El mantenimiento de los valores STP predeterminados lleva a que todos los links redundantes entre los dos Catalyst terminen en modo de bloqueo. El ajuste de la prioridad STP permite utilizar varios links al mismo tiempo para diferentes VLAN. Esto aumenta el ancho de banda total disponible entre los dos dispositivos. En caso de que ocurra un error en un link, el STP vuelve a enviar las VLAN a los troncos restantes a medida que vuelve a converger.
La única desventaja que queda en este diseño es que sólo puede equilibrar el tráfico mediante VLAN. Si en el ejemplo anterior, tenía un tráfico de 130 Mb/s que fluía a través de VLAN 1 y sólo 10 Mb/s en VLAN 2, todavía se descartan paquetes en VLAN 1, aunque en teoría hay 200 Mb/s entre Catalyst R y Catalyst D. La función EtherChanneling aborda esto, proporcionando equilibrio de carga entre varios links sobre una base de paquete. Si el hardware lo admite, use FastEtherchannel (o GigabitEtherChannel) en lugar de la configuración descrita en este documento.
Revisión | Fecha de publicación | Comentarios |
---|---|---|
1.0 |
02-Dec-2013 |
Versión inicial |