🍄

14. NAT(ネットワークアドレス変換)

に公開

研修の目的と進め方

  • 目的: NATの仕組みを理解し、基本的な設定ができるようになること。
  • 進め方:
    1. NATって何? なぜ必要なの? (講義)
    2. NATの種類を見てみよう (講義)
    3. 実際にNATを設定してみよう! (ハンズオン演習 using Packet Tracer)
    4. まとめとQ&A
  • 雰囲気: 質問大歓迎! 和気あいあいと進めましょう!

1. NATってなんだろう?

NATとは、Network Address Translation の略で、日本語では「ネットワークアドレス変換」と言います。
簡単に言うと、IPアドレスの翻訳機のようなものです。

皆さんがお家でインターネットを使うとき、スマホやパソコンにIPアドレスが割り当てられていますよね? 実は、そのIPアドレス(プライベートIPアドレスと言います)は、お家の中だけで使える、いわば「家の中のニックネーム」みたいなものです。

でも、インターネットの世界(外部ネットワーク)に出るには、世界で通用する本名のようなIPアドレス(グローバルIPアドレスと言います)が必要になります。

NATは、この「家の中のニックネーム(プライベートIPアドレス)」と「世界で通用する本名(グローバルIPアドレス)」を、ルーターが変換してくれる技術です 。

図解:NATのイメージ
(資料: NATver2.pdf P2 のようなイメージです)
LAN内のPC1 (192.168.1.100) がインターネット上のPC2 (200.1.1.1) にアクセスしたいとします 。192.168.1.100 というアドレスはそのままではインターネットでは通用しません。
そこでルーター (RT1) が、PC1の送信元IPアドレスを、例えば 100.1.1.1 というグローバルIPアドレスに変換してくれます。これでPC2と通信できるようになります。

なぜ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):
    1. IPアドレスプールを定義: Router(config)# ip nat pool <プール名> <開始IP> <終了IP> netmask <サブネットマスク>
    2. 変換対象をアクセスリスト(ACL)で定義: Router(config)# access-list <ACL番号> permit <送信元IP> <ワイルドカードマスク>
    3. ACLとプールを紐付け: Router(config)# ip nat inside source list <ACL番号> pool <プール名>

c. PAT (Port Address Translation) / NAPT

  • 仕組み: 「IPマスカレード」とも呼ばれ、1つのグローバルIPアドレスを、複数の内部端末で共有する技術です 。IPアドレスに加えてポート番号も変換することで、どの通信がどの端末のものかを区別します。アパートの住所(グローバルIP)は同じでも、部屋番号(ポート番号)で個人を特定するイメージです。
  • メリット: グローバルIPアドレスを非常に効率的に使えます。家庭用ルーターではこれが一般的です。
  • 設定例 (Cisco): ダイナミックNATに似ていますが、最後に overload を付けます。
    1. IPアドレスプールを定義 (通常は1つのIP)
    2. 変換対象をACLで定義
    3. ACLとプールを紐付け (overload付き): Router(config)# ip nat inside source list <アクセスリスト番号> pool <IPアドレスプール名> overload
      もしスタティックNATとダイナミックNAT/PATが同じルーターに設定されている場合、スタティックNATの設定が優先されます

Discussion