Socket HAとは何ですか

Prev Next

この記事は、物理的なCatoソケットペアを使用するサイトの高可用性(HA)設定とフェイルオーバー条件について説明します。

サイト用Socket高可用性の概要

サイトの回復力を向上させるために、CatoはHAモードで動作するソケットペアを使用して各サイトをデプロイすることを強く推奨します。 この動作モードは、単一ソケットの故障時にサービスの継続を確保します。 フェイルオーバー時には、Cato Cloudがフローステートを維持し、エンドユーザーの体験への影響を最小限に抑えます。

対応するSocket HAサイト

Catoは以下の環境でのSocket HAをサポートしています:

  • 物理ソケットサイト

  • AWS vSocketサイト

  • Azure vSocketサイト

この記事は、物理ソケットサイトにおけるHAの動作について説明します。 Socket HAの設定を数クリックで行う方法については、HAデプロイメントでのソケットの使用を参照してください。

Socket高可用性と異なるSocketモデル

Socket冗長化サイトでは、同じSocketタイプであるX1500、X1600、X1600 LTE、X1600 WiFi、またはX1700の2つのSocketを使用できます。 しかし、異なるタイプのソケットは使用できないため、X1600とX1700ソケットを持つサイトはサポートされていません。

  • 同じ冗長化サイトで使用できます:

    • 任意の2つのSocket X1500 A/B/Cモデル

    • X1700AおよびX1700BのSocketモデル

    • X1700CだけのSocketモデル

  • 同じ冗長化サイトでX1600 LTEソケットとX1600 WiFiソケットを使用することはできません

ソケット高可用性とフェイルオーバーの理解

ソケットHAデプロイメントでは、Catoソケットがサイトに割り当てられます。 サイトに割り当てられた最初のソケットはプライマリソケット、次はセカンダリソケットと識別されます。 ソケットはHAアクティブ/スタンバイモードで動作します。 サイトの通常の運用時には、プライマリソケットがHAマスターの状態、セカンダリソケットがHAスタンバイの状態になります。 HAマスターのステータスを持つソケットのみがトラフィックを処理します。

  1. セカンダリ(スタンバイ)ソケットは、プライマリソケットが送信する定期的なキープアライブメッセージを待機して、マスターソケットの状態(信号の存続性)を連続的に監視します。キープアライブメッセージは、LAN & VRRPまたは VRRPに設定された宛先を持つ指定インタフェースを介して送信されます(以下を参照: LAN接続性とソケットHA)。

  2. セカンダリ(スタンバイ)ソケットがプライマリソケットのダウンを検出すると、HA状態をマスターに変更し、トラフィックの処理を開始します。 これは、HAキープアライブメッセージが失われた後に発生します。

  3. セカンダリソケットは、レイヤー2の収束を加速するために、LANネットワークにGARPメッセージを送信します。

  4. プライマリソケットが復旧し、通常の機能に戻ると、先を見越してマスターになり、セカンダリソケットはスタンバイ状態に戻ります。

次の画像は、Cato管理アプリケーションのNetwork > Site > {site name} > サイト設定 > ソケットのX1500ソケット向けの冗長化設定ページを示しています。

image.png

アイテム

説明

1

Socket 冗長化役割 - プライマリ または セカンダリ

2

Socket 冗長化ステータス - マスターサイト または スタンバイ

3

冗長化 ステータス - 準備完了 または 未準備

4

