Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Vue d’ensemble de SCTP

Le protocole SCTP (Stream Control Transmission Protocol) est un protocole de couche transport qui garantit un transport fiable et séquentiel des données. SCTP fournit une prise en charge du multihébergement où l’un ou les deux points de terminaison d’une connexion peuvent être constitués de plusieurs adresses IP. Cela permet un basculement transparent entre les chemins réseau redondants.

Comprendre le protocole de transmission de contrôle de flux

Le protocole SCTP (Stream Control Transmission Protocol) est un protocole de couche de transport robuste au sein de la suite de protocoles Internet, fonctionnant conjointement avec UDP et TCP. Il est conçu pour offrir un transport fiable et axé sur la connexion pour diverses applications Internet. Les principales caractéristiques du SCTP sont les suivantes :

  1. Protocole multi-flux : SCTP prend en charge plusieurs flux de messages pour chaque point de terminaison, ce qui permet aux applications qui nécessitent des priorités de messages différentes et un ordre strict au sein des flux.

  2. Fragmentation des données utilisateur : Pour traiter les messages dépassant l'unité de transmission maximale (MTU) du chemin, SCTP fragmente les données en morceaux, en marquant le dernier morceau avec un indicateur spécifique. Le récepteur réassemble ces morceaux avant de transmettre le message complet au protocole de la couche supérieure.

  3. Regroupement de morceaux :

    SCTP permet de regrouper des morceaux de plusieurs messages en un seul paquet SCTP, ce qui facilite un transfert de données efficace. Le récepteur désassemble ces blocs avant de les livrer au protocole de couche supérieure.
  4. Validation des paquets :

    SCTP inclut une balise de vérification dans son en-tête pour identifier de manière unique les sessions d’association. Cette balise permet de se protéger contre les attaques par mascarade et empêche le traitement des paquets SCTP périmés provenant d’associations précédentes.
  5. Prise en charge du multihébergement :

    SCTP permet aux points de terminaison de spécifier une liste d’adresses de transport locales lors de la configuration de l’association, favorisant ainsi la haute disponibilité pour le transfert de données en établissant des routes pour chaque adresse de destination.

De plus, SCTP offre un basculement transparent entre les chemins réseau redondants, ce qui en fait un choix idéal pour les applications nécessitant un transport de données fiable et dans l’ordre. Il fonctionne sur les réseaux de paquets sans connexion comme IP et prend en charge les scénarios mono ou multi-IP.

De plus, SCTP trouve une application dans le transport de messages de signalisation pour les réseaux mobiles 3G via des protocoles tels que M3UA, M2UA ou SUA. Il est optimisé pour éviter les problèmes d’infrastructure multithread lors d’un trafic élevé, améliorer le taux de recherche d’association et améliorer la machine à états finis (FSM) pour les cas de retransmission.

Le SCTP est particulièrement adapté aux applications nécessitant une surveillance et une détection des pertes de session. Son mécanisme de pulsation surveille la connectivité des sessions, assurant ainsi un transport fiable et sécurisé avec un délai de bout en bout minimal et un temps de basculement rapide en cas de panne réseau.

Figure 1 : Établissement de liaison SCTP à 4 voies et établissement de SCTP 4-way Handshake and TCP 3-way Handshake liaison TCP à 3 voies

SCTP Services

