Le protocole de transport SCTP fournit des services aux protocoles de couche d'application de façon similaire à TCP. Toutefois, SCTP permet la communication entre deux systèmes multiréseaux ou deux systèmes dont l'un est multiréseau. La connexion SCTP s'appelle une association. Dans une association, une application divise les données à transmettre en plusieurs flux de messages. Une connexion SCTP peut atteindre les extrémités à l'aide de plusieurs adresses IP, ce qui s'avère particulièrement important dans le cadre d'applications de téléphonie. Les capacités multiréseau de SCTP améliorent la sécurité des sites ayant recours à IP Filter ou IPsec. La page de manuel sctp(7P) répertorie les points à prendre en considération au niveau de la sécurité.
Par défaut, le protocole SCTP fait partie de Oracle Solaris et ne nécessite aucune configuration supplémentaire. Toutefois, vous devrez peut-être configurer explicitement certains services de couche d'application pour utiliser SCTP. echo et discard sont des exemples d'applications. La procédure suivante illustre l'ajout d'un service d'écho qui utilise un socket de type SCTP bi-univoque.
La procédure suivante permet également d'ajouter des services pour les protocoles de couche transport TCP et UDP.
La tâche suivante illustre l'ajout dans le référentiel SMF d'un service inet SCTP géré par le démon inetd. La tâche décrit ensuite la procédure d'ajout du service à l'aide des commandes SMF (Service Management Facility).
Pour plus d'informations sur les commandes SMF, reportez-vous à la section SMF Command-Line Administrative Utilities du System Administration Guide: Basic Administration .
Pour plus d'informations sur la syntaxe, consultez les pages de manuel sur les commandes SMF citées dans la procédure.
Pour plus d'informations sur SMF, reportez-vous à la page de manuel smf(5).
Avant d'effectuer la procédure suivante, créez un fichier manifeste pour le service. En exemple, la procédure fait référence à un fichier manifeste du service echo intitulé echo.sctp.xml .
Connectez-vous au système local avec un compte utilisateur disposant de privilèges d'écriture sur les fichiers système.
Modifiez le fichier /etc/services et ajoutez la définition du nouveau service.
Définissez le service à l'aide de la syntaxe suivante.
service-name |port/protocol | aliases |
Ajoutez le nouveau service.
Accédez au répertoire de stockage du manifeste de service et tapez ce qui suit :
# cd dir-name # svccfg import service-manifest-name |
La page de manuel svccfg(1M) contient la syntaxe complète de svccfg.
Admettons que vous voulez ajouter un service echo SCTP à l'aide du manifeste echo.sctp.xml résidant dans le répertoire service.dir. Vous devez taper ce qui suit :
# cd service.dir # svccfg import echo.sctp.xml |
Assurez-vous que le manifeste de service a été ajouté :
# svcs FMRI |
Pour l'argument FMRI, utilisez le FMRI (Fault Managed Resource Identifier, identificateur de ressources gérées erronées) du manifeste de service. Par exemple, pour le service SCTP echo, vous devez utiliser la commande suivante :
# svcs svc:/network/echo:sctp_stream |
La sortie doit ressembler à ceci :
STATE STIME FMRI disabled 16:17:00 svc:/network/echo:sctp_stream |
Pour plus d'informations sur la commande svcs, reportez-vous à la page de manuel svcs(1).
D'après la sortie, le nouveau manifeste de service est désactivé.
Dressez la liste des propriétés du service afin d'identifier les modifications à apporter.
# inetadm -l FMRI |
Pour plus d'informations sur la commande inetadm, reportez-vous à la page de manuel inetadm(1M).
Par exemple, pour le service SCTP echo, vous devez saisir les informations suivantes :
# inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" . . default tcp_trace=FALSE default tcp_wrappers=FALSE |
Activez le nouveau service :
# inetadm -e FMRI |
Assurez-vous que le service est activé.
Par exemple, pour le nouveau service echo, vous devez taper :
# inetadm | grep sctp_stream . . enabled online svc:/network/echo:sctp_stream |
L'exemple suivant indique les commandes à utiliser et les entrées de fichier requises pour que le service d'écho utilise le protocole de couche transport SCTP.
$ cat /etc/services . . echo 7/tcp echo 7/udp echo 7/sctp # cd service.dir # svccfg import echo.sctp.xml # svcs network/echo* STATE STIME FMRI disabled 15:46:44 svc:/network/echo:dgram disabled 15:46:44 svc:/network/echo:stream disabled 16:17:00 svc:/network/echo:sctp_stream # inetadm -l svc:/network/echo:sctp_stream SCOPE NAME=VALUE name="echo" endpoint_type="stream" proto="sctp" isrpc=FALSE wait=FALSE exec="/usr/lib/inet/in.echod -s" user="root" default bind_addr="" default bind_fail_max=-1 default bind_fail_interval=-1 default max_con_rate=-1 default max_copies=-1 default con_rate_offline=-1 default failrate_cnt=40 default failrate_interval=60 default inherit_env=TRUE default tcp_trace=FALSE default tcp_wrappers=FALSE # inetadm -e svc:/network/echo:sctp_stream # inetadm | grep echo disabled disabled svc:/network/echo:stream disabled disabled svc:/network/echo:dgram enabled online svc:/network/echo:sctp_stream |