GGSN の概要
ゲートウェイ GPRS サポート ノード(GGSN)は、モバイル ユーザーから受信する受信データ トラフィックをサービス ゲートウェイ GPRS サポート ノード(SGSN)を介して変換し、関連ネットワークに転送します。また、その逆も同様です。GGSN と SGSN は共に GPRS サポート ノード(GSN)を形成します。
GGSN リダイレクションについて
Junos OSは、GPRSトンネリングプロトコル(GTP)トラフィックとゲートウェイGPRSサポートノード(GGSN)リダイレクションをサポートしています。GGSN(X)は、後続の GTP-C および GTP-U メッセージに対して異なる GGSN IP アドレス(GGSN Y および GGSN Z)を指定できる、作成 pdp コンテキスト応答を送信できます。その結果、SGSN は、後続の GGSN トンネリング プロトコル、制御(GTP-C)および GGSN トンネリング プロトコル、ユーザー プレーン(GTP-U)メッセージを X ではなく GGSN Y および Z に送信します。
GGSN プーリング シナリオの概要
一般パケット無線サービス(GPRS)トンネリング プロトコル(GTP)は、トンネル作成手順中に異なるゲートウェイ GPRS サポート ノード(GGSN)IP アドレスをサポートします。GPRS サポート ノード(SGSN)ローミングの提供をサポートする 2 つの GGSN プーリング シナリオがあります。
シナリオ 1 の GGSN プーリングについて
図 1 では、GTP トンネルの作成手順中に、パケット データ プロトコル(PDP)コンテキスト要求が SGSN A から GGSN B に送信されます。PDP コンテキスト要求メッセージを送信した後、GGSN D は要求情報を記録し、要求パケットの宛先 IP アドレスとは異なる宛先 IP アドレスを使用して SGSN A に応答メッセージを送信します。
このシナリオでは、中央ポイントによって 2 つの GTP パケット メッセージがサービス処理ユニット 1(SPU1)と SPU2 に送信され、メッセージは SPU1 と SPU2 によって個別に処理されます。セッションは、各 GTP パケットの SPU1 と SPU 2 で作成されます。SPU1は要求パケット情報を記録し、SPU2は応答パケット情報を記録します。
GGSN D から SGSN A に送信された PDP 応答メッセージは、リクエスト情報がないために破棄されます。したがって、GTP トンネルは確立されません。

SPU2 は、SPU1 からリクエスト情報を取得できません。
リモートSPUへのリクエスト情報のインストール
このシナリオでは、要求情報が不足しているため PDP 応答パケットがドロップされ、GTP トンネルが確立されていません。これは、要求情報を正しいSPUにインストールすることで解決できます。
図 2 では、トンネルを作成すると、応答パケットの GGSN IP アドレスが変更され、新しいセッションがトリガーされ、中央ポイントから別の SPU にメッセージが配信されます。
応答パケットは常にリクエストパケットの送信元アドレスにSPUに送信します。これにより、次の応答パケットのリモートSPUに要求情報をインストールするのに役立ちます。
リクエストパケットの処理中に、リクエスト情報を予測可能なSPU、HASH(req-src-ip)機能にインストールします。予想される SPU 番号(ハッシュ(10.1.1.1)= SPU2)が PDP リクエスト メッセージの送信元 IP アドレスによって計算された後、リクエスト情報は、Juniper Message Passing Interface(JMPI)を介してリモート SPU2 にインストールされます。

