Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción general de SCTP

El Protocolo de transmisión por control de flujo (SCTP) es un protocolo de capa de transporte que garantiza un transporte de datos confiable y en secuencia. SCTP proporciona compatibilidad con multiconexión cuando uno o ambos extremos de una conexión pueden constar de más de una dirección IP. Esto permite una conmutación por error transparente entre rutas de red redundantes.

Descripción del protocolo de transmisión de control de flujo

El Protocolo de transmisión de control de flujo (SCTP) es un protocolo de capa de transporte robusto dentro del conjunto de protocolos de Internet, que opera junto con UDP y TCP. Está diseñado para ofrecer un transporte confiable y orientado a la conexión para diversas aplicaciones de Internet. Las características clave de SCTP incluyen:

  1. Protocolo multiflujo: SCTP admite múltiples flujos de mensajes para cada punto de conexión, atendiendo a aplicaciones que requieren diferentes prioridades de mensajes y un orden estricto dentro de las secuencias.

  2. Fragmentación de datos de usuario: Para controlar los mensajes que superan la unidad de transmisión máxima (MTU) de la ruta de acceso, SCTP fragmenta los datos en trozos y marca el último fragmento con un indicador específico. El lado receptor vuelve a ensamblar estos fragmentos antes de pasar el mensaje completo al protocolo de capa superior.

  3. Agrupación de fragmentos:

    SCTP permite agrupar fragmentos de varios mensajes en un solo paquete SCTP, lo que facilita una transferencia de datos eficiente. El receptor desmonta estos fragmentos antes de entregarlos al protocolo de capa superior.
  4. Validación de paquetes:

    SCTP incluye una etiqueta de verificación en su encabezado para identificar de forma exclusiva las sesiones de asociación. Esta etiqueta ayuda a proteger contra ataques de mascarada y evita el procesamiento de paquetes SCTP obsoletos de asociaciones anteriores.
  5. Soporte de multiconexión:

    SCTP permite que los puntos finales especifiquen una lista de direcciones de transporte local durante la configuración de la asociación, promoviendo una alta disponibilidad para la transferencia de datos al establecer rutas para cada dirección de destino.

Además, SCTP ofrece conmutación por error transparente entre rutas de red redundantes, lo que lo convierte en una opción ideal para aplicaciones que requieren un transporte de datos confiable y en secuencia. Funciona sobre redes de paquetes sin conexión como IP y admite escenarios de una o varias IP.

Además, SCTP encuentra aplicación en el transporte de mensajes de señalización para redes móviles 3G a través de protocolos como M3UA, M2UA o SUA. Está optimizado para evitar problemas de infraestructura multihilo durante el tráfico alto, mejorar la tasa de búsqueda de asociación y mejorar la máquina de estado finito (FSM) para casos de retransmisión.

SCTP es particularmente adecuado para aplicaciones que requieren monitoreo y detección de pérdida de sesión. Su mecanismo de latido monitorea la conectividad de la sesión, lo que garantiza un transporte confiable y seguro con un retraso mínimo de extremo a extremo y un tiempo de conmutación por error rápido en caso de fallas en la red.

Figura 1: Protocolo de enlace de 4 vías SCTP y protocolo de enlace SCTP 4-way Handshake and TCP 3-way Handshake TCP de 3 vías

Servicios SCTP