SCTP fournit les services suivants :

  • Protocole d’accès au serveur agrégé (ASAP)

  • Contrôle d’appel indépendant du support (BICC)

  • Segment de placement direct des données (segment DDP)

  • Contrôle de session de flux de placement direct des données (flux DDP)

  • Diamètre dans un bloc de données DTLS/SCTP (Diameter-DTLS)

  • Diamètre dans un bloc de données SCTP (Diameter-SCTP)

  • Extensions DPNSS/DASS 2 au protocole IUA (DUA)

  • Endpoint Handlescape Redundancy Protocol (ENRP)

  • Protocole H.248 (H248)

  • Protocole H.323 (H323)

  • Couche d’adaptation de l’utilisateur RNIS (IUA)

  • Couche d’adaptation pair-à-pair (M2PA) de l’utilisateur MTP2

  • Couche d’adaptation utilisateur MTP2 (M2UA)

  • Couche d’adaptation utilisateur MTP3 (M3UA)

  • Autres protocoles de charge utile SCTP configurés non spécifiés (autres)

  • Q.IPC

  • Réservés au

  • Protocole d’application S1 (S1AP)

  • Configuration SIMCO (Simple Middlebox)

  • Couche d’adaptation de l’utilisateur (SUA) SCCP

  • TALI (Transport Adapter Layer Interface)

  • V5.2 Couche d’adaptation utilisateur (V5UA)

  • Protocole d’application X2 (X2AP)

Limitations et contraintes de SCTP

Le SCTP présente les limitations et contraintes suivantes :

  • Adresses IP

    • Seul le NAT IP statique est pris en charge ; Les paquets d’interface (d’un côté : client ou serveur) entrants doivent appartenir à la même zone.

  • Politiques

    • La stratégie dynamique n’est pas prise en charge. Vous devez configurer toutes les stratégies pour les sessions SCTP.

    • Lorsque les stratégies sont supprimées, les sessions et les associations associées sont effacées.

    • Vous configurez une stratégie pour autoriser le trafic SCTP de toutes les adresses IP clientes vers toutes les adresses IP de serveur, et une autre stratégie pour autoriser le trafic SCTP de toutes les adresses IP de serveur vers les adresses IP clientes. Si une stratégie a un profil SCTP, le même profil SCTP est nécessaire pour la stratégie inverse.

    • Si vous configurez des stratégies différentes pour chaque session appartenant à une association, il y aura plusieurs stratégies liées à une association, et la gestion des paquets SCTP (abandon, limite de débit, etc.) utilise le profil attaché à la stratégie de la session SCTP de gestion.

    • Les applications utilisées dans les stratégies de sécurité pour autoriser le trafic SCTP ALG ne peuvent pas être configurées à l’aide de l’option application-protocol ignore . Cette condition s’applique même si le contrôle SCTP ALG n’est pas configuré.

  • L’activation/désactivation de SCTP est contrôlée par la configuration ou non d’un profil SCTP.

    • Si aucun profil n’est attaché à une stratégie, les paquets SCTP sont transférés sans inspection.

    • Si un profil avec l’option nat-only est attaché à une stratégie, seule la traduction NAT est effectuée sur les paquets SCTP correspondant à la stratégie. Si l’option n’est pas définie sur nat-only un profil, la traduction NAT et l’inspection SCTP sont effectuées sur chaque paquet SCTP correspondant à la stratégie.

    • Si vous désactivez SCTP, toutes les associations sont supprimées et les paquets SCTP suivants sont transmis ou abandonnés conformément à la stratégie.

    • Si vous activez SCTP, toutes les sessions SCTP existantes doivent être effacées, sinon le trafic correspondant aux anciennes sessions sera transféré sans aucune inspection du module SCTP.

      Si vous souhaitez activer SCTP à nouveau, toutes les communications SCTP en cours d’exécution seront abandonnées, car aucune association n’existe. Les nouvelles communications SCTP permettent d’établir une association et d’effectuer les inspections.

      Note:

      Effacez les anciennes sessions SCTP lorsque SCTP est réactivé ; Cela évitera tout impact causé par les anciennes sessions SCTP sur les nouvelles communications SCTP.

    • Si vous ajoutez un profil SCTP à une stratégie existante, vous devez effectuer l’une des opérations suivantes : effacer les sessions associées ou supprimer l’ancienne stratégie et en créer une nouvelle.

    • Si vous modifiez la valeur du délai d’expiration dans le profil SCTP, l’établissement de liaison configuré et la valeur du délai d’expiration dans les associations existantes ne changeront pas.

  • Limitation de débit SCTP

    • Toute modification de la configuration de limitation de débit n’affectera pas le trafic ultérieur des associations existantes. Elle s’appliquera aux associations nouvellement créées.

    • La valeur décimale du protocole pris en charge est comprise entre 0 et 63. Cette valeur inclut 48 protocoles attribués par l’IANA et 16 protocoles non attribués.

    • Un maximum de 80 adresses sont limitées dans un profil.

    • Un maximum de 10 protocoles sont limités en débit pour une adresse dans un profil.

    • La valeur limite de débit prise en charge est comprise entre 1 et 12000.

  • Blocage du protocole de charge utile SCTP

    • Toute modification de la configuration bloquant le protocole a un impact immédiat sur le trafic ultérieur des associations existantes.

    • La valeur décimale du protocole pris en charge est comprise entre 0 et 63. Cette valeur inclut 48 protocoles attribués par l’IANA et 16 protocoles non attribués.

  • Un point de terminaison SCTP prend également en charge NAT-PT dans les deux directions, d’un format d’adresse IPv4 à un format d’adresse IPv6, et vice versa. Le module SCTP ne prend pas en charge le multihébergement mixte IPv4 ou IPv6 et le NAT mélangé IPv4 ou IPv6.

  • Pour que le NAT statique fonctionne, les paquets d’interfaces (d’un côté : côté client ou côté serveur) qui arrivent doivent appartenir à la même zone.

  • Pour les cas multihome, seul le paramètre d’adresse IPv4 dans INIT ou INIT_ACK est pris en charge.

  • Seul le NAT statique est pris en charge pour SCTP.

  • Seules les associations SCTP établies sont synchronisées avec les sessions homologues.

  • Les sessions SCTP ne sont pas supprimées avec des associations ; Ils expirent au bout de 30 minutes, ce qui est la valeur par défaut. La valeur du délai d’attente est configurable et peut être modifiée.

  • Si le processus d’établissement de liaison à 4 voies n’est pas géré sur un nœud et qu’il est géré à la place sur deux nœuds (par exemple, deux sessions sur deux nœuds en mode actif/actif) ou si le cluster est en basculement avant la fin de l’établissement de liaison à 4 voies, l’association ne sera pas établie avec succès.

  • La mise à niveau logicielle unifiée en service (ISSU) vers des versions antérieures de Junos OS n’est pas prise en charge.

  • L’analyse des messages M3UA/SCCP est cochée, mais l’inspection dynamique M3UA/SCCP n’est pas cochée.

  • Seule la norme UIT-T Rec. Q.711-Q.714 (07/96) est prise en charge. Les normes ANSI, ETSI, chinoises et autres ne sont pas prises en charge.

  • Seule la norme RFC 4960 est prise en charge.

  • L’affinité de session VPN ne prend pas en charge le protocole de tunnelisation GPRS (GTP) et le protocole SCTP (Stream Control Transmission Protocol).

