Distribuição de fluxo e pedidos de pacotes
Este tópico descreve a distribuição de carga e o pedido de pacotes em dispositivos da Linha SRX5000.
Entender a distribuição de carga em dispositivos de linha SRX5000
O algoritmo de distribuição de carga, que é suportado nos dispositivos SRX5800, SRX5600 e SRX5400, é ajustado com base na capacidade de sessão e poder de processamento. (O suporte real da plataforma depende da versão do Junos OS em sua instalação.)
A distribuição de sessão baseada em hash usa uma tabela hash. A tabela de peso da sessão de SPU é usada para atribuir um ID de SPU a cada índice de hash na tabela de hash de distribuição de sessão. Dessa forma, o número de sessões criadas em cada SPU usando a distribuição baseada em hash é proporcional ao peso da SPU na tabela de peso da sessão de SPU. Cada NPU também mantém uma tabela de peso de sessão de SPU idêntica e uma tabela de hash de distribuição de sessão que usa para selecionar uma SPU para encaminhar pacotes que não correspondam a uma sessão de NPU.
No caso de uma falha na SPU, o mecanismo de roteamento redefinirá todas as placas do plano de dados, incluindo IOCs e NPCs, a fim de manter a consistência da tabela de hash para distribuição de sessões.
Na distribuição de sessão baseada em hash, os pesos são baseados na capacidade da sessão. Recomendamos o modo de distribuição de sessão hash quando a alta capacidade de sessão é necessária.
A distribuição de carga em dispositivos de linha SRX5000 é sempre baseada em hash.
A inserção e a remoção de SPCs causam o recalculação da tabela de peso da sessão de SPU no momento da inicialização do ponto central, porque o chassi deve ser reiniciado após a inserção.
A partir do Junos OS Release 15.1X49-D30, a arquitetura de ponto central é aprimorada para lidar com sessões e conexões simultâneas mais altas por segundo (cps) para o dispositivo da Série SRX5000.
Os aprimoramentos da arquitetura de pontos centrais impedem que os pacotes de dados passem pelo ponto central, descarregando o gerenciamento de tráfego para SPUs. A capacidade de sessão do sistema é estendida, pois o limite de sessão no ponto central é removido.
- Cálculo do ID de SPU
- Encaminhamento baseado em hash no SRX5K-MPC, SRX5K-MPC3-40G10G (IOC3) e o SRX5K-MPC3-100G10G (IOC3)
Cálculo do ID de SPU
O SPU ID para um dispositivo equipado com SRX3K-SPC-1-10-40, SRX5K-SPC-2-10-40 ou placa de processamento de serviços SRX5K-SPC3 (SPC) é calculado da seguinte forma:
SPU ID = (FPC ID X 4) + PIC ID
O SRX3K-SPC-1-10-40, SRX5K-SPC-2-10-40 e SRX5K-SPC3 contém dois PICs por placa, quatro PICs por placa (FPC) e dois PICs por placa, respectivamente. Por exemplo, um dispositivo contém 2 placas no slot 1 (FPC ID 0) e slot 2 (FPC ID 1), os IDs SPU esperados são os seguintes:
Para SPC1: (0, 1) e (4, 5), total de 4 SPUs em 2 placas.
Para SPC2: (0, 1, 2, 3) e (4, 5, 6, 7), totalizam 8 SPUs em 2 placas.
Para SPC3: (0, 1) e (4, 5), total de 4 SPUs em 2 placas.
Para FPC1 (a segunda placa) e PIC1 (a segunda PIC na placa), o ID de SPU é calculado como:
SPU ID = (FPC ID X 4) + PIC ID = (1 X 4) + 1 = 4 + 1 = 5
Use esta convenção ao mesmo tempo em que refere o SPU ID para CLI e SNMP.
Encaminhamento baseado em hash no SRX5K-MPC, SRX5K-MPC3-40G10G (IOC3) e o SRX5K-MPC3-100G10G (IOC3)
Nesses dispositivos da Série SRX, um pacote passa por uma série de eventos envolvendo diferentes componentes à medida que avança da entrada ao processamento de saída. Com o recurso de encaminhamento de pacotes de datapath, você pode obter uma entrega rápida de tráfego de E/S por meio da linha de dispositivos SRX 5000.
O SRX5K-MPC, SRX5K-MPC3-40G10G (IOC3) e SRX5K-MPC3-100G10G (IOC3) são placas de interface suportadas nos dispositivos SRX5400, SRX5600 e SRX5800. O Concentrador modular de portas (MPC) oferece serviços de balanceamento de carga para unidades de processamento de serviços (SPUs) usando o método de encaminhamento baseado em hash.
No encaminhamento baseado em hash, o pacote pode ser encaminhado pelo MPC para uma SPU (DCP) selecionada, em vez do ponto central. Essa abordagem melhora o escalonamento da sessão e impede a sobrecarga do ponto central.
O cálculo do valor do hash envolve as seguintes etapas:
Para pacotes IPv4, o módulo de encaminhamento baseado em hash gera o valor de hash com base nas informações de Camada 3 e Camada 4, dependendo de diferentes tipos de protocolo de Camada 4.
Para protocolos de transmissão de controle de fluxo (SCTP), TCP, UDP, Authentication Header (AH), provedor de serviços de borda (ESP) e protocolo de mensagem de controle de internet (ICMP), o módulo de hash utiliza informações de Camada 4 para gerar o valor hash. Para quaisquer outros protocolos, apenas informações de Camada 3 são usadas na geração hash.
Para pacotes de fragmentoS IPv4, o valor do hash é calculado usando apenas as informações da Camada 3. Isso também se aplica ao primeiro fragmento do pacote.
Para pacotes não IP, o módulo de encaminhamento baseado em hash usa as informações de Camada 2 para calcular o valor do hash.
Uma vez que um valor de hash é calculado de acordo com as informações de Camada 2, Camada 3 ou Camada 4 do pacote, um ID de SPU é atribuído a cada índice de hash na tabela de hash de distribuição de sessão.
O SRX5K-MPC (IOC2), SRX5K-MPC3-40G10G (IOC3) e SRX5K-MPC3-100G10G (IOC3) só podem ser usados em dispositivos SRX5400, SRX5600 e SRX5800 que estão configurados para distribuição de sessão baseada em hash.
Quando o modo de distribuição de sessão baseado em hash é ativado, o sistema muda seu comportamento para o modo baseado em capacidade de sessão alta quando o SRX5K-MPC, SRX5K-MPC3-40G10G (IOC3) e SRX5K-MPC3-100G10G (IOC3) estão instalados no dispositivo.
Nos dispositivos de linha SRX5000 com UM SRX5K-MPC, SRX5K-MPC3-40G10G (IOC3) ou SRX5K-MPC3-100G10G (IOC3) instalados, durante um sistema ou reinicialização de SPU, quando o modo de distribuição de sessão baseado em hash for ativado, o tráfego só passará quando todas as SPUs estiverem ativadas após a reinicialização.
Os MPCs do IOC3 fornecem serviços de balanceamento de carga para SPUs realizando o encaminhamento de pacotes de datapath baseados em hash para interconectar com todos os IOCs e SPCs existentes.
O IOC3 processa pacotes de entrada e saída. O IOC3 analisa o pacote de ingresso e o envia à SPU para mais processamento de segurança, incluindo a busca de sessão de fluxo, verificação de zonas e políticas, VPN, ALG e assim por diante.
O IOC3 gerencia a memória de dados de pacotes e a fila de malha para funções de pesquisa e encapsulamento de pacotes.
Começando com o Junos OS Release 15.1X49-D10 e o Junos OS Release 17.3R1, a distribuição de sessão baseada em hash é o modo padrão para dispositivos SRX5400, SRX5600 e SRX5800. A seleção de chaves de hash depende dos protocolos de aplicação.
A partir do Junos OS Release 17.4R1, o tráfego é hashed e distribuído para diferentes SPUs pelo IOC, com base em um algoritmo de distribuição de sessão baseado em hash. Esse aprimoramento oferece uma distribuição de hash uniforme entre todas as SPUs usando uma tabela de hash de comprimento fixo maior. Nas versões anteriores do Junos OS, a distribuição de tráfego era desigual entre todas as SPUs devido a uma tabela de hash de comprimento fixo.
O IOC3 configura uma tabela de fluxo de segurança (IPv4 e IPv6), incluindo chave, tabela de resultados e memória de pacotes.
As funções a seguir são fornecidas com a tabela de fluxo:
Lookup de fluxo
Inserção e exclusão de fluxo
Fluxo de segurança em envelhecimento
Estatísticas de fluxo de segurança
Entender a função de pedido de pacotes em dispositivos de linha SRX5000
A função de pedido de pacotes, que é suportada no SRX5400, SRX5600 e SRX5800, dispositivos e vSRX, melhora o desempenho do dispositivo ativando a função integrada de pedido de pacotes do Mecanismo de pedido de pacotes no processador XLP no ponto central do aplicativo.
Dois tipos de modos de pedido de pacotes são suportados: hardware e software.
Se a função de pedido de pacotes for definida como hardware, o segmento de balanceamento de carga (LBT) e o segmento de pedido de pacotes (POT) serão descarregados no mecanismo de pedido de pacotes e os recursos serão liberados para realizar o processamento de pacotes. Se a função de pedido de pacotes for definida como software, o segmento de balanceamento de carga (LBT) e o segmento de pedido de pacotes (POT) estão em execução na SPU. Por padrão, o modo de pedido de pacotes usando o Mecanismo de pedido de pacotes (hardware) é habilitado no dispositivo. Você pode desabilitar com uma mudança de configuração que requer uma reinicialização.
O segmento de fluxo recebe os pacotes, os processa e envia ou os derruba. Para pacotes que não exigem pedidos, o segmento de fluxo notifica a saída do Mecanismo de Aceleração de Rede (NAE) para enviar ou soltar os pacotes. Para pacotes que exigem pedidos, o segmento de fluxo notifica o Mecanismo de Pedido de Pacotes para desemitir os pacotes da lista de pedidos e enviar ou soltar os pacotes em ordem.
Alterar o modo de pedido de pacotes em dispositivos de linha SRX5000
A funcionalidade de pedido de pacotes usando o Packet Ordering Engine é suportada em dispositivos SRX5400, SRX5800 e SRX5600 com SPCs de próxima geração. (O suporte da plataforma depende do lançamento do Junos OS em sua instalação.) Por padrão, o modo de pedido de pacotes usando o Mecanismo de Pedido de Pacotes é ativado. Para desativar a funcionalidade de pedido de pacotes usando o Mecanismo de Pedido de Pacotes, você deve atualizar o modo de pedido de pacotes no dispositivo.
Os seguintes modos de pedido de pacotes são suportados:
software — desativa o modo de pedido de pacotes usando o Mecanismo de Pedido de Pacotes.
hardware — permite o modo de pedido de pacotes usando o Mecanismo de Pedido de Pacotes. Essa é a opção padrão.
Para desativar o modo de pedido de pacotes usando o Mecanismo de pedido de pacotes:
Insira o seguinte comando no prompt de configuração de CLI para especificar o modo de pedido de pacotes.
[edit] user@host# set security forwarding-process application-services packet-ordering-mode software
Use o
show security forwarding-process
comando para revisar sua configuração.[edit] user@host# show security forwarding-process application-services{ packet-ordering-mode software; }
Verifique suas alterações na configuração antes de se comprometer.
[edit] user@host# commit check
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. configuration check succeeds
Confirmar a configuração.
[edit] user@host# commit
warning: System packet ordering mode changed, reboot is required to take effect. If you have deployed a cluster, be sure to reboot all nodes. commit complete
Reinicialize o dispositivo em um momento apropriado.
Use o
show security flow status
comando para verificar o modo de pedido de pacotes.user@host> show security flow status
Flow forwarding mode: Inet forwarding mode: flow based Inet6 forwarding mode: drop MPLS forwarding mode: drop ISO forwarding mode: drop Flow trace status Flow tracing status: off Flow session distribution Distribution mode: RR-based Flow packet orderingOrdering mode: Software (reboot needed to change to Software)
Entender a distribuição de sessão em dispositivos de linha SRX5000 em modo adaptativo
A partir do Junos OS Release 15.1X49-D30 e do Junos OS Release 17.3R1, a distribuição de sessão de modo adaptativo foi substituída por melhorias na arquitetura de pontos centrais.
A distribuição de sessão de modo adaptativo é implementada nos dispositivos da série SRX5000 em execução em modo misto antes do Junos OS Release 15.1X49-D30 e Junos OS Release 17.1R1. A distribuição de sessão de modo adaptativo maximiza o uso de recursos do sistema levando em conta a capacidade de uma Unidade de Processamento de Serviços (SPU) e seus recursos disponíveis. Ele é habilitado apenas em dispositivos da Série SRX5000 em execução no modo misto XLR/XLP, ou seja, em implantações de chassi em que diferentes tipos de SPUs são usados em diferentes combinações. Se um dispositivo SRX5800, SRX5600 ou SRX5400 contém uma mistura de placas de processamento de serviços (SPCs) de próxima geração e SPCs existentes, a distribuição de sessão de modo adaptativo é assumida como padrão. Para dispositivos da Série SRX5000 que não estão em execução no modo misto, o balanceamento de carga baseado em hash é o padrão.
Uma placa de processamento de serviços (SPC) contém uma ou mais SPUs cada uma das quais processa os pacotes de um fluxo de acordo com os recursos de segurança e outros serviços configurados para sessões distribuídas a ele pelo ponto central (CP). A carga de CPU de uma SPU muda de vez em quando. Para utilizar totalmente a capacidade disponível e adaptar a distribuição de sessão de forma adequada, no modo adaptativo o sistema atribui um peso a todas as SPUs dinamicamente. É o peso das SPUs que determinam a distribuição da sessão.
Cada SPU envia suas informações de uso de CPU para o ponto central (CP) periodicamente. O ponto central verifica esses valores, calcula o peso a cada 1 segundo e distribui as sessões de maneira a maximizar o desempenho geral do sistema. Em outras palavras, no modo adaptativo, a distribuição de sessão é baseada em um sistema de atribuição ponderado dinâmico que é calculado em tempo real, permitindo a utilização completa da capacidade das CPUs de todas as SPUs, independentemente de seu tipo.
É o cálculo dinâmico de pesos que distingue a distribuição de sessão de modo adaptativo da distribuição ponderada de sessões de round-robin (WRR). Embora o WRR diferencie as SPUs e sua capacidade de CPU calculando e atribuindo pesos aos diferentes tipos de SPUs, o cálculo e a atribuição são estáticos, ou seja, ele é feito apenas uma vez, na inicialização. O modo adaptativo melhora o processo de distribuição de sessão de razão fixa do WRR. O WRR leva à subutilização dos recursos do sistema porque os limites de processamento de sessão são definidos apenas com base no tipo de SPU e sua capacidade de CPU, sem levar em conta seu poder de processamento disponível.
Para distribuição de sessão de modo adaptativo, a fórmula a seguir é usada para calcular o peso atribuído a uma SPU:
Wi = Soma (W1-n)*Ci*Si/Sum(C1-n*S1-n)
Onde:
Wi
— peso atribuído à SPU.Sum(W1-n)
— Peso total do sistema. Esses valores são constantes.n
— número total de SPUs.Ci
— poder computacional de CPU disponível da SPU.Si
— capacidade de sessão disponível de SPU.
No modo adaptativo, quando o uso da CPU em uma SPU é alto, menos sessões são distribuídas para essa SPU. Os exemplos a seguir explicam o cálculo.
Considere um dispositivo com duas SPUs. A capacidade de sessão de cada SPU é de 1 milhão.
Por um certo tempo:
Quando o SPU1 tem 500.000 sessões, o uso da CPU é de 10 por cento:
Capacidade de CPU disponível de SPU1 (C1) = 1-10 por cento = 90 (por cento).
Capacidade de sessão disponível de SPU1 (S1) = 1-500.000/1M = 50 (por cento).
Quando o SPU2 tem 400.000 sessões, o uso da CPU é de 20 por cento:
Capacidade disponível de SPU2 (C2)= 1-20 por cento= 80 (por cento).
Capacidade de sessão disponível de SPU2 (S2)= 1-400,000/1M= 60 (por cento).
Se o peso de todo o sistema for de 100, os valores de peso separados para cada SPU são:
Peso do SPU1 (W1) = 100*90*50/(50*90+80*60) = 48
Peso do SPU2 (W2) = 100*80*60/(50*90+80*60) = 52
Para as próximas sessões, 48% das sessões são alocadas para SPU1, enquanto 52% dos pacotes são alocados para SPU2.
Os números ponderados podem fazer efeito no sistema em um curto período antes que o ponto central verifique as informações de uso do tempo de execução e ajuste os pesos a um novo valor.