Otimizacao de balanceamento de tráfego em Link Aggregation utilizando DLB e FAT em switches Datacom

De Wiki BPF
Ir para: navegação, pesquisa

Esta á uma contribuição de valor do time de engenharia e P&D da Datacom, feita especialmente para o público do Brasil Peering Forum (BPF)! Somos muito gratos pela contribuição de um vendor 100% nacional em nossa comunidade/Wiki! Sejam bem vindos, e esperamos contar com novas contribuições de vocês no futuro!

Introdução

O artigo abaixo apresenta 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.

Balanceamento de tráfego por método estático

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.

O problema com o balanceamento de tráfego com o método estático

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.

Balanceamento de tráfego com método dinâmico

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.

O balanceamento de tráfego para L2VPN em uma rede MPLS

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.

O problema com hash para balanceamento de tráfego em cenário de transporte de L2VPN MPLS

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.

A solução com hash para balanceamento de tráfego em L2VPN MPLS com o FAT

As funcionalidades citadas neste artigo estão implementadas nos switches Datacom DM4270, uma família de switches 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.

Considerações Finais da Datacom

A DATACOM tem investido forte 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.

Inscreva-se no nosso canal do Youtube, marque o recebimento de notificações e também compartilhe o link nas suas redes sociais. Para dúvidas e solicitação de proposta, não hesite em contatar a equipe comercial da Datacom: comercial@datacom.com.br e pelo telefone (+55) 51 3933 3000.

Caso tenha dúvidas sobre estas aplicações, não hesite em contatar a nossa equipe suporte.prevendas@datacom.com.br. Estamos à disposição para lhe auxiliar na escolha do produto mais adequado à sua necessidade.

Autores

Luis Bueno – System Test

Guilherme Pfeiff – Engenheiro de Aplicações