一般的なアーキテクチャ

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

BLXは、パケットの送受信(Rx/Tx)およびNICポートの管理にLinuxドライバーを使用します。起動フェーズ中に作成される仮想イーサネット(veths)インターフェース blx0 および blx1 は、LinuxホストとBLX間の通信に使用されます。たとえば、BLXはvethsを使用して、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は、NICポートから生パケットを取得するためにLinuxカーネルドライバーと直接対話します。

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

BLXアーキテクチャ

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

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

注:

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

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

この記事の概要