Présentation des fonctionnalités SCTP

Voici les caractéristiques importantes de SCTP :

  • Prise en charge du multihébergement où l’un ou les deux points de terminaison d’une connexion peuvent être constitués de plusieurs adresses IP. Cela permet un basculement transparent entre les chemins réseau redondants.

  • La livraison de données par blocs au sein d’un flux indépendant élimine les blocages inutiles en tête de ligne.

  • Fonctionnalité de sélection et de surveillance des chemins pour sélectionner un chemin de transmission de données principal et tester la connectivité du chemin de transmission.

  • Les mécanismes de validation et d’accusé de réception protègent contre les attaques par flooding et signalent les blocs de données dupliqués ou manquants.

  • Amélioration de la détection des erreurs pour les trames Ethernet jumbo.

Comprendre la prise en charge de l’architecture Central Point pour SCTP

Une association SCTP (Stream Control Transmission Protocol) est une connexion entre deux points de terminaison SCTP. Chaque point de terminaison SCTP identifie l’association à l’aide d’une balise. Lors d’une configuration d’association SCTP, deux points de terminaison SCTP échangent leurs propres balises pour la réception de paquets. Lors de l’échange de paquets entre deux points de terminaison SCTP, l’adresse source et l’adresse de destination peuvent changer au cours du cycle de vie de l’association.

