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

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

Entendendo o protocolo de transmissão de controle de fluxo

Stream Control Transmission Protocol (SCTP) é um protocolo robusto de camada de transporte dentro do pacote de protocolo de Internet, operando ao lado de UDP e TCP. Ele foi projetado para oferecer transporte confiável e orientado à conexão para vários aplicativos de Internet. Os principais recursos do SCTP incluem:

  1. Protocolo multi-stream: O SCTP oferece suporte a vários fluxos de mensagens para cada endpoint, atendendo a aplicativos que exigem prioridades de mensagem diferentes e pedidos rigorosos dentro dos fluxos.

  2. Fragmentação de dados do usuário: Para lidar com mensagens que excedem a unidade de transmissão máxima (MTU) do caminho, o SCTP fragmenta os dados em pedaços, marcando o último pedaço com uma bandeira específica. O lado receptor remonta esses pedaços antes de passar a mensagem completa para o protocolo da camada superior.

  3. Chunk Bundling:

    O SCTP permite agrupar pedaços de várias mensagens em um único pacote SCTP, facilitando a transferência eficiente de dados. O receptor desmonta esses pedaços antes de entregá-los ao protocolo da camada superior.
  4. Validação de pacotes:

    O SCTP inclui uma tag de verificação em seu cabeçalho para identificar com exclusividade as sessões de associação. Essa tag ajuda a proteger contra ataques mascarados e evita o processamento de pacotes SCTP obsoletos de associações anteriores.
  5. Suporte multihoming:

    O SCTP permite que os endpoints especifiquem uma lista de endereços de transporte locais durante a configuração da associação, promovendo alta disponibilidade para transferência de dados estabelecendo rotas para cada endereço de destino.

Além disso, o SCTP oferece failover transparente entre caminhos de rede redundantes, tornando-o uma escolha ideal para aplicativos que exigem transporte de dados confiável e em sequência. Ele opera em cima de redes de pacotes sem conexão, como IP, e oferece suporte a cenários únicos ou multi-IP.

Além disso, o SCTP encontra aplicativo no transporte de mensagens de sinalização para redes móveis 3G por meio de protocolos como M3UA, M2UA ou SUA. Ele é otimizado para evitar problemas de infraestrutura multinuvem durante o alto tráfego, melhorar a taxa de pesquisa da associação e melhorar a Máquina de Estado Finita (FSM) para casos de retransmissão.

O SCTP é particularmente adequado para aplicativos que exigem monitoramento e detecção de perda de sessão. Seu mecanismo de segurança monitora a conectividade de sessão, garantindo um transporte confiável e seguro com um mínimo de atraso de ponta a ponta e tempo de falha rápido em caso de falhas na rede.

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

Serviços SCTP

