Citrix ADC

大規模NAT

この機能は、Citrix ADC AdvancedエディションまたはPremiumエディションのライセンスで利用できます。

インターネットの驚異的な成長により、パブリック IPv4 アドレスが不足しています。大規模NAT (LSN/CGNAT) は、この問題に対する解決策を提供し、大規模なインターネットユーザーのプールで少数のパブリック IPv4 アドレスを共有することで、使用可能なパブリック IPv4 アドレスを最大限に活用します。

LSN は、プライベート IPv4 アドレスをパブリック IPv4 アドレスに変換します。これには、多くのプライベート IP アドレスをより少ないパブリック IPv4 アドレスに集約するネットワークアドレスおよびポート変換方式が含まれます。LSN は、大規模な NAT を処理するように設計されています。Citrix ADC LSN機能は、インターネットサービスプロバイダ(ISP)や通信事業者にとって、多数のユーザー(加入者)と非常に高いスループットで多数の翻訳をサポートするために非常に便利です。

LSN アーキテクチャ

Citrix製品を使用するISPのLSNアーキテクチャは、ISPのコアネットワークに展開されたCitrix ADCアプライアンスを介してインターネットにアクセスするプライベートアドレス空間のサブスクライバ(インターネットユーザー)で構成されます。加入者は、ISPのアクセスネットワークを介してISPに接続されています。通常、インターネットを商業的に使用するための加入者は、ISPのアクセスネットワークに直接接続されています。これらのサブスクライバにサービスを提供するには、1 レベルの NAT(NAT44)だけが必要です。

ただし、非商用加入者は、通常、NAT を実装するルータやモデムなどの顧客構内機器(CPE)の背後にいます。これら 2 つのレベルの NAT は、NAT444 モデルを作成します。LSN機能のためにISPのコアネットワークにCitrix ADCアプライアンスを展開することは、加入者には透過的であり、加入者やCPEの設定を変更する必要はありません。

ローカライズされた画像

Citrix ADCアプライアンスは、インターネット宛てのサブスクライバパケットをすべて受信します。アプライアンスは、LSN に使用する事前定義済みの NAT IP アドレスのプールで構成されます。Citrix ADCアプライアンスは、LSN機能を使用してパケットの送信元IPアドレス(プライベート)とポートをNAT IPアドレス(パブリック)とNATポートに変換し、インターネット上の宛先にパケットを送信します。アプライアンスは、LSN 機能を使用するすべてのアクティブセッションの記録を保持します。これらのセッションを LSN セッションと呼びます。Citrix ADCアプライアンスは、セッションごとにサブスクライバIPアドレスとポート、NAT IPアドレスとポートのマッピングも維持します。これらのマッピングは LSN マッピングと呼ばれます。Citrix ADCアプライアンスは、LSNセッションとLSNマッピングから、特定のセッションに属する応答パケット(インターネットから受信した)を認識します。アプライアンスは、応答パケットの宛先 IP アドレスとポートを NAT IP アドレス:ポートからサブスクライバ IP アドレス:ポートに変換し、変換されたパケットをサブスクライバに送信します。

Citrix ADCアプライアンスでサポートされるLSN機能

Citrix ADCアプライアンスでサポートされるLSN機能の一部を以下に示します。

NAT リソース割り当て

