Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

RTSP ALG

RTSP(リアルタイム ストリーミング プロトコル)は、音声や映像などのリアルタイム プロパティを使用してデータの配信を制御します。メディアは、同じ RTSP 制御ストリーム上で送信できます。これは HTTP のようなテキストベースのプロトコルですが、クライアントとサーバーはセッション情報を保持します。セットアップ メッセージを使用してセッションを確立し、TEARDOWN メッセージを使用して終了します。トランスポート(メディア プロトコル、アドレス、ポート番号)は、設定とセットアップ応答でネゴシエートされます。

ステートフル ファイアウォールとファイアウォール サービスNAT、TCP ポート 554 用に RTSP ALG を設定する必要があります。ALG は制御接続を監視し、メディア(RTP/RTSP)ストリームに対してフローを動的に開き、NAT書き換えを実行します。

RTSP ALG について

概要

RTSP(リアルタイム ストリーミング プロトコル)は、リアルタイム プロパティアプリケーション層データ配信を制御するためのプロトコルです。構文と操作は HTTP/1.1 と似ています。SIP および H.323 とは異なり、RTSP の目的は、ネットワークを使用して既存のメディア ファイルにアクセスし、メディアのリプレイを制御する目的です。通常の通信は、クライアント(RealPlayer を実行している場合など)とストリーミング メディア サーバーとの間で行います。コマンドには、リモート サーバーからメディア ファイルを一時停止および再生する機能があります。

RTSP は、メディア クライアントとメディア サーバー間の制御チャネル プロトコルです。データ チャネルは、通常 RTP(リアルタイム トランスポート プロトコル)または RTP 制御プロトコル(RTCP)と異なるプロトコルを使用します。

RTSP 標準モードでは、RTP over UDP を使用してメディア データが配信される際に、クライアントが RTSP サーバーに 3 つのネットワーク チャネルを設定します。

RTSP は TCP 上で実行されます。RTP および RTCP は UDP 上で実行されます。RTP パケットおよび RTCP パケットのポートは、RTSP を使用してクライアントとサーバーによって動的にネゴシエートされます。RTP ポートと RTCP ポートは動的なので、これらのポートは静的ポリシーでは許可されません。RTSP ALG をファイアウォールに導入する主な目的は、クライアント/サーバー ネゴシエーションの結果に従って動的ポリシー(ピンホール)を作成して、RTP および RTCP トラフィックが通過可能なポートを作り出すというのです。

クライアントとサーバーが異なるレルムに存在する場合、ピアが提供する RTP または RTCP のアドレスにルーティングする方法を決定できない可能性があります。この場合、ALG は RTP または RTCP オファー アドレスに対して変換を行い、ペイロード内で変換を行う必要があります。

接続が確立されると、RTSP ALG はクライアントとサーバー間で交換されたメッセージを監視し、ダイアログ のステータスの変更を追跡します。また、RTSP ダイアログボックスをサポートするために取得したリソースすべてが、ダイアログの完了または失敗後にシステムに戻します。

RTSP モード

標準モード

RTSP 標準モードでは、RTP over UDP を使用してメディア データが配信される際に、クライアントが RTSP サーバーに 3 つのネットワーク チャネルを設定します。

制御とネゴシエーションには、全二重 TCP 接続が使用されます。RTP パケット形式を使用したメディア データ配信には、全二重 UDP チャネルが使用されます。ほとんどの場合、RTP はサーバーから開始します。RTCP と呼ばれる全二重 UDP チャネルを使用して、クライアントに同期情報を提供し、パケット ロス情報をサーバーに提供します。

図1は 、RTSP ALG標準モードを示しています。

図 1:RTSP ALG 標準モード RTSP ALG Standard Mode

Interleave Mode

RTSP インターリーブ モードでは、メディア データは、RTP または RDT over TCP を使用してパケットに送信できます。このシナリオでは、制御と、RTSP サーバーからクライアントへのメディア データ配信の両方に、単一の全二重 TCP 接続が使用されます。データ ストリームは RTSP 制御ストリームとインターリーブされます。