La session de flux SCTP utilise une balise de connexion pour distribuer plus précisément le trafic SCTP entre les SPU sur les périphériques SRX1500, SRX4100, SRX4200, SRX5400, SRX5600 et SRX5800 qui prennent en charge l’ALG SCTP. La balise de connexion est décodée à partir du vtag SCTP. Une session SCTP distincte sera créée pour chacun des trois premiers paquets, c’est-à-dire une session pour INIT, INIT-ACK et COOKIE-ECHO, respectivement. Étant donné que le trafic dans le sens inverse a sa propre session, la session ne peut plus correspondre à la session existante dans le sens aller et passer automatiquement. Par conséquent, à l’instar de la stratégie de direction directe, une stratégie explicite est nécessaire pour approuver le trafic SCTP dans la direction inverse. Dans ce scénario, la session de flux SCTP nécessite l’établissement d’une configuration de stratégie bidirectionnelle, même pour une connexion de base.

Prise en charge SCTP du routage et du transfert virtuels (VRF)

La fonctionnalité VRF (Virtual Routing and Forwarding) permet de gérer les adresses IP distantes. Client SCTP, avant d’initier une nouvelle association SCTP, il doit définir l’option socket pour l’index de la table de routage/l’index VRF, si l’interface de sortie vers le serveur SCTP est configurée à l’intérieur de VRF, l’autre association ne sera pas établie car le client SCTP utilisera l’instance de routage par défaut/globale pour l’établissement de l’association. Côté serveur SCTP, si l’option VRF index socket n’est pas définie sur le socket d’écoute, la demande d’association reçue sur tous les VRF sera acceptée, mais si l’option VRF index socket est définie sur le socket d’écoute, la demande d’établissement d’association arrivant sur ce VRF particulier ne sera prise en compte que sur ce VRF particulier.

L’application peut soit définir l’option de socket avec un indicateur personnalisé pour fournir un index de table de routage à SCTP afin de gérer l’association SCTP basée sur VRF, pour placer l’association dans cette association particulière, soit laisser le noyau SCTP choisir VRF pour l’association lors de l’établissement d’une négociation à 4 voies, en fonction de VRF dans lequel l’interface d’entrée est configurée.

Lorsqu’une association SCTP est établie sur une instance VRF, le noyau doit prendre en compte un paramètre supplémentaire, l’identifiant VRF unique, lors de la recherche d’associations uniques en utilisant les 4 tuples existants utilisés dans SCTP (IP source, port source, IP de destination, port de destination).

  • Paquets SCTP entrants via VRF :

    Lorsqu'un paquet SCTP arrive sur une interface entrante, une recherche est effectuée à l'aide du 5-tuple (adresse IP source, port source, adresse IP de destination, port de destination et « ID VRF sur lequel le paquet a été reçu ») pour déterminer s'il existe une association SCTP existante présente dans le noyau.

  • Paquets SCTP sortants via VRF :

    Pour chaque paquet SCTP envoyé par le noyau, l'ID VRF correspondant est obtenu à partir des données d'association à l'aide du 5-tuple (IP source, port source, IP de destination, port de destination et 'VRF ID sur lequel le paquet doit être envoyé').

Douille SCTP de style un à plusieurs

SCTP prend en charge deux styles de sockets : 1 à 1 (comparable à TCP) et 1 à Many (permettant plusieurs associations actives sur un seul socket). Ce dernier facilite la communication avec plusieurs points de terminaison homologues simultanément, en utilisant des identifiants d’association (assoc-id) pour les distinguer.

Les API système ci-dessous sont utilisées par l’application pour utiliser le socket de style SCTP 1 :1 ou 1 :N :

Appels système pour socket de style 1 à 1

  • Rôle serveur : socket(), bind(), listen(), accept(), write()/read(), close()

  • Rôle du client : socket(), connect(), write()/read(), close()

