Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Visão geral do SCTP

O Stream Control Transmission Protocol (SCTP) é um protocolo de camada de transporte que garante o transporte confiável e em sequência de dados. O SCTP fornece suporte multihoming onde um ou dois endpoints de uma conexão podem consistir em mais de um endereço IP. Isso permite failover transparente entre caminhos de rede redundantes.

Entender o protocolo de transmissão do controle do fluxo

O Stream Control Transmission Protocol (SCTP) é um protocolo de Camada de Transporte IP. O SCTP existe em um nível equivalente com o User Datagram Protocol (UDP) e o Transmission Control Protocol (TCP), que fornece funções de camada de transporte para muitos aplicativos de Internet. SCTP é um protocolo de transporte confiável que opera em cima de uma rede de pacotes sem conexão, como IP e aceita a transferência de dados pela rede em casos de IP ou multi-IP único.

O SCTP pode transportar mensagens de sinalização para e para o Sistema de Sinalização 7 (SS7) para redes móveis 3G por meio de M3UA, M2UA ou SUA. SCTP é um protocolo de transporte baseado em pacotes. O SCTP fornece transporte confiável e seguro, atraso minimizado de ponta a ponta, curto tempo de failover no caso de falhas na rede e transporte sem sequência e sequência.

O SCTP é otimizado para:

  • Evite os problemas de infraestrutura multithread, quando o tráfego estiver alto

  • Melhore a taxa de pesquisa de associação SCTP (a velocidade do processo de pesquisa de associação aumentou) com a otimização da tabela hash SCTP na SPU

  • Aprimora o FSM para casos de retransmissão

A partir do Junos OS Release 12.3X48-D10 e do Junos OS Release 17.3R1, o módulo SCTP inspeciona o tráfego IPv4 e IPv6 e verifica todos os segmentos do pacote SCTP. (Nas versões anteriores, o módulo inspecionava apenas o tráfego IPv4 e verificava apenas o primeiro segmento do pacote SCTP.) Em seguida, o pacote é permitido ou descartado com base na política. Para o tráfego IPv6, o módulo SCTP inspeciona cada header de extensão até encontrar o header SCTP e, em seguida, apenas o header SCTP é processado e todos os outros headers são ignorados.

O SCTP é usado para aplicativos nos quais é necessário monitorar e detectar a perda de sessão. O mecanismo de detecção de falha do caminho ou da sessão SCTP, por exemplo, o ritmo cardíaco monitora a conectividade da sessão.

A Figura 1 ilustra o aperto de mão de 4 vias SCTP e o aperto de mão de três vias TCP.

Figura 1: Aperto de mão de 4 vias SCTP e Aperto de mão de três vias SCTP 4-way Handshake and TCP 3-way Handshake TCP

Serviços SCTP

O SCTP fornece os seguintes serviços:

  • Protocolo de acesso ao servidor agregado (ASAP)

  • Controle de chamada independente do portador (BICC)

  • Segmento do segmento de posicionamento direto de dados (segmento DDP)

  • Controle de sessão Direct Data Placement Stream (DDP-stream)

  • Diâmetro em uma parte de DADOS DTLS/SCTP (Diameter-DTLS)

  • Diâmetro em um bloco de DADOS SCTP (Diameter-SCTP)

  • Extensões DPNSS/DASS 2 para Protocolo de IUA (DUA)

  • Protocolo de redundância Do Endpoint Handlescape (ENRP)

  • Protocolo H.248 (H248)

  • Protocolo H.323 (H323)

  • Camada de Adaptação do Usuário de ISDN (IUA)

  • Camada de Adaptação ponto a ponto (M2PA) do usuário MTP2

  • Camada de Adaptação do Usuário MTP2 (M2UA)

  • Camada de Adaptação do Usuário MTP3 (M3UA)

  • Outros protocolos de carga SCTP não especificados (Outros)

  • Q.IPC

  • Reservados

  • Protocolo de aplicativo S1 (S1AP)

  • Configuração de middlebox simples (SIMCO)

  • Camada de Adaptação do Usuário SCCP (SUA)

  • Interface da Camada do Adaptador de Transporte (TALI)

  • Camada de Adaptação do Usuário V5.2 (V5UA)

  • Protocolo de aplicativo X2 (X2AP)

Limitações e restrições de SCTP

