この文章では、Microsoft Azureクラウド内のサイトで高可用性(HA)を提供するために、2つのvSocketを持つサイトをどのように構成するかを説明します。
Azure での高可用性 vSocket の概要
Azureサイト内のvSocketの冗長性を提供するために、同じAzure仮想ネットワーク(VNet)内に2つのvSocketを配置して、高可用性構成で動作するように設定します。 vSockets はアクティブ/パッシブモードで動作し、LANリンクは vSockets 間の生存確認メッセージを送信するために使用されます。
Azure HA 構成ではフローティングIPアドレスが使用され、これはアクティブな vSocket の LAN インターフェイスにバインドされます。 フェイルオーバーが発生すると、フローティングIPはセカンダリvSocketLANインタフェースに移動します。 ルートテーブルは、このフローティングIPをCato Cloud経由で送信されるトラフィックのネクストホップとして使用します。
Azure HAは複数の可用性ゾーンをサポートします。 または、可用性セットを使用して、Azure内で両方のvSocketが異なるフォールトと更新ドメインにデプロイされていることを確認することができます。
Azure HA 仮想ネットワークのサンプル図
以下のネットワーク図は、AzureサイトのサンプルHA vSocket設定を示しています。

プライマリとセカンダリのvSocketは同じVNetにあります。 LANインタフェースは10.102.2.10(プライマリ)および10.102.2.11(セカンダリ)です。 フローティングIPは10.102.2.200で、LANルートテーブルの次のホップとして構成されています。
このネットワークの標準のトラフィックの流れは次の通りです:
VM1はインターネットにトラフィックを送信します。
LAN ルーティングテーブルによると、トラフィックの次のホップは10.102.2.200で、これはプライマリvSocketのLANインターフェースのセカンダリIPアドレスとして設定されます。
プライマリvSocketはアクティブで、トラフィックをWANインターフェース経由でインターネットに送信します。
Azure vSocket フェイルオーバーワークフロー
これは、プライマリアクティブvSocketがAzureサイト内のセカンダリスタンバイにフェイルオーバーする場合のワークフローです。 以下の図は、フェイルオーバーを説明しており、番号は以下の手順のアイテムに対応しています:

通常の運用では、プライマリvSocketがアクティブ役割を持ち、セカンダリvSocketはスタンバイ役割を持ちます。
フローティングIP(LANインタフェース上のセカンダリIPアドレス)はプライマリvSocketにアタッチされています(アイテム1a)。
LANルートテーブルのプレフィックスはフローティングIPを次のホップとして使用します(アイテム1b)。
プライマリ(アクティブ)vSocketがダウンします(アイテム2)。
セカンダリ(スタンバイ)vSocketは、プライマリvSocketからのキープアライブパケットの受信を停止します(アイテム2a)。
セカンダリvSocketが各vSocketのLANインタフェースに次の変更を加えるためにAzure APIゲートウェイにAPIコールを発行します:
プライマリvSocketのLANインタフェースからフローティングIP(セカンダリアドレス)を削除します(アイテム3a)。
セカンダリvSocketのLANインタフェースのセカンダリアドレスとしてフローティングIPを追加します(アイテム3b)。
セカンダリvSocketは現在アクティブなvSocketであり、双方向でサイトにトラフィックを流します(アイテム4)。
プライマリvSocketが回復すると、アクティブな役割を再開し、セカンダリvSocketは待機状態に戻ります。 (プライマリvSocketは、フローティングIPをLANインターフェイスのセカンダリIPアドレスとして戻すためにAPIコールを発行します。)
注意:
Azureインフラストラクチャに関連する理由により、ネットワークインターフェースの構成更新には最大120秒かかり、冗長化フェイルオーバーで遅延が発生する可能性があります
Azure 高可用性の前提条件
Azureの高可用性は、ソケットバージョン11.0以上を使用しているvSocketsをサポートしています
CatoリポジトリからAzure冗長化設定スクリプトをダウンロードし、SASを使用してAzure vSocket VHDイメージをコピーを参照してください
両方のvSocketは同じAzure VMインスタンスタイプである必要があります(例えば、D2s v4)
Azure vSocketは、パブリックDNSサーバーへのアクセスが必要です。 VNetがプライベートDNSサーバーのみを使用するように設定されていないことを確認してください
注: VNETで使用されるvSocketのDNSを変更した後、vSocket VMを再起動する必要があります。VNetとvSocket VM用に別々のリソースグループを使用している場合、ストレージコンテナブロブがVMおよびVHDイメージと同じリソースグループにあることを確認してください
各vSocketには次のリソースへのアウトバウンド接続が必要です:
VirtualNetwork - DNSおよびHTTPプロトコル
Azureリソースマネージャー - HTTPS
管理インターフェースは公開DNSサーバー(設定されていればUDP/53)およびmanagement.azure.com(TCP/443)へのインターネットアクセスが必要です。
高可用性を設定するための管理者権限の設定
このセクションでは、vSocket HAを構成するための管理者のための正しいCatoおよびAzure権限について説明します。 正しい権限がない場合、Cato HAスクリプトはvSocket間でHA構成を作成できません。
Cato管理画面のための管理者権限とAzureのための所有者権限が必要です
AzureでPrivileged Identity Management (PIM) または任意のアイデンティティ トークン メカニズムを使用している場合は、HAスクリプトを実行する前に、必要なリソースグループに最大特権を割り当ててください
複数のAzureリソースグループがある場合、両方のリソースグループの所有者権限が必要です
Azure 高可用性構成のための可用性ゾーンの使用
アプリケーションとデータをAzureデータセンターの障害から保護するため、HA構成スクリプトの一部として各VMを異なるAzureアベイラビリティゾーンに割り当てることができます。 HAスクリプトを実行する前にアベイラビリティゾーンを作成してください。
異なるアベイラビリティセットを使用している異なるアベイラビリティゾーンにVMを割り当てることはできません。
Note:
注意: Azureはアベイラビリティゾーン(およびその他のゾーン冗長構成)に対して標準SKU公開IPアドレスのみをサポートしています。 vSocket冗長化構成をデプロイする前に、IPアドレスに対して適切なSKUを構成したことを確認してください
次のネットワーク図は、Azureサイトの異なるアベイラビリティゾーンを持つサンプルのHA vSockets構成を示しています。