Le système demande 1 à plusieurs sockets de style

  • Rôle serveur : socket(), bind(), listen(), recvmsg(), sendmsg(), close()

  • Rôle du client : socket(), sendmsg(), recvmsg(), close()

Présentation de la structure des paquets SCTP

Un paquet SCTP se compose des sections suivantes :

La figure 2 illustre la structure du paquet SCTP.

Figure 2 : structure SCTP Packet Structure des paquets SCTP

Section d’en-tête commun

Tous les paquets SCTP nécessitent une section d’en-tête commune. Cette section occupe les 12 premiers octets du paquet. Le tableau 1 décrit les champs de la section d’en-tête commun :

Tableau 1 : Champs d’en-tête communs

Champ

Description

Numéro de port source

Identifie le port d’envoi.

Numéro de port de destination

Identifie le port de réception. Les hôtes utilisent le numéro de port de destination pour acheminer le paquet vers la destination ou une application appropriée.

Balise de vérification

Distingue les paquets périmés d’une connexion précédente. Il s’agit d’une valeur aléatoire de 32 bits créée lors de l’initialisation.

Checksum

Utilise l’algorithme de contrôle de redondance cyclique (CRC32) pour détecter les erreurs qui ont pu être introduites lors de la transmission des données.

Section Chunk de données

Section du bloc de données : cette section occupe la partie restante du paquet. Le tableau 2 décrit les champs de la section du bloc de données :

Tableau 2 : champs de blocs de données

Champ

Description

Type de morceau

Identifie le contenu du champ de valeur de bloc. Il s’agit d’une longueur de 1 octet.

Drapeaux de bloc

Se compose de 8 bits d’indicateur dont la définition varie selon le type de chunk. La valeur par défaut est zéro. Cela indique qu’aucun identificateur d’application n’est spécifié par la couche supérieure pour les données.

Longueur du morceau

Spécifie la longueur totale du bloc en octets. La longueur de ce champ est de 2 octets. Si le bloc ne forme pas un multiple de 4 octets (c’est-à-dire que la longueur n’est pas un multiple de 4), il est implicitement rempli de zéros qui ne sont pas inclus dans la longueur du morceau.

Valeur du morceau

Champ de données à usage général.

Le gestionnaire de ressources (RM) autorise 8 adresses IP sources et 8 adresses IP de destination lors d’une communication SCTP.

Comprendre le multihébergement SCTP

Un point de terminaison SCTP (Stream Control Transmission Protocol) peut être un hôte multirésident avec toutes les adresses IPv4 ou toutes les adresses IPv6. Sur la Figure 3, le point de terminaison A est connecté à un pare-feu SRX Series avec deux adresses IPv4 et le point de terminaison B est connecté à un pare-feu SRX Series avec deux adresses IPv4. Par conséquent, les points de terminaison A et B peuvent établir une association à l’aide de quatre paires d’adresses IP différentes, ce qui donne quatre chemins de communication valides.

Figure 3 : Multihébergement SCTP avec deux points de terminaison SCTP Multihoming with Two IPv4 Endpoints IPv4

Sur la Figure 4, le point de terminaison A est connecté à un pare-feu SRX Series avec deux adresses IPv6 et le point de terminaison B est connecté à un pare-feu SRX Series avec deux adresses IPv6. Par conséquent, les points de terminaison A et B peuvent établir une association à l’aide de quatre paires d’adresses IP différentes, ce qui donne quatre chemins de communication valides.

Figure 4 : Multihébergement SCTP avec deux points de SCTP Multihoming with Two IPv6 Endpoints terminaison IPv6

Comprendre l’inspection SCTP multi-morceaux

Le pare-feu SCTP (Stream Control Transmission Protocol) vérifie tous les blocs d’un message, puis autorise ou abandonne le paquet en fonction de la stratégie. Utilisez la commande pour activer l’inspection set security gprs sctp multichunk-inspection enable SCTP multichunk afin de vérifier tous les blocs d’un message. Utilisez la commande ou set security gprs sctp multichunk-inspection disable pour désactiver l’inspection delete security gprs sctp multichunk-inspection enable SCTP multibloc afin de vérifier uniquement le premier morceau.