O SCTP tem as seguintes limitações e restrições:

  • Endereços IP

    • É permitido um máximo de oito endereços IP de origem e oito endereços IP de destino em uma comunicação SCTP.

    • Somente ip NAT ip estático é suportado; os pacotes de interface (de um lado: cliente ou servidor) devem pertencer à mesma zona.

  • Políticas

    • A política dinâmica não é suportada. Você deve configurar todas as políticas para sessões de SCTP.

    • Quando as políticas são eliminadas, as sessões relacionadas e as associações são liberadas.

    • Você configura uma política para permitir o tráfego SCTP de todos os IPs do cliente para todos os IPs do servidor e outra para permitir o tráfego de SCTP dos IPs do servidor para os IPs do cliente. Se uma política tiver um perfil SCTP, o mesmo perfil de SCTP será necessário para a política reversa.

    • Se você configurar políticas diferentes para cada sessão que pertence a uma associação, haverá várias políticas relacionadas a uma associação, e o gerenciamento de pacotes SCTP (drop, limite de taxa e assim por diante) usa o perfil conectado à política da sessão SCTP de tratamento.

    • Os aplicativos usados nas políticas de segurança para permitir o tráfego SCTP ALG não podem ser configurados usando a application-protocol ignore opção. Essa condição é aplicável mesmo se a inspeção SCTP ALG não estiver configurada.

  • A capacitação/desativação de SCTP é controlada se existe um perfil SCTP configurado.

    • Se nenhum perfil estiver preso a uma política, os pacotes SCTP serão encaminhados sem inspeção.

    • Se um perfil com a opção estiver conectado a uma política, somente NAT a tradução é feita nos pacotes nat-only SCTP que correspondênciam a política. Se um perfil não tiver o conjunto de opções, NAT a tradução e a inspeção SCTP serão feitas em cada pacote SCTP que correspondência nat-only com a política.

    • Se você desativar o SCTP, todas as associações serão eliminadas e os pacotes SCTP posteriores serão passados ou eliminados de acordo com a política.

    • Se você habilitar SCTP, todas as sessões de SCTP existentes devem ser liberadas ou o tráfego correspondente a sessões antigas será encaminhado sem qualquer inspeção do módulo SCTP.

      Se você quiser habilitar o SCTP novamente, todas as comunicações de SCTP em execução serão retiradas, porque nenhuma associação existe. Novas comunicações SCTP podem estabelecer uma associação e realizar as inspeções.

      Observação:

      Limpar sessões de SCTP antigas quando o SCTP for reenvelhável; isso evitará qualquer impacto causado pelas sessões de SCTP antigas nas novas comunicações SCTP.

    • Se você adicionar um perfil SCTP a uma política existente, você deve fazer uma das seguintes: limpar sessões relacionadas ou remover a política antiga e criar uma nova política.

    • Se você alterar o valor do tempo de espera no perfil SCTP, o aperto de mão configurado e o valor de tempo de espera nas associações existentes não mudarão.

  • Limitação da taxa de SCTP

    • Qualquer alteração na configuração de limitação de taxa não afetará o tráfego posterior das associações existentes. Ele se aplicará às recém-estabelecidas associações.

    • O valor decimais do protocolo suportado é de 0 a 63. Esse valor inclui 48 IANA protocolos atribuídos e 16 protocolos não atribuídos.

    • No máximo 80 endereços são limitados por uma taxa em um único perfil.

    • No máximo 10 protocolos são limitados por uma taxa em um único perfil.

    • O valor da taxa de suporte é de 1 a 12.000.

  • Bloqueio do protocolo SCTP Payload

    • Qualquer mudança na configuração de bloqueio de protocolo afeta imediatamente o tráfego posterior das associações existentes.

    • O valor decimais do protocolo suportado é de 0 a 63. Esse valor inclui 48 IANA protocolos atribuídos e 16 protocolos não atribuídos.

  • Um endpoint SCTP pode ser um host multihomed com todos os endereços IPv4 ou todos os endereços IPv6. Um endpoint SCTP também aceita NAT-PT em duas direções, de um formato de endereço IPv4 até um formato de endereço IPv6 e vice-versa. O módulo SCTP não tem suporte para multihomings mistos IPv4 ou IPv6 e IPv4 ou IPv6 mistos NAT-PT.

  • Para que NAT estática funcione, os pacotes de interface (de um lado: o cliente ou o servidor) que estão chegando devem pertencer à mesma zona.

  • Para casos multihome, é suportado apenas o parâmetro de endereço IPv4 ou o parâmetro de endereço IPv6 no INIT ou no INI-ACK.

  • Somente a NAT estática é suportada para SCTP.

  • Somente associações de SCTP estabelecidas são sincronizadas a sessões de peer.

  • As sessões de SCTP não são excluídos com associações; eles fazem o tempo de saída em 30 minutos, que é o valor padrão. O valor do timeout é configurável e pode ser alterado.

  • Se o processo de aperto de mão de 4 vias não for gerenciado em um nó, e for gerenciado em dois nós (por exemplo, duas sessões em dois nós no modo ativo/ativo) ou se o cluster estiver em failover antes do aperto de mão de 4 vias ser concluído, a associação não será estabelecida com sucesso.

  • Uma SPU aceita no máximo 20.000 associações e no máximo 1.280.000 sessões SCTP.

    Em alguns casos, as associações podem não ser distribuídas para SPUs de maneira muito uniforme, porque o resultado hash das portas no ponto central é desigual. Por exemplo, esse evento pode ocorrer quando apenas dois peers de portas são usados, e um peer tem 100 associações, mas outro peer tem apenas uma associação. Nesse caso, as associações não podem ser distribuídas uniformemente no firewall com mais de um SPU.

  • O upgrade unificado de software no serviço (ISSU) para versões anteriores do Junos OS não é suportado.

  • O analisador de mensagens M3UA/SCCP é verificado, mas a inspeção stateful M3UA/SCCP não é marcada.

  • Somente o padrão ITU-T Rec. Q.711-Q.714 (07/96) é suportado. ANSI, ETSI, China e outros padrões não são suportados.

  • Somente o RFC 4960 é suportado.

  • A afinidade da sessão de VPN não dá suporte ao protocolo de túnel de GPRS (GTP) e ao Protocolo de Transmissão de Controle de Fluxo (SCTP).

