15. NAT_ハンズオン
実際にNATを設定・検証してみよう!(ハンズオン演習)
Packet Tracerを使い、以下のシンプルな構成でNATを設定・検証します。
ネットワーク構成図 (全種検証版):
-
内部ネットワーク (LAN):
192.168.1.0/24 -
R1
(ルーター):- GigabitEthernet0/0 (内部側): IP
, マスク192.168.1.1 255.255.255.0
- GigabitEthernet0/0 (内部側): IP
-
PC_A
: IP , マスク192.168.1.10 , GW255.255.255.0 192.168.1.1 -
PC_B
: IP , マスク192.168.1.11 , GW255.255.255.0 192.168.1.1
-
-
外部ネットワーク (WAN):
(インターネットを模したネットワーク)203.0.113.0/24 -
R1
(ルーター):- GigabitEthernet0/1 (外部側): IP
, マスク203.0.113.1 255.255.255.0
- GigabitEthernet0/1 (外部側): IP
-
Server_Ext
: IP , マスク203.0.113.10 , GW255.255.255.0 (HTTPサービスを有効にしておく)203.0.113.1
-
(Step 0:基本設定)
- 上記の構成で機器を配置し、ケーブルで接続します。
- 各機器にIPアドレス、サブネットマスク、デフォルトゲートウェイを設定します。
-
R1
の各インターフェースを有効化 (no shutdown
) します。 - まず、
PC_A
からServer_Ext
( ) へpingを試みます。203.0.113.10 - この最小構成では、
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 (
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 側からは、
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で定義: (例:
R1(config)# access-list 1 permit 192.168.1.0 0.0.0.255
使用するグローバルIPアドレスのプールを定義: (例:
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 (
R1 で show ip nat translations を確認。PC_A (
次に PC_B から Server_Ext (
R1 で show ip nat translations を再度確認。PC_B (
問題
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アドレス
#例: 特定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 (
R1 で show ip nat translations を確認。PC_A (
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 (
R1 で show ip nat translations を再度確認。PC_B (
Discussion