【初心者向け】Packet Tracerでネットワークを学ぶ(NAT)

NATとはNetwork Address Translationの略称でIPアドレスを変換する技術です。

インターネットに接続する際にプライベートIPアドレスをグローバルIPアドレスに変換します。

1. NATとは

NATに関する用語として以下があります。

・内部ローカルアドレス
・内部グローバルアドレス
・外部グローバルアドレス
・外部ローカルアドレス


内部とはLAN側のネットワーク、外部とはインターネット側のネットワークです。

内部ローカルアドレスがプライベートIPアドレスを指します。

内部グローバルアドレスはグローバルIPアドレスを指し、内部ローカルアドレスは 内部グローバルアドレスに変換されます。

外部グローバル、外部ローカルアドレスはそれぞれ宛先のグローバルIPアドレスとなります。
<
上記図を例にします。

PC0には「192.168.1.1」のプライベートIPアドレスを設定しています。このアドレスが内部ローカルアドレスになります。

Router0はPC0から送られてきたパケットをServer1側へ転送する時に送信元IPアドレスを内部ローカルアドレスから内部グローバルアドレスの「200.10.10.1」に変換し転送します。

Server0にパケットを送信する際の宛先IPアドレスは外部グローバルアドレスになります。

2. NATの種類

NATにはいくつか種類があります。

一般的に使用されるのはNAPT(PAT)です。

2-1. スタティックNAT

スタティックNATは1対1のアドレス変換技術です。

一つのプライベートIPアドレスに対して一つのグローバルIPアドレスを割り当てます。

手動での設定が必要で登録内容に従ってアドレスを変換します。

1対1なのでプライベートIPアドレスの分、グローバルIPアドレスも必要となります。


変換されるアドレスが固定なので外部のネットワークから内部のネットワークにアクセスが可能です。

このような動作を双方向NATといいます。

2-2. ダイナミックNAT

ダイナミックNATも1対1のアドレス変換技術です。

アドレスプールに複数内部グローバルアドレスを設定しておき、通信が発生する度にプール内から 一つ内部グローバルアドレスを割り当てます。

プール内のアドレスを全て割り当てている間は他の端末は外部と通信できません。


またリアルタイムでアドレスの組み合わせが変更されるので外部ネットワークから内部ネットワークにアクセスできません。

このような動作を一方向NATといいます。

2-3. NAPT(PAT)

NAPT(CiscoではPAT)は1対多のアドレス変換技術になります。

NAPTを使用すれば一つのグローバルIPアドレスに対して複数のプライベートIPアドレスを割り当てることができます。

NAPTではIPアドレスだけでなくTCPやUDPのポート番号も含めて割り当てることが出来ます。

NAPTもダイナミックNATと同様、一方向NATです。

3. NATの設定


4. スタティックNATの設定

スタティックNATを設定していきます。

設定で必要なことは以下の2点です。

・インサイド、アウトサイドの設定
・NATテーブルへアドレスの組み合わせを登録

4-1. インサイド、アウトサイドの設定

ルータのインターフェースにインサイド、アウトサイドの設定を行います。

インサイドはLAN側ネットワーク、アウトサイドはWAN側のネットワークに接続しているインターフェースとなります。

コマンドはインターフェースコンフィギュレーションモードで以下を入力します。

#ip nat < inside | outside >


< inside | outside > インサイドはinside、アウトサイドはoutsideをそれぞれ指定します。

4-2. NATテーブルへアドレスの組み合わせを登録

NATテーブルは内部ローカルアドレスと内部グローバルアドレスの組み合わせが登録されたテーブルとなります。

グローバルコンフィギュレーションモードにて以下のコマンドを入力します。

#ip nat inside source static <内部ローカルアドレス> <内部グローバルアドレス>

5. スタティックNATの設定例

今回は以下の様な構成で確認します。


コマンドは以下のように入力します。

①Fa0/0をインサイドに設定
②Fa0/1をアウトサイドに設定
③192.168.1.1と200.10.10.1の組み合わせをNATテーブルに登録

6. ダイナミックNATの設定

ダイナミックNATを設定していきます。

設定で必要なことは以下の4点です。

・インサイド、アウトサイドの設定(スタティックNATと同様)
・内部ローカルアドレスのリスト作成
・アドレスプールの作成
・内部ローカルアドレスのリストとアドレスプールの紐づけ

6-1. 内部ローカルアドレスのリスト作成

内部ローカルアドレスのリストを作成するにはACLを使用します。

リストにpermitで登録されているアドレスはアドレス変換の対象となります。

6-2. アドレスプールの作成

内部グローバルアドレスもアドレスプールとして登録します。

アドレスプールの作成にはグローバルコンフィギュレーションモードにて以下のコマンドを入力します。

#ip nat pool <プール名> <開始アドレス> <終了アドレス> netmask <サブネットマスク>


<プール名>は任意の名前を設定します。

<開始アドレス>はアドレスプールの範囲の最初のアドレスを指定する。

<終了アドレス>はアドレスプールの範囲の最後のアドレスを指定する。

<サブネットマスク>はアドレスプールのサブネットマスクを指定します。

6-3. 内部ローカルアドレスのリストとアドレスプールの紐づけ

作成したACLとアドレスプールを紐づけます。

コマンドはグローバルコンフィギュレーションモードで以下を入力します。

#ip nat inside source list pool <プール名>


はACL番号、またはACL名を指定します。

<プール名>はアドレスプール作成で設定したプール名を指定します。

7. ダイナミックNATの設定例

今回は以下の様な構成で確認します。


コマンドは以下のように入力します。

①Fa0/0をインサイドに設定
②Fa0/1をアウトサイドに設定
③192.168.1.0のネットワークアドレスを設定にしたACL10を作成
④200.10.10.1から200.10.10.3をアドレスプールnetpoolに登録
⑤ACL10とアドレスプールnatpoolを紐づけ


8. NAPT(PAT)の設定

NAPTを設定していきます。

設定で必要なことは以下の4点です。

・インサイド、アウトサイドの設定(スタティックNATと同様)
・内部ローカルアドレスのリスト作成(ダイナミックNATと同様)
・アドレスプールの作成(なくても可)
・内部ローカルアドレスのリストとアドレスプールまたは外部インターフェースを紐づけ


NAPTはACLとインターフェースを紐づけることができるのでアドレスプールは無くても問題ありません。

8-1. 内部ローカルアドレスのリストとアドレスプールまたは外部インターフェースを紐づけ

ACLとアドレスプールまたはインターフェースの紐づけは以下のコマンドをグローバルコンフィギュレーションで入力します。

NAPTを使用する場合はコマンドの最後にoverloadと付けます。付け忘れるとダイナミックNATになってしまいます。

#ip nat inside source list < pool <プール名> | interface <インターフェース>> overload


は作成したACL番号、またはACL名を指定します。

< pool <プール名> | interface <インターフェース>はアドレスプールを指定する場合はプール名を指定します。

インターフェースを指定する場合はアウトサイドに設定したインターフェースを指定します。

9. NAPTの設定例

今回は以下の様な構成で確認します。


コマンドは以下のように入力します。

①Fa0/0をインサイドに設定
②Fa0/1をアウトサイドに設定
③192.168.1.0のネットワークアドレスを設定にしたACL10を作成
④ACL10とFa0/1を紐づけ