Après avoir activé l’inspection SCTP multi-morceaux, le pare-feu SCTP vérifie tous les blocs d’un message et autorise ou abandonne le paquet. Le pare-feu SCTP abandonne le paquet dans les cas suivants :

  • La disposition des blocs SCTP ne suit pas la RFC 4960.

  • Un bloc de contrôle ne peut pas réussir l’inspection de la machine à états finis (FSM) SCTP ou les contrôles d’intégrité.

  • Un bloc de données n’est pas autorisé à passer le profil SCTP en raison du FSM SCTP ou des contrôles d’intégrité.

  • Un bloc de données n’est pas autorisé à passer par le profil SCTP en raison d’un blocage du protocole ou d’une limitation de débit. Le pare-feu SCTP réinitialise ce bloc à une unité de données de protocole (PDU) nulle et continue de vérifier le bloc suivant. Un bloc de données est défini sur une PDU nulle en fonction des règles suivantes :

    • Lorsque vous définissez la valeur PDU nulle sur l’utilisation 0xFFFF de la set security gprs sctp nullpdu protocol ID-0xFFFF commande, la valeur de l’identificateur de protocole de charge utile est remplacée par 0xFFFF et le champ de données utilisateur n’est pas modifié.

    • Lorsque vous définissez la valeur PDU nulle sur à l’aide 0x0000 de la set security gprs sctp nullpdu protocol ID-0x0000 commande, la valeur de l’identificateur de protocole de charge utile est remplacée par 0x0000 et les quatre premiers octets du champ de données utilisateur sont remplacés par des zéros.

    Si tous les blocs d’un paquet sont des PDU nulles, le pare-feu SCTP abandonne le paquet.

Comprendre le comportement SCTP dans un cluster de châssis

Dans un mode de configuration de cluster de châssis , la configuration SCTP et l’association SCTP établie sont synchronisées avec l’appareil homologue. Le module SCTP prend en charge les modes actif-actif et actif-passif.

L’association SCTP établie envoie un message de création ou de suppression à l’homologue chaque fois qu’une association est créée ou supprimée sur l’appareil actif. L’appareil secondaire ajoute ou supprime une association respectivement à la réception du message de l’association SCTP établie. SCTP enregistre alors la fonction de rappel correspondante pour recevoir et gérer ce message. Il n’y a pas de synchronisation continue de la minuterie entre les deux associations.

Le module SCTP enregistre une fonction de synchronisation de démarrage à froid lorsqu’un périphérique secondaire rejoint le cluster ou redémarre. La fonction de démarrage à froid SCTP est appelée pour synchroniser toutes les associations SCTP avec les périphériques homologues en même temps.

Après le basculement, les associations SCTP établies continueront à fonctionner, mais les associations en cours d’établissement seront perdues et la procédure d’établissement devra être relancée. Il est également possible que les associations en cours de démontage ne reçoivent pas le message d’accusé de réception et laissent des associations SCTP non établies dans le pare-feu. Ces associations seront nettoyées à l’expiration du minuteur (5 heures par défaut) en raison de l’absence d’activité dans l’association.

  • Vous devez configurer toutes les stratégies pour les sessions SCTP requises. Par exemple, supposons que vous ayez des points de terminaison A et B. Le point de terminaison A a une association SCTP avec un nombre x d’adresses IP (IP_a1, IP_a2, IP_a3... IP_ax). Le point de terminaison B a une association SCTP avec y nombre d’adresses IP (IP_b1, IP_b2, IP_b3... IP_by.) La stratégie sur l’équipement de sécurité doit autoriser tous les chemins x*y possibles dans les deux sens.

  • Lorsqu’une association SCTP est supprimée, les sessions SCTP associées existent toujours et expirent d’elles-mêmes.