SIP サーバのグループの負荷分散
-
持続性設定なしの Call-ID ハッシュロードバランシング方式
-
最小接続またはラウンドロビンロードバランシング方式による Call-ID ベースのパーシステンス
-
最小接続またはラウンドロビン負荷分散方式によるルールベースのパーシステンス
サーバ開始トラフィック
ポリシーと式のサポート
TCP または UDP を介した SIP シグナリングトラフィックのロードバランシングの設定
-
SIP_UDP:SIP サーバが UDP を介して SIP メッセージを送信する場合に使用します。
-
SIP_TCP:SIP サーバが TCP 経由で SIP メッセージを送信する場合に使用します。
-
SIP_SSL:SSL または TLS を使用して TCP 経由の SIP シグナリングトラフィックを保護するために使用されます。Citrix ADCでは、次のモードがサポートされています。
-
クライアント、ADC、および SIP サーバ間のエンドツーエンドの TLS 接続。
-
クライアントと ADC 間の TLS 接続、および ADC と SIP サーバ間の TCP 接続。
-
クライアントとADC間のTCP接続、およびADCとSIPサーバ間のTLS接続。
-
| エンティティタイプ | 名前 | IPアドレス | ポート | サービスタイプ/プロトコル |
|---|---|---|---|---|
| 仮想サーバー | Vserver-LB-1 | 10.102.29.65 | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
| サービス | Service-SIP-1 | 192.168.1.6 | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
| Service-SIP-2 | 192.168.1.5 | 80 | SIP_UDP / SIP_TCP / SIP_SSL | |
| モニター | デフォルト | なし | 80 | SIP_UDP / SIP_TCP / SIP_SSL |
-
サービスを設定し、ロードバランシングする SIP トラフィックのタイプごとに仮想サーバを設定します。
-
SIP_UDP:UDP 経由で SIP トラフィックをロードバランシングする場合。
-
SIP_TCP:TCP 経由で SIP トラフィックをロードバランシングする場合。
-
SIP_SSL :TCP を介した SIP トラフィックのロードバランシングおよびセキュリティ保護を行う場合。
注:SIP_SSL を使用する場合は、必ず SSL 証明書とキーのペアを作成してください。詳細については、「証明書キーペアの追加」を参照してください。 -
-
サービスを仮想サーバーにバインドします。
-
デフォルト(tcp-default)以外のモニタでサービスの状態を監視する場合は、カスタムモニタを作成してサービスにバインドします。Citrix ADCには、 **SIP-UDPとSIP-**TCPの2つのカスタムモニタータイプがあり、SIP サービスを監視できます。
-
SIP_SSL 仮想サーバーを使用している場合は、SSL 証明書とキーのペアを仮想サーバーにバインドします。
-
展開環境でSIPサーバーのGateway としてCitrix ADCを使用している場合は、RNATを構成します。
-
SIP サーバから開始された SIP メッセージに RPORT を追加する場合は、SIP パラメータを設定します。
コマンドラインインターフェイスを使用して SIP トラフィックの基本的なロードバランシング設定を構成するには
add service <name> <serverName> (SIP_UDP | SIP_TCP | SIP_SSL) <port>
add service Service-SIP-UDP-1 192.0.2.5 SIP_UDP 80
add lb vserver <name> <serverName> (SIP_UDP | SIP_TCP | SIP_SSL) <port>
add lb vserver Vserver-LB-1 SIP_UDP 10.102.29.60 80
bind lb vserver <name> <serverName>
bind lb vserver Vserver-LB-1 Service-SIP-UDP-1
add lb monitor <monitorName> <monitorType> [<interval>]
bind lb monitor <monitorName> <ServiceName>
add lb monitor mon1 sip-UDP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200
bind monitor mon1 Service-SIP-UDP-1
bind ssl vserver <vServerName> -certkeyName <certificate-KeyPairName> -CA –skipCAName
bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1
add rnat <name> (<network> | (<aclname> [-redirectPort <port>]))
bind rnat <name> <natIP>@ …
show rnat
add rnat RNAT-1 192.168.1.0 255.255.255.0
bind rnat RNAT-1 -natip 10.102.29.50
add ssl certKey <certkeyName> -cert <string> [-key <string>]
bind ssl service <serviceName> -certkeyName <string>
add ssl certKey c1 -cert cert.epm -key key.ky
bind ssl service nsrnatsip-127.0.0.1-5061 -certkeyName c1
set lb sipParameters -rnatSrcPort <rnatSrcPort> -rnatDstPort<rnatDstPort> -retryDur <integer> -addRportVip <addRportVip> - sip503RateThreshold <sip503_rate_threshold_value>
UDP を介した SIP トラフィックのロードバランシングの設定例
add service service-UDP-1 10.102.29.5 SIP_UDP 80
Done
add lb vserver vserver-LB-1 SIP_UDP 10.102.29.60 80
Done
bind lb vserver vserver-LB-1 service-UDP-1
Done
add lb mon mon1 sip-udp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200
Done
bind mon mon1 service-UDP-1
Done
add rnat RNAT-1 192.168.1.0 255.255.255.0
Done
set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000
Done
TCP を介した SIP トラフィックのロードバランシングの設定例
add service service-TCP-1 10.102.29.5 SIP_TCP 80
Done
add lb vserver vserver-LB-1 SIP_TCP 10.102.29.60 80
Done
bind lb vserver vserver-LB-1 service-TCP-1
Done
add lb mon mon1 sip-tcp -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200
Done
bind mon mon1 service-TCP-1
Done
add rnat RNAT-1 192.168.1.0 255.255.255.0
Done
set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000
Done
TCP を介した SIP トラフィックのロードバランシングおよびセキュリティ保護の設定例
add service service-SIP-SSL-1 10.102.29.5 SIP_SSL 80
Done
add lb vserver vserver-LB-1 SIP_SSL 10.102.29.60 80
Done
bind lb vserver vserver-LB-1 service-SIP-SSL
Done
add lb mon mon1 sip-tCP -sipMethod REGISTER -sipuRI sip:mon@test.com -sipregURI sip:mon@test.com -respcode 200
Done
bind mon mon1 service-SIP-SSL
Done
bind ssl vserver Vserver-LB-1 -certkeyName CertKey-SSL-1
Done
add rnat RNAT-1 192.168.1.0 255.255.255.0
Done
set lb sipParameters -rnatSrcPort 5060 -rnatDstPort 5060 -retryDur 1000 -addRportVip ENABLED -sip503RateThreshold 1000
Done
GUI を使用して SIP トラフィックの基本的なロードバランシング設定を構成するには
-
\[ トラフィック管理\] > \[負荷分散\] > \[仮想サーバー\] に移動し、タイプ SIP_UDP、SIP_TCP、または SIP_SSL の仮想サーバーを追加します。
-
\[ サービス \] セクションをクリックし、タイプ SIP_UDP、SIP_TCP、または SIP_SSL のサービスを追加します。
-
(オプション)\[ Monitor \] セクションをクリックし、タイプ SIP-UDP または SIP-TCP のモニタを追加します。
-
モニターをサービスにバインドし、サービスを仮想サーバーにバインドします。
-
SIP_SSL 仮想サーバーを作成した場合は、SSL 証明書のキーペアを仮想サーバーにバインドします。\[証明書\] セクションをクリックし、証明書キーペアを仮想サーバーにバインドします。
-
ネットワークトポロジの必要に応じて RNAT を設定します。RNAT を設定するには、次の手順を実行します。
-
\[ システム\] > \[ネットワーク\] > \[ルート\] に移動します。
-
\[ルート\] ページで、\[ RNAT \] タブをクリックします。
-
詳細ウィンドウで、\[ RNAT の構成\] をクリックします。
-
\[RNAT の構成\] ダイアログボックスで、次のいずれかの操作を行います。
-
RNAT エントリを作成するための条件としてネットワークアドレスを使用する場合は、\[ ネットワーク \] をクリックし、次のパラメータを設定します。
-
ネットワーク
-
ネットマスク
-
-
拡張 ACL を RNAT エントリを作成するための条件として使用する場合は、\[ ACL \] をクリックし、次のパラメータを設定します。
-
ACL 名
-
リダイレクトポート
-
-
-
SNIPアドレスをNAT IPアドレスとして設定するには、手順7にスキップします。
-
一意の IP アドレスを NAT IP として設定するには、\[使用可能な NAT IP\] の一覧で、NAT IP として設定する IP アドレスを選択し、\[追加\] をクリックします。選択した NAT IP が \[構成された NAT IP\] リストに表示されます。
-
[Create] をクリックしてから、[Close] をクリックします。
カスタム証明書とキーのペアを使用する場合は、カスタム証明書とキーのペアを nsrnatsip-127.0.0.1-5061という名前のCitrix ADC内部サービスにバインドします。ペアをバインドするには、次の手順に従います。-
\[ トラフィック管理\] > \[負荷分散\] > \[サービス \] に移動し、\[内部サービス\] タブをクリックします。
-
nsrnatsip-127.0.0.1-5061を選択し、[ 編集]をクリックします。
-
\[証明書\] セクションをクリックし、証明書キーペアを内部サービスにバインドします。
-
-
SIP サーバが開始する SIP メッセージに RPORT を追加する場合は、SIP パラメータを設定します。\[ トラフィック管理\] > \[ロードバランシング \] に移動し、\[SIP 設定の変更\] をクリックし、さまざまな SIP パラメータを設定します。
SIP 式およびポリシーの例:クライアント要求で圧縮が有効になっている
add responder action sipaction1 respondwith q{"SIP/2.0 400 Bad Requestrnrn"}
Done
add responder policy sippol1
add responder policy sippol1 "SIP.REQ.METHOD.EQ("NEGOTIATE")&&SIP.REQ.HEADER("Compression").EXISTS" sipaction1