Entender o balanceamento de carga para tráfego BGP com largura de banda desigual alocada para os caminhos
A opção multipath remove os desempatadores do processo de decisão de rota ativa, permitindo assim que rotas BGP de custo igual aprendidas de várias fontes sejam instaladas na tabela de encaminhamento. No entanto, quando os caminhos disponíveis não são de custo igual, talvez você queira balancear a carga do tráfego assimetricamente.
Uma vez que vários próximos saltos são instalados na tabela de encaminhamento, um próximo salto de encaminhamento específico é selecionado pelo algoritmo de balanceamento de carga por prefixo do Junos OS. Esse processo faz hashes nos endereços de origem e destino de um pacote para mapear deterministicamente o emparelhamento de prefixo em um dos próximos hops disponíveis. O mapeamento por prefixo funciona melhor quando a função de hash é apresentada com um grande número de prefixos, como pode ocorrer em uma troca de emparelhamento da Internet, e serve para evitar a reordenação de pacotes entre pares de nós de comunicação.
Uma rede corporativa normalmente deseja alterar o comportamento padrão para evocar um algoritmo de balanceamento de carga por pacote . Por pacote é enfatizado aqui porque seu uso é um nome impróprio que decorre do comportamento histórico do ASIC do Processador de Internet original. Na realidade, os roteadores atuais da Juniper Networks oferecem suporte ao balanceamento de carga por prefixo (padrão) e por fluxo. O último envolve hashing em vários cabeçalhos de Camada 3 e Camada 4, incluindo partes do endereço de origem, endereço de destino, protocolo de transporte, interface de entrada e portas de aplicativo. O efeito é que agora os fluxos individuais são hash para um próximo salto específico, resultando em uma distribuição mais uniforme entre os próximos saltos disponíveis, especialmente ao rotear entre menos pares de origem e destino.
Com o balanceamento de carga por pacote, os pacotes que compõem um fluxo de comunicação entre dois endpoints podem ser resequenciados, mas os pacotes dentro de fluxos individuais mantêm o sequenciamento correto. Se você optar pelo balanceamento de carga por prefixo ou por pacote, a assimetria dos links de acesso pode representar um desafio técnico. De qualquer forma, os prefixos ou fluxos mapeados para, por exemplo, um link T1 exibirão desempenho degradado quando comparados aos fluxos mapeados para, por exemplo, um link de acesso Fast Ethernet. Pior ainda, com cargas de tráfego pesadas, qualquer tentativa de balanceamento de carga igual provavelmente resultará na saturação total do link T1 e na interrupção da sessão decorrente da perda de pacotes.
Felizmente, a implementação do BGP da Juniper Networks suporta a noção de uma comunidade de largura de banda. Essa comunidade estendida codifica a largura de banda de um determinado próximo salto e, quando combinado com o multipath, o algoritmo de balanceamento de carga distribui fluxos pelo conjunto de próximos hops proporcionais às suas larguras de banda relativas. Dito de outra forma, se você tiver um próximo salto de 10 Mbps e 1 Mbps, em média, nove fluxos serão mapeados para o próximo salto de alta velocidade para cada um que usa a baixa velocidade.
Como funciona o balanceamento de carga desigual (plano de controle e PFE)
Em plataformas suportadas, o Mecanismo de Encaminhamento de Pacotes (PFE) oferece suporte para balanceamento de carga desigual BGP com base na largura de banda do caminho. Esse recurso permite que o dispositivo distribua o tráfego por vários caminhos BGP proporcionalmente à sua capacidade relativa, em vez de igualmente.
Para conseguir isso, o plano de controle calcula um conjunto de pesos de balanceamento de carga (valores de saldo) para cada próximo salto elegível, levando em conta o custo relativo ou a largura de banda associada a cada caminho. Esses valores calculados são então programados no PFE.
O PFE usa esses pesos para distribuir proporcionalmente o tráfego pelos caminhos disponíveis, garantindo que os links de maior capacidade transportem uma parcela correspondentemente maior do tráfego. Essa abordagem melhora a utilização do link e ajuda a evitar o congestionamento em caminhos de largura de banda mais baixa em ambientes onde os caminhos disponíveis têm características desiguais.
O uso da comunidade de largura de banda BGP é suportado apenas com o balanceamento de carga por pacote.
A tarefa de configuração tem duas partes:
-
Configure as sessões de peering BGP (EBGP) externas, habilite o multipath e defina uma política de importação para marcar rotas com uma comunidade de largura de banda que reflita a velocidade do link.
-
Habilite o balanceamento de carga por pacote (na verdade, por fluxo) para uma distribuição ideal do tráfego.