負荷分散して高可用性のSIPおよびPBXサービスを作成する方法

投稿者 Zevenet | 6年2019月XNUMX日

概要

VoIPの の略 ボイスオーバーインターネットプロトコルこれは、インターネットを介して行われた電話を網羅していますが、それを現実のものにするためのものです。 SIP プロトコルが定義されました。

SIP or セッション開始プロトコル 通話(音声とビデオ)を含むマルチメディア通信セッションを管理するプロトコルです。 SIP その特定のプロトコルの1つです。 VoIPの 依存している。

メディア通信セッションでは、 SIP 音声通話またはビデオ通話の開始と終了などのシグナリング操作は、プロトコルが担当します。 そのコミュニケーション SIP 確立できるのは、2つのパーティによるユニキャスト、または複数のパーティによるマルチキャストです。 を通って SIP プロトコル、既存の呼び出しは変更することができます、例えば、他のメンバーを招待すること。 の SIP 基盤となるトランスポート層プロトコルとは無関係に設計されており、次のものと共に使用できます。 UDP, TCP, SCTP (ストリーム制御伝送プロトコル). SIP メディアフォーマットを指定することができて、そしてその後メディアを運ぶことができる他のプロトコルと一緒に働くかもしれません SIP 通話を設定します。 電話通話のルーティングも可能です。 PBX 外部ネットワークへの電話システム PBX (構内交換)は、いくつかの内部装置を備えた民間組織に設置されている電話交換システムです。

このガイドは、次のような一般的なSIPサービスを設定するのに役立ちます。 アスタリスク, Websphere SIPプロキシ, SIPファウンドリ, エラスティックス, FreeSWITCH, VoicetronixによるOpenPBX, PBXInAFlash, FreePBX, OpenSIP, カマイリオ, 3CX, オフィスSIPサーバーなど、高可用性で拡張可能な状態にあるそれらすべて。

SIPプロトコルはどのように機能しますか?

ボニーとクライドのXNUMX人の発信者がいるとしましょう。 ボニーはクライドを呼んでいます。 まず、ボニーとクライドの両方の電話をSIPサーバーに登録する必要があります。 クライアントとレジストラサービス間の登録プロセスは次のとおりです。

1. ソフトフォンクライアントは レジスタ SIPサーバーへのメッセージ。
2. SIPサーバーは次のように応答します。 401未承認 ヘッダを含むメッセージ WWW認証.
3. その後、クライアントは レジスタ SIPサーバーへの要求 承認 ヘッダ。
4. 認証が正しければ、SIPサーバーは 200 OK クライアントへの応答 この段階で、クライアントはコールを受信し開始することができます。

この登録プロセスは、この記事で提案しているプロキシロードバランサーからも高可用性を実現します。

BonnieとClyde間の通話がどのように実行されるかをよりよく理解するために、プロトコルで定義されているステップを以下に参照してください。

1. BonnieはClydeに電話をかけることによって通話を開始します。 招待 メッセージ
2. SIPサーバー A 合格 招待 受信側SIPサーバーへのメッセージ B
3. 一方、SIPサーバー A 返信 100トライ ボニーへのメッセージ
4. SIPサーバー B 合格 招待 クライドへのメッセージ
5. 一方、 100トライ SIPサーバーへのメッセージ A
6. クライドのデバイスは現在 180リング それをSIP Serverに送信します。 B
7. SIPサーバー B これを送る 180リング SIPサーバーへ A
8. SIPサーバー A これを伝える 180リング ボニーへ
9. クライドは電話を受けて送ります 200 OK メッセージ
10. Visme そしてそれを伝えます 200 OK SIPサーバーへのメッセージ B
11. Visme SIPサーバー A これを伝える 200 OK ボニーへのメッセージ
12. Visme BonnieとClydeの間に接続が確立され、Bonnieが直接送信します。 ACK クニーに、そしてボニーとクライドの両者は互いに直接通信します。
13. Visme どちらかの相手が通話から切断されます。 BYE
14. Visme 相手は確認を返送します 200 OK

SIPロードバランシング環境

SIPプロトコルの詳細を知っているので、この記事で達成したいシナリオは、登録されているより多くのソフトフォンを処理し、より多くのコールを管理できるようにSIPサーバーを拡張できることです。 以下の図は、データセンターのサービスアーキテクチャを示しています。

それを設定する方法を以下に見てみましょう。

SIPロードバランシング設定

仮想サービスを設定する前に、専用のサービスを作成する必要があります。 仮想IPこのIPアドレスは受信できるようになります TCP or UDP フレーム。 それを達成するためには、 ネットワーク>仮想インターフェイス。 次にクリック アクション>仮想インターフェイスの作成.

次に、 親インターフェース、インターフェース お名前 とそのIP アドレス:

SIPサービスで使用される標準ポートにSIP仮想サービスを簡単に設定する時が来ました TCP および UDP 5060 or 5061。 港 5060 暗号化されていないシグナリングトラフィックとポートによく使用されます。 5061 で暗号化されたトラフィックに通常使用されます。 TLS (トランスポート層セキュリティ).

