NAT動作タイプの違いについて

$Date: 2015/06/16 00:40:49 $


1. 概要

IPマスカレード機能において、ポートセービングIPマスカレードをサポートしている機種およびファームウェアでは、 そうでない機種およびファームウェアと比べて、IPマスカレードにおけるポート番号の割り当て動作を中心に、さまざまな動作仕様が異なります。

ヤマハルーターでは、それらの異なる動作方式を動作タイプ1動作タイプ2 と区別しており、 特に動作タイプ2 をサポートしている機種およびファームウェアでは、動作タイプ1のみしかサポートしていない機種およびファームウェアとの動作の互換性を保つため、 NAT機能の動作タイプを切り替える機能を搭載しています。

本文書では、それらの異なる動作タイプ間の動作仕様の違いについて説明を行います。


2. 対応ファームウェアリビジョン

ファームウェアリビジョンごとにサポートしているNAT動作タイプは以下の通りです。

ファームウェア動作タイプ
Rev.14 系以前動作タイプ1
Rev.14.01 系以降動作タイプ1
動作タイプ2
(デフォルトは動作タイプ2)

3. 詳細

NATディスクリプター機能において、NAT機能の動作タイプとして、Rev.14 系以前の動作仕様である動作タイプ1 と、 Rev.14.01 系以降の動作仕様である動作タイプ2 の2通りの動作タイプが存在します。

以下に、動作タイプ1のときと動作タイプ2のときの動作の違いを挙げます。

3-1. IPマスカレードにおけるポート番号の割り当て

動作タイプ2ではIPマスカレードのポート番号の割り当てポリシーにおいて、ポートセービングIPマスカレードをサポートします。 ポートセービングIPマスカレードでは、セッション(コネクション)の宛先ホストが異なれば、異なるセッションに対しても重複して同じ外側ポート番号を割り当てて管理するため、 使用するポート番号の個数より多くのセッションを処理することが可能です。 ポートセービングIPマスカレードの詳細については、NATディスクリプター機能 概要をご覧ください。

このポートセービングIPマスカレードをサポートすることにより、動作タイプ2 では動作タイプ1 で行っていた一部のポート番号割り当て動作が引き継がれなくなります。

動作タイプ1では、以下の図に示すように、内側IPアドレスと内側ポート番号およびプロトコルが同じである内側ホストからのセッションについては、常に同じ外側ポートを割り当てるという動作になっています。 この例では、PC1からPC3へのセッションと、PC1からPC4へのセッションについてどちらも外側ポート番号60000が割り当てられています。別の内側ホスト(PC2)からのセッションについては、別のポート番号60001 が割り当てられるため、そちらと重複することはありません。

動作タイプ1での割り当てポート

一方ポートセービングIPマスカレードでは、内側ホストが異なるセッション間で外側ポート番号が重複することがあるため、 内側ホストが同じだからといって同じ外側ポート番号を割り当てようとしても、その宛先に対するそのポート番号がすでに他の内側ホストによるセッションで使用されている可能性が生じます。

下図の例では、PC1からPC3へのセッションとPC2からPC4へのセッションがすでに存在する場合に、PC1からPC4へのセッションを新たに開始しようとしています。 動作タイプ1 のときと同様にPC1からPC4へのセッションにポート番号60000を割り当てようとしても、 PC2からPC4へのセッションでポート番号60000がすでに使われているため、そのままポート番号60000を割り当てることができません。

動作タイプ2での割り当てポート

このような問題があるため、ポートセービングIPマスカレード仕様でポートを割り当てる動作タイプ2 のTCPセッションについては、この特殊なポート番号割り当てポリシーは適用されず、 単純にそれぞれの宛先ホストに対して使える外側ポート番号を順に割り当てていきます。
なお、UDPセッションについては動作タイプ2であってもポートセービングIPマスカレード仕様で動作しませんが、動作タイプ2で動作しているときに上記の特殊なポート番号割り当てポリシーが適用されるかどうかは、 以下の通りファームウェアのリビジョンに依存します。

ファームウェア適用可否
Rev.14.01.08 以前適用されない
Rev.14.01.09 以降適用される

3-2. IPマスカレードにおける合計セッション数の制限