Visão geral dos recursos do SCTP

Veja a seguir os recursos importantes do SCTP:

  • Suporte multihoming onde um ou dois endpoints de uma conexão podem consistir em mais de um endereço IP. Isso permite failover transparente entre caminhos de rede redundantes.

  • A entrega de dados em partes de um fluxo independente elimina o bloqueio de cabeça de linha desnecessária.

  • Funcionalidade de seleção e monitoramento de caminhos para selecionar um caminho de transmissão de dados principal e testar a conectividade do caminho de transmissão.

  • Mecanismos de validação e reconhecimento protegem contra ataques de inundação e fornecem notificação de partes de dados duplicadas ou faltando.

  • Detecção de erro aprimorada adequada para quadros jumbo Ethernet.

Entender o suporte à arquitetura de pontos centrais para SCTP

Uma associação sctp (Stream Control Transmission Protocol, Protocolo de transmissão de controle de fluxo) é uma conexão entre dois endpoints SCTP. Cada endpoint SCTP identifica a associação com uma etiqueta. Durante uma configuração de associação SCTP, dois endpoints SCTP trocam suas próprias tags por pacotes de recebimento. Durante a troca de pacotes entre dois endpoints SCTP, o endereço de origem e o endereço de destino podem mudar no ciclo de vida da associação.

Antes da versão do Junos OS 15.1X49-D40, todas as sessões de uma determinada associação SCTP são sujeitas à mesma unidade de processamento de serviços (SPU) pelo par de portas SCTP fixo por associação. Entretanto, em alguns casos, várias associações de SCTP compartilham o mesmo par de portas, o que resulta em uma situação de balanceamento de carga ruim, com todo o tráfego sendo manuseado por um único SPU. A partir do Junos OS Release 15.1X49-D40 e do Junos OS Release 17.3R1, para tratar o problema do balanceamento de carga, a distribuição de hash baseada em tags é usada para garantir até mesmo a distribuição do tráfego SCTP de diferentes associações entre todas as SPUs. Uma etiqueta de conexão de 32 bits é introduzida que identifica as sessões de SCTP com exclusividade. A etiqueta de conexão para SCTP é a vTag e a ID de conexão permanece 0 se a etiqueta de conexão não for usada pelas sessões.