既知の制約
Socket バージョンが v14.0 より前の場合、プライマリ vSocket LAN IP が BGP ピアリング用に使用されます。 これは、セカンダリ vSocket へのフェイルオーバーをサポートしません。
v14.0から始まる vSocket HA 構成では、フローティングIPが BGP ピアリングに使用されます 隣接するBGPルーターでフローティングIPを定義してください。
Azureインフラストラクチャに関連する理由により、ネットワークインターフェースの構成更新には最大120秒かかり、冗長化フェイルオーバーで遅延が発生する可能性があります
既存の構成の場合、仮想マシンを可用性ゾーンに割り当てるには、新しい仮想マシンを作成し、vSockets を再展開する必要があります(詳しくは、マーケットプレイスからAzure vSocketをデプロイするをご覧ください)
Azure で vSocket 高可用性のデプロイ
Azureの仮想マシン(VMs)上でvSocketをデプロイし、サイトのプライマリおよびセカンダリvSocketとします。
Azure HAの構成では、フェイルオーバー中にAPI呼び出しがあり、スタンバイvSocketのLANインターフェースに自動的にフローティングIPが追加され、LANインターフェースに設定された設定が削除されます(LAN NSGを含む)。 vSocketのLANインターフェースに手動でフローティングIPを構成しないでください。 Cato HA スクリプトは、フローティング IP をプライマリ vSocket LAN インターフェイスに割り当て、次に vSockets を再起動します(以下のステップ 7 と 8 を参照してください)。
これは、vSocket HA構成をデプロイするプロセスの高レベルワークフローです。
新しいサイトの場合、Cato管理画面で新しいサイトを作成し、プライマリvSocketをデプロイするためにCato Azure vSocketスクリプトを実行します。 (既存のサイトの場合は、このステップをスキップします。)
サイトを作成した後、Cato管理画面はそれに固有のシリアル番号 (S/N) を割り当てます。 シリアル番号をテキストファイルにコピーして貼り付けることをお勧めします。
プライマリvSocketがバージョン11.0以上のソケットバージョンで動作していることを確認してください。
Cato管理画面で、セカンダリvSocketをサイトに追加します。
Cato Azure vSocketスクリプトでセカンダリvSocketをデプロイします。 両方のvSocketsは同じVNet内にある必要があります。
セカンダリvSocketの作成に必要な仮想リソースは、WAN、LAN、MGMTサブネット用の新しいネットワークインターフェースのみです。
プライマリとセカンダリの両方のvSocketがCato Cloudに接続されていることを確認してください。
Cato HAスクリプトを実行して、vSocketsにHA構成を適用します。
プライマリとセカンダリのvSocketsを再起動します。
Azureのルートテーブルを更新して、次のホップとしてフローティングIPを使用します。
vSocketsのHAステータスを確認し、ソケットWebUIからAPIテストを実行します。
Note:
注意: サイトのIP設定を構成する際、Azureによって予約されたIPアドレスを使用しないようにしてください。 サブネットCIDRブロックでは、最初の4つのIPアドレスと最後のIPアドレスを使用することはできません。
Azure予約済みIPアドレスについての詳細は、Azureドキュメンテーションをご覧ください。
Azure でのプライマリvSocketのデプロイ
プライマリvSocketをVMにデプロイするために、以下のステップを完了します。 既存のAzureサイトのために、プライマリvSocketをバージョン11.0以上にアップグレードします。 vSocketを可用性セットに割り当てたい場合は、以下を参照してください vSocket VMを可用性セットに割り当てる(任意)。
次に、以下に続いて AzureサイトにセカンダリvSocketを追加する。
新しいサイトにプライマリ vSocket を配備するには:
Cato 管理アプリケーションに新しい Azure サイトを追加します。
VM にプライマリ vSocket をインストールします。
両方の vSocket VM に同じリソースグループを使用することを忘れないでください。
必要に応じて、vSocket VMの可用性セットを作成してください。
AzureでのvSocketのインストールについて詳しくは、マーケットプレイスからAzure vSocketをデプロイするをご覧ください。
vSocket VMを可用性セットに割り当てる(任意)
vSocket スクリプト (create_vm_from_vhd.sh) は、vSocket を可用性セットに割り当てることを可能にします。 このオプションは、vSocket HA 構成で主に使用され、両方の vSocket が異なる障害ドメインと更新ドメインに割り当てられていることを確認したい場合に使用されます。 CatovSocket スクリプトを実行する前に可用性セットを作成する必要があります。
注意:
Azure は、VM の作成後に VM を可用性セットに割り当てることを許可していません
異なる可用性ゾーンを使用している VM に可用性セットを割り当てることはできません
新しい可用性セットを作成し、設定を次のように構成します:
それを VM と同じリソースグループに割り当てます
障害ドメイン と 更新ドメイン を 2 に設定します
以下のスクリーンショットはvSocket可用性セットの例を示しています:

