大規模NAT
注
この機能は、NetScaler AdvancedエディションまたはPremiumエディションのライセンスで利用できます。
インターネットの驚異的な成長により、パブリックIPv4アドレスが不足しています。大規模NAT (LSN/CGNAT) はこの問題を解決し、多数のインターネットユーザー間で少数のパブリックIPv4アドレスを共有することで、利用可能なパブリックIPv4アドレスを最大限に活用します。
LSN はプライベート IPv4 アドレスをパブリック IPv4 アドレスに変換します。これには、多数のプライベートIPアドレスをより少ないパブリックIPv4アドレスに集約するためのネットワークアドレスとポート変換方法が含まれています。LSN は NAT を大規模に処理するように設計されています。NetScaler LSN機能は、インターネットサービスプロバイダー(ISP)や通信事業者が何百万もの翻訳を提供して多数のユーザー(サブスクライバー)を非常に高いスループットでサポートする場合に非常に役立ちます。
LSN アーキテクチャ
NetScaler製品を使用するISPのLSNアーキテクチャは、ISPのコアネットワークに展開されたNetScalerアプライアンスを介してインターネットにアクセスするプライベートアドレス空間のサブスクライバー(インターネットユーザー)で構成されます。加入者はISPのアクセスネットワークを介してISPに接続されます。通常、インターネットの商用利用契約者は、ISPのアクセスネットワークに直接接続されます。これらのサブスクライバにサービスを提供するには、1 レベルの NAT(NAT44)のみが必要です。
ただし、非営利契約者は通常、NAT も実装しているルーターやモデムなどの顧客宅内機器(CPE)を利用することになります。この 2 つのレベルの NAT によって NAT444 モデルが作成されます。LSN機能用のNetScalerアプライアンスをISPのコアネットワークに展開することは、契約者には意識されず、契約者やCPEの設定を変更する必要はありません。
NetScalerアプライアンスは、インターネット宛のすべてのサブスクライバーパケットを受信します。アプライアンスには、LSNに使用する定義済みのNAT IPアドレスのプールが設定されています。NetScalerアプライアンスはLSN機能を使用して、パケットの送信元IPアドレス(プライベート)とポートをNAT IPアドレス(パブリック)とNATポートに変換し、パケットをインターネット上の宛先に送信します。アプライアンスは、LSN 機能を使用するすべてのアクティブセッションの記録を保持します。これらのセッションは LSN セッションと呼ばれます。NetScalerアプライアンスは、セッションごとにサブスクライバーのIPアドレスとポート、およびNAT IPアドレスとポートの間のマッピングも管理します。これらのマッピングは LSN マッピングと呼ばれます。NetScalerアプライアンスは、LSNセッションとLSNマッピングから、特定のセッションに属する(インターネットから受信した)応答パケットを認識します。アプライアンスは、応答パケットの宛先 IP アドレスとポートを NAT IP アドレス:port からサブスクライバの IP アドレス:port に変換し、変換されたパケットを加入者に送信します。
NetScalerアプライアンスでサポートされているLSN機能
以下に、NetScalerアプライアンスでサポートされているLSN機能の一部について説明します。
NAT リソース割り当て
NetScalerアプライアンスは、事前に定義されたNATリソースプールからNAT IPアドレスとポートを加入者に割り当て、パケットを変換して外部ホスト(インターネット)に送信します。NetScalerアプライアンスは、サブスクライバーの次のタイプのNAT IPアドレスとポート割り当てをサポートします。
-
決定論的。NetScalerアプライアンスは、NAT IPアドレスとポートブロックを各サブスクライバーに割り当てます。アプライアンスは、これらのサブスクライバに NAT リソースを順番に割り当てます。最初の NAT IP アドレスのポートの最初のブロックを最初のサブスクライバ IP アドレスに割り当てます。次の範囲のポートが次のサブスクライバに割り当てられ、NAT アドレスに次のサブスクライバ用のポートが足りなくなるまで続きます。その時点で、次の NAT アドレスの最初のポートブロックが加入者に割り当てられ、以降も同様に加入者に割り当てられます。
NetScalerアプライアンスは、サブスクライバーに割り当てられたNAT IPアドレスとポートブロックを記録します。接続の場合、マッピングされた NAT IP アドレスとポートブロックだけで加入者を識別できます。このため、NetScalerアプライアンスは作成または削除されたLSNセッションを記録しません。ポートブロック全体が使用されている場合、NetScalerアプライアンスはサブスクライバーからの新しい接続をすべて切断します。
-
ダイナミック。NetScalerアプライアンスは、サブスクライバーの接続用にランダムなNAT IPアドレスとLSN NATプールのポートを割り当てます。構成でポートブロック割り当てが有効になっている場合、アプライアンスは初めて接続を開始するときに、加入者にランダムな NAT IP アドレスとポートブロックを割り当てます。次に、NetScalerアプライアンスは、このNAT IPアドレスと、割り当てられたブロックのポートの1つを、このサブスクライバーからの後続の各接続に割り当てます。ポートのブロック全体が使用されている場合、アプライアンスは新しい接続を開始するときに、加入者に新しいランダムなポートブロックを割り当てます。新しいポートブロック内のポートの 1 つが新しい接続に割り当てられます。
IP プーリング
次の NAT リソース割り当てオプションは、既存のセッションにランダムな NAT IP アドレスとポートが割り当てられたサブスクライバの以降のセッションで使用できます。
- ペアリング済み。NetScalerアプライアンスは、同じサブスクライバーに関連するすべてのセッションに同じNAT IPアドレスを割り当てます。そのアドレスで使用できるポートがなくなると、アプライアンスはサブスクライバからの新しい接続をすべて切断します。このオプションは、同じ送信元 IP アドレスで複数のセッションを作成する必要がある特定のアプリケーション (たとえば、RTP または RTCP プロトコルを使用するピアツーピアアプリケーションなど) を適切に機能させるために必要です。
- ランダム。NetScalerアプライアンスは、同じサブスクライバーに関連するさまざまなセッションに、プールからランダムなNAT IPアドレスを割り当てます。
LSN マッピングの再利用
NetScalerアプライアンスは、同じサブスクライバーのIPアドレスとポートから発信される新しい接続に既存のLSNマップを再利用できます。NetScaler LSN機能では、次の種類のLSNマッピングの再利用がサポートされます。
- エンドポイントに依存しません。NetScalerアプライアンスは、同じサブスクライバーのIPアドレスとポート(X: X)から任意の外部IPアドレスとポートに送信される後続のパケットにLSNマッピングを再利用します。このタイプの LSN マップの再利用は、VOIP およびピアツーピアアプリケーションを適切に機能させるのに役立ちます。
- アドレスにより異なります。NetScalerアプライアンスは、外部ポートに関係なく、同じサブスクライバーのIPアドレスとポート(X: X)から同じ外部IPアドレス(Y)に送信される後続のパケットにLSNマッピングを再利用します。
- アドレスポートにより異なります。NetScalerアプライアンスは、マッピングがアクティブな間に、同じ内部IPアドレスとポート(X: X)から同じ外部IPアドレスとポート(Y: Y)に送信される後続のパケットにLSNマッピングを再利用します。
LSN フィルタリング
NetScalerアプライアンスは、アクティブなLSNセッションとLSNマッピングに基づいて外部ホストからのパケットをフィルタリングできます。サブスクライバ IP: ポート(X: X)、NAT IP: ポート(N: N)、および外部ホスト IP: ポート(Y: Y)のマッピングを含む LSN マッピングの例を考えてみましょう。NetScaler LSN機能は次のタイプのフィルタリングをサポートしています。
- エンドポイントに依存しません。NetScalerアプライアンスは、外部ホストIPアドレスとポートソース(z: Z)に関係なく、サブスクライバーIP: ポート(X: X)を表すNAT IP: Port(N: N)宛てではないパケットのみを除外します。NetScalerアプライアンスは、x: X宛てのパケットをすべて転送します。つまり、任意の外部ホストからサブスクライバへのパケットを許可するには、サブスクライバから任意の外部 IP アドレスにパケットを送信するだけで十分です。このタイプのフィルタリングは、VOIP およびピアツーピアアプリケーションを適切に機能させるのに役立ちます。
- アドレスにより異なります。NetScalerアプライアンスは、サブスクライバーのIP: ポート(x: x)を表すNAT IP: ポート(N: N)宛てではないパケットを除外します。さらに、加入者が以前に y: AnyPort(外部ポートに依存しない)にパケットを送信したことがない場合、アプライアンスは外部ホストIPアドレスとN: N宛のポート(Y: Y)からのパケットをフィルタリングします。つまり、特定の外部ホストからパケットを受信するには、加入者が最初にその特定の外部ホストの IP アドレスにパケットを送信する必要があります。
- アドレスポートにより異なります。NetScalerアプライアンスは、サブスクライバーのIP: ポート(x: x)を表すNAT IP: ポート(N: N)宛てではないパケットを除外します。さらに、加入者が以前に y: y にパケットを送信したことがない場合、アプライアンスは外部ホストの IP アドレスとポート (Y: Y) から N: n 宛てのパケットを除外します。つまり、特定の外部ホストからパケットを受信するには、加入者が最初にその特定の外部 IP アドレスとポートにパケットを送信する必要があります。
クォータ
NetScalerアプライアンスは、各サブスクライバーのNATポートとセッションの数を制限して、サブスクライバー間でリソースを公平に分配できます。NetScalerアプライアンスは、サブスクライバーグループのセッション数を制限して、さまざまなサブスクライバーグループ間でリソースを公平に分配することもできます。
- ポートクォータ。NetScalerアプライアンスは、特定のプロトコルで各サブスクライバーが一度に使用するLSN NATポートを制限できます。たとえば、各サブスクライバを最大 500 個の TCP NAT ポートに制限できます。サブスクライバーのLSN NATマッピングが上限に達しても、NetScalerアプライアンスは指定されたプロトコルの追加のNATポートをそのサブスクライバーに割り当てません。
- サブスクライバーセッションの制限。サブスクライバの同時セッション数は、ポートクォータを超える場合があります。NetScalerアプライアンスは、特定のプロトコルで各サブスクライバーに許可されるLSNセッションを制限できます。LSNセッションの数がサブスクライバーの制限に達すると、NetScalerアプライアンスはサブスクライバーが指定されたプロトコルのセッションを追加で開くことを許可しません。
- グループセッションの制限。NetScalerアプライアンスは、特定のプロトコルのサブスクライバーグループに許可されるLSNセッションの総数を制限できます。LSNセッションの総数が特定のプロトコルのグループの上限に達すると、NetScalerアプライアンスはグループのサブスクライバーが指定されたプロトコルのセッションを追加で開くことを許可しません。たとえば、グループの UDP セッションを最大 10000 に制限したとします。このグループのUDPセッションの合計数が10000に達すると、NetScalerアプライアンスはグループのどのサブスクライバーも追加のUDPセッションを開くことを許可しません。
アプリケーション層ゲートウェイ
一部のアプリケーション層プロトコルでは、IP アドレスとプロトコルポート番号もパケットのペイロードで通信されます。プロトコルのアプリケーション層ゲートウェイは、パケットのペイロードを解析し、プロトコルが LSN 上で引き続き機能するように必要な変更を行います。
NetScalerアプライアンスは、次のプロトコルのALGをサポートしています。
- FTP
- ICMP
- TFTP
- PPTP
- SIP
- RTSP
ヘアピンサポート
NetScalerアプライアンスは、NAT IPアドレスを使用したサブスクライバーまたは内部ホスト間の通信をサポートします。NAT IP アドレスを使用する 2 人の加入者間のこの種の通信は、ヘアピンフローと呼ばれます。ヘアピンフローはデフォルトで有効になっており、無効にすることはできません。