図 2 は 、RTSP ALG インターリーブ モードを示しています。

図 2:RTSP ALG Interleave Mode RTSP ALG Interleave Mode

RTSP ALG メッセージについて

RTSP メッセージ形式

RTSP はテキスト ベースで、UTF-8 エンコーディングで ISO 10646 文字セットを使用します。行は NULLF で終了し、空の行はメッセージと本文の区切り記号です。

最初の行は「開始線」と呼ばれる名前です。クライアントからサーバーへのリクエスト メッセージでは、コマンドラインは RTSP メソッドを表します。サーバーからクライアントへの応答メッセージでは、開始線は RTSP ステータス コードをメソッドの応答として表します。ステータス コード要素は、3 桁の整数の結果コードです。

RTSP メソッド

1 回の取引には 9 種類の方法があります。

  • OPTION—Request-URL によって識別されるリクエスト/レスポンス チェーンで使用可能な通信オプションに関する情報に関する要求を表します。この方法を使用すると、クライアントは、リソースアクションを妨したり、リソースの取得を開始したりすることなく、リソースに関連するオプション、要件、またはリソースに関連する両方、またはサーバーの機能を判断できます。

  • DESCRIBE—サーバーからのリクエスト URL で識別されたプレゼンテーションまたはメディア オブジェクトの説明を取得します。この方法では、 Accept ヘッダーを使用して、クライアントが解釈する記述形式を指定できます。

  • ANNOUNCE:クライアントからサーバーにリクエストを送信し、リクエストURLで識別されたプレゼンテーションやメディアオブジェクトの記述をサーバーに送信します。サーバーからクライアントにリクエストを送信すると、セッションの説明がリアルタイムで更新されます。

  • SETUP— THE を要求し、ストリーミング メディアに使用するトランスポート メカニズムを指定します。

  • PLAY—セットアップで指定されたメカニズムを使用してデータの送信を開始するサーバーに通知します。

  • PAUSE—ストリーム配信が一時的に中断されるのを要求します。

  • TEARDOWN:指定されたSMでもストリーム配信を停止し、関連付けられたリソースを解放します。

  • GET_PARAMETER—プレゼンテーションまたはストリームのパラメーターの値を、OR(オプションで指定された)を取得します。

  • SET_PARAMETER—プレゼンテーションまたはストリームで指定された、パラメーターの値を設定します。

RTSP ステータス コード

ステータス コードの 1 桁目は、応答クラスを定義します。

  • 1**: Informational — リクエストの受信、継続プロセス。

  • 2**: 成功

  • 3**: リダイレクト — リクエストを完了するためにさらにアクションを実行する必要があります。

  • 4**: クライアント エラー — リクエストに正しい構文が含まれているか、満たされません。

  • 5**: サーバー エラー — サーバーが明らかに有効なリクエストを満たしていけなけでした。

RTSP ヘッダー

RTSP ヘッダーは、以下のフィールドで構成されています。

  • CSeq—RTSP リクエストと応答のペアのシーケンス番号を指定します。指定されたシーケンス番号を含むすべての RTSP リクエストに対して、対応する応答の番号が同じものがあります。

  • Content-Length—メソッドの内容の長さが含まれます。つまり、最後のヘッダーの後に 2 つの F を指定した後になります。

  • TRANSPORT—使用するトランスポート プロトコルを示し、そのパラメーターを設定します。

  • SESSION—セットアップ応答でメディア サーバーが開始し、プレゼンテーションの URL で終了した RTSP セッションを示します。

RTSP ALG の会話とNAT

このトピックでは、一般的な RTSP ALG 会話の詳細について説明します。

一般的に、RTP パケットと RTCP パケットは双方向です。つまり、クライアントまたはサーバーが RTP セッションまたは RTCP セッションを開始する可能性があります。

図 3 は 、標準的な RTSP 会話でのパケット キャプチャの例を示しています。

図 3:RTSP ALG 会話 RTSP ALG Conversation