AzureサイトにセカンダリvSocketを追加する
Cato管理アプリケーションがプライマリvSocketがバージョン11.0以上にアップグレードされたことを検出した後、セカンダリソケットの追加オプションがネットワーク > サイト > サイト構成 > ソケットページに表示されます。
セカンダリvSocketをサイトに追加すると、以下の設定を入力するポップアップウィンドウが開きます:
LANインターフェースIP - 二次vSocketのLANインターフェースのためのIPアドレス
LANフローティングIP - Azure HAの構成に使用されるフローティングIPのためのIPアドレス
Cato管理画面はセカンダリvSocketの管理IPアドレスとしてLANのインタフェースIPアドレスを使用します。 このLANインタフェースはHAキープアライブパケットにも使用されます。
セカンダリvSocketをサイトに追加した後、Cato管理アプリケーションは以下を実行します:
新しいvSocketのためのvSocketシリアル番号を生成します(このシリアル番号は、VMにvSocketをインストールするためにCatoスクリプトを実行するときに使用されます)
そのサイト用の高可用性の構成セクションを有効にします
ネットワーク セクションのネイティブ範囲を変更し、ローカルIPをフローティングIPに置き換えます。
HAサイトのネットワークセグメントについては、下記を参照してください。Cato管理アプリケーションでのAzure高可用性ネットワークセグメントの概要。

