Citrix ADC BLX

概要とアーキテクチャ

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

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

  • クラウド対応。Citrix ADC BLXは、クラウド上での実行に対してデイゼロサポートを提供します。

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

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

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

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

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

一般的なアーキテクチャ

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

アーキテクチャ BLX

ネットワークモード

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

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

共有モード

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

共有モード BLX

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

共有モードのCitrix ADC BLXアプライアンスは、管理およびデータトラフィックに使用される単一のIPアドレスで動作します。Citrix 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テーブルを使用して、Citrix ADC BLXアプライアンスに属するLinux NICポートで受信したパケットを認識します。

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

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

専用モード

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

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

専用モード BLX

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

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

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

データプレーン開発キット(DPDK)をサポートするCitrix ADC BLXアプライアンス

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

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

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

DPDK BLX

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

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

概要とアーキテクチャ