ADC

動的ルートの構成

ダイナミックルーティングプロトコルが有効の場合、対応するルーティングプロセスはルートアップデートを監視し、ルートをアドバタイズします。ルーティングプロトコルにより、アップストリームルーターは、等価コストマルチパス(ECMP)技術を使用して、2つのスタンドアロンCitrix ADCアプライアンスでホストされる同一の仮想サーバーへのトラフィックの負荷分散を行うことができます。Citrix ADCアプライアンスの動的ルーティングでは、3つのルーティングテーブルが使用されます。高可用性設定では、セカンダリアプライアンスのルーティングテーブルがプライマリアプライアンスのルーティングテーブルとミラーリングします。

ダイナミックルーティングプロトコルに関するコマンドリファレンスガイドおよびサポートされていないコマンドについては、 ダイナミックルーティングプロトコルコマンドリファレンスガイドおよびサポートされていないコマンドを参照してください

Citrix ADCでは、次のプロトコルがサポートされています。

  • Routing Information Protocol (RIP) version 2
  • Open Shortest Path First (OSPF) version 2
  • Border Gateway Protocol(BGP)
  • Routing Information Protocol next generation (RIPng) for IPv6
  • Open Shortest Path First (OSPF) version 3 for IPv6
  • ISISプロトコル

複数のプロトコルを同時に有効にできます。

Citrix ADC のルーティングテーブル

Citrix ADC アプライアンスでは、Citrix ADC カーネルルーティングテーブル、FreeBSD カーネルルーティングテーブル、および NSM FIB ルーティングテーブルはそれぞれ異なるルートのセットを保持し、異なる目的を果たします。これらは、UNIXルーティングソケットを使用して相互に通信します。ルートアップデートは、あるルーティングテーブルから別のルーティングテーブルに自動的には伝播されません。ルーティングテーブルごとにルートアップデートの伝播を設定する必要があります。

NSカーネル・ルーティング・テーブル

NSカーネル・ルーティング・テーブルには、NSIPに対応するサブネット・ルートと、各SNIPとMIPに対応するサブネット・ルートが格納されます。通常、VIP に対応するルートは NS カーネルルーティングテーブルには存在しません。例外は、add ns ip コマンドを使用して追加され、255.255.255.255 以外のサブネットマスクで設定された VIP です。同じサブネットに属する複数の IP アドレスがある場合、それらは単一のサブネットルートとして抽象化されます。さらに、このテーブルには、ループバックネットワーク(127.0.0.0)へのルート、および CLI(CLI)を介して追加されたスタティックルートが格納されます。この表のエントリは、パケット転送時にCitrix ADCによって使用されます。CLI から、show route コマンドを使用して検査できます。

フリーBSD ルーティングテーブル

FreeBSD ルーティングテーブルの唯一の目的は、管理トラフィック (telnet、ssh など) の開始と終了を容易にすることです。Citrix ADCアプライアンスでは、これらのアプリケーションはFreeBSDと緊密に結合されており、FreeBSDはこれらのアプリケーションとの間のトラフィックを処理するために必要な情報を持つことが不可欠です。このルーティングテーブルには、NSIP サブネットへのルートとデフォルトルートが含まれます。さらに、FreeBSDは、Citrix ADCがローカルネットワーク上のホストへの接続を確立するときに、WasCloned(W)タイプのルートを追加します。このルーティングテーブルのエントリには高度に特殊なユーティリティがあるため、NS カーネルと NSM FIB ルーティングテーブルからのその他のルート更新はすべて FreeBSD ルーティングテーブルをバイパスします。route コマンドで変更しないでください。FreeBSD ルーティングテーブルは、任意の UNIX シェルから netstat コマンドを使用して検査できます。

ネットワークサービスモジュール(NSM)FIB

