$Date: 2025/10/21 13:59:51 $
IPマスカレード機能において、ポートセービングIPマスカレードをサポートしている機種およびファームウェアでは、 そうでない機種およびファームウェアと比べて、IPマスカレードにおけるポート番号の割り当て動作を中心に、さまざまな動作仕様が異なります。
ヤマハルーターでは、それらの異なる動作方式を動作タイプ1、 動作タイプ2 および動作タイプ3 と区別しており、 特に動作タイプ2 以降をサポートしている機種およびファームウェアでは、動作タイプ相当の動作のみしかサポートしていない機種およびファームウェアとの動作の互換性を保つため、 NAT機能の動作タイプを切り替える機能を搭載しています。
本文書では、それらの異なる動作タイプ間の動作仕様の違いについて説明を行います。
ファームウェアリビジョンごとにサポートしているNAT動作タイプは以下の通りです。
| 機種 | ファームウェア | 動作タイプ | ||
|---|---|---|---|---|
| タイプ 1 | タイプ 2 | タイプ 3 | ||
| RTX840 | すべてのリビジョン | ○ | ○ | × |
| RTX3510 | すべてのリビジョン | ○ | ○ | × |
| RTX1300 | Rev.23.00.17 以降 | ○ | ○ | ○ |
| Rev.23.00.16 以前 | ○ | ○ | × | |
| vRX VMware ESXi版 | すべてのリビジョン | ○ | ○ | × |
| vRX VMware EC2版 | ○ | ○ | × | |
| vRX さくらのクラウド版 | ○ | ○ | × | |
| RTX1220 | すべてのリビジョン | ○ | ○ | × |
| RTX830 | すべてのリビジョン | ○ | ○ | × |
| NVR510 | すべてのリビジョン | ○ | ○ | × |
| NVR700W | すべてのリビジョン | ○ | ○ | × |
| RTX1210 | すべてのリビジョン | ○ | ○ | × |
| RTX5000 / RTX3500 | Rev.14.00.32 以降 | ○ | ○ | × |
| Rev.14.00.29 以前 | ○ | × | × | |
| Rev.11.03 系以前の機種 | すべてのリビジョン | ○ | × | × |
NATディスクリプター機能において、NAT機能の動作タイプとして、Rev.14 系以前(※)の動作仕様である動作タイプ1 と、 TCP パケットのポートセービング IP マスカレードに対応した動作タイプ2、および TCP・UDP パケットの両方でポートセービング IP マスカレードに対応した動作タイプ3 の3通りの動作タイプが存在します。
以下に、動作タイプ1 のときと動作タイプ2 以降のときの動作の違いを挙げます。
※ RTX5000/RTX3500 Rev.14.00.32以降でも動作タイプ2を使用できるようになりました。
動作タイプ2 以降ではIPマスカレードのポート番号の割り当てポリシーにおいて、ポートセービングIPマスカレードをサポートします。 ポートセービングIPマスカレードでは、セッション(コネクション)の宛先ホストが異なれば、異なるセッションに対しても重複して同じ外側ポート番号を割り当てて管理するため、使用するポート番号の個数より多くのセッションを処理することが可能です。 動作タイプ2 では TCPパケットのみがポートセービングIPマスカレードで処理され、動作タイプ3 では TCP パケットと UDP パケットの両方がポートセービング IPマスカレードで処理されます。 ポートセービングIPマスカレードの詳細については、NATディスクリプター機能 概要をご覧ください。
このポートセービングIPマスカレードをサポートすることにより、動作タイプ2 以降では動作タイプ1 で行われていた一部のポート番号割り当て動作が引き継がれなくなります。
ポートセービング IP マスカレードではない旧来の方式では、以下の図に示すように、内側IPアドレスと内側ポート番号およびプロトコルが同じである内側ホストからのセッションについては、常に同じ外側ポートを割り当てるという動作になっています。
この例では、PC1からPC3へのセッションと、PC1からPC4へのセッションについてどちらも外側ポート番号60000が割り当てられています。別の内側ホスト(PC2)からのセッションについては、別のポート番号60001 が割り当てられるため、そちらと重複することはありません。
このような割り当て方式が採用されていると、新しいセッションに割り当てられるポート番号が予測しやすくなるというメリットがあり、音声通話やオンラインゲームなど P2P 通信を利用した一部のアプリケーションでは、特に UDP セッションに対してこのような割り当て方式を前提として通信を試みる場合があります。
一方ポートセービングIPマスカレードでは、内側ホストが異なるセッション間で外側ポート番号が重複することがあるため、内側ホストが同じだからといって同じ外側ポート番号を割り当てようとしても、その宛先に対するそのポート番号がすでに他の内側ホストによるセッションで使用されている可能性が生じます。
下図の例では、PC1からPC3へのセッションとPC2からPC4へのセッションがすでに存在する場合に、PC1からPC4へのセッションを新たに開始しようとしています。 動作タイプ1 のときと同様にPC1からPC4へのセッションにポート番号60000を割り当てようとしても、 PC2からPC4へのセッションでポート番号60000がすでに使われているため、そのままポート番号60000を割り当てることができません。
このような問題があるため、ポートセービングIPマスカレード仕様でポートを割り当てる場合は、この特殊なポート番号割り当てポリシーは適用されず、単純にそれぞれの宛先ホストに対して使える外側ポート番号を順に割り当てていきます。
特に動作タイプ3 の場合は、UDPセッションについてもポートセービングIPマスカレード仕様が適用されます。前述の通り一部のアプリケーションではこの特殊なポート番号割り当てポリシーを前提として通信を行うため、動作タイプ3 ではそのようなアプリケーションが正常に動作しなくなる場合があり、注意が必要です。
なお、動作タイプ2 の場合はUDPセッションについてはポートセービングIPマスカレード仕様で処理されませんが、以下に示す一部のファームウェアではこの特殊なポート割り当てが適用されないためご注意ください。
| リビジョン系統 | ファームウェア | 適用可否 |
|---|---|---|
| Rev.15 系以降 | すべて | 適用される |
| Rev.14.01 系 | Rev.14.01.09 以降 | 適用される |
| Rev.14.01.08 以前 | 適用されない | |
| Rev.14 系 | すべて | 適用される |
動作タイプ1 では、基本的に異なるセッションについてはそれぞれ異なる外側ポート番号を順に割り当てていくため、IPマスカレードで管理可能なセッション数は、ほぼ使用できる外側ポート番号の個数で頭打ちになります。 そのため、nat descriptor masquerade port rangeコマンドにより使用できる外側ポート番号を設定することが、合計セッション数を設定することにつながります。
一方、動作タイプ2 以降のときはポートセービングIPマスカレードで外側ポートが割り当てられるため、使用している外側ポート番号の個数が少ない場合でも合計のセッション数は非常に多くなる可能性があります。 そのため、動作タイプ2 以降のときは、合計のセッション数の上限を nat descriptor masquerade session limit totalコマンドで設定します。 このコマンドで設定した上限を超えるセッションは外側ポート番号の割り当てがされず、パケットは破棄されます。
なお、このコマンドの設定は、動作タイプ1で動作しているときには影響しません。
動作タイプ1 では、NATディスクリプターで管理中の現在のセッション数の概数として、使用中の外側ポート番号の個数を表示しますが、 3-2. で述べた通り動作タイプ2 以降では使用中の外側ポート番号の個数はセッション数と対応しません。 そのため動作タイプ2 以降では、NATディスクリプターの状態を表示するためのコマンドにおいて、使用中のポート番号の個数ではなく管理中のセッション数を表示します。 該当するコマンドは以下のとおりです。
同じ理由から、動作タイプ2 以降ではIPマスカレードで使用中のポート番号の個数を表示するshow nat descriptor masquerade port summaryコマンドは使用できず、 代わりに show nat descriptor masquerade session summaryコマンドを使用します。 show nat descriptor masquerade session summaryコマンドでは、IPマスカレードで管理中の現在のセッション数と、セッション数のピーク値を確認することができます。
動作タイプ1 では、PP anonymousインターフェースに対してもNATディスクリプターを適用して利用することができますが、 動作タイプ2 以降ではPP anonymousインターフェースに対して適用されたNATディスクリプターは動作しません。 PP anonymousインターフェースでNATディスクリプターを使用する場合は、動作タイプ1 でご利用ください。
ただし動作タイプ2 以降で動作しているときも、ip pp nat descriptorコマンドによる適用の設定コマンドは、動作タイプ1のときと同様に入力することができます。
以下に、動作タイプの違いに関連するコマンドを挙げます。 これらには、動作タイプの変更を行うコマンド、および特定の動作タイプでのみ設定が有効になる・実行可能になるコマンドが含まれます。
[EOF]