SCTP proporciona los siguientes servicios:

  • Protocolo de acceso al servidor agregado (ASAP)

  • Control de llamadas independiente del portador (BICC)

  • Segmento de colocación directa de datos (segmento DDP)

  • Control de sesión de flujo de colocación directa de datos (flujo DDP)

  • Diámetro en un fragmento de datos DTLS/SCTP (Diámetro-DTLS)

  • Diámetro en un fragmento de DATOS SCTP (Diámetro-SCTP)

  • Extensiones DPNSS/DASS 2 al protocolo IUA (DUA)

  • Protocolo de redundancia de Endpoint Handlescape (ENRP)

  • Protocolo H.248 (H248)

  • Protocolo H.323 (H323)

  • Capa de adaptación de usuarios (AIU) de RDSI

  • Capa de adaptación punto a punto de usuario MTP2 (M2PA)

  • Capa de adaptación de usuario MTP2 (M2UA)

  • Capa de adaptación de usuario MTP3 (M3UA)

  • Otros protocolos de carga SCTP configurados no especificados (otros)

  • Q.IPC

  • Reservados

  • Protocolo de aplicación S1 (S1AP)

  • Configuración simple de middlebox (SIMCO)

  • Capa de adaptación de usuarios (SUA) de SCCP

  • Interfaz de capa de adaptador de transporte (TALI)

  • Capa de adaptación de usuario V5.2 (V5UA)

  • Protocolo de aplicación X2 (X2AP)

Limitaciones y restricciones del SCTP

SCTP tiene las siguientes limitaciones y restricciones:

  • Direcciones IP

    • Solo se admite IP NAT estática; Los paquetes de interfaz (de un lado: cliente o servidor) que entran deben pertenecer a la misma zona.

  • Políticas

    • No se admite la directiva dinámica. Debe configurar todas las directivas para las sesiones de SCTP.

    • Cuando se eliminan las directivas, se borran las sesiones y asociaciones relacionadas.

    • Configure una directiva para permitir el tráfico SCTP de todas las IP de cliente a todas las IP de servidor y otra directiva para permitir el tráfico SCTP de IP de servidor a IP de cliente. Si una directiva tiene un perfil SCTP, se necesita el mismo perfil SCTP para la directiva inversa.

    • Si configura diferentes directivas para cada sesión que pertenezca a una asociación, habrá varias directivas relacionadas con una asociación y la administración de paquetes SCTP (drop, rate-limit, etc.) utiliza el perfil asociado a la directiva de la sesión SCTP de control.

    • Las aplicaciones usadas en las directivas de seguridad para permitir el tráfico ALG SCTP no se pueden configurar con la application-protocol ignore opción. Esta condición es aplicable incluso si la inspección SCTP ALG no está configurada.

  • La activación/desactivación de SCTP se controla por si hay un perfil SCTP configurado.

    • Si no hay ningún perfil adjunto a una política, los paquetes SCTP se reenvían sin inspección.

    • Si se adjunta un perfil con la nat-only opción a una política, solo se realiza la traducción NAT en los paquetes SCTP que coincidan con la política. Si un perfil no tiene la opción establecida, se realizan tanto la traducción NAT como la nat-only inspección SCTP en cada paquete SCTP que coincida con la política.

    • Si deshabilita SCTP, se eliminarán todas las asociaciones y los paquetes SCTP subsiguientes se pasarán o descartarán de acuerdo con la directiva.

    • Si habilita SCTP, todas las sesiones SCTP existentes deben borrarse o el tráfico que coincida con sesiones antiguas se reenviará sin ninguna inspección por parte del módulo SCTP.

      Si desea volver a habilitar SCTP, se interrumpirán todas las comunicaciones SCTP en ejecución, ya que no existen asociaciones. Las nuevas comunicaciones del SCTP pueden establecer una asociación y realizar las inspecciones.

      Nota:

      Borre las sesiones antiguas de SCTP cuando se vuelva a habilitar SCTP; de esta manera se evitará cualquier impacto causado por las antiguas sesiones del SCTP en las nuevas comunicaciones del SCTP.

    • Si agrega un perfil de SCTP a una política existente, debe realizar una de las siguientes acciones: borrar las sesiones relacionadas o quitar la directiva anterior y crear una nueva directiva.

    • Si cambia el valor de tiempo de espera en el perfil SCTP, el valor de protocolo de enlace configurado y de tiempo de espera en las asociaciones existentes no cambiarán.

  • Limitación de la tasa SCTP

    • Cualquier cambio en la configuración de limitación de velocidad no afectará al tráfico posterior de las asociaciones existentes. Se aplicará a las asociaciones recientemente establecidas.

    • El valor decimal de protocolo admitido es de 0 a 63. Este valor incluye 48 protocolos asignados por la IANA y 16 protocolos no asignados.

    • Un máximo de 80 direcciones están limitadas en un perfil.

    • Un máximo de 10 protocolos están limitados para una dirección en un perfil.

    • El valor límite de tasa admitido es de 1 a 12000.

  • Bloqueo del protocolo de carga SCTP

    • Cualquier cambio en la configuración de bloqueo de protocolo afecta inmediatamente al tráfico posterior de las asociaciones existentes.

    • El valor decimal de protocolo admitido es de 0 a 63. Este valor incluye 48 protocolos asignados por la IANA y 16 protocolos no asignados.

  • Un extremo SCTP también admite NAT-PT en dos direcciones, desde un formato de dirección IPv4 a un formato de dirección IPv6, y viceversa. El módulo SCTP no admite multiconexión mixta IPv4 o IPv6 y NAT-PT mixto IPv4 o IPv6.

  • Para que la NAT estática funcione, los paquetes de interfaces (de un lado: del lado del cliente o del servidor) que entran deben pertenecer a la misma zona.

  • Para casos multihogar, solo se admite el parámetro de dirección IPv4 en INIT o INIT_ACK.

  • Solo se admite NAT estática para SCTP.

  • Solo las asociaciones SCTP establecidas se sincronizan con las sesiones del mismo nivel.

  • Las sesiones del SCTP no se eliminan con asociaciones; Se agota el tiempo de espera en 30 minutos, que es el valor predeterminado. El valor del tiempo de espera es configurable y se puede cambiar.

  • Si el proceso de protocolo de enlace de 4 vías no se controla en un nodo y se controla en su lugar en dos nodos (por ejemplo, dos sesiones en dos nodos en modo activo/activo) o si el clúster está en conmutación por error antes de que se complete el protocolo de enlace de 4 vías, la asociación no se establecerá correctamente.

  • No se admite la actualización de software unificada en servicio (ISSU) a versiones anteriores de Junos OS.

  • Se comprueba el análisis de mensajes M3UA/SCCP, pero no se comprueba la inspección de estado de M3UA/SCCP.

  • Sólo se admite la norma UIT-T Rec. Q.711-Q.714 (07/96). ANSI, ETSI, China y otros estándares no son compatibles.

  • Solo se admite RFC 4960.

  • La afinidad de sesión VPN no admite el protocolo de tunelización GPRS (GTP) ni el protocolo de transmisión por control de transmisiones (SCTP).

