NAT オーバーロードまたはポートアドレス変換(PAT)は動的NATの修正形式で、内部のローカルアドレスの数が内部のグローバルアドレスの数より多くなっているものです。 ほとんどの場合、すべての内部ホストにインターネットアクセスを提供する単一の内部グローバルIPアドレスがあります。 NATオーバーロードは、実際にIPアドレスを保存する唯一のNATであり、NATの最も一般的な形式です。
図 10-4 ポートアドレス変換 (PAT)
PATではオーバーロードまたは複数の内部ローカルアドレスを同じ内部グローバルアドレスにマッピングすることが可能です。 しかし、この場合、NATルーターに到達したリターンパケットは、すべて同じ宛先アドレスになることを意味します。 ルーターは、各リターンパケットがどの内部ローカルアドレスに属しているかをどのように知ることができるでしょうか。 このシナリオに対処するため、変換テーブルのNATエントリは拡張エントリになっている。このエントリは、関連するIPアドレスだけでなく、プロトコルタイプやポートも追跡する。 パケットの IP アドレスとポート番号の両方を変換することにより、理論的には、最大 65535 の内部ローカル アドレスを 1 つの内部グローバル アドレスにマッピングできます (16 ビットのポート番号に基づく)
しかし、1 つの NAT エントリはルーターのメモリを約 160 バイト使用するので、65535 エントリは 10 MB 以上のメモリと大量の CPU 電力を必要とすることを覚えておいてください。
以下は、図10-4によるNATオーバーロードまたはPATの設定例です。
R1>
R1>enable
R1#configure terminal
設定コマンドを1行につき1つ入力します。 CNTL/Zで終了します。
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
netmask ネットワークマスクを指定
prefix-length プレフィックス長を指定
R1(config)#ip nat pool MyPool 67.210.97.1 67.210.97.1 ?
R1(config)>R1(config)#ip nat pool MyPool 67.210.97.97.1 ネットマスク 255.255.255.0
R1(config)#access-list 1 permit 192.168.1.0 0.0.255
R1(config)#ip nat inside source list 1 pool MyPool overload
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 192.168.0.0 192.168.0.0.0.255R1(config)#アクセスリスト 1 permit 192.168.0.0.0
R1(config)#アクセスリスト 1 permit 192.168.1.1 255.255.0
R1(config-if)#ip nat inside
R1(config-if)#interface FastEthernet0/1
R1(config-if)#ip address 67.210.97.1 255.255.255.0
R1(config-if)#ip nat outside
R1(config-if)#end
R1#
上記の設定はダイナミックNATの設定と非常に似ているように見えますが、重要な相違点があります。 まず、IPアドレスのプールは、ルータR1の外部インタフェースに割り当てられた単一のIPアドレスに縮小されています。
次に、アクセスリスト1は、クラスCネットワーク192.168.1.0/24全体に一致し、このネットワークからの任意の内部のローカルアドレスが変換されることを意味します。 もし、このネットワークから特定のホストを変換しないようにしたい場合は、アクセスリストにdeny文を追加して、明示的に指定する必要があります。 例えば、1つのホスト 192.168.1.2 に対する変換を拒否し、他のホストはすべて許可するとします。
R1(config)#access-list 1 permit 192.168.1.0.0.0.255
また、ip nat inside source list 1 pool MyPool コマンドで overload キーワードが追加されています。
show ip nat translations コマンドを発行して、いつもの検証を開始しましょう:
R1#show ip nat translations
R1#
静的マッピングがないので、上記の出力も空欄になっています。 内部ホストからサーバーへのトラフィックを生成して、show ip nat translations コマンドを再度発行してみましょう:
Pro Inside global Inside local Outside global
icmp 67.210.91.1:18 192.168.1.2:18 173.194.67.102:18 173.194.67.102:18
icmp 67.210.91.1:19 192.168.1.3:19 173.194.67.102:19
icmp 67.210.91.1:20 192.168.1.4:20 173.194.67.102:20
上の出力でわかるように、すべての内側のローカルアドレスは同じ内側のグローバルアドレスに変換されていて、これが NAT オーバーロードまたは PAT の本質と言えます。 ルーターは、内部のローカルアドレスが内部のグローバルアドレスに変換されたときに、ソースポート番号を保持していることに気づいたかもしれません。 これは通常の動作ですが、ルーターが新しい変換エントリーを作成し、ソースポート番号がすでに使用されている場合、ポート番号も異なる番号に変換されます。
また、show ip nat statisticsコマンドを発行してみましょう:
Total active translations: 3 (0 static, 3 dynamic; 3 extended)
Outside interfaces:
Serial1/0
Inside interfaces:
FastEthernet0/0
Hits: 135 Misses: 15
CEF 翻訳されたパケット。 150、CEFパントパケット。 0
期限切れのトランスレーション。 12
Dynamic mappings:
– Inside Source
access-list 1 pool MyPool refcount 3
pool MyPool: netmask 255.255.255.0
start 67.210.91.1 end 67.210.91.1
type generic, total addresses 1, allocated 1 (100%), misses 0
Queued Packets: 0
2つのことを心に留めておく必要があります。 まず、NAT オーバーロードは、内部ホストの数が持っているパブリックアドレスより大きい場合、どのような状況でも役に立ちます。 多くの状況では、インターネットに面したルーターの外部インターフェイスに割り当てられた 1 つのパブリック IP アドレスしか持っていません。 こ の場合、 上 記の構成で示す よ う に、 プールは 1 つの IP ア ド レ ス か ら 成 り ま す。 しかし、複数のパブリックIPアドレスを使用でき、そのうちの1つがルータのインターネット接続インターフェースに割り当てられている場合があります。 このような場合、NATプールは、インターネットに接続したいより多くの内部ホストに対応するためにNATオーバーロードを使用して、複数のIPアドレスで構成される場合があります。 要するに、単一のオーバーロードされたパブリック アドレスを持つことも、複数のオーバーロードされたパブリック アドレスを持つこともできます。
NAT オーバーロードまたは PAT は、NAT の使用の主な理由であるグローバル IP アドレスを実際に保持する NAT の種類であるという明白な理由により、最も一般的な NAT 構成です。