一般的なアーキテクチャ

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

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

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

  • 専用モード -Linux ホストの NIC ポートは BLX 専用で、他の Linux アプリケーションとは共有されません。
  • 共有モード -Linux ホストの NIC ポートは、他の Linux アプリケーションと共有されます。

専用モードのNetScaler 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カーネルメモリとユーザー空間メモリ間のパケット転送には依然としてオーバーヘッドがあります。このオーバーヘッドは、パケット処理の全体的なパフォーマンスに影響します。高いパケット処理性能を得るには、データプレーン開発キット (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 ポートをサポートしていません。

共有モードのNetScaler BLX

共有モードでは、Linux ホストの NIC ポートは他の Linux アプリケーションと共有され、パケットを送受信します。BLX には 192.0.0.1/24 の IP アドレスが自動的に割り当てられます。この IP アドレスは、管理およびデータトラフィックに使用されます。NetScalerが所有するすべてのIPアドレス(NSIP、SNIP、VIPアドレスなど)のIPアドレスは192.0.0.1と同じですが、ポート番号は異なります。つまり、この単一の IP アドレス (192.0.0.1) は、NSIP、SNIP、および VIP として機能するために異なるポート番号を使用します。

アーキテクチャ BLX

ホストの Linux NIC ポートは BLX と他の Linux アプリケーション間で共有されるため、IP テーブルルールが NAT に追加されます。この IP テーブルルールは、ホストで受信したトラフィックを BLX に転送してさらに処理するために使用されます。

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

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

注:

実稼働環境では BLX を共有モードに設定することはお勧めしません。

一般的なアーキテクチャ