Guía de administración del sistema: servicios IP

ProcedureCómo agregar servicios que utilicen el protocolo SCTP

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.


Nota –

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.

Antes de empezar

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 .

  1. Inicie sesión en el sistema local con una cuenta de usuario con privilegios de escritura para los archivos del sistema.

  2. 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
    
  3. 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
    
  4. 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.

  5. 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
  6. Active el nuevo servicio:


    # inetadm -e FMRI
    
  7. 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

Ejemplo 5–9 Cómo agregar un servicio que utilice el protocolo de transporte SCTP

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