Descripción general de las características de SCTP

Las siguientes son las características importantes de SCTP:

  • Compatibilidad con multiconexión donde uno o ambos puntos finales de una conexión pueden constar de más de una dirección IP. Esto permite una conmutación por error transparente entre rutas de red redundantes.

  • La entrega de datos en trozos dentro de un flujo independiente elimina el bloqueo innecesario de cabeza de línea.

  • Funcionalidad de selección y supervisión de ruta para seleccionar una ruta de transmisión de datos principal y probar la conectividad de la ruta de transmisión.

  • Los mecanismos de validación y reconocimiento protegen contra ataques de inundación y notifican fragmentos de datos duplicados o faltantes.

  • Detección de errores mejorada adecuada para tramas Ethernet jumbo.

Descripción de la compatibilidad de la arquitectura Central Point con SCTP

Una asociación de Protocolo de transmisión de control de flujo (SCTP) es una conexión entre dos extremos SCTP. Cada extremo de SCTP identifica la asociación con una etiqueta. Durante la configuración de una asociación SCTP, dos extremos SCTP intercambian sus propias etiquetas para recibir paquetes. Durante el intercambio de paquetes entre dos extremos SCTP, tanto la dirección de origen como la dirección de destino pueden cambiar en el ciclo de vida de la asociación.