動作タイプ1 では、基本的に異なるセッションについてはそれぞれ異なる外側ポート番号を順に割り当てていくため、IPマスカレードで管理可能なセッション数は、ほぼ使用できる外側ポート番号の個数で頭打ちになります。 そのため、nat descriptor masquerade port rangeコマンドにより使用できる外側ポート番号を設定することが、合計セッション数を設定することにつながります。

一方、動作タイプ2 のときはポートセービングIPマスカレードで外側ポートが割り当てられるため、使用している外側ポート番号の個数が少ない場合でも合計のセッション数は非常に多くなる可能性があります。 そのため、動作タイプ2のときは、合計のセッション数の上限を nat descriptor masquerade session limit totalコマンドで設定します。 このコマンドで設定した上限を超えるセッションは外側ポート番号の割り当てがされず、パケットは破棄されます。

なお、このコマンドの設定は、動作タイプ1で動作しているときには影響しません。

3-3. NATディスクリプターの状態の表示

動作タイプ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マスカレードで管理中の現在のセッション数と、セッション数のピーク値を確認することができます。

3-4. PP anonymous に対するNATディスクリプターの適用

動作タイプ1 では、PP anonymousインターフェースに対してもNATディスクリプターを適用して利用することができますが、 動作タイプ2 ではPP anonymousインターフェースに対して適用されたNATディスクリプターは動作しません。 PP anonymousインターフェースでNATディスクリプターを使用する場合は、動作タイプ1 でご利用ください。

ただし動作タイプ2で動作しているときも、ip pp nat descriptorコマンドによる適用の設定コマンドは、動作タイプ1のときと同様に入力することができます。


4. 動作タイプの違いに関連するコマンド

以下に、動作タイプの違いに関連するコマンドを挙げます。 これらには、動作タイプの変更を行うコマンド、および特定の動作タイプでのみ設定が有効になったり動作が変化したりするコマンドが含まれます。

4-1. NAT機能の動作タイプの設定

[書式]
nat descriptor backward-compatibility type
[設定値及び初期値]
[説明]

NAT 機能の動作タイプを設定する。

Rev.14.01 系以降の機種では、ポートセービング IP マスカレード機能に対応しており、IP マスカレードにおいて同一のポート番号を使用して複数の宛先ホストとのセッションを確立できる。 本コマンドは、ポートセービング IP マスカレード機能をサポートしていない Rev.14 系以前の機種との互換性維持のために用意されており、type パラメーターを 1 に設定した場合の NAT 機能の動作は、Rev.14 系以前の NAT 機能の動作と同等となる。 type パラメーターを 2 に設定して動作させた場合に問題が生じる場合は、type パラメーターを 1 に設定して NAT 機能を利用する必要がある。

[ノート]

本コマンドの設定の変更を有効にするには、ルーターの再起動が必要となる。

4-2. IP マスカレードで変換する合計セッション数の設定

[書式]
nat descriptor masquerade session limit total nat_descriptor total_limit
[設定値及び初期値]
[説明]

ひとつの NAT ディスクリプターにおいて、IP マスカレードで変換するセッション数の最大数を設定する。 nat descriptor masquerade session limit コマンドとは異なり、すべてのホストのセッション数の合計が対象となる。

[ノート]

本コマンドの設定は、nat descriptor backward-compatibility コマンドで、typeパラメーターを2に設定した場合のみ有効となる。

4-3. IP マスカレードで使用しているポート番号の個数の表示

[書式]
show nat descriptor masquerade port [nat_descriptor] summary
[設定値及び初期値]
[説明]

動的 IP マスカレードで使用しているポート番号の個数を表示する。静的 IP マスカレードで確保されているポート番号の個数は含まれない。

[ノート]

Rev.14.01 系以降において、nat descriptor backward-compatibility コマンドで、type パラメーターを 2 に設定した場合は本コマンドは使用できない。 代わりに、show nat descriptor masquerade session summary コマンドで、管理しているセッション数を表示することができる。

4-4. IPマスカレードで管理しているセッション数の表示

[書式]
show nat descriptor masquerade session [nat_descriptor] summary
[設定値及び初期値]
[説明]

IP マスカレードで管理しているセッション数およびセッション数のピーク値を表示する。 セッション数のピーク値は NAT ディスクリプターの設定変更やルーターの再起動によってクリアされ、clear nat descriptor dynamic コマンドによるセッションの削除ではクリアされない。

[ノート]

本コマンドは、nat descriptor backward-compatibility コマンドで、type パラメーターを 2 に設定した場合のみ使用可能である。


[EOF]