NSM FIB ルーティングテーブルには、ダイナミックルーティングプロトコルによってネットワーク内のピアに配布されるアドバタイズ可能なルートが含まれています。これには、次のものが含まれます。

  • 接続されたルート。Citrix ADCから直接到達可能なIPサブネット。通常、NSIP サブネットとルーティングプロトコルが有効になっているサブネットに対応するルートは、NSM FIB に接続ルートとして存在します。
  • カーネルルート。-hostRoute オプションが有効になっているすべての VIP アドレスは、必要な RHI レベルを満たしている場合、カーネルルートとして NSM FIB に存在します。さらに、NSM FIB には、CLI で設定された-advertise オプションが有効になっている、すべてのスタティックルートが含まれます。また、Citrix ADC がスタティックルートアドバタイズ(SRADV)モードで動作している場合、CLI で設定されたすべてのスタティックルートが NSM FIB に存在します。これらのスタティックルートは NSM FIB でカーネルルートとしてマークされます。これは、実際には NS カーネルルーティングテーブルに属するためです。
  • スタティックルート。通常、VTYSH で設定されたスタティックルートは NSM FIB に存在します。プロトコルのアドミニストレーティブディスタンスが変更された場合、必ずしもそうとは限りません。注意すべき重要な点は、これらのルートが NS カーネルルーティングテーブルに入らないことです。
  • 学習ルート。Citrix ADC がルートを動的に学習するように設定されている場合、NSM FIB には、さまざまなダイナミックルーティングプロトコルによって学習されたルートが含まれます。ただし、OSPF によって学習されたルートには特別な処理が必要です。これらは、OSPF プロセスで fib-install オプションが有効になっている場合に限り、FIB にダウンロードされます。これは、VTYSH のルータ設定ビューから実行できます。

高可用性セットアップでのダイナミックルーティング

高可用性設定では、プライマリノードがルーティングプロセスを実行し、ルーティングテーブルの更新をセカンダリノードに伝達します。セカンダリノードのルーティングテーブルは、プライマリノードのルーティングテーブルをミラーリングします。

ノンストップフォワーディング

フェールオーバー後、セカンダリノードはプロトコルの開始、ルートの習得、ルーティングテーブルの更新に多少時間がかかります。ただし、セカンダリノードのルーティングテーブルは、プライマリノードのルーティングテーブルと同じであるため、ルーティングには影響しません。この動作モードは、ノンストップフォワーディングと呼ばれます。

ブラックホール回避メカニズム

フェールオーバー後、新しいプライマリノードはすべての VIP ルートをアップストリームルータに挿入します。ただし、このルーターは、古いプライマリノードのルートを 180 秒間保持します。ルータはフェールオーバーを認識しないため、2 つのノード間でトラフィックのロードバランシングを試みます。古いルートが期限切れになる 180 秒の間に、ルータはトラフィックの半分を古い非アクティブなプライマリノード(実際にはブラックホール)に送信します。

これを防ぐために、新しいプライマリノードは、ルートを挿入するときに、古いプライマリノードによって指定されたメトリックよりもわずかに低いメトリックを割り当てます。

ダイナミックルーティングを設定するためのインターフェイス

ダイナミックルーティングを設定するには、GUI またはコマンドラインインターフェイスのいずれかを使用します。Citrix ADCは、CLIと仮想テレタイプシェル(VTYSH)の2つの独立したコマンドラインインターフェイスをサポートしています。CLI はアプライアンスのネイティブシェルです。VTYSHはZebOSによって公開されています。Citrix ADCルーティングスイートは、GNU Zebraの商用バージョンであるZebOSに基づいています。

注:

CLIでのみ設定できるコマンドを除き、すべてのコマンドにVTYSHを使用することをお勧めします。CLI の使用は、通常、ルーティングプロトコルの有効化、ホストルートアドバタイズメントの設定、およびパケット転送用のスタティックルートの追加を行うコマンドに限定する必要があります。

ダイナミックルーティングプロトコルコマンドリファレンスガイドおよびサポートされていないコマンド

次の表に、Citrix ADCアプライアンスでのさまざまな動的ルーティングプロトコル、およびサポートされていないコマンドに関するコマンドリファレンスガイドのリンクを示します: 動的ルーティングプロトコルリファレンスガイドおよびサポートされていないコマンド