Por Luis Bueno – System Test & Guilherme Pfeiff – Engenheiro de Aplicações
Neste artigo apresentamos os protocolos de balanceamento que visam otimizar o tráfego em links de provedores (ISPs) que utilizam Link Aggregation, principalmente em cenários MPLS.
Link aggregation
Links entre dois equipamentos podem ser agregados para operar como um link virtual único. Este conjunto de interfaces agregadas é chamado de LAG (Link Aggregation Group).
Uma das motivações para a utilização de LAGs é prover redundância. Outro fator é o aumento de capacidade do link. Pode-se agregar duas ou mais interfaces de 10G, por exemplo, para ter-se um único link com capacidade de 20Gbps ou mais.
Também deve-se levar em conta que módulos de 40G ou 100G ainda são caros, favorecendo o uso de LAGs. Pode ser mais barato agregar algumas interfaces de 10G do que investir em novos equipamentos para utilizar links de 40G ou 100G.
O balanceamento de tráfego entre as interfaces do LAG é baseado em um hash. Este hash é calculado levando em consideração critérios como endereços IP (origem/destino), endereços MAC (origem/destino), portas TCP/UDP (origem/destino), labels MPLS, entre outros, conforme configurado pelo usuário.
Um objetivo do uso do hash com base em informações do header do pacote é que pacotes pertencentes a um mesmo fluxo terão o mesmo hash e serão encaminhados através do mesmo link do LAG. Desta forma, evita-se que pacotes de um mesmo fluxo de dados sejam encaminhados através de links diferentes do LAG e cheguem ao destino fora de ordem.
Problemas em modos de balanceamento estáticos
Os métodos tradicionais de balanceamento são estáticos, ou seja, fluxos com determinados valores de hash serão encaminhados para um link específico do LAG mesmo que este já esteja saturado.
Na imagem abaixo, dois fluxos de 250Mbps chegam ao switch, que irá encaminhá-los através do LAG. É calculado o hash de ambos os fluxos e o algoritmo de balanceamento determina que o fluxo 1 deve ser encaminhado ao link 1 e o fluxo 2 ao link 2 do LAG, ficando cada link com 25% de ocupação.
Se, neste cenário, surgir um fluxo adicional de 800Mbps, o algoritmo de balanceamento estático irá enviá-lo através de um dos links juntamente com o outro fluxo, fazendo com que fique saturado. Na imagem abaixo, o fluxo 3 foi enviado pelo link 2, deixando-o saturado e causando descarte de pacotes enquanto o link 1 fica subutilizado. O algoritmo estático não leva em consideração a utilização dos links para determinar a interface de saída.
Balanceamento dinâmico – Dynamic Load Balance
Com o Dynamic Load Balance, o switch irá analisar o tamanho dos fluxos e a utilização das interfaces do LAG para determinar por qual link será encaminhado o tráfego. Na imagem abaixo, ao perceber a existência de um novo fluxo de 800Mbps, o algoritmo dinâmico moveu o fluxo 2 para o link 1 e encaminhou o fluxo 3 pelo link 2.
O Dynamic Load Balance monitora a utilização dos links de forma contínua, movendo os fluxos entre os links do LAG dinamicamente, fazendo que o a utilização dos links seja otimizada, evitando a existência de links saturados enquanto outros links estão subutilizados.
Por que o MPLS virou o pavor de quem utiliza LAG?
Apesar do DLB otimizar o balanceamento em LAGs, ainda há a dependência do cálculo do hash. Como demonstrado a seguir, diferentes fluxos em um VPN podem ter sempre o mesmo hash, não ocorrendo balanceamento de tráfego.
No cenário abaixo, há uma VPN entre os equipamentos A e B.
Dois fluxos passam por esta VPN, porém, como ambos tem mesma origem e destino, são encapsulados nos mesmos labels, ficando com headers iguais. Como mostrado na imagem abaixo, o hash é calculado com base nestes labels e acaba sendo o mesmo valor para ambos os fluxos.
Como consequência, ambos os fluxos são encaminhados através da mesma interface dos LAGs, não ocorrendo balanceamento de tráfego efetivo. Ou seja, mesmo que existam inúmeros fluxos de dados diferentes nesta VPN, o tráfego irá sempre ocupar uma única interface dos LAGs, não ocorrendo balanceamento.
Para evitar que o tráfego de L2VPNs seja polarizado e não ocorra balanceamento, foi criado o Flow Aware Transport (FAT). Tendo esta funcionalidade habilitada em ambas as pontas da VPN, é adicionado um novo label no pacote, que é gerado com base no fluxo. Ao ser gerado o hash, será considerado este terceiro label, o que deve resultar em um valor diferente para cada fluxo. Desta forma, o balanceamento ocorre da maneira adequada.
As funcionalidades citadas neste artigo estão implementadas nos switches Datacom DM4270, uma família de switchs IP/MPLS com alta densidade de portas 10Gbps e uplink de 100Gbps. Assim como os demais switches de nova geração da Datacom, o DM4270 está baseado no DmOS.
A DATACOM mantém investimentos de P&D em seu sistema operacional de redes, de forma a entregar ao mercado uma solução que segue as tendências mais atuais de software, isto é, um software de arquitetura modular, focado em escalabilidade e performance.
É importante citar que a Datacom conta com uma estrutura completa em sua matriz onde são ofertados treinamentos presenciais. No treinamento será possível manipular os equipamentos, realizar configurações de diversas topologias e cenários de aplicação em um ambiente de laboratório completo, além de poder contar com a ajuda dos nossos profissionais em uma série de boas práticas que ajudarão muito na operação de sua rede.
Para saber mais sobre aplicações em redes ISPs acesse o site e assista aos lançamentos e tutoriais em nosso canal do YouTube. A equipe de Suporte também está à disposição pelo e-mail suporte.prevendas@datacom.com.br. Para solicitação de proposta, entre em contato a equipe comercial da Datacom: comercial@datacom.com.br e (+55) 51 3933 3000.