Este documento fornece a teoria por trás do balanceamento de carga da VLAN entre os troncos e também fornece exemplos de configura;'ao para switches executando CatOS e IOS Integrado.
Para obter mais informações sobre convenções de documento, consulte as Convenções de dicas técnicas Cisco.
Não existem requisitos específicos para este documento.
Este documento não se restringe a versões de software e hardware específicas.
Os comandos usados neste documento estão disponíveis nas famílias do Catalyst 4000, 5000 e 6000 que estejam executando CatOS e IOS integrado. As seções teóricas deste documento estão relacionadas ao STP (Protocolo de árvore de abrangência) e são independentes de plataforma.
The configuration shown in figure 1 below, in which two Switches are directly connected through more than one trunk, is very common for redundancy purposes. Se ocorrer uma falha em um dos dois links, o segundo logo se tornará disponível para transmitir o tráfego. Quando os dois links estiverem ativados, o Spanning-Tree Algorithm (STA) desativa um deles para evitar um Loop de Bridging entre os dois Switches.
Na configuração da figura 1 acima, com dois troncos FastEthernet ligando Catalyst R e Catalyst D, o STP elege a mesma porta de bloqueio para todas as VLANs configuradas. Nesse caso, o Catalyst R é a bridge raiz e o Catalyst D decide bloquear a porta D2 para a VLAN 1 e a VLAN 2. O principal problema com esse projeto é que o link R2-D2 é simplesmente sacrificado e há apenas 100 Mb/s disponíveis entre os dois switches. Para ter a vantagem de ambos os enlaces, a configuração pode ser mudada e permitir VLAN1 apenas no enlace R1-D1 e VLAN 2 apenas no enlace R2-D2.
A rede resultante, mostrada na Figura 2, perde sua redundância. Agora você tem ambos os links encaminhando ao mesmo tempo e pode usar praticamente 200 Mb/s entre os dois switches. Entretanto, se um link falhar, você perderá completamente a conectividade de um VLAN. A solução ideal é aquela descrita na Figura 3:
Na figura 3, você mantém os troncos entre os dois switches, mas a porta D1 está bloqueando a VLAN 1 e encaminhando a VLAN 2; a porta D2 está bloqueando a VLAN 2 e encaminhando a VLAN 1. Este design mantém os melhores recursos da figura 1 e da figura 2:
Ambos os enlaces estão encaminhando, fornecendo uma conectividade agregada de 200 Mb/s entre os dois Switches.
If one link fails, the remaining one unblocks the corresponding VLAN and maintains connectivity for both VLANs between the Switches.
Este documento explica como chegar a essa configuração, após uma breve explicação sobre as operações do STP.
A descrição detalhada de como o STA funciona está além do escopo deste documento. No entanto, ele resume brevemente como o algoritmo decide, nesse caso, se uma porta bloqueia ou encaminha. Concentra-se na configuração mais simples possível com apenas uma VLAN; O Catalyst R é a bridge raiz nessa VLAN e o Catalyst D tem várias conexões redundantes com o Catalyst R. O Catalyst D bloqueia todas as suas portas para o Catalyst R, mas sua porta raiz. Como o Catalyst D seleciona sua porta raiz? As pontes que executam o STA trocam Unidades de dados do protocolo de ponte (BPDUs) pelos enlaces e tais BPDUs podem ser estritamente classificadas dependendo de seu conteúdo. Uma BPDU é superior a outra se tiver:
Um ID de Root Bridge inferior.
Um custo de caminho menor para a Raiz.
Identificação de Ponto de Envio mais baixa.
Uma identificação da porta de envio inferior.
Esses quatro parâmetros são examinados em ordem, ou seja, você só poderá lidar com o parâmetro 2 se o parâmetro 1 for o mesmo nos dois BPDUs que estão sendo comparados. A porta escolhida como raiz no Catalyst D é a porta que está recebendo o melhor BPDU.
Nesse caso específico, a figura 4, todos os BPDUs enviados pelo Catalyst R têm o mesmo ID da Bridge Raiz, o mesmo custo de caminho para a Raiz e o mesmo ID da Bridge de Envio. O único parâmetro restante para selecionar o melhor é o ID da porta de envio. O ID da porta de envio é um parâmetro de 16 bits dividido em dois campos: a prioridade da porta e um índice de porta. O valor padrão da prioridade da porta é 32 e o índice de porta é exclusivo para cada porta no Switch.
prioridade da porta | Índice da porta | |
---|---|---|
Tamanho em bits | 6 | 10 |
Valor padrão | 32 | Valor exclusivo fixo |
A Figura 4 representa o parâmetro de ID de porta em BPDUs. Neste caso, o Catalyst D escolhe a porta D1 como sua porta raiz pois o R2 do índice da porta é inferior ao R1. Se quiser que o D2 seja encaminhado no final, você precisa forçá-lo como a porta raiz. A única maneira de fazer isso é reduzir o valor de prioridade da porta R2 (ou aumentar o valor de prioridade da porta R1). Isso foi o que foi feito na Figura 5.
Para obter o balanceamento de carga entre dois troncos, você ajusta em uma VLAN a prioridade de porta no Catalyst R.
Aqui está o status atual do STP no Catalyst R. É a raiz para a VLAN 1 e 2, portanto, todas as suas portas estão encaminhando.
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)
No Catalyst D, conforme a expectativa, a porta 5/2 é bloqueada para os VLANs 1 e 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)
Você vai diminuir o valor de prioridade da porta para VLAN 1 na porta 3/2. Dessa forma, a porta 5/2 correspondente no Catalyst D recebe BPDUs melhores do que os enviados na porta 5/1 (que ainda tem um valor de prioridade de porta 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)
Você pode verificar se o valor de prioridade da porta de VLAN 1 foi alterado:
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)
Agora é possível ver no Catalyst D que, para a VLAN 1, a porta 5/1 está bloqueando e a porta 5/2 está encaminhando, conforme esperado.
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)
Há somente dois valores possíveis para a prioridade de VLAN da porta por tronco, e cada um deles pode ser configurado usando o comando portvlanpri. Significa que em um determinado tronco, você tem dois grupos de VLANs:
Aqueles que possuem o valor de prioridade de porta global (32 por padrão).
Aqueles que têm um valor "personalizado" digitado com o comando portvlanpri
Um exemplo esclarece isso. Considere a adição de um terceiro VLAN no exemplo. Por padrão, esta VLAN pertence ao grupo que tem o valor de prioridade de porta global (padrão 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)
Altere a prioridade global da porta, usando o 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 as VLANs pertencentes ao grupo "global" alteraram sua prioridade para 48. Agora, atribua a VLAN 3 ao outro grupo "personalizado" de VLANs, dando-lhe um valor de 8 com o 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 as VLANs no grupo "personalizado" mudaram sua prioridade para 8, não apenas para a VLAN 3. Para colocar a VLAN 3 de volta no grupo padrão, use o 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)
Há uma última restrição neste comando. O valor atribuído ao grupo "global" deve ser superior ao valor configurado no 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" |
---|---|
Por padrão, todas as VLANs pertencem a esse grupo. | As VLANs selecionadas com o comando set spantree portvlanpri pertencem a este grupo. |
A prioridade de tais VLANs é configurada pelo comando set spantree port priority. | O valor de prioridade de todos esses VLANs é definido pelo comando set spantree portvlanpri. |
O valor de prioridade configurado para o grupo "global" deve ser superior to ao configurado para o grupo "personalizado". | O comando clear spantree portvlanpri permite retornar uma VLAN deste grupo para outro. |
Observação: este exemplo de configuração se aplica aos switches que executam o IOS - Catalyst 2900/3500XL, Catalyst 2950, Catalyst 3550, Catalyst 4000 supervisor III/IV e Catalyst 6000.
Aqui está o status atual do STP no Catalyst R. É a raiz para a VLAN 1 e 2, portanto, todas as suas portas estão encaminhando.
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
No Catalyst D, conforme a expectativa, a porta 5/2 é bloqueada para os VLANs 1 e 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
Você vai diminuir o valor de prioridade da porta para VLAN 1 na porta 3/2. Dessa forma, a porta 5/2 correspondente no Catalyst D recebe BPDUs melhores do que os enviados na porta 5/1 (que ainda tem um valor de prioridade de porta 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#
Você pode verificar se o valor de prioridade da porta de VLAN 1 foi alterado:
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
Agora é possível ver no Catalyst D que, para a VLAN 1, a porta 5/1 está bloqueando e a porta 5/2 está encaminhando, conforme esperado.
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
Há duas maneiras de definir a prioridade da porta VLAN:
O valor de prioridade de porta "global" (128 por padrão) que pode ser modificado por interface pelo comando port-priority
O valor de prioridade de porta "por VLAN" que pode ser modificado por interface e por VLAN pelo comando VLAN port-priority
Um exemplo esclarece isso. Considere adicionar uma terceira VLAN neste exemplo. Por padrão, esta VLAN pertence ao grupo que tem o valor de prioridade de porta global (padrão 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
Altere a prioridade global da porta, usando o comando de configuração da interface 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 as VLANs pertencentes ao grupo "global" alteraram sua prioridade para 160. Agora, atribua à VLAN 3 sua própria prioridade 48 com o comando de interface 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 apenas a VLAN 3 alterou sua prioridade para 48. Para colocar a VLAN 3 de volta no grupo padrão, use o comando de interface 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
A configuração do balanceamento de rede de VLAN recém-concluída otimiza o uso de troncos redundantes entre dois Catalysts.
Manter os valores padrão do STP leva todos os links redundantes entre os dois Catalysts a terminarem no modo de bloqueio. O ajuste da prioridade do STP permite que vários links sejam usados ao mesmo tempo, para diferentes VLANs. Isso aumenta a largura de banda geral disponível entre os dois dispositivos. Em caso de falha de um enlace, o STP despacha novamente os VLANs para os troncos restantes enquanto reconverge.
A única desvantagem deste projeto é que ele só pode ter o tráfego equilibrado por carga com base em VLAN. Se no exemplo anterior, você tinha um tráfego de 130 Mb/s fluindo através da VLAN 1 e apenas tráfego de 10 Mb/s na VLAN 2, você ainda descarta pacotes na VLAN 1, mesmo que, em teoria, tenha 200 Mb/s entre o Catalyst R e o Catalyst D. O recurso EtherChanneling trata disso, fornecendo balanceamento de carga entre vários links em uma base de pacote. Se seu hardware suportar, utilize FastEtherchannel (ou GigabitEtherChannel) em vez da configuração descrita neste documento.
Revisão | Data de publicação | Comentários |
---|---|---|
1.0 |
02-Dec-2013 |
Versão inicial |