概要
次の記事の目的は、Zevenet ADCソフトウェアの動作について詳しく知りたいシステム管理者およびソフトウェア開発者を対象としたZevenetソフトウェア内部のアーキテクチャ概要を提供することです。 この情報はすべて、実動システムの構成やトラブルシューティングの目的にも使用できます。
Zevenetのアーキテクチャ
Zevenetは、ユーザーとカーネルの両方のスペースからプロセスを管理し、最大限のパフォーマンスを収集しますが、負荷分散、セキュリティ、高可用性など、アプリケーション配信コントローラーに委任されたすべてのタスクを実行できる柔軟性を備えています。
以下の図は、Zevenetシステムを内部で構成しているさまざまなコンポーネントのグローバルビューを示しています。 より単純で明確なビューを提供するために、重要性の低い追加の部品は見逃されています。
以下のセクションでは、さまざまな部分とそれらの相互接続方法について説明します。
ユーザー空間のZevenetロードバランサー
ユーザー空間で使用されるサブシステムは次のとおりです。
Web GUI: ユーザーがシステム全体の構成と管理を管理するために使用するWebグラフィックユーザーインターフェイスは、ロードバランサーに対して行われるすべてのアクションに対してZevenet APIを使用するHTTPS Webサーバーによって管理されます。
Zevenet API: またはZevenetアプリケーションプログラムインターフェイス、次に従って設計 REST や JSONの HTTPSを介して消費されるインターフェイスは、次のようなユーザーの観点から他の異なるユーザーインターフェイスによって使用されます。 Web GUI インターフェースまたは ZCLI (Zevenetコマンドラインインターフェイス)。 このツールは、RBACサブシステムに対するアクションをチェックし、許可されている場合、Zevenetアプライアンスでアクションが実行されます。 このAPIは、図で説明されている他のユーザー空間サブシステムに接続して管理できます。
RBAC: 役割ベースのアクセス制御は、ユーザー、グループ、および役割を中心に定義されたアクセスおよび制御メカニズムです。 このモジュールは、グループ、ユーザー、ロール間の高レベルの設定でユーザーが実行できるアクションを定義します。 Web GUIインターフェースに完全に統合されており、ユーザーの役割に基づいてWebビューをロードできます。 さらに、このサブシステムは、 API またはを使用するその他のツール API.
LSLB – HTTP(S): HTTP(S)プロファイルで構成されるLSLBモジュール(ローカルサービスロードバランサー)は、高スループットアプリケーションを非常に効率的に管理できるZproxyと呼ばれるリバースプロキシによってユーザー空間で実行されます。 このサブシステムはAPIによって構成され、IPDSサブシステムによって保護できます(ブラックリスト、DoSルール、RBLおよびWAFルールセットを使用)。
GSLB: GSLBプロファイルインスタンスで実装されたGSLBモジュール(グローバルサービスロードバランサー)は、負荷分散機能を備えた高度なDNSネームサーバーとして機能できるGdnsdと呼ばれるDNSサーバープロセスによってユーザー空間で実行されます。 このサブシステムはAPIによって構成され、IPDSサブシステムによって保護できます(ブラックリスト、DoS、およびRBLを使用)。
ヘルスチェック: このサブシステムはAPIによって構成され、すべてのロードバランサーモジュール(LSLB、GSLB、およびDSLB)によって使用され、バックエンドの状態を確認します。 バックエンドに対して単純なチェックと高度なチェックが実行されます。チェックが失敗すると、特定のファームのバックエンドはダウンとしてマークされ、バックエンドに対してチェックが再び機能するまでトラフィックは転送されません。 Farm Guardianはこれらのチェックを担当し、高度な柔軟性と構成可能性を備えて設計されています。
構成ファイルシステム: このディレクトリは設定の保存に使用され、このディレクトリでの変更は、そのようなサービスが有効になっている場合、クラスターに複製されます。
Nftlb: このユーザー空間プロセスは、APIサブシステムによって管理され、XNUMXつの主な目的に使用されます。 LSLB – L4XNAT の管理と構成 IPDS サブシステムモジュール。
カーネル空間のZevenetロードバランサー
カーネル空間で使用されるサブシステムは次のとおりです。
NetfilterシステムLSLB L4xNAT: Netfilterサブシステムは、負荷分散の目的でNftlbによって使用されます。 Netfilterルールは、このNftlbプロセスによってカーネルにロードされ、 高性能のL4ロードバランサーを構築する。 Nftlbは、トラフィックパケットを可能な限り最適に管理する効率的な方法で、カーネルにロードバランサールールを読み込みます。 さらに、Nftlbは、侵入の防止と保護のためのNetfilterルール(BlackLists、RBL、DoS)をロードします。
IPDSブラックリスト: このサブシステムはNetfilterシステムに統合され、Nftlbによって管理されます。 ロードバランサールールの前に構成されたルールのグループで構成され、 指定されたオリジンIPの接続をドロップします。 内部的には、カテゴリ、国、攻撃者の種類などで順序付けられ、毎日更新される一連のルールを作成します。
IPDS RBL:前のものと同様に、このサブシステムはNetfilterにも統合され、Nftlbによって管理されます。 発信元IPは接続の確立前にキャプチャされ、クライアントIPは 外部DNSサービス。 IPが解決されると、そのIPは悪意があるとマークされ、接続がドロップされます。
IPDS DoS: Netfilterに統合され、Nftlbによって管理される、以前のXNUMXつのモジュールと同じ構成システム。 これは、パケットがパケットの一部であるかどうかをチェックするロードバランスルールの前に設定された一連のルールです。 サービス拒否攻撃。 実行される前に攻撃を傍受するために、パケットフローにいくつかのルールが適用されます。
接続追跡システム: このシステムは、接続管理、ネットワーク変換、および 統計モジュール、並びに 健康診断 問題の瞬間に接続アクションを強制するためのサブシステムがバックエンドで検出されます。 接続追跡システムは、 クラスタリングサービス 接続状態をクラスターのXNUMX番目のノードに転送するため、クラスターマスターノードに障害が発生した場合、XNUMX番目のノードは以前のマスターと同じ接続状態のトラフィックを管理できます。
ルーティングシステムとDSLB: これらのサブシステムはAPIによって管理され、カーネル空間で構成されます。 ルーティングサブシステムは iproute2 これにより、複数のルーティングテーブルを順番に管理できます 静的ルーティングの複雑なルールセットの維持を回避するため、さらに、iproute2のおかげでDSLB(Datalink Service Load Balancer)モジュールが作成され、 複数のゲートウェイを持つアップリンクの負荷分散.
この記事を書いている時点で、Zevenet 6は生産中です。したがって、これらのサブシステムは将来のバージョンで進化して、より優れたパフォーマンスまたはより多くの機能を提供できるようになります。
追加文書
Zevenet zproxyベンチマーク、LSLB -HTTP(S)プロファイル
Zevenet nftlbベンチマーク、LSLB –L4xNATプロファイル