O SCTP fornece os seguintes serviços:

  • Protocolo de acesso de servidor agregado (o mais rápido possível)

  • Controle de chamadas independente de portador (BICC)

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

  • Controle de sessão de fluxo de posicionamento direto de dados (DDP-stream)

  • Largura em um pedaço de dados DTLS/SCTP (Diameter-DTLS)

  • Largura em um pedaço de dados SCTP (Diameter-SCTP)

  • Extensões DPNSS/DASS 2 ao Protocolo 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 ISDN (IUA)

  • Camada de adaptação peer-to-peer (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 de SCTP configurados não especificados (Outros)

  • Q.IPC

  • Reservados

  • Protocolo de aplicação S1 (S1AP)

  • Configuração de middlebox simples (SIMCO)

  • Camada de adaptação do usuário do SCCP (SUA)

  • Interface de camada de 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

    • Apenas o NAT IP estático é suportado; os pacotes de interface (de um lado: cliente ou servidor) que chegam 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 excluídas, as sessões e associações relacionadas são liberadas.

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

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

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

  • A habilitação/desativação do SCTP é controlada por haver um perfil de SCTP configurado.

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

    • Se um perfil com a opção nat-only estiver vinculado a uma política, somente a tradução de NAT será feita nos pacotes SCTP que correspondem à política. Se um perfil não tiver o conjunto de opção, tanto a nat-only tradução de NAT quanto a inspeção de SCTP serão feitas em cada pacote SCTP que corresponda à política.

    • Se você desativar o SCTP, todas as associações serão excluídas e os pacotes SCTP subsequentes forem aprovados ou descartados de acordo com a política.

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

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

      Nota:

      Limpe sessões antigas de SCTP quando o SCTP for reenabled; isso evitará qualquer impacto causado pelas sessões antigas de SCTP 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 de tempo limite no perfil SCTP, o valor configurado e o valor de tempo limite nas associações existentes não serão alterados.

  • Limitação da taxa de SCTP

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

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

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

    • No máximo 10 protocolos são limitados para um endereço em um único perfil.

    • O valor limite de taxa suportado é de 1 a 12000.

  • Bloqueio de protocolo de carga sCTP

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

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

  • Um endpoint SCTP também oferece suporte ao NAT-PT em duas direções, de um formato de endereço IPv4 a um formato de endereço IPv6, e vice-versa. O módulo SCTP não oferece suporte a multihoming misto IPv4 ou IPv6 e IPv4 ou IPv6 mistos NAT-PT.

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

  • Para casos multihome, é suportado apenas o parâmetro de endereço IPv4 em INIT ou INIT_ACK.

  • Apenas o NAT estático é suportado para SCTP.

  • Apenas as associações de SCTP estabelecidas são sincronizadas para sessões de peer.

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

  • Se o processo de 4 vias não for tratado em um nó, e for tratado 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 que o aperto de 4 vias seja concluído, a associação não será estabelecida com sucesso.

  • A atualização unificada de software em serviço (ISSU) para versões anteriores do Junos OS não é suportada.

  • A análise de mensagens M3UA/SCCP é verificada, mas a inspeção stateful M3UA/SCCP não é verificada.

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

  • Apenas o RFC 4960 é compatível.

  • A afinidade de sessão de VPN não oferece suporte ao protocolo de tunelamento GPRS (GTP) e ao Protocolo de transmissão de controle de fluxo (SCTP).

Visão geral dos recursos do SCTP

Os recursos importantes do SCTP são os seguintes:

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

  • A entrega de dados em pedaços em um fluxo independente elimina o bloqueio desnecessário da cabeça de linha.

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

  • Os mecanismos de validação e reconhecimento protegem contra ataques de inundação e fornecem notificação de pedaços de dados duplicados ou ausentes.

  • Melhor detecção de erros adequada para quadros jumbo Ethernet.

Entendendo o suporte da arquitetura de pontos centrais para SCTP

Uma associação de protocolo de transmissão de controle de fluxo (SCTP) é uma conexão entre dois endpoints SCTP. Cada endpoint SCTP identifica a associação com uma tag. Durante uma configuração de associação de SCTP, dois endpoints SCTP trocam suas próprias tags por receber pacotes. Durante a troca de pacotes entre dois endpoints SCTP, tanto o endereço de origem quanto o endereço de destino podem mudar no ciclo de vida da associação.

A sessão de fluxo de SCTP utiliza uma tag de conexão para distribuir mais finamente o tráfego SCTP em SPUs em SRX1500, SRX4100, SRX4200, SRX5400, SRX5600 e dispositivos de SRX5800 que oferecem suporte ao SCTP ALG. A tag de conexão é decodificada do SCTP vtag. Uma sessão de 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 inversa tem sua própria sessão, a sessão não pode mais combinar com a sessão de direção futura existente e passar automaticamente. Portanto, semelhante à política de direção futura, é necessária 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 de SCTP requer que uma configuração de política bidirecional seja estabelecida até mesmo para uma conexão básica.

Suporte para SCTP para roteamento e encaminhamento virtual (VRF)

O recurso VRF (roteamento e encaminhamento virtual) permite o gerenciamento de endereços IP remotos. O cliente do SCTP, antes de iniciar a nova associação de SCTP, deve definir a opção de tomada para índice de tabela de roteamento/índice VRF, se a interface de saída para servidor SCTP configurada dentro do VRF, outra associação sábia não será estabelecida, pois o cliente SCTP usará uma instância de roteamento padrão/global para estabelecimento de associação. No lado do servidor SCTP, se a opção de tomada de índice VRF não for definida em tomada de escuta, a solicitação de associação recebida em todos os VRFs será entretida, mas se a opção de tomada de índice VRF for definida na tomada de escuta, a solicitação de estabelecimento da associação que vem sobre esse VRF específico só será entretida.

O aplicativo pode definir a opção de tomada com bandeira personalizada para fornecer índice de tabela de rota ao SCTP para lidar com a associação de SCTP baseada em VRF, colocar associação nessa associação em particular ou permitir que o kernel SCTP escolha VRF para associação durante o estabelecimento em processo de inscrição de 4 vias, com base no VRF em que a interface de entrada está configurada.

Quando uma associação de SCTP é estabelecida em uma instância VRF, o kernel deve levar em conta um parâmetro adicional, o ID VRF exclusivo, ao procurar associações exclusivas usando o 4-tuple existente usado em SCTP (IP de origem, porta de origem, IP de destino, porta de destino).

  • Pacotes SCTP de entrada em VRF:

    Quando um pacote SCTP chega em uma interface de entrada, uma pesquisa é realizada usando o IP de 5 tuple (IP de origem, porta de origem, IP de destino, porta de destino e 'ID VRF no qual o pacote foi recebido') para determinar se há uma associação SCTP existente presente no kernel.

  • Pacotes SCTP de saída por VRF:

    Para cada pacote SCTP que é enviado do kernel, o ID VRF correspondente é obtido dos dados da associação usando o IP de 5 tuple (IP de origem, porta de origem, IP de destino, porta de destino e 'ID VRF no qual o pacote deve ser enviado').

Soquete SCTP de um a muitos estilos

O SCTP oferece suporte a dois estilos de tomada: 1 a 1 (comparável ao TCP) e 1 a Muitos (permitindo várias associações ativas em uma única tomada). Este último facilita a comunicação com vários endpoints de peer simultaneamente, usando identificadores de associação (assoc-id) para distinguir entre eles.

As APIs do sistema abaixo são usadas pelo aplicativo, aproveitando o soquete estilo SCTP 1:1 ou 1:N:

Sistema exige tomada de estilo de 1 a 1

  • Função do servidor: socket(), bind(), ouça(), aceite(), escreva()/leia(), feche()

  • Função do cliente: tomada(), conecte(), escreva()/leia(), feche()

Sistema exige de 1 a várias tomadas de estilo

  • Função do servidor: socket(), bind(), listen(), recvmsg(), sendmsg(), close()

  • Função do cliente: socket(), sendmsg(), recvmsg(), close()

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 SCTP Packet Structure de pacotes SCTP

Seção de cabeçalho comum

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

Tabela 1: Campos comuns de cabeçalho

Campo

Descrição

Número da porta de origem

Identifica a porta de envio.

Número da porta de destino

Identifica a porta receptora. Os hosts usam o número da porta de destino para encaminhar o pacote para o destino apropriado ou um aplicativo.

Tag de verificação

Distingue pacotes obsoletos de uma conexão anterior. Este é um valor aleatório de 32 bits criado durante a inicialização.

Soma

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

Seção de pedaços de dados

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

Tabela 2: Campos de pedaços de dados

Campo

Descrição

Tipo de pedaço

Identifica o conteúdo do campo de valor de fatia. Isso é 1-byte longo.

Bandeiras de pedaços

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

Comprimento do pedaço

Especifica o comprimento total do pedaço em bytes. Este campo é 2 - bytes longos. Se o pedaço não formar um múltiplo de 4 bytes (ou seja, o comprimento não é um múltiplo de 4) ele é implícito acolchoado com zeros que não estão incluídos no comprimento do pedaço.

Valor do pedaço

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.

Entendendo o multihoming SCTP

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 é conectado a um firewall da Série SRX com dois endereços IPv4, e o endpoint B é conectado a um firewall 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: Multihoming SCTP com dois endpoints SCTP Multihoming with Two IPv4 Endpoints IPv4

Na Figura 4, o endpoint A é conectado a um firewall da Série SRX com dois endereços IPv6, e o endpoint B é conectado a um firewall 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: Multihoming SCTP com dois endpoints SCTP Multihoming with Two IPv6 Endpoints IPv6

Entendendo a inspeção multichunk do SCTP

O firewall Stream Control Transmission Protocol (SCTP) verifica todos os pedaços em uma mensagem e depois permite ou derruba o pacote com base na política. Use o set security gprs sctp multichunk-inspection enable comando para permitir a inspeção multichunk SCTP para verificar todos os pedaços em uma mensagem. Use o delete security gprs sctp multichunk-inspection enable comando ou set security gprs sctp multichunk-inspection disable desativar a inspeção multichunk SCTP para verificar apenas o primeiro pedaço.

Depois de habilitar a inspeção multichunk do SCTP, o firewall SCTP verifica todos os pedaços em uma mensagem e permite ou derruba o pacote. O firewall SCTP derruba o pacote nos seguintes casos:

  • O layout dos pedaços de SCTP não segue o RFC 4960.

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

  • Um pedaço de dados não pode passar pelo perfil do SCTP por causa do SCTP FSM ou verificações de sanidade.

  • Um pedaço de dados não pode passar pelo perfil SCTP por causa do bloqueio de protocolo ou limitação de taxa. O firewall SCTP redefiniu esse pedaço para uma unidade de dados de protocolo nula (PDU) e continua a verificar o próximo pedaço. Um pedaço de dados é definido como uma PDU nula com base nas seguintes regras:

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

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

    Se todos os pedaços em um pacote forem PDUs nulos, o firewall SCTP derruba o pacote.

Entendendo o comportamento do SCTP em cluster de chassi

Em um modo de configuração de cluster de chassi , a configuração do SCTP e a associação SCTP estabelecida são sincronizadas com o dispositivo peer. O módulo SCTP oferece suporte a modos ativos ativos e passivos ativos.

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ída 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 registra a função de retorno de chamada correspondente para receber e lidar com esta mensagem. Não há sincronização contínua de temporizada entre as duas associações.

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

Após a mudança, as associações SCTP estabelecidas permanecerão funcionando, mas as associações em andamento de estabelecimento serão perdidas e o procedimento de estabelecimento precisa ser reiniciado. Também é possível que as associações em andamento de teardown percam a mensagem ack e deixe associações de SCTP inéditas no firewall. Essas associações serão limpas quando o temporizador expirar (5 horas por padrão) devido a nenhuma atividade na associação.

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

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