全体的な冗長化ステータスの特定条件

  • 接続済み - Socket WAN 接続性

    • GreenCheck.png- プライマリおよびセカンダリのソケットが Cato Cloud に接続する少なくとも一つの動作中トンネルを持っている

    • Red_X.png- Socket に Cato Cloud への動作中トンネルがない

  • キープアライブ - ソケット間の冗長化キープアライブチャネルの状態

    • GreenCheck.png- セカンダリの Socket がプライマリの Socket から冗長化キープアライブメッセージを受信する

    • Red_X.png- セカンダリのソケットがプライマリのソケットからの冗長化キープアライブメッセージを受信していない

  • 互換バージョン - プライマリとセカンダリのソケットが互換性のある Socket OS バージョンを実行中

    • GreenCheck.png- 双方向ソケットが互換性のある(同じメジャー)ソケットバージョンを実行中, 例 14.0.13986 および 14.0.12764

    • Red_X.png- ソケットは異なるメジャーソケットバージョン, 例 14.0.13986 および 13.0.48732 を持つ

    注: ソケット冗長化フェイルオーバーは、ソケットが異なるメジャーバージョンを実行している場合でも行われます。 ただし、セカンダリのSocketバージョンがプライマリのSocketバージョンでサポートされる機能をサポートしていない場合、サイトが機能性の問題を経験する可能性があります。

    例えば、プライマリのSocketがバージョン18.0を実行し、セカンダリのSocketがバージョン15.0を実行する場合、フェイルオーバーが発生したときにバージョン16〜18でリリースされた機能はセカンダリのSocketがアクティブな間は動作しません。

サンプル Socket 冗長化フェイルオーバー

次の図は、プライマリの Socket に問題が生じ、セカンダリの Socket にフェイルオーバーする例を示しています。 プライマリ Socket がダウンしているとセカンダリ Socket が検出すると、セカンダリ Socket のステータスをマスターに変更します。 Cato Cloud はセカンダリ Socket の WAN リンクにトラフィックフローを転送します。

Socket_HA_Regular.png

Socket_HA_Failure.png

Socket 冗長化とスプリットブレインコンディション

スプリットブレインコンディションは、両方のソケットが同時にマスターの役割を持つ場合に発生します。 これは、ソケット間のLAN接続性の問題により、冗長化キープアライブメッセージがセカンダリに到達しない状況を引き起こす可能性があります。

スプリットブレイン条件を確認するには、Cato管理画面で示されたソケットページを確認してください。

  • プライマリとセカンダリのソケットが マスター(アイテム2)としてのステータスで表示されます。

  • キープアライブ の状態(アイテム4)は 失敗 として表示され、これは冗長化 ステータス(アイテム3)を 未準備 として表示する原因となります。

LAN接続性の問題が解決された後、セカンダリSocketはプライマリSocketがマスターであることを識別し、セカンダリSocketはスタンバイ状態に戻ります。

スプリットブレイン条件中のサイトトラフィック

次のプロセスは、スプリットブレイン条件の間サイトのトラフィックを処理するのがセカンダリSocketだけであることを確保します(スプリットブレイン条件があっても)。

  • 下りトラフィック (PoP からサイトへ):

    1. PoP はセカンダリ Socket が現在マスターサイトであることを検出します。

    2. PoP設定でセカンダリ Socket トンネルに優先メトリクスを設定します。

      下りトラフィックは今、セカンダリ Socket にのみルーティングされます。

  • 上りトラフィック (サイトから PoP へ):

    1. セカンダリ Socket が HA 状態をスタンバイからマスターに変更すると、それは LAN に GARP メッセージを送信して、それが現在はマスターであることを更新するために ARP および MAC テーブルを更新します。

      LAN からの上りトラフィックは今、セカンダリ Socket にのみルーティングされます。

HA ソケット接続性の Cato Cloud

プライマリおよびセカンダリのソケットは、各 WAN ポートの同じ Cato Cloud PoP にDTLSトンネルを確立します。 上り方向では、マスターソケットのみがトラフィックをPoPに送信します。 下り方向では、PoPはマスターサイトトンネルのみを使ってトラフィックをサイトに送信します。 Socket 冗長化フェイルオーバーイベントの場合に、セカンダリのSocketが新しいマスターになり、PoPは失敗したプライマリのSocketトンネルからセカンダリSocketトンネルにトラフィックをシフトします。 PoP はフローステートと NAT ステートを維持して、すべてのユーザーアプリケーションがフェイルオーバー中および後も引き続き操作されることを確認します。

