14. NAT(ネットワークアドレス変換)
研修の目的と進め方
- 目的: NATの仕組みを理解し、基本的な設定ができるようになること。
-
進め方:
- NATって何? なぜ必要なの? (講義)
- NATの種類を見てみよう (講義)
- 実際にNATを設定してみよう! (ハンズオン演習 using Packet Tracer)
- まとめとQ&A
- 雰囲気: 質問大歓迎! 和気あいあいと進めましょう!
1. NATってなんだろう?
NATとは、Network Address Translation の略で、日本語では「ネットワークアドレス変換」と言います。
簡単に言うと、IPアドレスの翻訳機のようなものです。
皆さんがお家でインターネットを使うとき、スマホやパソコンにIPアドレスが割り当てられていますよね? 実は、そのIPアドレス(プライベートIPアドレスと言います)は、お家の中だけで使える、いわば「家の中のニックネーム」みたいなものです。
でも、インターネットの世界(外部ネットワーク)に出るには、世界で通用する本名のようなIPアドレス(グローバルIPアドレスと言います)が必要になります。
NATは、この「家の中のニックネーム(プライベートIPアドレス)」と「世界で通用する本名(グローバルIPアドレス)」を、ルーターが変換してくれる技術です 。
図解:NATのイメージ
(資料: NATver2.pdf P2 のようなイメージです)
LAN内のPC1 (
そこでルーター (RT1) が、PC1の送信元IPアドレスを、例えば
なぜNATが必要なの?
-
IPアドレスの節約:
インターネットで使えるグローバルIPアドレスは数が限られています。もし世界中のスマホやPC1台1台にグローバルIPアドレスを割り当てていたら、とっくに足りなくなっています!NAT、特に後述するPATを使うことで、1つのグローバルIPアドレスを複数の端末で共有でき、IPアドレスを大幅に節約できます 。 -
セキュリティ向上:
内部ネットワークのIPアドレスを外部から隠すことができるので、外部から直接内部の端末にアクセスされにくくなり、セキュリティが少し向上します。 -
内部ローカルアドレス (Inside Local): 内部ネットワークで使われる、変換「前」のIPアドレス。例:
。192.168.1.100 -
内部グローバルアドレス (Inside Global): 外部ネットワークから見た、内部ネットワークのホストのIPアドレス。変換「後」のIPアドレスで、ルーターが割り当てたグローバルIPアドレス。例:
。100.1.1.1 -
外部ローカルアドレス (Outside Local): 内部ネットワークで扱われる、外部ネットワークのホストのIPアドレス 。
-
外部グローバルアドレス (Outside Global): 外部ネットワークで実際に使われている、外部ネットワークのホストのIPアドレス。例:
。200.1.1.1
ルーターを境にして「内側」と「外側」、「変換前」と「変換後」をイメージしましょう。ルーターの各口(インターフェース)には、どっちが内側(ip nat inside
)で、どっちが外側(ip nat outside
)かを設定します 。
2. NATの種類を見てみよう!
NATには、大きく分けていくつかの種類があります。
a. スタティックNAT (Static NAT)
- 仕組み: 内部ローカルアドレスと内部グローバルアドレスを 1対1で固定的に対応付けます 。例えば、「AさんのプライベートIPは、必ずこのグローバルIPに変換する」と決めておくイメージです。
- 用途: 主に、外部に公開するサーバー(Webサーバーなど)に使われます。外部から特定のグローバルIPアドレスにアクセスがあったら、必ず決まった内部のサーバーに繋がるようにするためです。
-
設定例 (Cisco):
Router(config)# ip nat inside source static <内部ローカルアドレス> <内部グローバルアドレス>
b. ダイナミックNAT (Dynamic NAT)
- 仕組み: 複数の内部グローバルアドレスをプール(ひとまとめにしたもの)として用意しておき、内部から外部へ通信が発生するたびに、そのプールの中から空いているグローバルIPアドレスを一時的に割り当てます。使わなくなったらプールに返却します。
- 注意点: 用意したグローバルIPアドレスの数までしか同時に通信できません。
-
設定例 (Cisco):
- IPアドレスプールを定義:
Router(config)# ip nat pool <プール名> <開始IP> <終了IP> netmask <サブネットマスク>
- 変換対象をアクセスリスト(ACL)で定義:
Router(config)# access-list <ACL番号> permit <送信元IP> <ワイルドカードマスク>
- ACLとプールを紐付け:
Router(config)# ip nat inside source list <ACL番号> pool <プール名>
- IPアドレスプールを定義:
c. PAT (Port Address Translation) / NAPT
- 仕組み: 「IPマスカレード」とも呼ばれ、1つのグローバルIPアドレスを、複数の内部端末で共有する技術です 。IPアドレスに加えてポート番号も変換することで、どの通信がどの端末のものかを区別します。アパートの住所(グローバルIP)は同じでも、部屋番号(ポート番号)で個人を特定するイメージです。
- メリット: グローバルIPアドレスを非常に効率的に使えます。家庭用ルーターではこれが一般的です。
-
設定例 (Cisco): ダイナミックNATに似ていますが、最後に
overload
を付けます。- IPアドレスプールを定義 (通常は1つのIP)
- 変換対象をACLで定義
- ACLとプールを紐付け (overload付き):
Router(config)# ip nat inside source list <アクセスリスト番号> pool <IPアドレスプール名> overload
もしスタティックNATとダイナミックNAT/PATが同じルーターに設定されている場合、スタティックNATの設定が優先されます
Discussion