El protocolo de transporte SCTP ofrece servicios a los protocolos de capa de modo similar a TCP. Sin embargo, SCTP permite la comunicación entre dos sistemas, que pueden ser (uno o ambos) de host múltiple. La conexión SCTP se denomina asociación. En una asociación, una aplicación divide los datos que se transmitirán en uno o más flujos de mensajes, o en múltiples flujos. Una conexión SCTP puede realizarse en los puntos finales con varias direcciones IP, lo cual es especialmente importante en las aplicaciones de telefonía. Las posibilidades que ofrece el host múltiple de SCTP constituyen una consideración de seguridad si el sitio utiliza filtro IP o IPsec. En la página del comando man sctp(7P) se describen algunas de estas consideraciones.
De modo predeterminado, SCTP se incluye en Oracle Solaris y no requiere ninguna configuración adicional. Sin embargo, es posible que tenga que configurar de modo explícito determinados servicios de capa de la aplicación para que utilicen SCTP. Algunas aplicaciones de ejemplo son echo y discard. El procedimiento siguiente muestra cómo agregar un servicio echo que utilice un socket de estilo uno a uno SCTP.
También puede utilizar el procedimiento siguiente para agregar servicios para los protocolos de capa de transporte TCP y UDP.
La tarea siguiente muestra cómo agregar un servicio SCTP inet que administre el daemon inetd al depósito SMF. La tarea muestra cómo utilizar los comandos de la Utilidad de gestión de servicios (SMF) para agregar el servicio.
Para obtener información sobre los comandos SMF, consulte SMF Command-Line Administrative Utilities de System Administration Guide: Basic Administration.
Para obtener información sobre la sintaxis, consulte las páginas del comando man para los comandos SMF, como se describe en el procedimiento.
Para obtener información detallada sobre SMF, consulte la página del comando man smf(5).
Antes de llevar a cabo el procedimiento siguiente, cree un archivo manifest para el servicio. El procedimiento utiliza como ejemplo un archivo manifest para el servicio echo que se denomina echo.sctp.xml .
Inicie sesión en el sistema local con una cuenta de usuario con privilegios de escritura para los archivos del sistema.
Edite el archivo /etc/services y agregue una definición para el nuevo servicio.
Utilice la siguiente sintaxis para la definición del servicio.
service-name |port/protocol | aliases |
Agregue el nuevo servicio.
Vaya al directorio en el que se encuentra el manifiesto del servicio y escriba lo siguiente:
# cd dir-name # svccfg import service-manifest-name |
Para ver la sintaxis completa de svccfg, consulte la página del comando man svccfg(1M).
Supongamos que desea agregar un nuevo servicio SCTP echo utilizando el manifiesto echo.sctp.xml que se encuentra en el directorio service.dir. Debe escribir lo siguiente:
# cd service.dir # svccfg import echo.sctp.xml |
Compruebe que se haya agregado el manifiesto del servicio:
# svcs FMRI |
Para el argumento FMRI, utilice el Fault Managed Resource Identifier (FMRI) del manifiesto del servicio. Por ejemplo, para el servicio SCTP echo, debe utilizar el comando siguiente:
# svcs svc:/network/echo:sctp_stream |
El resultado que obtendrá será similar al siguiente:
STATE STIME FMRI disabled 16:17:00 svc:/network/echo:sctp_stream |
Si desea obtener información detallada sobre el comando svcs, consulte la página del comando man svcs(1).
El resultado indica que el nuevo manifiesto del servicio está desactivado.
Enumere las propiedades del servicio para determinar si debe realizar modificaciones.
# inetadm -l FMRI |
Para obtener información detallada sobre el comando inetadm, consulte la página del comando man inetadm(1M).
Por ejemplo, para el servicio SCTP echo, debe escribir lo siguiente:
# 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 |
Active el nuevo servicio:
# inetadm -e FMRI |
Compruebe que el servicio esté activado:
Por ejemplo, para el nuevo servicio echo, debe escribir:
# inetadm | grep sctp_stream . . enabled online svc:/network/echo:sctp_stream |
El siguiente ejemplo muestra los comandos para utilizar las entradas de archivo necesarias para que el servicio echo utilice el protocolo de capa de transporte 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 |