Zevenet Load Balancerを使用すると、この構成を達成して、 LSLB 農場のプロフィール L4xNAT ポート付き 5060 or 5061。 仮想サービスでは、ポートが仮想サービスにリストされていれば、暗号化通信と非暗号化通信の両方が同時にサポートされます。

そうするには、に行く LSLB>農場 以下に示すように、新しいものを作成します。

作成後、をクリックしてください 高機能選択 SIP as プロトコルの種類。 この段階で、登録とユーザからの呼び出しを適切に負荷分散するために、現在の仮想サービスでレイヤ4 SIPプロキシが有効になります。 また、お勧めします NAT as NATタイプ 焙煎が極度に未発達や過発達のコーヒーにて、クロロゲン酸の味わいへの影響は強くなり、金属を思わせる味わいと乾いたマウスフィールを感じさせます。 DTA クライアントのソースIPを取得するためにも使用できます。 最後に、をクリックします アップデイト 変更を加えるため。

最後に、バックエンドを設定し、をクリックしてください。 サービスそしての下で バックエンド セクションをクリック アクション>バックエンドを追加.

記入する IP, ポート, 重量 とをクリックしてください セールで節約 変更を適用するためのアクション。

サービスを拡張するために必要な数のSIPサーバーを追加します。 あなたは今使用することができます 仮想IP 高可用性、信頼性および拡張性のある方法で、ソフトフォンおよびクライアントのSIP仮想サービスとして。

高度なSIPヘルスチェック

最新のZevenetリリースでは、ロードバランサーがバックエンドとして設定されているすべてのSIPサーバーに対してダミーのSIP呼び出しを実行して、SIP読み取りサービスが正しく実行されていることを確認するSIPサービス専用の詳細ヘルスチェックを使用できます。

まだ作成されていない場合 check_sip Farm Guardianコマンドを実行してから、 モニタリング> Farmguardian 以下に示すセクション。

理解を深めるために、 check_sip コマンド、ヘルスチェッカーのヘルプを参照してください。

usage: ./check_sip [ options ] FROM TO
Makes SIP call from FROM to TO, sends voice from multiple
files to peer. Content in files need to be PCMU/8000 and
could be recorded with samples/invite_and_recv.pl

Options:
  -d|--debug                   Enable debugging
  -h|--help                    Help (this info)
  -P|--proxy host[:port]       use outgoing proxy, register there unless registrar given
  -R|--registrar host[:port]   register at given address
  -S|--send filename           send content of file, can be given multiple times
  -L|--leg ip[:port]           use given local ip[:port] for outgoing leg
  -T|--timeout T               timeout and cancel invite after T seconds, default 30
  --username name              username for authorization
  --password pass              password for authorization

Examples:
  ./check_sip -T 10 -S welcome.data -S announce.data sip:30@192.168.178.4 sip:31@192.168.178.1
  ./check_sip --username 30 --password secret --proxy=192.168.178.3
     -S holy.data sip:30@example.com 31

私たちの例を考えると、私たちは私たちの健康チェッカーをで定義することができます。 農場の保護者 以下に示すセクション。

./check_sip -T 9 -S welcome.data -S announce.data sip:Bonnie@192.168.56.201 sip:Clyde@HOST

トークンHOSTは、ファーム内に設定されているすべてのSIPバックエンドで実行時に変更されます。

SIPアプリケーション配信クラスタリング

Zevenetは、2つの冗長ユニット間のクラスタリングサービスを使用して、SIPスケーラブル配信サービスを高可用性に設定する機能も提供します。 別のZevenetユニットを配置して参照してください。 システム>クラスタ ハイアベイラビリティでそれを設定するためにセクション。

SIPセキュリティの強化

ブラックリスト、リアルタイムブラックホールリスト、DoS保護などを可能にするIPDSモジュールを使用して、パブリックSIPサービスにセキュリティレイヤを適用するのは非常に簡単です。 を参照してください IPDS パブリックSIPサービスの保護についての詳細を得るためにメインメニューからのセクション。

VoIP電話クライアントの設定

SIPサービスを拡張し、高可用性をセットアップし、セキュリティを強化する準備ができたら、ソフトフォンとクライアントで新しいサービスを構成します。 この場合、仮想サービスのVIPアドレスまたはパブリックIPアドレスに解決されるDNSエントリを設定することをお勧めします。 そのような DNS or FQDN 仮想SIPサービスの名前は、実際のSIP IPアドレスを設定するのではなく、クライアント側で使用される名前になります。 この構成は、クライアントを簡単かつ自動的に負荷分散するための柔軟性を提供します。

一方、SIPサーバーがダウンしていることが検出された場合、クライアントはそのことを通知してすぐに再接続を再試行するため、より通常の登録を強制するために、クライアント側のキープアライブタイムアウトを短くすることをお勧めしますもう一人。

今、あなたのSIPスケーラブルサービスを楽しんでください!

上の共有:

GNU Free Documentation Licenseの条項に基づくドキュメンテーション。

この記事は役に立ちましたか?

関連記事