RTSP ALG は、標準 RTSP 対話で RTSP サンプル パケット キャプチャに対して次のアクションを実行します。

  1. セットアップと 200 の OK メッセージを監視します。

  2. ネゴシエートされたポートを受信します(この例では6543と8765)

  3. サーバーからクライアントへの UDP メディア データのピンホールを開きます。

  4. ペイロード内の IP アドレスを受信し、パケットが必要な場合NATを変換します。

    表 1 は 、RTSP ペイロード IP パケットを示NAT。

    表 1: RTSP ペイロード IP NAT
     

    転送(C->S)

    Reverse(S->C)

    ピンホール

    ペイロード IP 変換

    ペイロード ポート変換

    サービスNAT

    A/4321->B/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B/9876

    N/A

    N/A

    ソース NAT(IPvx)

    A/4321->B/554

    A'/P'<-B/554

    B/9876->A'/P'

    A/5678->B/9876

    - N/A (*)

    5678<->P'

    宛先NAT(IPvx)

    A/4321->B'/554

    A/4321<-B/554

    B/9876->A/5678

    A/5678->B'/9876

    B' -> B(**)

    N/A

    NAT64

    A/4321->B'/554

    A'/Q'<-B/554

    B/9876->A'/Q''

    A/5678->B'/9876

    B'(IPv6)->B(IPv4)

    5678<->Q'

    NAT46

    A/4321->B'/554

    A''/R'<-B/554

    B/9876->A'/R''

    A/5678->B'/9876

    B''(IPv4)->B(IPv6)

    5678<->R'

    1 では、次の文字と記号が使用されています。

    • A — RTSP クライアント IP アドレス

    • A'—RTSP クライアントの IPv4 または IPv6 アドレスの変換

    • A''—IPv4 アドレスの変換

    • A''—IPv6 アドレスの変換

    • B — RTSP サーバーの IP アドレス

    • B'—宛先ホストの前の RTSP サーバーの IP アドレスNAT

    • B'—IPv6 レルムの RTSP サーバー IP アドレス

    • B''— IPv4 レルムの RTSP サーバー IP アドレス

    • P'—Translated Port(4321 から変換)、RTSP クライアント

    • RTSP クライアントの P''—Translated Port(メッセージ ペイロードでは 5678 から変換)

    • Q'—Translated(IPv6 から IPv4)RTSP クライアントのポート(4321 から変換)

    • RTSP クライアントの Q''—Translated(IPv6 から IPv4 への)ポート(メッセージ ペイロード内の 5678 から変換)

    • RTSP クライアントの R'—Translated(IPv4 から IPv6)ポート(4321 から変換)

    • RTSP クライアントの R''—Translated(IPv4 から IPv6 への)ポート(メッセージ ペイロード内の 5678 から変換)

    • (*)— RTSP サーバーの IP アドレス B がペイロード メッセージに表示されます。変換する必要は

    • (**)—IP アドレス B' がクライアントからサーバーへのペイロード メッセージに表示されます。Bに変換する必要があります

例: RTSP ALG の設定

この例では、デバイス上のソース トラフィック プールを使用して RTSP トラフィックを通過NAT RTSP ALG をジュニパーネットワークスします。

要件

概要

この例では、RTSP ALG を監視し、別のデバイスの反対側に位置するクライアントとサーバー間でメディアを転送する RTSP トラフィックを監視ジュニパーネットワークスしています。

構成

RTSP ALG の有効化

CLI迅速な設定

この例のセクションを迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更し、コマンドを階層レベルで CLI にコピー アンド ペーストして、設定モードから を入力します。 [edit] commit

ソース プロトコル プール内のすべての IP アドレスにプロキシ ARP を設定しNAT RTSP ALG を有効にするには、次の手順に示します。

設定 commit モードから を入力します。

ソース プールNATルール セットとポリシーの設定

CLI迅速な設定

この例のセクションを迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更し、コマンドを階層レベルで CLI にコピー アンド ペーストして、設定モードから を入力します。 [edit] commit