Citrix ADCアプライアンスは、事前定義されたNATリソースプールからNAT IPアドレスとポートをサブスクライバに割り当てて、パケットを外部ホスト(インターネット)に送信するために変換します。Citrix ADCアプライアンスは、加入者に対して次のタイプのNAT IPアドレスとポート割り当てをサポートします。

  • Deterministic。Citrix ADCアプライアンスは、NAT IPアドレスとポートのブロックを各サブスクライバに割り当てます。アプライアンスは、これらのサブスクライバに NAT リソースを順番に割り当てます。これは、開始 NAT IP アドレスの最初のポートブロックを開始サブスクライバ IP アドレスに割り当てます。次の範囲のポートは、次のサブスクライバに割り当てられます。次のサブスクライバに対して十分なポートが NAT アドレスにないまで、次のサブスクライバに割り当てられます。この時点で、次の NAT アドレスの最初のポートブロックがサブスクライバに割り当てられます。

    Citrix ADCアプライアンスは、割り当てられたNAT IPアドレスと加入者のポートブロックを記録します。接続の場合、加入者は、マッピングされた NAT IP アドレスとポートブロックによってのみ識別できます。このため、Citrix ADCアプライアンスは、作成または削除されたLSNセッションを記録しません。ポートのブロック全体が使用されている場合、Citrix ADCアプライアンスはサブスクライバーからの新しい接続を切断します。

  • Dynamic。Citrix ADCアプライアンスは、加入者の接続のために、ランダムなNAT IPアドレスとLSN NATプールからポートを割り当てます。構成でポートブロック割り当てが有効になっている場合、アプライアンスはサブスクライバが初めて接続を開始するときに、ランダムな NAT IP アドレスとポートブロックを割り当てます。次に、Citrix ADCアプライアンスは、このNAT IPアドレスと割り当てられたブロックのポートの1つを、このサブスクライバーからの後続の各接続に割り当てます。ポートのブロック全体が使用されている場合、アプライアンスは新しい接続を開始するときに、サブスクライバに新しいランダムポートブロックを割り当てます。新しいポートブロック内のポートの 1 つが新しい接続に割り当てられます。

IP プーリング

次の NAT リソース割り当てオプションは、既存のセッションにランダム NAT IP アドレスとポートが割り当てられた加入者の後続のセッションで使用できます。

  • Paired。Citrix ADCアプライアンスは、同じサブスクライバーに関連付けられたすべてのセッションに同じNAT IPアドレスを割り当てます。そのアドレスに使用できるポートがなくなると、アプライアンスはサブスクライバからの新しい接続をすべてドロップします。このオプションは、同じ送信元 IP アドレスで複数のセッションを作成する必要がある特定のアプリケーション(たとえば、RTP または RTCP プロトコルを使用するピアツーピアアプリケーションなど)を適切に機能させるために必要です。
  • Random。Citrix ADCアプライアンスは、同じサブスクライバーに関連付けられた異なるセッションに対して、プールからランダムなNAT IPアドレスを割り当てます。

LSN マッピングの再利用

Citrix ADCアプライアンスは、同じ加入者のIPアドレスとポートから発信された新しい接続に対して、既存のLSNマップを再利用できます。Citrix ADC LSN機能では、次のLSNマッピングの再利用がサポートされています。

  1. Endpoint Independent。Citrix ADCアプライアンスは、同じ加入者のIPアドレスとポート(X:x)から任意の外部IPアドレスとポートに送信される後続のパケットに対して、LSNマッピングを再利用します。このタイプの LSN マップ再利用は、VOIP およびピアツーピアアプリケーションを適切に機能させる場合に便利です。
  2. Address dependent。Citrix ADCアプライアンスは、外部ポートに関係なく、同じサブスクライバIPアドレスとポート(X:x)から同じ外部IPアドレス(Y)に送信される後続のパケットに対して、LSNマッピングを再利用します。
  3. Address port dependent。Citrix ADCアプライアンスは、マッピングがアクティブな状態で、同じ内部IPアドレスとポート(X:x)から同じ外部IPアドレスとポート(Y:y)に送信される後続のパケットに対してLSNマッピングを再利用します。

LSN フィルタリング