A sessão de fluxo SCTP usa uma etiqueta de conexão para distribuir mais finamente tráfego SCTP em SPUs em SRX1500, SRX4100, SRX4200, SRX5400, SRX5600 e SRX5800 dispositivos que suportam o SCTP ALG. A etiqueta de conexão é decodificada do vtag SCTP. Uma sessão SCTP separada será criada para cada um dos três primeiros pacotes, ou seja, uma sessão para INIT, INIT-ACK e COOKIE-ECHO, respectivamente. Como o tráfego de direção reversa tem sua própria sessão, a sessão não pode mais combinar a sessão em direção à frente e passar automaticamente. Portanto, semelhante à política de encaminhamento direcional, é necessário uma política explícita para a aprovação do tráfego SCTP de direção reversa. Nesse cenário, a sessão de fluxo SCTP requer que uma configuração de política bidirecional seja estabelecida até mesmo para uma conexão básica.

Visão geral da estrutura de pacotes SCTP

Um pacote SCTP consiste nas seguintes seções:

A Figura 2 ilustra a estrutura do pacote SCTP.

Figura 2: Estrutura de pacotes SCTP SCTP Packet Structure

Seção comum de cabeamento

Todos os pacotes SCTP exigem uma seção comum de cabeamento. Esta seção ocupa os primeiros 12 bytes do pacote. A Tabela 1 descreve os campos na seção comum do header:

Tabela 1: Campos comuns de cabeador

Campo

Descrição

Número de porta de origem

Identifica a porta de envio.

Número da porta de destino

Identifica a porta de recebimento. Os hosts usam o número da porta de destino para roteá-lo até o destino ou aplicativo apropriado.

Etiqueta de verificação

Diferencia os pacotes estagnados de uma conexão anterior. Esse é um valor aleatório de 32 bits criado durante a inicialização.

Soma

Usa o algoritmo CRC32 (CRC32) de verificação de redundância cíclica para detectar erros que podem ter sido introduzidos durante a transmissão de dados.

Seção de partes de dados

Seção de partes de dados — esta seção ocupa a porção restante do pacote. A Tabela 2 descreve os campos na seção de partes de dados:

Tabela 2: Campos de bloco de dados

Campo

Descrição

Tipo de fatia

Identifica o conteúdo do campo de valor da fatia. O comprimento é de 1 byte.

Chunk Flags

Consiste em 8 bits de sinalização cuja definição varia de acordo com o tipo de bloco. O valor padrão é zero. Isso indica que nenhum identificador de aplicativo é especificado pela camada superior para os dados.

Comprimento da parte

Especifica o comprimento total da fatia em bytes. Este campo tem comprimento de 2 bytes. Se a parte não formar um múltiplo de 4 bytes (ou seja, o comprimento não é um múltiplo de 4), ele será implicitamente acolchoado com zeros que não estão incluídos no comprimento da fatia.

Valor da fatia

Um campo de dados de finalidade geral.

O gerenciador de recursos (RM) permite 8 endereços IP de origem e 8 endereços IP de destino durante uma comunicação SCTP.

Entender o SCTP Multihoming

Um endpoint do Stream Control Transmission Protocol (SCTP) pode ser um host multihomed com todos os endereços IPv4 ou todos os endereços IPv6. Na Figura 3,o endpoint A está conectado a um dispositivo da Série SRX com dois endereços IPv4, e o endpoint B está conectado a um dispositivo da Série SRX com dois endereços IPv4. Portanto, o endpoint A e o endpoint B podem configurar uma associação usando quatro pares diferentes de endereços IP, resultando em quatro caminhos válidos para a comunicação.

Figura 3: SCTP Multihoming com dois endpoints SCTP Multihoming with Two IPv4 Endpoints IPv4

Na Figura 4,o endpoint A está conectado a um dispositivo da Série SRX com dois endereços IPv6, e o endpoint B está conectado a um dispositivo da Série SRX com dois endereços IPv6. Portanto, o endpoint A e o endpoint B podem configurar uma associação usando quatro pares diferentes de endereços IP, resultando em quatro caminhos válidos para a comunicação.

Figura 4: SCTP Multihoming com dois endpoints SCTP Multihoming with Two IPv6 Endpoints IPv6

Compreender a inspeção multichunk SCTP

O firewall SCTP (Stream Control Transmission Protocol, Protocolo de transmissão de controle de fluxo) verifica todas as partes de uma mensagem e permite ou deixa o pacote cair com base na política. Use o set security gprs sctp multichunk-inspection enable comando para habilitar a inspeção multichunk SCTP para verificar todas as partes de uma mensagem. Use o delete security gprs sctp multichunk-inspection enable ou comando para desativar a inspeção set security gprs sctp multichunk-inspection disable multichunk SCTP para verificar apenas a primeira parte.

