NetScaler BLX は NetScaler のソフトウェアフォームファクターであり、他のフォームファクターと同じ機能を提供します。Linux ホスト上でユーザースペースアプリケーションとして動作します。
NetScaler BLX は、パケットの送受信および NIC ポートの管理に Linux ドライバーを使用します。起動フェーズ中に作成される仮想イーサネット (veths) インターフェイス blx0 および blx1 は、Linux ホストと NetScaler BLX 間の通信に使用されます。たとえば、NetScaler BLX は veth を使用して、Linux ホスト上の syslog デーモンにログ情報を送信します。
NetScaler BLX では、/etc/blx/blx.conf (NetScaler BLX の起動設定ファイル) ファイルで指定された Linux ホストの NIC ポートは NetScaler BLX 専用です。これらの NIC ポートは、ホスト上で実行されている他のアプリケーションと共有されません。NetScaler BLX のみが専用 NIC ポートを認識できます。
IP アドレス指定スキームは、従来の NetScaler と同様です。NetScaler BLX は、NetScaler IP (NSIP)、仮想サーバー IP (VIP)、およびサブネット IP (SNIP) に異なる IP アドレスを持つことができます。
NetScaler BLX は、外部ネットワークからパケットを受信し、受信したパケットを処理し、設定された専用 Linux NIC ポートを介して直接応答します。Linux カーネルの TCP/IP スタックをバイパスしてパケットを処理するための本格的な TCP/IP スタックを備えています。NetScaler BLX は、Linux カーネルドライバーと直接やり取りして、NIC ポートから生パケットを取得します。
NetScaler BLX は Linux カーネルのネットワークスタックをバイパスしますが、Linux カーネルメモリとユーザースペースメモリ間でパケットを転送する際のオーバーヘッドは依然として存在します。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響を与えます。高いパケット処理パフォーマンスを実現するには、データプレーン開発キット (DPDK) 互換 NIC の使用をお勧めします。NetScaler BLX でサポートされている DPDK 互換 NIC のリストについては、「
Linux ホストのハードウェア要件」を参照してください。
DPDK は、ネットワークパフォーマンスを向上させるために使用されるオープンソースの Linux ライブラリとネットワークインターフェイスコントローラーのセットです。DPDK の詳細については、公式 DPDK Web サイト
https://www.dpdk.org/ を参照してください。
DPDK は、カーネルメモリをバイパスし、パケットを直接ユーザースペースメモリに配信して処理するのに役立ちます。DPDK は Linux UIO モジュールと組み合わせることで、NetScaler BLX がカーネルメモリからユーザースペースメモリへのパケットコピーという Linux カーネルのオーバーヘッドを伴わずにパケットを送受信できるようにします。メモリが割り当てられると、DPDK はそのバッファを管理してパフォーマンスを向上させます。
以下のいずれかの条件が満たされた場合、NetScaler BLX は DPDK サポートなしで起動する可能性があります。