La sesión de flujo SCTP utiliza una etiqueta de conexión para distribuir más finamente el tráfico SCTP entre las SPU en dispositivos SRX1500, SRX4100, SRX4200, SRX5400, SRX5600 y SRX5800 que admiten la ALG SCTP. La etiqueta de conexión se decodifica a partir de la etiqueta virtual SCTP. Se creará una sesión SCTP independiente para cada uno de los tres primeros paquetes, es decir, una sesión para INIT, INIT-ACK y COOKIE-ECHO, respectivamente. Dado que el tráfico de dirección inversa tiene su propia sesión, la sesión ya no puede coincidir con la sesión de dirección directa existente y pasar automáticamente. Por lo tanto, de manera similar a la directiva de dirección directa, se necesita una política explícita para aprobar el tráfico SCTP de dirección inversa. En este escenario, la sesión de flujo del SCTP requiere que se establezca una configuración de directiva bidireccional incluso para una conexión básica.

Compatibilidad de SCTP con enrutamiento y reenvío virtual (VRF)

La función VRF (Virtual Routing and Forwarding) permite la gestión de direcciones IP remotas. Cliente SCTP, antes de iniciar una nueva asociación SCTP, debe establecer la opción de socket para el índice de tabla de enrutamiento/índice VRF, si la interfaz de salida al servidor SCTP configurado dentro de VRF, de lo contrario la asociación no se establecerá ya que el cliente SCTP utilizará la instancia de enrutamiento predeterminada/global para el establecimiento de la asociación. En el lado del servidor SCTP, si la opción de socket de índice VRF no está configurada en el socket de escucha, la solicitud de asociación recibida en todos los VRF se considerará, pero si la opción de socket de índice VRF está configurada en el socket de escucha, la solicitud de establecimiento de la asociación que viene en ese VRF en particular solo se entretendrá.

La aplicación puede establecer la opción de socket con un indicador personalizado para proporcionar un índice de tabla de rutas a SCTP para manejar la asociación SCTP basada en VRF, colocar la asociación en esa asociación en particular o permitir que el kernel SCTP elija VRF para la asociación durante el establecimiento en proceso de protocolo de enlace de 4 vías, basado en VRF en el que se configura la interfaz de entrada.

Cuando se establece una asociación SCTP sobre una instancia de VRF, el kernel debe tener en cuenta un parámetro adicional, el ID de VRF único, al buscar asociaciones únicas utilizando la 4-tupla existente utilizada en SCTP (IP de origen, puerto de origen, IP de destino, puerto de destino).

  • Paquetes SCTP entrantes a través de VRF:

    Cuando un paquete SCTP llega a una interfaz de entrada, se realiza una búsqueda utilizando la 5-tupla (IP de origen, puerto de origen, IP de destino, puerto de destino e 'ID de VRF en el que se recibió el paquete') para determinar si hay una asociación SCTP existente presente en el núcleo.

  • Paquetes SCTP salientes a través de VRF:

    Para cada paquete SCTP que se envía desde el núcleo, el ID VRF correspondiente se obtiene de los datos de asociación utilizando la tupla 5 (IP de origen, puerto de origen, IP de destino, puerto de destino e 'ID de VRF en el que se enviará el paquete').

Zócalo de uno a muchos estilos SCTP

SCTP admite dos estilos de socket: 1 a 1 (comparable a TCP) y 1 a Many (que permite múltiples asociaciones activas en un solo socket). Este último facilita la comunicación con varios puntos finales pares simultáneamente, utilizando identificadores de asociación (assoc-id) para distinguirlos.

La aplicación utiliza las siguientes API del sistema para aprovechar el socket de estilo SCTP 1:1 o 1:N:

El sistema requiere un zócalo de estilo 1 a 1

  • Función del servidor: socket(), bind(), listen(), accept(), write()/read(), close()

  • Rol de cliente: socket(), connect(), write()/read(), close()

