全体アーキテクチャ

NetScaler BLXは、NetScalerのソフトウェアフォームファクターであり、他のフォームファクターと同じ機能を提供します。これは、Linuxホスト上でユーザースペースアプリケーションとして動作します。

BLXは、パケットのRx/TxおよびNICポートの管理にLinuxドライバーを使用します。起動フェーズ中に作成される仮想イーサネット (veth) インターフェース blx0 および blx1 は、LinuxホストとBLX間の通信に使用されます。たとえば、BLXはvethを使用して、Linuxホスト上のsyslogデーモンにログ情報を送信します。

BLXでは、/etc/blx/blx.conf (BLXの起動設定ファイル) ファイルで指定されたLinuxホストのNICポートはBLX専用です。これらのNICポートは、ホスト上で実行されている他のアプリケーションと共有されません。BLXのみが専用NICポートを認識できます。

IPアドレス指定スキームは、従来のNetScalerと同様です。BLXは、NetScaler IP (NSIP)、仮想サーバーIP (VIP)、およびサブネットIP (SNIP) に異なるIPアドレスを持つことができます。

BLXは外部ネットワークからパケットを受信し、受信したパケットを処理し、設定された専用Linux NICポートを介して直接応答します。LinuxカーネルのTCP/IPスタックをバイパスしてパケットを処理するための本格的なTCP/IPスタックを備えています。BLXはLinuxカーネルドライバーと直接連携し、NICポートから生パケットを取得します。

BLXはLinuxカーネルのネットワークスタックをバイパスしますが、Linuxカーネルメモリとユーザースペースメモリ間でパケットを転送する際に依然としてオーバーヘッドが発生します。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響を与えます。高いパケット処理パフォーマンスを実現するには、Data Plane Development Kit (DPDK) 互換NICの使用をお勧めします。BLXでサポートされているDPDK互換NICのリストについては、「Linuxホストのハードウェア要件」を参照してください。

BLXアーキテクチャ

DPDKは、ネットワークパフォーマンスを向上させるために使用されるオープンソースのLinuxライブラリとネットワークインターフェースコントローラーのセットです。DPDKの詳細については、DPDK公式Webサイトhttps://www.dpdk.org/を参照してください。

DPDKは、カーネルメモリをバイパスし、パケットを処理のためにユーザースペースメモリに直接配信するのに役立ちます。DPDKとLinux UIOモジュールを組み合わせることで、BLXはカーネルメモリからユーザースペースメモリへのパケットコピーというLinuxカーネルのオーバーヘッドを伴わずに、パケットを受信および送信できます。メモリが割り当てられると、DPDKはそのバッファーを管理してパフォーマンスを向上させます。

注:

以下のいずれかの条件が満たされた場合、BLXはDPDKサポートなしで起動する可能性があります。

  • BLXが専用のDPDK互換NICポートをサポートしていない場合。
  • DPDKが専用NICポートをサポートしていない場合。
全体アーキテクチャ

この記事の概要