概要とアーキテクチャ

NetScaler BLXアプライアンスは、Citrix ADCのソフトウェアフォームファクターです。これは、市販の既製サーバー (COTS) 上のベアメタルLinuxでネイティブに動作するように設計されています。

BLX アプライアンスを使用する利点は次のとおりです。

  • クラウド対応。BLXは、クラウドでの実行をゼロデイサポートします。

    BLXアプライアンスは、クラウド上でプロビジョニングされたLinux仮想マシン上でソフトウェアアプリケーションとして実行されるため、クラウド上で実行するための認証は必要ありません。

  • 管理が容易。Linuxオペレーティングシステムの一部として利用できる標準ツールを使用して、BLXアプライアンスを簡単に監視および管理できます。BLXアプライアンスは、既存のオーケストレーション設定に簡単に接続できます。

  • サードパーティ製ツールのシームレスな統合Linux環境でサポートされているオープンソースツール(監視、デバッグ、ロギングなど)は、BLXアプライアンスとシームレスに統合できます。統合ごとに個別のプラグインを開発する必要はありません。

  • 他のアプリケーションの共存。BLX アプライアンスはソフトウェアアプリケーションとして実行されるため、他の Linux アプリケーションも同じホスト上で実行できます。

  • DPDK サポート。BLXアプライアンスは、パフォーマンスを向上させるためにデータプレーン開発キット(DPDK)の統合をサポートしています。BLXアプライアンスはDPDKオープンソースライブラリを使用してパフォーマンスを向上させ、パケット処理におけるLinuxカーネルのボトルネックを克服します。

一般的なアーキテクチャ

BLXアプライアンスはCitrix ADCのソフトウェアフォームファクターであり、従来のCitrix ADCアプライアンスと同じ機能を提供します。BLXアプライアンスは、Linuxシステムのユーザー空間アプリケーションとして動作します。BLX アプライアンスは、パケットの Rx/Tx と NIC ポートの管理に Linux ドライバを使用します。BLXブートアップフェーズで作成される仮想インターフェイスblx0およびblx1は、カーネルと BLX アプライアンス間の通信に使用されます。

アーキテクチャ BLX

ネットワークモード

BLXアプライアンスのネットワークモードは、LinuxホストのNICポートをホスト上で実行されている他のLinuxアプリケーションと共有するかどうかを定義します。BLX アプライアンスは、以下のネットワークモードのいずれかで動作するように設定できます。

  • 共有モード
  • 専用モード

共有モード

共有モードで動作するように構成された BLX アプライアンスは、Linux ホスト NIC ポートを他の Linux アプリケーションと共有します。

共有モード BLX

共有モードのBLXアプライアンスには、192.0.0.1/24のネットワークアドレスが自動的に割り当てられます。

共有モードのBLXアプライアンスは、管理とデータトラフィックに使用される1つのIPアドレスで動作します。NetScaler ADCが所有するすべてのIPアドレス(NSIP、SNIP、VIPなど)のIPアドレスは192.0.0.1ですが、ポート番号は異なります。つまり、この単一の IP アドレス (192.0.0.1) は、NSIP、SNIP、および VIP として機能するために異なるポート番号を使用します。

Linux NIC ポートは BLX アプライアンスと他の Linux アプリケーション間で共有されるため、IP NAT テーブルが BLX アプライアンスのカーネルに追加されます。Linux ホストは、この IP NAT テーブルを使用して BLX アプライアンスの Linux NIC ポートで受信したパケットを認識します。

次に Linux ホストは、受信したパケットの宛先 IP アドレスを BLX アプライアンスの IP アドレス (192.0.0.1) に変換して NAT を実行します。BLX アプライアンスは、blx0およびblx1仮想インターフェイス (veth) を介してパケットを受信します。

BLX アプライアンスは受信したパケットを処理し、blx1およびblx0仮想インターフェイスを介して Linux カーネルに送信します。Linux ホストは、BLX IP NAT テーブルを使用してこれらのパケットに対して NAT を実行し、Linux NIC ポート経由で宛先に送信します。

専用モード

専用モードで構成されたBLXアプライアンスには専用のLinuxホストNICポートがあり、他のLinuxアプリケーションとポートを共有しません。

ホスト上の他の Linux アプリケーションには、BLX アプライアンス専用の Linux NIC ポートは表示されません。

専用モード BLX

専用モードのBLXアプライアンスのIPアドレススキームは、従来のCitrix ADCアプライアンスのIPアドレススキームと似ています。専用モードのBLXアプライアンスでは、ADCが所有するIPアドレス(NSIP、SNIP、VIPなど)は異なるIPアドレスを持つことができます。

共有モードとは異なり、専用モードのBLXアプライアンスにはNAT操作は必要ありません。BLXアプライアンスは、設定された専用Linux NICポートを介して、外部ネットワークデバイスとの間でパケットを直接受信/応答します。

専用モードのBLXアプライアンスは、引き続きblx0およびblx1仮想インターフェイス (veths) を使用して 、SYSLOGやその他の管理関連情報をLinuxカーネルに送信します。

データプレーン開発キット (DPDK) サポート付き BLX アプライアンス

BLXアプライアンスは、パケットのRx/TxとNICポートの管理に従来のLinuxドライバーを使用します。Linux ドライバを使用してユーザースペースの Linux カーネルと BLX アプライアンス間で送信されるパケットには、いくつかのオーバーヘッドがあります。これらのオーバーヘッドは BLX アプライアンスのパフォーマンスに影響します。

BLXアプライアンスには、あらゆるパケットを処理するための完全なTCP/IPスタックがあります。BLX アプライアンスが基盤となる Linux NIC ポートからパケットを迅速に受信できる場合は、ネットワークパフォーマンスが向上します。

データプレーン開発キット (DPDK) を使用すると、このボトルネックを解消できます。DPDK は、ネットワークパフォーマンスを向上させるために使用されるオープンソース Linux ライブラリとネットワークインターフェイスコントローラーのセットです。DPDK の詳細については、DPDK の公式ウェブサイト https://www.dpdk.org/

DPDK BLX

DPDK はカーネルのバイパスに役立ち、パケットをユーザースペースアプリケーションに直接配信してさらに処理します。DPDKをLinux UIOモジュールと組み合わせると、BLXアプライアンスはLinuxカーネルのパケット処理オーバーヘッドを必要とせずに、Linux NICポートとの間でパケットを送受信できます。メモリが割り当てられると、DPDK は自身のバッファを管理してパフォーマンスを向上させます。

DPDKをサポートするBLXアプライアンスは、専用ネットワークモードでのみ機能します。

概要とアーキテクチャ