SIP プロトコルのアプリケーション層ゲートウェイ
-
RFC 3261
-
RFC 3581
-
RFC 4566
-
RFC 4475
SIP ALG のしくみ
-
インバウンドリクエスト
-
アウトバウンド応答
-
アウトバウンドリクエスト
-
インバウンド応答
-
プライベートクライアントに代わって LSN プール IP アドレスおよびポート。パブリックネットワークからこの IP アドレスおよびポートに到着するメッセージは SIP メッセージとして扱われます。
-
パブリッククライアントに代わってパブリック IP アドレスおよびポート。プライベートネットワークからこの IP アドレスおよびポートに到着するメッセージは SIP メッセージとして扱われます。
-
Via
-
Contact
-
Route
-
Record-Route
INVITE adam@10.102.185.156 SIP/2.0 Via: SIP/2.0/UDP 192.170.1.161:62914 From: eve@10.120.210.3 To: adam@10.102.185.156 Call-ID: a12abcde@10.120.210.3 Contact: adam@10.102.185.156 Route: <sip:netscreen@10.150.20.3:5060> Record-Route: <sip:netscreen@10.150.20.3:5060>
-
c= (接続情報)このフィールドは、セッションまたはメディアレベルで表示できます。次の形式で表示されます。c=
<network-type><address-type><connection-address>宛先 IP アドレスがユニキャスト IP アドレスの場合、SIP ALG は m= フィールドで指定された IP アドレスとポート番号を使用してピンホールを作成します。 -
m=(メディアアナウンス)このフィールドはメディアレベルに表示され、メディアの説明が含まれます。次の形式で表示されます。m=
<media><port><transport><fmt list> -
a=
(information about the media field)このフィールドは、セッションレベルまたはメディアレベルで次の形式で表示できます。a=<attribute>a=<attribute>:<value>
| インバウンドリクエスト(パブリックからプライベートへ) | 変更後: | なし |
| From | なし | |
| Call-ID | なし | |
| Via | なし | |
| Request-URI | LSN プールの IP アドレスをプライベート IP アドレスに置き換える | |
| Contact | なし | |
| Record-Route | なし | |
| Route | なし | |
| アウトバウンド応答(プライベートからパブリックへ) | 変更後: | なし |
| From | なし | |
| Call-ID | なし | |
| Via | なし | |
| Request-URI | プライベート IP アドレスを LSN プール IP アドレスに置き換える | |
| Contact | プライベート IP アドレスを LSN プール IP アドレスに置き換える | |
| Record-Route | なし | |
| Route | なし | |
| アウトバウンドリクエスト(プライベートからパブリックへ) | 変更後: | なし |
| From | なし | |
| Call-ID | なし | |
| Via | プライベート IP アドレスを LSN プール IP アドレスに置き換える | |
| Request-URI | なし | |
| Contact | プライベート IP アドレスを LSN プール IP アドレスに置き換える | |
| Record-Route | なし | |
| Route | なし | |
| インバウンド応答(パブリックからプライベートへ) | 変更後: | なし |
| From | なし | |
| Call-ID | なし | |
| Via | LSN プールの IP アドレスをプライベート IP アドレスに置き換える | |
| Request-URI | なし | |
| Contact | パブリック IP アドレスを保持する(存在する場合) | |
| Record-Route | なし | |
| Route | なし |
SIP ALG の制限事項
-
SDP ペイロードだけがサポートされます。
-
以下はサポートされていません:
-
マルチキャスト IP アドレス
-
暗号化 SDP
-
SIP TLS
-
完全修飾ドメイン名変換
-
SIP レイヤ認証
-
TD/パーティショニング
-
マルチパートボディ
-
IPv6 ネットワーク経由の SIP メッセージ
-
折り畳み
-
テスト済みの SIP クライアントとプロキシサーバ
-
SIPクライアント: X-Lite、Zoiper、Ekiga。Avaya
-
プロキシサーバー: openSIPS
LSN SIP シナリオ:プライベートネットワーク外の SIP プロキシ(パブリックネットワーク)
SIP クライアント登録
発信コール
着信コール
コール終了
同じネットワーク内のクライアント間の呼び出し
その他の LSN SIP シナリオ:プライベートネットワーク内の SIP プロキシ
-
プライベート SIP プロキシのスタティック LSN マッピングを設定します。詳細については、 スタティック LSN マップの設定を参照してください。NAT ポートが SIP ALG プロファイルで設定されているポートと同じであることを確認します。
-
非武装地帯(DMZ)内に SIP プロキシサーバを設定します。
-
シナリオ 1:プライベートネットワーク内の SIP クライアントが、同じネットワーク内の SIP プロキシサーバに登録されます。SIP クライアントと SIP プロキシサーバが同じネットワーク内にあるため、ALG 操作は実行されません。
-
シナリオ 2:パブリックネットワーク内の SIP クライアントが、プライベートネットワーク内の SIP プロキシサーバに登録されます。パブリックSIPクライアントからのREGISTERメッセージは、アプライアンス上で構成された静的LSNマッピングを使用してCitrix ADCアプライアンスに送信され、アプライアンスはさらにSIP操作のためのピンホールを作成します。
-
シナリオ 3:SIP 着信コールフロー。SIP 着信コールは、外部ネットワークから内部ネットワークへの SIP INVITE メッセージによって開始されます。Citrix ADCアプライアンスは、外部ネットワークにあるSIPクライアントC2から、Citrix ADCアプライアンスで設定された静的LSNマップを介して、INVITEメッセージを受信します。アプライアンスはピンホールを作成し、INVITE メッセージを SIP プロキシに転送します。次に、SIP プロキシは INVITE メッセージを内部ネットワークの SIP クライアント C1 に転送します。その後、SIPクライアントC1は180および200のOKメッセージをSIPプロキシに送信します。SIPプロキシは、Citrix ADCアプライアンスを介してSIPクライアントC2にメッセージを転送します。 内部 SIP クライアント C1 から送信された 200 OK 応答メッセージが Citrix ADC に到着すると、SIP ALG は Via、Contact、Route、および Record-Route SIP ヘッダーフィールド、および SDP フィールドの IP アドレスとポート番号に対して NAT を実行し、それらを LSN プールの IP アドレスとポート番号に置き換えます。次に、SIP ALG は応答メッセージを SIP クライアント C2 に転送し、発信方向にピンホールを開いて、さらの SIP 通信を行います。
監査ログのサポート
-
タイム・スタンプ
-
SIP メッセージのタイプ(SIP 要求など)
-
SIP クライアントの送信元 IP アドレスおよびポート
-
SIP プロキシの宛先 IP アドレスおよびポート
-
NAT IP アドレスとポート
-
SIP メソッド
-
シーケンス番号
-
SIP クライアントが登録されているかどうか
-
発信者のユーザー名およびドメイン
-
受信者のユーザー名とドメイン
07/19/2013:09:49:19 GMT Informational 0-PPE-0 : default ALG ALG_SIP_INFO_PACKET_EVENT 169 0 : Infomsg: "SIP request" - Group: g2 - Call_ID: NTY0YjYwMTJmYjNhNDU5ZjlhMmQxOTM5ZTE3Zjc3NjM. - Transport: TCP - Source_IP: 192.169.1.165 - Source_port: 57952 - Destination_IP: 10.102.185.156 - Destination_port: 5060 - Natted_IP: 10.102.185.191 - Natted_port: 10313 - Method: REGISTER - Sequence_Number: 3060 - Register: YES - Content_Type: - Caller_user_name: 156_pvt_1 - Callee_user_name: 156_pvt_1 - Caller_domain_name: - Callee_domain_name: -
07/19/2013:09:49:19 GMT Informational 0-PPE-0 : default ALG ALG_SIP_INFO_PACKET_EVENT 170 0 : Infomsg: "SIP response" - Group: g2 - Call_ID: NTY0YjYwMTJmYjNhNDU5ZjlhMmQxOTM5ZTE3Zjc3NjM. - Transport: TCP - Response_code 200 - Source_IP: 10.102.185.156 - Source_port: 5060 - Destination_IP: 192.169.1.165 - Destination_port: 57952 - Natted_IP: 10.102.185.191 - Natted_port: 10313 - Sequence_Number: 3060 - Content_Type: - Caller_user_name: 156_pvt_1 - Callee_user_name: 156_pvt_1 - Caller_domain_name: - Callee_domain_name: -
SIP ALG の設定
-
LSN アプリケーションプロファイルを追加するときに、次のパラメータを設定します。
-
IP プーリング = PAIRED
-
アドレスとポートのマッピング = エンドポイント独在
-
フィルタリング = エンドポイントインデペンデント
-
add lsn appsprofile app_tcp TCP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
-
SIP ALG プロファイルを作成し、送信元ポート範囲または宛先ポート範囲を定義していることを確認します。
add lsn sipalgprofile sipalgprofile_tcp -sipsrcportrange 1-65535 -sipdstportrange 5060 -openViaPinhole ENABLED -openRecordRoutePinhole ENABLED –sipTransportProtocol TCP
-
LSN グループの作成中に、SIP ALG = ENABLED を設定します。
add lsn group g1 -clientname c1 -sipalg ENABLED
-
SIP ALG プロファイルを LSN グループにバインドします。
add lsn pool p1
Done
bind lsn pool p1 10.102.185.190
Done
add lsn client c1
Done
bind lsn client c1 -network 192.170.1.0 -netmask 255.255.255.0
Done
add lsn appsprofile app_tcp TCP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
Done
add lsn appsprofile app_udp UDP -ippooling PAIRED -mapping ENDPOINT-INDEPENDENT -filtering ENDPOINT-INDEPENDENT
Done
bind lsn appsprofile app_tcp 1-65535
Done
bind lsn appsprofile app_udp 1-65535
Done
add lsn sipalgprofile sipalgprofile_tcp -sipdstportrange 5060 -openViaPinhole ENABLED -openRecordRoutePinhole ENABLED –sipTransportProtocol TCP
Done
add lsn sipalgprofile sipalgprofile_udp -sipdstportrange 5060 -openViaPinhole ENABLED -openRecordRoutePinhole ENABLED -sipTransportProtocol UDP
Done
add lsn group g1 -clientname c1 -sipalg ENABLED
Done
bind lsn group g1 -poolname p1
Done
bind lsn group g1 -appsprofilename app_tcp
Done
bind lsn group g1 -appsprofilename app_udp
Done
bind lsn group g1 -sipalgprofilename sipalgprofile_tcp
Done
bind lsn group g1 -sipalgprofilename sipalgprofile_udp
Done