これで、要求情報がローカル SPU1 およびリモート SPU2 にインストールされるため、PDP 応答メッセージが許可されます。
シナリオ 1 の回避策
シナリオ1では、SGSN Aから送信されたPDPコンテキスト要求メッセージがJunos OSのデフォルトアプリケーション junos-gprs-gtp
に到達し、PDPコンテキストリクエストメッセージに対してGTPインスペクションが有効になりました。ただし、GGSN D から送信された PDP コンテキスト応答メッセージは、Junos OS のデフォルト アプリケーション junos-gprs-gtp
に到達できません。したがって、パケットは GTP モジュールによって検査されません。
回避策として、カスタムポリシーとアプリケーションを設定することで、PDPコンテキストレスポンスメッセージのGTPインスペクションを有効にする必要があります。 GGSN カスタム ポリシー/アプリケーションの設定を参照してください。
シナリオ 2 の GGSN プーリングについて
図 3 では、GTP トンネルの作成手順中に、パケット データ プロトコル(PDP)コンテキスト要求が SGSN A から GGSN B に送信されます。PDP コンテキスト要求メッセージを受信した後、GGSN B は PDP コンテキスト応答メッセージを SGSN A に送信します。PDP コンテキスト応答メッセージを受信すると、SGSN C と GGSN D の間に GTP-C トンネルが作成されます。その後、SGSN C は、リクエスト パケットの IP ヘッダーから異なる送信元と宛先の IP アドレスを使用して、更新 PDP コンテキストリクエスト メッセージを GGSN D に送信します。
シナリオ 2 では、SGSN A は最初の GTP コンテキスト要求を作成し、中央ポイントによって SPU に送信します。SPU1 のリクエスト パケットに対してセッションが作成されます。GGSN B から SGSN A に送信された応答パケットがセッションに正しく到達します。
SGSN Aから送信されたリクエストパケットは、制御IP 10.1.1.2でGTP-Cが確立され、データIP 10.1.1.3でGTP-Uが確立されていることを示しています。同様に、GGSN から送信された応答メッセージは、制御 IP 10.2.2.3 で GTP-C が確立され、データ IP 10.2.2.4 で GTP-U が確立されていることを示しています。
すべてのエンドポイントが確立された後、GTP-CおよびGTP-UトンネルがローカルSPU1で作成されます。ただし、SPU 2 でトンネルが確立されないため、SPU2 から受信した PDP 更新要求メッセージがドロップされます。

トンネル情報をリモートSPUにインストールする
シナリオ 2 では、更新要求パケットはトンネル情報が不足しているために破棄されます。これは、要求および応答パケットが処理された後、正しいSPUにトンネル情報をインストールすることで解決できます。応答パケットを受信する SPU は、ローカルまたはリモートの SPU にトンネル情報をインストールします。
図 4 では、トンネルが確立された後、制御メッセージが制御トンネル エンドポイントに送信されます。すべての制御メッセージの宛先 IP アドレスは、制御トンネルの GGSN エンドポイント IP アドレスにする必要があります。これにより、後続の制御メッセージに対して、事前にリモート SPU 番号を計算するのに役立ちます。
トンネル情報を予測可能な SPU にインストールします。制御トンネル GGSN エンドポイント IP によって SPU 番号が計算された後、トンネル情報は JMPI を介してリモート SPU にインストールされます。