Citrix ADCアプライアンスは、アクティブなLSNセッションとLSNマッピングに基づいて、外部ホストからのパケットをフィルタリングできます。加入者 IP: ポート(X: x)、NAT IP: ポート(N: n)、および外部ホスト IP: ポート(Y: y)のマッピングを含む LSN マッピングの例を考えてみましょう。Citrix ADC LSN機能では、次の種類のフィルタリングがサポートされています。

  1. Endpoint Independent。Citrix ADCアプライアンスは、NAT IP: port(N: n)宛てでないパケットのみをフィルタリングします。NAT IP: port(N: n)は、外部ホストのIPアドレスとポートソース(Z: z)に関係なく、サブスクライバIP: port(X: x)を表します。Citrix ADCアプライアンスは、X: x宛てのパケットをすべて転送します。つまり、任意の外部ホストから加入者へのパケットを許可するには、加入者から任意の外部 IP アドレスへのパケットを送信するだけで十分です。このタイプのフィルタリングは、VOIP およびピアツーピアアプリケーションを適切に機能させる場合に便利です。
  2. Address dependent。Citrix ADCアプライアンスは、NAT IP:ポート(N:n)を宛先としないパケットを除外します。これは、サブスクライバIP:ポート(X:x)を表します。さらに、加入者が以前 Y: anyport(外部ポートに依存しない)にパケットを送信していない場合、アプライアンスは N: n 宛ての外部ホストの IP アドレスおよびポート(Y: y)からのパケットを除外します。つまり、特定の外部ホストからパケットを受信するには、加入者が最初にその特定の外部ホストの IP アドレスにパケットを送信する必要があります。
  3. Address port dependent。Citrix ADCアプライアンスは、NAT IP:ポート(N:n)を宛先としないパケットを除外します。これは、サブスクライバIP:ポート(X:x)を表します。さらに、加入者が以前に Y: y にパケットを送信していない場合、アプライアンスは N: n 宛ての外部ホストの IP アドレスおよびポート(Y: y)からのパケットを除外します。つまり、特定の外部ホストからパケットを受信するには、加入者が最初にその特定の外部 IP アドレスおよびポートにパケットを送信する必要があります。

クォータ

Citrix ADCアプライアンスは、各サブスクライバのNATポートとセッションの数を制限して、サブスクライバ間でリソースを公平に分散させることができます。Citrix ADCアプライアンスは、サブスクライバグループのセッション数を制限して、異なるサブスクライバグループ間でリソースを均等に分散させることもできます。

  • ポートクォータ。Citrix ADCアプライアンスは、LSN NATポートを、各加入者が指定したプロトコルに対して一度に使用する制限できます。たとえば、各加入者を最大 500 個の TCP NAT ポートに制限できます。加入者のLSN NATマッピングが制限に達すると、Citrix ADCアプライアンスは、指定されたプロトコルの追加のNATポートをその加入者に割り当てません。
  • サブスクライバセッション制限。加入者の同時セッション数は、ポートクォータを超える場合があります。Citrix ADCアプライアンスは、指定されたプロトコルの各加入者に許可されるLSNセッションを制限できます。LSNセッション数が加入者の制限に達すると、Citrix ADCアプライアンスは、加入者が指定したプロトコルの追加セッションを開くことを許可しません。
  • グループ・セッション制限。Citrix ADCアプライアンスは、指定されたプロトコルのサブスクライバーグループに許可されるLSNセッションの総数を制限できます。LSNセッションの総数が、指定したプロトコルのグループの制限に達すると、Citrix ADCアプライアンスは、そのグループのサブスクライバが指定したプロトコルの追加セッションを開くことを許可しません。たとえば、グループを最大 10000 の UDP セッションに制限します。このグループのUDPセッションの総数が10000に達すると、Citrix ADCアプライアンスは、グループのサブスクライバが追加のUDPセッションを開くことを許可しません。

アプリケーション層ゲートウェイ

一部のアプリケーション層プロトコルでは、IP アドレスとプロトコルポート番号もパケットのペイロードで通信されます。プロトコルのアプリケーション層ゲートウェイは、パケットのペイロードを解析し、プロトコルが LSN 上で動作し続けるために必要な変更を行います。

Citrix ADCアプライアンスは、次のプロトコルに対してALGをサポートしています。

  • FTP
  • ICMP
  • TFTP
  • PPTP
  • SIP
  • RTSP

ヘアピンサポート

Citrix ADCアプライアンスは、NAT IPアドレスを使用したサブスクライバまたは内部ホスト間の通信をサポートします。NAT IP アドレスを使用する 2 つの加入者間のこのタイプの通信は、ヘアピンフローと呼ばれます。ヘアピンフローはデフォルトで有効になっており、無効にすることはできません。

大規模NAT