デフォルトの展開には、ソケットとISPの間にルーターを使用します。 ただし、ルーターなしでソケットをPoPに接続するために、サイト展開をカスタマイズすることが可能です - 詳細については公式のCato担当者にお問い合わせください。

以下はソケット冗長化のためのサンプル的な物理および論理トポロジーです:

PhysicalLogicalTopology.png

最適なWAN接続性、パフォーマンスおよび冗長化機能のために、Catoは両方のソケットに対して対称的な(ミラーリングされた)配線設計を推奨します。 例えば、プライマリソケットポートWAN1がISP1に接続されており、ポートWAN2がISP2に接続されている場合、セカンダリソケットはプライマリソケットと同じISPに同じポートが接続されている必要があります。

これらの対称トポロジーには、ISPルーターへの直接接続やスイッチのスタックの使用が含まれることがあります。

WAN_Connectivity_Router_Switch.png

注:

標準冗長化設定では、Catoはプライマリとセカンダリのソケットのために対称レイアウトを使用することを推奨します。
LTEを使用する場合、カバレッジを向上させるために異なるキャリアのSIMカードを使用したり、セカンダリソケットにのみSIMカードを使用することをお勧めするシナリオがあります。

LAN 接続性とソケット冗長化

CatoはプライマリおよびセカンダリのソケットのLAN接続性に対して対称的な(ミラーリングされた)配線設計を要求します。 例えば、プライマリとセカンダリのソケットの両方のLANポート1がLANスイッチに接続されている(または複数のLANポートがある設定用のLANポート1および2に接続されている)。

このセクションでは、Socket冗長化のための以下のLAN接続オプションについて論じます:

  1. シングルLANポート

  2. 複数のLANポート

  3. LANリンクアグリゲーション(推奨オプション)

  4. 冗長化キープアライブメッセージ用の専用ポート

これらのオプションのいくつかは、Cato管理アプリケーションでサイトの追加設定を要求します。 例えば、LANポートはLAN & VRRPまたはVRRP用に設定されています。

シングルLANポートを持つSocket冗長化

プライマリとセカンダリのソケットをLANスイッチに接続するために、単一のLANポートを使用する構成があります。 この構成では、両方のソケットに同じポート番号を使用しなければなりません。 ユーザーTRAFFICと冗長化キープアライブメッセージは、単一のリンクを通じて実行されます。 このトポロジーはLANリンク冗長性を提供しません。

Socket冗長化フェイルオーバー(セカンダリのSocketがマスターになる) は、これらの条件が満たされた場合にのみ発生します:

  1. セカンダリのSocketが、プライマリのSocketからの冗長化キープアライブメッセージを3秒間受信しなくなった場合。

  2. セカンダリSocket のLANポート(冗長化キープアライブメッセージ用)が接続された状態にある場合。

もしセカンダリ Socket LAN ポートが切断されている場合、可能なスプリットブレイン状況を避けるため、マスターにはならない。

以下のダイアグラムは、スイッチに接続された各SocketのシングルLANポートで構成されたサンプルSocket冗長化トポロジーを示しています。

HA_LAN_switch.png

複数のLANポートを持つSocket冗長化

このセクションでは、プライマリとセカンダリのソケットが2つ以上の独立したLANポート経由でLANスイッチに接続されている場合について論じます。 この構成では、LAN接続に対して両方のソケットに同じポートを使用する必要があります。

デフォルトでは、最も低い番号の LAN ポートが冗長化キープアライブトラフィックとユーザートラフィックの両方に使用されます。 残りの LAN ポートはユーザートラフィックのみを運びます。

ポート 宛先 を LAN から LAN & VRRP に変更することで、冗長化キープアライブトラフィックのために任意のLANポートを選ぶことができます。次のスクリーンショットは、LANユーザートラフィック用のポート3と、冗長化キープアライブトラフィックおよびユーザートラフィック用のポート4を示しています。