Depois de habiltar a inspeção multichunk SCTP, o firewall SCTP verifica todas as partes de uma mensagem e permite ou derruba o pacote. O firewall SCTP deixa o pacote cair nos seguintes casos:

  • O layout das partes de SCTP não segue o RFC 4960.

  • Uma parte de controle não pode passar pela inspeção da máquina de estado finito (FSM) de SCTP ou verificações de sanidade.

  • Uma parte de dados não pode passar pelo perfil sctp por causa das verificações de FSM de SCTP ou de sanidade.

  • Uma parte de dados não pode passar pelo perfil sctp por causa do bloqueio de protocolo ou limitação de taxa. O firewall SCTP redefine essa parte para uma PDU (Null Protocol Data Unit, Unidade de dados de protocolo nulo) e continua a verificar a próxima parte. Uma parte de dados é definida como uma PDU nula com base nas seguintes regras:

    • Quando você configura o valor de PDU nula para usar o comando, o valor do identificador do protocolo de carga é substituído e o campo de dados do usuário 0xFFFF set security gprs sctp nullpdu protocol ID-0xFFFF não é 0xFFFF modificado.

    • Quando você configura o valor de PDU nula para usar o comando, o valor do identificador do protocolo de carga é substituído e os quatro primeiros bytes do campo de dados do usuário são substituídos por 0x0000 set security gprs sctp nullpdu protocol ID-0x0000 0x0000 zeros.

    Se todas as partes de um pacote são PDUs nulas, o firewall SCTP anula o pacote.

Entender o comportamento de SCTP no cluster de chassi

Em um modo de configuração de cluster de chassi, a configuração de SCTP e a associação SCTP estabelecida são sincronizadas com o dispositivo de peer. O módulo SCTP tem suporte para modos ativo-ativo e passivo-ativo.

A associação SCTP estabelecida envia uma mensagem de criação ou exclusão para o peer sempre que uma associação é criada ou excluído no dispositivo ativo. O dispositivo secundário adiciona ou exclui uma associação, respectivamente, ao receber a mensagem da associação SCTP estabelecida. Em seguida, o módulo SCTP registrará a função de retorno de chamada correspondente para receber e tratar essa mensagem. Não existe sincronização contínua de tempo entre as duas associações.

O módulo SCTP registrará uma função de sincronização de início a frio quando um dispositivo secundário se juntar ao cluster ou reinicializar. A função SCTP de início a frio é chamada para sincronizar todas as associações de SCTP com os dispositivos de peer ao mesmo tempo.

Após a comover, as associações de SCTP estabelecidas continuarão funcionando, mas as associações no progresso do estabelecimento serão perdidas e o procedimento de estabelecimento precisa ser re-iniciado. Também é possível que as associações em progresso de rebaixamento percam a mensagem de ack e deixe associações de SCTP não-estabíbridas no firewall. Essas associações serão limpas quando o tempo expirar (5 horas por padrão) devido a nenhuma atividade na associação.

  • Você deve configurar todas as políticas para as sessões de SCTP necessárias. Por exemplo, imagine que você tenha endpoints A e B. Endpoint A tem uma associação SCTP com x número de IPs (IP_a1, IP_a2, IP_a3... IP_ax). O Endpoint B tem uma associação sctp com número y de IPs (IP_b1, IP_b2, IP_b3... IP_by.) A política do dispositivo de segurança deve permitir todos os caminhos x*y possíveis em ambas as direções.

  • Quando uma associação SCTP é removida, as sessões de SCTP relacionadas ainda existem e um tempo livre por si mesmas.

Tabela de histórico de versão
Lançamento
Descrição
15.1X49-D40
A partir do Junos OS Release 15.1X49-D40 e do Junos OS Release 17.3R1, para tratar o problema do balanceamento de carga, a distribuição de hash baseada em tags é usada para garantir até mesmo a distribuição do tráfego SCTP de diferentes associações entre todas as SPUs.
12.3X48-D10
A partir do Junos OS Release 12.3X48-D10 Junos OS Release 17.3R1, o módulo SCTP inspeciona o tráfego IPv4 e IPv6 e verifica todos os segmentos do pacote SCTP.