Originalmente o protocolo Spanning Tree foi proposto pela cientista Radia Perlman na década de 80 [1]. O protocolo Spanning Tree revolucionou o mercado de switches e bridges, porque incorporou a esses dispositivos a capacidade de interligar a rede com caminhos redundantes e o mais importante: sem ocasionar loop no nível de enlace.
Conforme mostra a Figura 1, antes do Spanning Tree, bridges e switches estavam limitados em somente uma ligação com outros dispositivos do mesmo gênero, em outras palavras, quando havia mais de uma conexão entre switches e bridges ocorria um fenômeno indesejado conhecido como loop no nível de enlace.
Conforme mostra a Figura 1, quando o switch SWITCH-A repassa o frame[1] para outro switch, então o SWITCH-B ao receber esse dado encaminha o mesmo para o SWITCH-C. Consequente Frame (quadro) é o tipo de dado que é transmitido entre switches e bridges, sendo que esses dados recebem outros nomes, à medida que esses dados passam por outros níveis do modelo de referência OSI.mente o SWITCH-C retorna o frame para SWITCH-A, resultando que todo esse processo ocorra indefinidamente. Esse comportamento é conhecido como loop no nível de enlace. Maiores detalhes sobre o comportamento e as possíveis causas que ocasionam loops no nível de enlace podem ser encontrados nas referências deste artigo [3, 4, 5, 6, 7].
A Figura 2 mostra como o protocolo Spanning Tree resolve o problema de loop no nível de enlace, em que o Spanning Tree define uma hierarquia na rede. Desse modo, alguns switches, ao identificarem a possibilidade de loop, bloqueiam a porta que pode ocasionar esse loop. Com isso, apenas um caminho na rede é usado para transmitir os dados, enquanto o caminho adicional é inibido de trafegar as informações na rede e com isso o loop é evitado. Conforme mostra a Figura 2, apenas a título de informação, o switch (SWITCH-A) que possui todas as suas portas no estado de “encaminhando” (forwarding) é chamado de bridge raiz, isto é, esse switch é o dono da VLAN. É importante mencionar que na condição dos cabos ligados às portas dos switches que se encontram na situação de “encaminhando” (forwarding) serem desconectados, após alguns segundos o protocolo Spanning Tree ativa a porta no switch que antes se encontrava “bloqueada” (blocking).
Devido a esse comportamento, a rede continua disponível para utilização dos usuários e aplicações.
Assim como os switches e as bridges, o balanceador de carga BIG-IP [8] desenvolvido pela empresa F5 Networks [9] também pode ocasionar loop no nível de enlace. Entretanto, isso ocorre somente quando o balanceador é configurado incorretamente junto com os demais dispositivos da rede. Este artigo apresenta uma possível solução para utilizar o BIG-IP juntamente com switches que possuem caminhos redundantes [2], mas sem afetar a operação da rede devido a problemas relacionados com loop no nível de enlace.
Utilizando o BIG-IP entre switches com múltiplos caminhos
Apesar do protocolo Spanning Tree ser uma tecnologia que é utilizada desde o final da década de 80, mesmo nos dias de hoje, muitos administradores de rede se preocupam em utilizar esse protocolo juntamente com outras soluções de rede, como firewalls, gateways e balanceadores de carga. Essa preocupação é ainda maior quando todos os dispositivos envolvidos não são do mesmo fabricante. A Figura 3 mostra uma solução onde tanto os switches como o BIG-IP não oferecem riscos de perda de conectividade ou loop na rede.
Na mesma figura, pode ser observado que o BIG-IP possui duas interfaces conectadas na “VLAN 10”, sendo que uma interface é ligada ao SWITCH-A, enquanto a outra é conectada ao SWITCH-B. A interface do BIG-IP conectada no SWITCH-A encontra-se na situação de “ativada” (forwarding). Por outro lado, a interface que está ligada no SWITCH-B encontra-se bloqueada pelo Spanning Tree para evitar loop na rede. O mesmo ocorre com as interfaces do balanceador que estão na “VLAN 20”, em que a porta do SWITCH-C conectada ao BIG-IP encontra-se bloqueada para evitar o loop, consequentemente a porta do SWITCH-D ligada ao balanceador encontra-se ativada para a transmissão de dados. Com base no cenário apresentado, podemos considerar que o SWITCH-A é a bridge raiz do segmento de rede denominado “VLAN 10”, além do SWITCH-D ser a bridge raiz do segmento chamado “VLAN 20”.
No cenário apresentado pela Figura 3, apesar do balanceador BIG-IP ter duas interfaces na mesma rede (
Figura 3. Balanceador BIG-IP com interfaces em switches redundantes |
VLAN), no entanto, somente uma interface permanecerá ativa pelo protocolo Spanning Tree para a transmissão de dados. Além disso, deve ser considerado como requisito que o BIG-IP nunca será a bridge raiz para qualquer segmento de rede, ainda que o balanceador possua mais de uma interface conectada no segmento de rede. Em outras palavras, o resultado final é que o BIG-IP tenha uma de suas interfaces na situação de bloqueada (blocking) em cada segmento de rede redundante, no entanto, essa decisão deve ser feita pelo switch e não pelo BIG-IP. Existem algumas configurações que são obrigatórias, tanto no switch como no balanceador para se obter o comportamento desejado. Nos exemplos de configuração apresentados a seguir, são considerados que os switches são equipamentos do fabricante Cisco [10], válidos tanto para os modelos de switches compatíveis com o sistema IOS [11] como o sistema NEXUS OS [12]. No entanto, as mesmas considerações de configuração podem ser adaptadas para os comandos e dispositivos específicos de outros fabricantes, ou seja, a mesma lógica pode ser utilizada para outros switches dos fabricantes 3COM/HP [13], Juniper [14], Brocade [15] etc.
Configurações necessárias no SWITCH-A
Para refletir as mesmas características apresentadas na topologia da Figura 3, o SWITCH-A é configurado para se tornar a bridge raiz da “VLAN 10”. Isso significa que todas as portas desse switch permanecem no estado de forwarding, isto é, esse switch não possui nenhuma porta bloqueada nesse segmento de rede. O comando mais importante no SWITCH-A é o representado pela linha (3) da Figura 4, que define que esse switch é o “dono” da “VLAN10” no domínio do protocolo Spanning Tree.
1 SWITCH-A>enable 2 SWITCH-A#configure terminal 3 SWITCH-A#(config) spanning-tree vlan 10 root primary |
Figura 4. Configurações necessárias no SWITCH-A
As configurações apresentadas na Figura 4 fazem o Spanning Tree manter todas as interfaces do SWITCH-A ativadas, ou seja, as ligações desse switch com o BIG-IP e o SWITCH-B estão sempre no estado de “forwarding” para a “VLAN 10”.
Configurações necessárias para o SWITCH-B
No cenário apresentado pela Figura 3, não é obrigatório a configuração do SWITCH-B, pois existem somente dois switches no segmento da “VLAN 10”. Mas é aconselhável executar a configuração apresentada na Figura 5, para evitar que nenhum outro dispositivo, como bridges, switches e até mesmo o BIG-IP se torne o dono do segmento da “VLAN 1O”.
1 SWITCH-B>enable 2 SWITCH-B#configure terminal 3 SWITCH-B#(config) spanning-tree vlan 10 root secondary |
Figura 5. Configurações recomendadas no SWITCH-B
Caso o SWITCH-A fique indisponível por qualquer motivo, o protocolo Spanning Tree deve considerar que o SWITCH-B será o dono da “VLAN 1O”, conforme definido pela configuração listada na Figura 5.
Configurações necessárias para o SWITCH-C
A Figura 6 mostra a configuração utilizada no SWITCH-C. Apesar desse switch não ser o dono do segmento da “VLAN 20”, essa parametrização permite que esse switch se torne a bridge raiz desse segmento de rede, mas somente na condição de qualquer indisponibilidade do switch que atualmente é o dono desse segmento. Esse comando também evita que tanto o BIG-IP como outros dispositivos se tornem o dono da “VLAN 20”, durante mudanças na topologia de rede.
1 SWITCH-C>enable 2 SWITCH-C#configure terminal 3 SWITCH-C#(config) spanning-tree vlan 20 root secondary |
Figura 6. Configurações recomendadas no SWITCH-C
Configurações necessárias no SWITCH-D
Conforme apresentado na Figura 3, o SWITCH-D é a bridge raiz para o segmento da “VLAN 20”, em outras palavras, o SWITCH-D possui todas as suas portas no estado de “forwarding” para o segmento da “VLAN 20”. Para viabilizar essa particularidade, a configuração apresentada pela Figura 7 deve ser utilizada.
1 SWITCH-D>enable 2 SWITCH-D#configure terminal 3 SWITCH-D#(config) spanning-tree vlan 10 root primary |
Figura 7. Configurações necessárias no SWITCH-D
As configurações mencionadas na Figura 7 fazem com que o SWITCH-D seja o dono do segmento de rede da “VLAN 20”, isso significa que qualquer outro switch que forconectado nesse segmento não será a bridge raiz.
Configuração adicional que deve ser habilitada em todos os SWITCHES
1 SWITCH(config)# interface <nome da interface>2 SWITCH(config-if)# no spanning-tree portfast |
Conforme já comentado, a configuração mencionada na Figura 8 deve ser aplicada em todas as portas dos switches que possuem ligação com outros switches e interfaces do BIG-IP. Esse parâmetro específico na configuração de cada porta obriga que o switch use o Spanning Tree na porta configurada.
Configurações necessárias no BIG-IP
Além de configurar os switches, é imprescindível que o balanceador BIG-IP também seja parametrizado para evitar problemas de conectividade ou até mesmo loop na rede. Você deve primeiramente acessar o seu BIG-IP, inserindo suas credenciais de acesso. Após isso, entre no menu principal (1) e clique na opção network (2), conforme mostra a Figura 9.
Figura 9. Menu principal do BIG-IP