LAN_VRRP.png

LANポートを冗長化キープアライブトラフィックのために変更する方法の詳細については、使用中のソケットを冗長化環境で使う方法をご覧ください。 このトポロジーはLANリンクの冗長性を提供しません。

ソケットの冗長化フェイルオーバー(セカンダリのSocketがマスターになる)は、次の条件が満たされた場合にのみ発生します:

  1. セカンダリのSocketが3秒間、プライマリのSocketから冗長化キープアライブメッセージを受信しなくなった場合。

  2. セカンダリのソケット上のLAN & VRRPポートは、接続された状態にあります。

セカンダリソケットのLANポートが切断されている場合、スプリットブレイン状態を回避するためにマスタにはなりません。

プライマリとセカンダリのソケットがリンク集約(LAG)でまとめられた2つ以上のLANポートを介してLANスイッチに接続されている場合、この設定では両方のソケットで同じポートを使用することが必要です。 このトポロジーは、ユーザートラフィックと冗長化キープアライブメッセージの両方にLANリンクの冗長性を提供します。 LAGのメンバーポートのどれかが故障しても、他のメンバーポートはユーザートラフィックと冗長化キープアライブトラフィックを引き続き運びます。

このトポロジーはリンクとソケットの両方のレジリエンシーを提供し、ベストプラクティスと見なされます。

LAN LAGについての詳細は、ソケット用リンク集約の設定をご覧ください。

以下の図は、LAN LAG を使用したソケット冗長化 LAN 接続トポロジーの例です:

SocketHA_LAG.png

冗長化キープアライブトラフィック専用ポート

この設定では、LANトラフィックから冗長化キープアライブトラフィックを分離します。 (LAN、WAN、またはUSBポートの)単一ポートを冗長化キープアライブトラフィック専用に割り当て、残りのLANポートをLANトラフィック用に使用できます。

冗長化キープアライブトラフィックのために専用LANポートを設定するには、ポートの宛先をVRRPに設定します。 次に、ソケット間冗長化リンクオプションを直接またはスイッチ経由に設定します。

Direct_HA_Link.png

これらは専用ポート設定です:

  1. 直接(ソケット間のバックツーバックケーブル) – この設定では、セカンダリソケットが冗長化キープアライブメッセージの受信を停止した場合、VRRPポートの状態にかかわらずマスタになります。

  2. スイッチ経由 – この設定では、両方のソケットのVRRPポートがスイッチに接続されています。 フェイルオーバーの挙動は、セカンダリソケットVRRPポートの状態に依存します。

    1. セカンダリソケットポート状態が接続中であるが、キープアライブメッセージを受信しないとき – セカンダリソケットはマスタになります。

      セカンダリソケットはプライマリソケットの故障によってこの状態が引き起こされたと想定します。

    2. セカンダリソケットポート状態が切断されている – セカンダリソケットはマスタになりません(スイッチとのローカルな問題であると仮定します)。

      セカンダリソケットはプライマリソケットが正常に動作していると想定し、スプリットブレイン状況を回避するためにマスタになりません。

これらは直接およびスイッチ経由の専用ポート設定の図です:

Socket_HA_-_Direct_Port_for_HA_Traffic.png

Socket_HA_-_via_Switch_Port_for_HA.png

ソケット高可用性のフェイルオーバー条件

このセクションでは、プライマリソケットからセカンダリソケットへのフェイルオーバーを引き起こす条件について説明します。

プライマリソケットの障害によるフェイルオーバー

このフェイルオーバーシナリオは、プライマリソケットの障害によって引き起こされます。 ソケットが以下の理由のいずれかに基づいてダウン状態と見なされる:

  • 一般的なソケットの障害または電源の喪失

  • VRRP接続(3秒以上キープアライブがない)
    LAN側の接続喪失は、VRRP広告がLANリンクを通じて交換されない限り、フェイルオーバーを引き起こしません。

  • 10秒以上インターネット接続がない