AzureサイトをHAに設定するには:
ナビゲーションメニューから ネットワーク > サイト を選択し、Azureサイトを選択します。
ナビゲーションメニューから サイト設定 > ソケット を選択します。
セカンダリソケットを追加 をクリックします。 セカンダリvSocket(高可用性)追加 ウィンドウが開きます。
LAN IP設定を構成します:
LANインターフェースIP を入力します。 この値はMGMT IPとして使用され、キープアライブパケット用です。
LANフローティングIP を入力します。
適用 をクリックします。 フローティングIP設定が構成され、ソケット > 高可用性構成 セクションにコピーされます。
保存 をクリックします。
セカンダリvSocketのシリアル番号(S/N)をコピーして保存します。
このS/Nを使用してセカンダリvSocketをVMにインストールします。
ソケットページの変更
セカンダリvSocketをサイトに追加した後、ソケット ページでLAN1リンクの 宛先 が自動的に LAN & HA に設定されます。
AzureでのセカンダリvSocketの展開
セカンダリvSocketをプライマリvSocketと同じAzure VNetに作成して展開します。
サイトのすべての仮想リソースが同じAzureリソースグループにあることを確認してください。
組織の要件に基づいて、VNETを1つのリソースグループに割り当て、他の仮想リソースを異なるリソースグループに割り当てることができます。
必要であれば、vSocket VMsのための可用性セットを作成します。
プライマリとセカンダリvSocketsには同じサブネットを使用してください。
各サブネットに対して新しい仮想インターフェースを作成します。
プライマリとセカンダリvSocketsの両方がCato Cloudに接続性があることを確認してください。
Cato Azure vSocketスクリプトを実行します:
セカンダリvSocketのためのリソースを選択します。
Cato管理アプリケーションによって生成されたAzureでのセカンダリvSocketのためのシリアル番号を使用します。
AzureでのvSocketのインストールについて詳しくは、マーケットプレイスからのAzure vSocketsの展開 を参照してください。
VNETとVMのための異なるリソースグループの使用
Cato HAスクリプト(create_ha_settings.sh)により、VNETを1つのリソースグループに、他の仮想リソースを異なるリソースグループ(NIC、vSocket、ストレージコンテナ、ルートテーブルなど)に割り当てることができます。 Cato HAスクリプトを実行する際に、VNETリソースグループとVMリソースグループを割り当てる質問があります。
もしVNETとVMに同じリソースグループを使用している場合は、Cato HAスクリプトの両方のオプションで同じリソースグループを選択することを確認してください。
注:
VHDイメージがVMリソースグループ内のストレージコンテナのブロブにあることを確認してください。
Cato高可用性スクリプトの実行
セカンダリvSocketをVNetに展開すると、その両者がマスターロール(スプリットブレイン)を持ちます。 Cato HAスクリプト create_ha_settings.sh を実行して、HA構成をvSocketsに適用します。 Cato HAスクリプトを含むファイルのダウンロードに関する詳細は、ソケットとvSocket イメージファイル を参照してください(この記事を閲覧するにはサインインが必要です)。
Cato HAスクリプトは、管理対象アイデンティティを作成します。これは後に作成され、VM(高可用性の両方のメンバー)に貢献者の役割で割り当てられます。 さらに、Cato HAスクリプトは、HAグループの各メンバーのためにカスタムスクリプトを2つ作成します。これにより、フェイルオーバー時にVMが要求するすべての情報を含む設定ファイルが作成されます。 これには、サブスクリプションIDの名前、場所、VMの場所などが含まれます。
重要:
Cato HAスクリプトを実行する前に:
プライマリとセカンダリvSocketsはCato Cloudに接続できる必要があります。
適切なAzure管理者権限を持っていることを確認してください。上記を参照してください。高可用性を設定するための管理者権限の設定
Cato HAスクリプトを実行するには:
高可用性 セクションで、プライマリとセカンダリvSocketsがCato Cloudに接続できることを確認してください:
各vSocketのCato Cloudへの接続ステータスが接続済みと表示されます。
下記を参照してください。Cato管理画面での高可用性ステータスの表示
Cato HAスクリプト create_ha_settings.sh を実行して、HA構成をvSocketsに適用します。
プライマリおよびセカンダリvSocketsを持つVMを再起動します。
Azure内の対応するルートテーブルエントリを更新し、フローティングIPを次のホップとして使用します。
Azure vSocketの高可用性ステータスの確認
HAスクリプトを正常に実行した後、vSocketsがHA機能のために正しく構成されていることを確認します:
高可用性セクションでHAステータスを確認してください。
ソケットWebUIからフローティングIPにpingを実行し、HA APIコールをテストします。
HA構成の展開に関連する問題の解決には、Azure HA展開のトラブルシューティングを参照してください。
Cato管理アプリケーションでの高可用性ステータスの表示
サイト用の高可用性セクションでvSocketsのHAステータスを表示します。 セカンダリvSocketを展開すると、自動的にサイトに接続されます。
サイトの高可用性ステータスを確認するには:
Cato管理画面のナビゲーションメニューから、ネットワーク > サイトをクリックします。
ナビゲーションメニューから サイトモニタリング > ネットワーク分析をクリックします。
ページの上部から、次の項目のステータスを確認します:
ステータスは接続済みです。
HAステータスは準備完了です。
マスターはプライマリです。
ソケットはvSocket Azureです。