これでトンネル情報がリモート SPU2 にインストールされるため、PDP 更新応答メッセージが許可されます。
例:GGSN カスタム ポリシーとアプリケーションの設定
この例では、ゲートウェイ GPRS サポート ノード(GGSN)カスタム ポリシーおよびアプリケーションを構成して GGSN プーリング シナリオ 1 をサポートする方法を示します。
要件
この例では、以下のハードウェアとソフトウェアのコンポーネントを使用しています。
SRX5400デバイス
A PC
Junos OS リリース 12.1X44-D10
構成
GGSN カスタム ポリシーの設定
概要
この例では、GTP プールが発生した場合にトラフィックを動作させる GTP トラフィックのセキュリティ ポリシーを設定する方法を示します。また、この例では、GTP インスペクションの有無にかかわらず、GTP 配信機能が有効になっている場合に、GTP トラフィック フローを正しく行います。ここでは、ミラーリングされた両方向のセキュリティポリシーを設定します。双方向では、同じアドレス オブジェクトと同じアプリケーションを使用します。通常の GTP アプリケーション junos-gprs-gtp に加え、reverse-junos-gprs-gtp という名前のカスタム リバース GTP アプリケーションを作成します。この逆 GTP アプリケーションは、送信元 UDP ポートのみが既知の GTP ポートである場合でも、GTP パケットをセキュリティ ポリシーに一致させます。こうすることで、すべての GTP トラフィックがポリシーに一致し、GTP トラフィックとして正しく処理されます。
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit します。
GTP インスペクションなしで GTP 配信機能が使用される場合、GTP プロファイルを作成しないで、アプリケーション サービス gtp プロファイルをセキュリティ ポリシーに適用しません。
set security address-book global address local_GSN_range 10.1.1.0/24 set security address-book global address remote_GSN_range 10.2.2.0/24 set security gtp profile GTP-Profile set security policies from-zone trust to-zone untrust policy t-u match source-address local_GSN_range set security policies from-zone trust to-zone untrust policy t-u match destination-address remote_GSN_range set security policies from-zone trust to-zone untrust policy t-u match application junos-gprs-gtp set security policies from-zone trust to-zone untrust policy t-u match application reverse-junos-gprs-gtp set security policies from-zone trust to-zone untrust policy t-u then permit application-services gtp-profile GTP-Profile set security policies from-zone untrust to-zone trust policy u-t match source-address remote_GSN_range set security policies from-zone untrust to-zone trust policy u-t match destination-address local_GSN_range set security policies from-zone untrust to-zone trust policy u-t match application reverse-junos-gprs-gtp set security policies from-zone untrust to-zone trust policy u-t match application junos-gprs-gtp set security policies from-zone untrust to-zone trust policy u-t then permit application-services gtp-profile GTP-Profile
手順
GGSN カスタム ポリシーを設定するには、
送信元アドレスを設定します。
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u match source-address local_GSN_range
宛先アドレスを設定します。
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u match destination-address remote_GSN_range
ポリシー・アプリケーションを設定します。
[edit security] user@host#set security policies from-zone trust to-zone untrust policy t-u match application junos-gprs-gtp user@host#set security policies from-zone trust to-zone untrust policy t-u match application reverse-junos-gprs-gtp
-
活動タイプを設定し、GTPプロファイル名を指定します。
[edit security]user@host# set security policies from-zone trust to-zone untrust policy t-u then permit application-services gtp-profile GTP-Profile
GTP インスペクションなしで GTP 配信機能が使用される場合:
[edit security] user@host# set security policies from-zone trust to-zone untrust policy t-u then permit
-
同じゾーンを再び設定し、セキュリティ ゾーンは信頼と信頼できない逆にします。
結果
設定モードから、 コマンドを入力して設定を show security policies
確認します。出力に意図した設定が表示されない場合は、この例の設定手順を繰り返して修正します。
[edit] user@host# show security policies from-zone trust to-zone untrust { policy t-u { match { source-address local_GSN_range; destination-address remote_GSN_range; application [ junos-gprs-gtp reverse-junos-gprs-gtp ]; } then { permit { application-services { gtp-profile GTP-Profile; } } } } } from-zone untrust to-zone trust { policy u-t { match { source-address remote_GSN_range; destination-address local_GSN_range; application [ reverse-junos-gprs-gtp junos-gprs-gtp ]; } then { permit { application-services { gtp-profile GTP-Profile; } } } } }
設定をコミットする前に、リバースGTPアプリケーションを設定する必要があります。
リバース GTP アプリケーションの設定
GTP 配信機能を使用する場合、フロー セッションは一方向として設定されます。一方向に設定するこの操作は、GTP ALG によって実行されます(GTP Inspection を使用していない場合でも)。このため、GTP ALG はすべての GTP トラフィックに適用される必要があります。
事前定義されたアプリケーション junos-gprs-gtp は、GTP ALG で構成されています。ただし、場合によっては、GTP トラフィックがこのアプリケーションと一致しない場合があります。これは、標準の GTP UDP ポートとは異なる送信元ポートが使用された場合のリターン トラフィックの場合になります。この場合、リバース セッション ウィングはランダムな宛先ポートを持ち、標準の GTP ポートを送信元ポートとして持つことができます。この場合、このリバース GTP トラフィックに GTP ALG が適用されるようにするには、すべての GTP セキュリティ ポリシーに以下の「リバース」GTP アプリケーションを追加する必要があります。
CLI クイックコンフィギュレーション
この例を迅速に設定するには、以下のコマンドをコピーしてテキスト ファイルに貼り付け、改行を削除し、ネットワーク設定に一致させる必要がある詳細情報を変更し、コマンドを 階層レベルの [edit]
CLI にコピー アンド ペーストして、設定モードから を入力 commit します。
set applications application reverse-junos-gprs-gtp-c term t1 alg gprs-gtp-c set applications application reverse-junos-gprs-gtp-c term t1 protocol udp set applications application reverse-junos-gprs-gtp-c term t1 source-port 2123 set applications application reverse-junos-gprs-gtp-c term t1 destination-port 0-65535 set applications application reverse-junos-gprs-gtp-u term t1 alg gprs-gtp-u set applications application reverse-junos-gprs-gtp-u term t1 protocol udp set applications application reverse-junos-gprs-gtp-u term t1 source-port 2152 set applications application reverse-junos-gprs-gtp-u term t1 destination-port 0-65535 set applications application reverse-junos-gprs-gtp-v0 term t1 alg gprs-gtp-v0 set applications application reverse-junos-gprs-gtp-v0 term t1 protocol udp set applications application reverse-junos-gprs-gtp-v0 term t1 source-port 3386 set applications application reverse-junos-gprs-gtp-v0 term t1 destination-port 0-65535 set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-c set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-u set applications application-set reverse-junos-gprs-gtp application reverse-junos-gprs-gtp-v0
検証
設定が正しく機能していることを確認します。
設定の検証
目的
GGSN のカスタム ポリシー設定が正しいことを確認します。
アクション
設定をコミットして終了します。動作モードから、 コマンドを show security policies
入力します。
サンプル出力
コマンド名
[edit] user@host# show applications application reverse-junos-gprs-gtp-c { term t1 alg gprs-gtp-c protocol udp source-port 2123 destination-port 0-65535; } application reverse-junos-gprs-gtp-u { term t1 alg gprs-gtp-u protocol udp source-port 2152 destination-port 0-65535; } application reverse-junos-gprs-gtp-v0 { term t1 alg gprs-gtp-v0 protocol udp source-port 3386 destination-port 0-65535; } application-set reverse-junos-gprs-gtp { application reverse-junos-gprs-gtp-c; application reverse-junos-gprs-gtp-u; application reverse-junos-gprs-gtp-v0; } [edit] user@host# commit and-quit commit complete Exiting configuration mode user@host> show security policies Default policy: deny-all Default policy log Profile ID: 0 Pre ID default policy: permit-all From zone: trust, To zone: untrust Policy: t-u, State: enabled, Index: 6, Scope Policy: 0, Sequence number: 1, Log Profile ID: 0 Source vrf group: any Destination vrf group: any Source addresses: local_GSN_range Destination addresses: remote_GSN_range Applications: junos-gprs-gtp, reverse-junos-gprs-gtp Source identity feeds: any Destination identity feeds: any Action: permit, application services From zone: untrust, To zone: trust Policy: u-t, State: enabled, Index: 7, Scope Policy: 0, Sequence number: 1, Log Profile ID: 0 Source vrf group: any Destination vrf group: any Source addresses: remote_GSN_range Destination addresses: local_GSN_range Applications: reverse-junos-gprs-gtp, junos-gprs-gtp Source identity feeds: any Destination identity feeds: any Action: permit, application services
この出力は、ポリシー設定の概要を示しています。