🍄

15. NAT_ハンズオン

に公開

実際にNATを設定・検証してみよう!(ハンズオン演習)

Packet Tracerを使い、以下のシンプルな構成でNATを設定・検証します。

ネットワーク構成図 (全種検証版):

  • 内部ネットワーク (LAN): 192.168.1.0/24
    • R1 (ルーター):
      • GigabitEthernet0/0 (内部側): IP 192.168.1.1, マスク 255.255.255.0
    • PC_A: IP 192.168.1.10, マスク 255.255.255.0, GW 192.168.1.1
    • PC_B: IP 192.168.1.11, マスク 255.255.255.0, GW 192.168.1.1
  • 外部ネットワーク (WAN): 203.0.113.0/24 (インターネットを模したネットワーク)
    • R1 (ルーター):
      • GigabitEthernet0/1 (外部側): IP 203.0.113.1, マスク 255.255.255.0
    • Server_Ext: IP 203.0.113.10, マスク 255.255.255.0, GW 203.0.113.1 (HTTPサービスを有効にしておく)

(Step 0:基本設定)

  1. 上記の構成で機器を配置し、ケーブルで接続します。
  2. 各機器にIPアドレス、サブネットマスク、デフォルトゲートウェイを設定します。
  3. R1 の各インターフェースを有効化 (no shutdown) します。
  4. まず、PC_A から Server_Ext (203.0.113.10) へpingを試みます。
    • この最小構成では、R1 が両方のネットワークを知っており、適切にルーティングを行うため、pingが成功するはずです。
    • 重要なのは、この時点では Server_Ext から見ると、通信の送信元は PC_A のプライベートIPアドレス (192.168.1.10) として認識されるという点です。
    • NATを学ぶ目的は、このプライベートIPアドレスをグローバルIPアドレスに変換する仕組みを理解することです。この後の演習で、その変換の様子を確認していきます。

(Step 1: R1 インターフェースのNAT内外設定)

まず、R1のどのインターフェースが内部ネットワーク側で、どれが外部ネットワーク側かを定義します。これは全パート共通の設定です。

R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip nat inside
R1(config-if)# no shutdown  # 既に有効化済みであれば不要
R1(config-if)# exit

R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip nat outside
R1(config-if)# no shutdown  # 既に有効化済みであれば不要
R1(config-if)# exit

Part 1: スタティックNATの設定と確認
目的: PC_A ($192.168.1.10$) から Server_Ext ($203.0.113.10$) への通信時に、PC_A のIPアドレスを常に特定のグローバルIPアドレス ($203.0.113.100$) に変換します。

スタティックNAT設定:
```Shell
R1(config)# ip nat inside source static 192.168.1.10 203.0.113.100

確認:
PC_A から Server_Ext (203.0.113.10) へpingを送信します。
R1 でNAT変換テーブルを確認します。

R1# show ip nat translations

global Inside local Outside local Outside global
icmp 203.0.113.100:X 192.168.1.10:X 203.0.113.10:X 203.0.113.10:X (pingの場合)
--- 203.0.113.100 192.168.1.10 --- --- (恒久的なエントリ)
(XはICMPのIDなど。通信の種類によって表示が異なります)

Server_Ext 側からは、203.0.113.100 から通信が来ているように見えます。

Part 2: ダイナミックNATの設定と確認
目的: 内部ネットワークのPC (PC_A, PC_B) が Server_Ext へ通信する際、定義されたIPアドレスプールから空いているグローバルIPアドレスを動的に割り当てます。

スタティックNAT設定の削除 (Part 1の設定をクリア):

R1(config)# no ip nat inside source static 192.168.1.10 203.0.113.100
R1# clear ip nat translation * # 現在の変換情報をクリア

ダイナミックNAT設定:
変換対象の内部IPアドレスをACLで定義: (例: 192.168.1.0/24 全体)

R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255

使用するグローバルIPアドレスのプールを定義: (例: 203.0.113.101203.0.113.102 の2つ)

R1(config)# ip nat pool DYNAMIC_POOL 203.0.113.101 203.0.113.102 netmask 255.255.255.0

ACLとIPアドレスプールを紐付け:

R1(config)# ip nat inside source list 1 pool DYNAMIC_POOL

確認:
まず PC_A から Server_Ext (203.0.113.10) へpingを送信します。
R1 で show ip nat translations を確認。PC_A (192.168.1.10) がプール内のIP (例: 203.0.113.101) に変換されていることを確認。
次に PC_B から Server_Ext (203.0.113.10) へpingを送信します。
R1 で show ip nat translations を再度確認。PC_B (192.168.1.11) がプール内の別のIP (例: 203.0.113.102) に変換されていることを確認。

問題
3台目のPCからpingを打つとどうなりますか??
結果と理由を講師までお伝えください。

Part 3: NAPT (PAT) の設定と確認
目的: 内部ネットワークの複数のPC (PC_A, PC_B) が Server_Ext へ通信する際、ルーターの外部インターフェースのIPアドレス(または特定の1つのグローバルIP)と異なるポート番号を使って同時に通信できるようにします。

ダイナミックNAT設定の削除 (Part 2の設定をクリア):

R1(config)# no ip nat inside source list 1 pool DYNAMIC_POOL
R1(config)# no ip nat pool DYNAMIC_POOL
R1(config)# no access-list 1
R1# clear ip nat translation *

NAPT (PAT) 設定:
変換対象の内部IPアドレスをACLで定義:

R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255

ACLとルーターの外部インターフェースを紐付け (overloadキーワードが重要):

R1(config)# ip nat inside source list 1 interface GigabitEthernet0/1 overload

(もし特定のIPアドレス 203.0.113.103 をPAT用に使いたい場合は、プールを定義して overload をつけます)

#例: 特定IP 203.0.113.103 でPATする場合 (今回は下記を使用)↓

# R1(config)# ip nat pool PAT_IP 203.0.113.103 203.0.113.103 netmask 255.255.255.0
# R1(config)# ip nat inside source list 1 pool PAT_IP overload

今回はインターフェース指定の方法で進めます。

確認:
PC_A から Server_Ext (203.0.113.10) へping (またはHTTPアクセス) します。
R1 で show ip nat translations を確認。PC_A (192.168.1.10) の送信元IPが R1 の外部IFのIP (203.0.113.1) に、ポート番号付きで変換されていることを確認。 出力例 (HTTPの場合):
Pro Inside global Inside local Outside local Outside global
tcp 203.0.113.1:XXXX 192.168.1.10:YYYY 203.0.113.10:80 203.0.113.10:80
(XXXXとYYYYは動的に割り当てられるポート番号)
次に PC_B から Server_Ext (203.0.113.10) へping (またはHTTPアクセス) します。
R1 で show ip nat translations を再度確認。PC_B (192.168.1.11) の送信元IPも同じく 203.0.113.1 に、しかし PC_A とは異なるポート番号 (XXXXの部分) で変換されていることを確認。 これにより、複数の内部PCが1つのグローバルIPアドレスを共有して同時に通信できることがわかります。

Discussion