HAとフェイルオーバーの動作について詳しくは、ソケット高可用性(HA):背景とフェイルオーバー条件を参照してください。
ソケットWebUIからの高可用性のテスト
ソケットWebUIのネットワークツールを使用して、vSocketsのHA機能をテストできます。 HA構成のフローティングIPにpingを実行して正しく構成されていることを確認できます。 高可用性セクションにLANフローティングIPが表示されます。 プライマリとセカンダリvSocketの両方でテストを実行する必要があります。
vSocketはAzure APIプロキシにAPIコールを行い、HAスクリプトによって役割とアイデンティティ設定が正しく構成されたことを確認します。 vSocketはまた、APIプロキシと正常に通信できることを確認します。
ソケットWebUIの使用について詳しくは、ソケットWebUIへのアクセスを参照してください。
Azure HA構成をテストするには:
ナビゲーションメニューから サイト設定 > ソケット を選択します。
プライマリvSocketの操作ドロップダウンメニューから、ソケットWebUIを選択します。
ソケットWebUIが新しいタブで開きます。
ツール タブをクリックします。
ネットワークツール セクションで、Ping タブをクリックします。
フローティングIPにPingを実行します:
経路で、LAN1 を選択します。
ホスト名/IP でフローティングIPを入力します。
実行 をクリックします。 ウィンドウにはpingが成功または失敗したかが表示されます。
ネットワークツールセクションで、APIテストツール タブをクリックします。
テスト実行 をクリックします。 ウィンドウにはHA APIテストが成功または失敗したかが表示されます。
手順2から7をセカンダリvSocketで繰り返します。
Azure APIテストの失敗時のトラブルシューティング
Azure APIテストが失敗すると、問題を解決するためのエラーメッセージが表示されます。
APIテストエラーメッセージ | 推奨されるトラブルシューティング手順 |
|---|---|
Azure APIテストが失敗し、APIプロキシに認証できません。 Azureのアクセス制御(IAM)設定が正しいことを確認してください。 | Azure管理者が仮想リソースに変更を加える充分な権限を持っていません。 上記を参照してください。高可用性を設定するための管理者権限の設定。 |
Azure APIテストが失敗しました。 vSocket VMインスタンスのNIC設定が正しいか確認してください。 |
|
Azure高可用性サイトのためのネットワークセグメントの操作
このセクションでは、Azure HAサイトのネットワークセグメントを管理するためにネットワークセクションを使用する方法を説明します。
Cato管理アプリケーションにおけるAzure高可用性ネットワークセグメントの概要
セカンダリvSocketをCato管理アプリケーションに追加すると、ネットワークセクションのネットワークセグメントがフローティングIPの設定を含むように自動的に更新されます。 フローティングIPは、サイトのネイティブ範囲のローカルIPを置き換えます。
経路付けされた範囲(スタティックルート)の追加
物理ソケットサイトと同様に、Azure HAサイトに経路付けされた範囲を追加できます。
デフォルトのAzureルーター(VNetルーター)のIPアドレスは、ネイティブ範囲サブネットの最初のホストIPアドレスです。
Azure環境でサードパーティの仮想アプライアンス(例:ファイアウォール)を使用している場合、IPアドレスがサイトのネイティブ範囲内であることを確認してください。
Cato管理アプリケーションのサイト設定 > ソケット > 冗長化設定でフローティングIPアドレスを設定できます。
Azure冗長化管理
このセクションは、Azureサイトの冗長化の管理方法を説明しています:
それぞれのvSocketの冗長化ステータスを表示
サイトのフローティングIPを変更
vソケットの管理IPアドレスを変更します。
サイトの冗長化を無効化してセカンダリvソケットを削除
冗長化情報とステータスの表示
ネットワーク > サイト > ソケットページには、サイトのプライマリおよびセカンダリvソケットのHAステータスが表示されます。
アイテム | 説明 |
|---|---|
HAステータス | サイトの冗長化ステータス(準備完了または未準備)、各冗長化ステータス指標がOKである時のみ"準備完了"。 |
接続済み(ステータスインジケーター) | ステータス |
キープアライブ(ステータスインジケーター) | ステータス |
同一バージョン(ステータスインジケーター) | ステータス |
サイトのIP設定の変更
Azure の vソケットのIPアドレス設定を変更する場合、同じ設定を Cato 管理アプリケーションで更新する必要があります。 以下の設定を構成できます:
ネイティブレンジのサブネット - サイトの ネットワーク セクションを使用してください。
フローティングIP - サイトの ネットワーク または 冗長化 セクションを使用してください(新しい値は他のセクションに自動的に更新されます)。
管理IP - サイトの 冗長化 セクションを使用してください。
ネイティブレンジのサブネットの変更
ネイティブレンジのサブネットを変更するには、ネットワークセクションを使用します。
サイトのネイティブレンジのサブネットを変更するには:
ナビゲーションメニューから、ネットワーク > サイトをクリックし、Azureサイトを選択します。
ナビゲーションメニューから、サイト設定 > ネットワークを選択します。
ネイティブの範囲を編集し、新しい値をサブネットに入力します。
適用をクリックします。 IP範囲を編集パネルが閉じられます。
保存をクリックします。
フローティングIPと管理IPの変更
冗長化セクションを使用して、フローティングIPと管理IPを変更します。 ネットワークセクションでもフローティングIPを変更できます。
サイトのフローティングまたは管理IPを変更するには:
ナビゲーションメニューから、ネットワーク > サイトをクリックし、Azureサイトを選択します。
ナビゲーションメニューから、サイト設定 > ソケットをクリックします。
冗長化設定セクションを拡張します。
新しいプライマリ管理IPを入力します。
新しいセカンダリ管理IPを入力します。
新しいLANフローティングIPを入力します。
保存をクリックします。
Azureサイトの冗長化を無効にする
Azureサイトからセカンダリvソケットを削除して、そのサイトの冗長化を無効にすることができます。 Cato管理アプリケーションからセカンダリvソケットを削除すると、デプロイされたvソケットはCatoクラウドに接続できなくなります。 サイトの設定が単一のvソケット用の設定に復元されます:
冗長化セクションは無効化され、ページに表示されなくなります。
ネットワークセクションでは、ローカルIPがフローティングIPの代わりになります。
注:
ソケットの割り当て解除アクションを元に戻すことはできません。 セカンダリvソケットのシリアル番号は、もはや有効ではありません。
セカンダリvソケットを再追加するには、新しいシリアル番号を使用してVMに新しいvソケットをインストールする必要があります。
Azureサイトの冗長化を無効にするには:
ナビゲーションメニューから、ネットワーク > サイトをクリックし、Azureサイトを選択します。
ナビゲーションメニューから、サイト設定 > ソケットをクリックします。
セカンダリvソケットのアクションメニューから、未配置をクリックします。
警告ウィンドウで、OKをクリックします。 サイトの冗長化が無効になり、セカンダリvソケットが削除されます。
冗長化イベントの分析
イベントページには、アカウントのすべての冗長化接続イベントが表示されます。
冗長化イベントフィールドの説明
イベントフィールドやイベントは、ソケットHAとvソケットHAに対して同じです。 これらは、冗長化イベントです:
項目 | 説明 |
|---|---|
ソケットロール | イベントがプライマリまたはセカンダリvソケットにより生成されたかを表示します。 |
イベントサブタイプ - ソケットフェイルオーバー | サイトのフェイルオーバープロセスが開始されます。 |
フェイルオーバープロセスの一環として生成されるイベントの詳細については、「ソケットHAフェイルオーバーイベント」をご覧ください。