El sistema requiere un zócalo de 1 a muchos estilos

  • Función del servidor: socket(), bind(), listen(), recvmsg(), sendmsg(), close()

  • Rol de cliente: socket(), sendmsg(), recvmsg(), close()

Descripción general de la estructura de paquetes SCTP

Un paquete SCTP consta de las siguientes secciones:

La figura 2 ilustra la estructura del paquete SCTP.

Figura 2: Estructura SCTP Packet Structure de paquetes SCTP

Sección de encabezado común

Todos los paquetes SCTP requieren una sección de encabezado común. Esta sección ocupa los primeros 12 bytes del paquete. En la Tabla 1 se describen los campos de la sección de encabezado común:

Tabla 1: Campos de encabezado comunes

Campo

Descripción

Número de puerto de origen

Identifica el puerto de envío.

Número de puerto de destino

Identifica el puerto receptor. Los hosts utilizan el número de puerto de destino para enrutar el paquete al destino apropiado o a una aplicación.

Etiqueta de verificación

Distingue los paquetes obsoletos de una conexión anterior. Se trata de un valor aleatorio de 32 bits creado durante la inicialización.

Checksum

Utiliza el algoritmo de comprobación de redundancia cíclica (CRC32) para detectar errores que podrían haberse introducido durante la transmisión de datos.

Sección de fragmentos de datos

Sección de fragmentos de datos: esta sección ocupa la parte restante del paquete. En la Tabla 2 se describen los campos de la sección de fragmentos de datos:

Tabla 2: Campos de fragmentos de datos

Campo

Descripción

Tipo de fragmento

Identifica el contenido del campo de valor del fragmento. Esto tiene una longitud de 1 byte.

Banderas de trozos

Consta de 8 flag-bits cuya definición varía con el tipo de fragmento. El valor predeterminado es cero. Esto indica que la capa superior no especifica ningún identificador de aplicación para los datos.

Longitud del trozo

Especifica la longitud total del fragmento en bytes. Este campo tiene una longitud de 2 bytes. Si el fragmento no forma un múltiplo de 4 bytes (es decir, la longitud no es un múltiplo de 4), se rellena implícitamente con ceros que no están incluidos en la longitud del fragmento.

Valor del fragmento

Un campo de datos de uso general.

El administrador de recursos (RM) permite 8 direcciones IP de origen y 8 direcciones IP de destino durante una comunicación SCTP.

Descripción de SCTP Multihoming

Un extremo del Protocolo de transmisión de control de transmisiones (SCTP) puede ser un host de host múltiple con todas las direcciones IPv4 o todas las direcciones IPv6. En la figura 3, el extremo A está conectado a un firewall de la serie SRX con dos direcciones IPv4 y el punto de conexión B está conectado a un firewall de la serie SRX con dos direcciones IPv4. Por lo tanto, los puntos de conexión A y B pueden configurar una asociación utilizando cuatro pares diferentes de direcciones IP, lo que da como resultado cuatro rutas válidas para la comunicación.

Figura 3: Multiconexión SCTP con dos puntos SCTP Multihoming with Two IPv4 Endpoints de conexión IPv4

En la figura 4, el extremo A está conectado a un firewall de la serie SRX con dos direcciones IPv6 y el punto de conexión B está conectado a un firewall de la serie SRX con dos direcciones IPv6. Por lo tanto, los puntos de conexión A y B pueden configurar una asociación utilizando cuatro pares diferentes de direcciones IP, lo que da como resultado cuatro rutas válidas para la comunicación.

Figura 4: Multiconexión SCTP con dos puntos SCTP Multihoming with Two IPv6 Endpoints de conexión IPv6

Descripción de la inspección de fragmentos múltiples de SCTP