設定 commit モードから を入力します。

注:

RTSP クライアントとサーバーの IP アドレスが分からない場合は、「da1」と「sa1」を「任意」に置き換えできます。

手順

次の例では、設定階層内のさまざまなレベルに移動する必要があります。その方法の詳細については、「 CLI ガイド 」の「 設定モードでの CLI エディターの使用 」を参照してください。

ソース ポリシー プールをNATするには、以下の手順に示します。

  1. ソース プールNAT作成します。

  2. アドレス セキュリティ ゾーン を設定します。

  3. ソース ルール セットNAT作成します。

  4. ポリシーを設定します。

結果

設定モードから、 および コマンドを入力して設定 show security nat を確認 show security policies します。出力結果に意図した設定結果が表示されない場合は、この例の設定手順を繰り返して設定を修正します。

デバイスの設定が完了したら、設定モード commit から を入力します。

RTSP ALG トレース オプションの設定

CLI迅速な設定

この例を迅速に設定するには、以下のコマンドをコピーして、テキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致する必要がある詳細情報を変更し、コマンドを階層レベルで CLI にコピー アンド ペーストして、設定モードから を入力します。 [edit] commit

手順

RTSP ALG トレース オプションを設定するには、次の手順に示します。

  1. RTSP ALG トレース オプションを有効にします。

  2. トレース操作から出力を受け取るファイル名を設定します。

  3. 最大トレース ファイル サイズを指定します。

  4. トレース出力レベルを指定します。

結果

設定モードから、 コマンドを入力して設定を確認 show security alg します。出力結果に意図した設定結果が表示されない場合は、この例の設定手順を繰り返して設定を修正します。

デバイスの設定が完了したら、設定モード commit から を入力します。

検証

設定が正常に機能されていることを確認します。

RTSP ALG の検証

目的

RTSP ALG が有効になっているか検証します。

アクション

動作モードから コマンドを入力 show security alg status します。

意味

出力には、RTSP ALG ステータスが次のように表示されます。

  • 有効 — RTSP ALG が有効になっている場合を示します。

  • 無効 — RTSP ALG が無効になっている状態を示します。

RTSP ALG コントロール セッションの検証

目的

制御セッションが作成され、すべての RTSP 制御およびデータ セッションが作成されます。

アクション

動作モードから コマンドを入力 show security flow session します。

意味
  • Session ID—セッションを識別する番号。この ID を使用して、ポリシー名や受信パケット数などのセッションの詳細を確認します。

  • Policy name—トラフィックを許可するポリシー名。

  • In:受信フロー(それぞれの送信元および宛先ポート番号を持つ送信元および宛先 IP アドレス、セッションは TCP、このセッションの送信元インターフェイスは ge-0/0/1.0 です)。

  • Out—リバース フロー(それぞれの送信元および宛先ポート番号を持つ送信元および宛先 IP アドレス、セッションは TCP、このセッションの宛先インターフェイスは fe-0/0/2.0 です)。

RTSP ALGフロー ゲート情報の検証

目的

TCP データ チャネル接続用にフロー ゲートが開いているか検証します。

アクション

動作モードから コマンドを入力 show security flow gate します。

意味

サンプル出力は、フロー ゲートが TCP データ チャネル接続用にオープンされている状態を示しています。

RTSP リソース マネージャー グループの検証

目的

RTSP ALG が使用するリソース マネージャー グループとアクティブ グループの総数を検証します。

アクション

動作モードから コマンドを入力 show security resource-manager group active します。

意味

サンプル出力は、RTSP ALG が使用するリソース マネージャー グループとアクティブ グループの総数を示しています。

RTSPリソース情報の検証

目的

RTSP ALG によって使用されるリソースとアクティブなリソースの総数を検証します。

アクション

動作モードから コマンドを入力 show security resource-manager resource active します。

意味

サンプル出力は、RTSP ALG によって使用されるリソースとアクティブなリソースの総数を示しています。