SIP (Session Initiation Protocol) は、VoIP およびインスタント メッセージング アプリケーションのセッションのシグナリングと制御に使用される通信プロトコルです。SIP は、ユーザー間のユニキャストまたはマルチキャスト セッションの確立、および音声通話またはビデオ通話の設定と終了にも使用されます。
SIP プロトコルは、基盤となるトランスポート プロトコルに依存せず、TCP プロキシと UDP プロキシを使用した SIP ロード バランシングをサポートします。安全な転送のため、SIP は TLS を使用して暗号化されます。SIP の SDP (Session Description Protocol) はメディアフォーマットを指定します。メディア ストリームは、RTP (Real-time Transport Protocol) または SRTP (Secure RTP) のいずれかを使用します。
ユーザー エージェント (UA) は、SIP メッセージの作成または受信に使用される論理ネットワーク エンドポイントです。ほとんどの実装では、セットアップにはユーザー エージェントとプロキシ(SBC (Session Border Controller) など)が伴います。
SIP クライアントは、次の 4-way メカニズムを使用して サーバに登録します。
SIP クライアントである UA クライアント (UAC) が要求を開始します。要求は、常に、
REGISTER
、INVITE
、BYE
などのキーワードです。UA サーバ (UAS) はチャレンジで応答します。
クライアントは要求とトークンを使用して応答します(パブリック キーまたはプライベート キーの暗号化モデルに応じて)。
サーバはトークンを使用して認証し、
OK
を使用して応答します。
SIP および関連する呼び出しフローの詳細については、「SIP RFC」を参照してください。
以降のセクションでは、SIP アプリケーションをサポートするために NSX Advanced Load Balancer で必要な構成について説明します。
NSX Advanced Load Balancer と SIP アプリケーションとの統合
以下に、ユーザー エージェント (UA1) が別のユーザー エージェント (UA2) との呼び出しを確立する際の呼び出しワークフローを示します。
UA1 ——> (INVITE) ——–> プロキシ
プロキシ —-> (100 TRYING) —-> UA1
プロキシ —-> (INVITE) ——–> UA2
UA2 ——> (180 RINGING) —> プロキシ
プロキシ —-> (180 RINGING) —> UA1
UA2 ——> (Off hook) ——> プロキシ
UA2 ——> (200 OK) ——–> プロキシ
プロキシ —-> (200 OK) ——–> UA1
NSX Advanced Load Balancer はプロキシと付加価値サービス (VAS) との間に展開されます。SIP 要求と応答はパーサを介して送信され、呼び出し ID はハッシュされます。NSX Advanced Load Balancer はサーバの健全性もモニターするため、招待を再送信する必要はありません。
サポートされている機能
現在、SIP 実装は、アクセス権なしの OpenStack と VMware クラウドで検証済みですが、特定のクラウド タイプに制限されるものではありません。この統合でサポートされる機能は次のとおりです。
IPV4 を介した SIP のロード バランシング。
UDP との相互運用性。これは、CSCF およびアプリケーション サーバとの相互運用性に変換されます。
UDP プロキシ ネットワーク プロファイル。
SIP 仮想サービス アプリケーション プロファイル。これは、UDP プロキシ ネットワーク プロファイルまたは TCP プロキシ ネットワーク プロファイルを使用します。
UDP プロキシ経由の SIP 仮想サービス。
一意の呼び出し ID に基づくコンシステント ハッシュ ロード バランシング。
SIP サーバの障害を検出するための SIP 健全性モニター。
SIP 関連の構成は、現在 CLI でのみサポートされています。
制限事項
現在、SIP について、以下の機能はサポートされていません。
SIP 仮想サービスおよびアプリケーション プロファイルでのクライアント IP アドレスの保持
インライン健全性監視
SIP TLS および暗号化
ルート オプションの記録
IPv6