キープアライブの失敗によるフェイルオーバー

次の場合にも、フェイルオーバーのシナリオが発生します。セカンダリソケットが3秒間プライマリソケットからキープアライブメッセージを受信していない場合です。

セカンダリソケットがプライマリソケットがダウンしていることを発見すると、マスタにステータスを変更します。 Cato CloudはセカンダリソケットのWANリンクにトラフィックフローを転送します。 以下の図では、このシナリオを示しています。

Socket_HA_LAN_Failure.png

インターネット接続の問題はソケットフェイルオーバーを引き起こしますか?

ソケットはプロービングメカニズムを使用してインターネット接続ステータスを判断します。 プライマリソケットがすべてのインターネットリンク(Catoリンク)でインターネット接続が10秒以上ダウンしていると判断した場合、冗長化キープアライブメッセージの送信を停止します。 これがセカンダリソケットへのフェイルオーバーを引き起こします。

注:

プライマリソケットがインターネット接続を持っているが、すべてのDTLSトンネルが切断状態にある可能性があります。 ソケットにはインターネットおよびWAN回復機構があるため、この状況はセカンダリソケットへのフェイルオーバーを引き起こしません。 これらの回復メカニズムにより、ソケットはCato Cloud内の別のPoPに再接続することができます。

ソケット高可用性の監視

このセクションでは、Cato管理アプリケーション内でソケット冗長化のステータスやイベントを監視するために使用できる異なるページについて説明します。

ソケット高可用性ステータスの表示

サイトのソケット冗長化ステータスを表示する、Cato管理アプリケーション内の異なるページがあります。

ページ名

説明

パス

サイト

アカウント内のすべてのサイトを表示します。 冗長化ステータスカラムには、各サイトのソケット冗長化ステータスが表示されます。

ネットワーク > サイト

ソケット

サイトのソケット冗長化の詳細を表示します。 上記を参照 ソケット高可用性とフェイルオーバーを理解する。

ネットワーク > サイト > <サイト 名> > サイト設定 > ソケット

ネットワークアナリティクス

サイトのネットワークデータと冗長化ステータスを表示します。

ネットワーク > サイト > <サイト 名> > サイト監視 > ネットワークアナリティクス

ソケット冗長化フェイルオーバーイベント

ソケットフェイルオーバーが発生するとき、セカンダリソケットが35秒以上アクティブの場合、ソケットフェイルオーバーイベントが生成されます。 例えば、プライマリソケットが新しいバージョンへアップグレードされ、アップグレードプロセスが20秒かかった場合、セカンダリソケットが20秒間だけアクティブだったので、ソケットフェイルオーバーイベントは生成されません。

ホーム > イベントページのCato管理アプリケーションでイベントを見ることができます。 これは、プライマリからセカンダリソケットへのフェイルオーバーを示すサンプルイベントです。

Failover.png

ソケット高可用性フェイルオーバーの通知の定義

リンクヘルスルールページ(ネットワーク > リンクヘルスルール)を使用して、ソケット冗長化フェイルオーバーイベントの通知を送信するための接続性ヘルスルールを作成できます。

通知は、CMA内で設定したサブスクリプショングループに定義されたすべての受信者に送信されます。 サブスクリプショングループは、以下のような異なる通知対象を含めることができます:  

  • 電子メールアドレスを含むメーリングリスト(Catoユーザーまたは管理者に関連付けられていないアドレスも含む)

  • Webhook統合  SlackやJiraなど

  • サードパーティの通知システム

これにより、単一の場所からすべての通知宛先を管理し、複数のルールに一貫して適用することができます。

これはソケットフェイルオーバーのためのサンプル接続性ヘルスルールです:

Socket_Failover_Alert.png

接続性ヘルスルールを設定する方法の詳細については、リンクヘルスルールの操作をご覧ください。