Oracle® Solaris 11.2 での TCP/IP ネットワーク、IPMP、および IP トンネルの管理

印刷ビューの終了

更新: 2014 年 7 月
 
 

SCTP プロトコルを使用するサービスの追加

Stream Control Transmission Protocol (SCTP) プロトコルは、TCP に類似した方法でアプリケーション層プロトコルにサービスを提供します。ただし、SCTP では 2 つのシステム (一方または両方がマルチホームでもよい) 間での通信が可能です。SCTP 接続は「アソシエーション」と呼ばれます。アソシエーションでは、アプリケーションがデータを分割し、1 つまたは複数のメッセージストリームとして伝送します (マルチストリーム化)。SCTP 接続は、複数の IP アドレスを持つエンドポイントに到達できます。これは、テレフォニーアプリケーションにとって特に重要です。IP Filter や IPsec を使用する場合、SCTP のマルチホーム機能はセキュリティーの点で考慮を要します。考慮点については、sctp(7P)のマニュアルページを参照してください。

SCTP プロトコルを使用するサービスを追加する方法

デフォルトで SCTP は Oracle Solaris に組み込まれており、構成を別に行う必要はありません。ただし、SCTP を使用するためには、一定のアプリケーション層サービスを明示的に構成しなければならない場合があります。例として、echodiscard などのアプリケーションがあります。次の手順では、SCTP 1 対 1 スタイルのソケットを使用する echo サービスを追加する方法を説明します。TCP および UDP 用のサービスを追加する場合も同じ手順を使用できます。

次のタスクでは、inetd デーモンによって管理される SCTP inet サービスを SMF リポジトリに追加する方法を説明します。このタスクでは、次に、SMF コマンドを使用してサービスを追加する方法について説明します。

始める前に

次の手順を実行する前に、サービスのマニフェストファイルを作成してください。この手順では、例として、echo サービスのマニフェスト echo.sctp.xml を使用しています。

  1. システムファイルに対する書き込みアクセス権を持つユーザーアカウントでローカルシステムにログインします。
  2. pfedit コマンドを使用して /etc/services ファイルに新しいサービスの定義を追加します。

    pfedit(1M)のマニュアルページを参照してください。

    サービスを定義する構文は次のとおりです。

    service-name port/protocol aliases
  3. サービスマニフェストが格納されているディレクトリに移動して、サービスマニフェストをインポートします。
    # cd dir-name
    # svccfg import service-manifest-name

    たとえば、次のように、service.dir ディレクトリにあるマニフェスト echo.sctp.xml を使用して、新しい SCTP echo サービスを追加します。

    # cd service.dir
    # svccfg import echo.sctp.xml
  4. サービスマニフェストが追加されているか確認します。
    # svcs FMRI

    FMRI 引数には、サービスマニフェストの Fault Managed Resource Identifier (FMRI) を使用します。

  5. サービスのプロパティーを一覧表示して、変更を加える必要があるかどうかを判断します。
    # inetadm -l FMRI
  6. 新しいサービスを使用可能にします。
    # inetadm -e FMRI
  7. サービスが使用可能になっていることを確認します。
使用例 1-2  SCTP トランスポートプロトコルを使用するサービスの追加

次の例は、echo サービスに 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