El firewall del Protocolo de transmisión de control de transmisiones (SCTP) comprueba todos los fragmentos de un mensaje y, a continuación, permite o descarta el paquete según la directiva. Utilice el comando para habilitar la set security gprs sctp multichunk-inspection enable inspección de fragmentos múltiples SCTP para comprobar todos los fragmentos de un mensaje. Utilice el comando o set security gprs sctp multichunk-inspection disable para deshabilitar la delete security gprs sctp multichunk-inspection enable inspección de fragmentos múltiples SCTP y comprobar sólo el primer fragmento.

Después de habilitar la inspección de fragmentos múltiples de SCTP, el firewall de SCTP comprueba todos los fragmentos de un mensaje y permite o descarta el paquete. El firewall SCTP descarta el paquete en los siguientes casos:

  • El diseño de los fragmentos SCTP no sigue RFC 4960.

  • Un fragmento de control no puede pasar la inspección de la máquina de estado finito (FSM) SCTP ni las comprobaciones de cordura.

  • No se permite que un fragmento de datos pase el perfil SCTP debido a las comprobaciones de cordura o FSM de SCTP.

  • No se permite que un fragmento de datos pase a través del perfil SCTP debido al bloqueo del protocolo o a la limitación de velocidad. El firewall SCTP restablece este fragmento a una unidad de datos de protocolo nulo (PDU) y continúa comprobando el siguiente fragmento. Un fragmento de datos se establece en una PDU nula según las siguientes reglas:

    • Cuando se establece el valor null PDU en 0xFFFF using the set security gprs sctp nullpdu protocol ID-0xFFFF command, el valor del identificador de protocolo de carga se reemplaza por 0xFFFF y el campo de datos de usuario no se modifica.

    • Cuando establece el valor de PDU nulo en 0x0000 using the set security gprs sctp nullpdu protocol ID-0x0000 command, el valor del identificador de protocolo de carga se reemplaza por 0x0000 y los primeros cuatro bytes del campo de datos de usuario se reemplazan por ceros.

    Si todos los fragmentos de un paquete son PDU nulas, el firewall SCTP descarta el paquete.

Descripción del comportamiento de SCTP en el clúster de chasis

En un modo de configuración de clúster de chasis , la configuración de SCTP y la asociación SCTP establecida se sincronizan con el dispositivo del mismo nivel. El módulo SCTP admite los modos activo-activo y activo-pasivo.

La asociación SCTP establecida envía un mensaje de creación o eliminación al par cada vez que se crea o elimina una asociación en el dispositivo activo. El dispositivo secundario agrega o elimina una asociación respectivamente al recibir el mensaje de la asociación SCTP establecida. Luego, el módulo SCTP registra la función de devolución de llamada correspondiente para recibir y manejar este mensaje. No hay sincronización continua del temporizador entre las dos asociaciones.

El módulo SCTP registrará una función de sincronización de inicio en frío cuando un dispositivo secundario se una al clúster o se reinicie. Se llama a la función de arranque en frío SCTP para sincronizar todas las asociaciones SCTP con los dispositivos pares al mismo tiempo.

Después del cambio, las asociaciones SCTP establecidas seguirán funcionando, pero las asociaciones en progreso de establecimiento se perderán y el procedimiento de establecimiento deberá reiniciarse. También es posible que las asociaciones en curso de desmontaje pierdan el mensaje ack y dejen asociaciones SCTP no establecidas en el firewall. Estas asociaciones se limpiarán cuando caduque el temporizador (5 horas por defecto) debido a que no hay actividad en la asociación.

  • Debe configurar todas las directivas para las sesiones SCTP necesarias. Por ejemplo, supongamos que tiene los puntos de conexión A y B. El punto de conexión A tiene una asociación SCTP con x número de IP (IP_a1, IP_a2 IP_a3... IP_ax). El punto de conexión B tiene una asociación SCTP con y número de IP (IP_b1, IP_b2 IP_b3... IP_by.) La política del dispositivo de seguridad debe permitir todas las rutas x*y posibles en ambas direcciones.

  • Cuando se elimina una asociación SCTP, las sesiones relacionadas con SCTP todavía existen y se agota el tiempo de espera por sí mismas.