HOME > コンテンツリスト > ラボ・シナリオ for CCNA > [ < 前へ 次へ > ]

スタティックNATを設定する

スタティック NAT は、社内 LAN にインターネット公開用の Web サーバーや Mail サーバーを立ち上げて、インターネット上の PC からそれらにアクセスできるようにするために使用します。 (社内ではプライベートアドレスを使用しているものとします)



NAT ルータで、次のようにアドレス変換を行うように設定しておくと、

(プライベートアドレス) 192.168.1.10 <-> 200.10.10.9 (グローバルアドレス)
(プライベートアドレス) 192.168.1.11 <-> 200.10.10.10 (グローバルアドレス)

PC から 200.10.10.9 宛のパケットは、NAT ルータで 192.168.1.10 宛に変換されて Web サーバーに届きます。



同様に、PC から 200.10.10.10 宛のパケットは、NAT ルータで 192.168.1.11 宛に変換されて Mail サーバーに届きます。



当然戻りのパケットの送信元IPアドレス 192.168.1.11 も 200.10.10.10 に変換されて PC 宛てに送られます。


想定するネットワーク構成図

ラボ・シナリオで使用するネットワーク構成図
・物理 PC の VirtualBox 上に、Webサーバー、Mailサーバー、インターネットPC の3つの仮想 PC を構成する。
・Webサーバー、Mailサーバー は物理 PC に標準搭載している LAN ポートを使用するように VirtualBox を設定する。
・物理 PC に USB-LAN 変換ケーブルを1つ接続し、インターネットPC がそれを使用するように VirtualBox を設定する。
※ ISP から与えられたグローバルアドレスは 200.10.10.8/29 とする。


  1. RT-A をネットワーク構成図に示す通り設定し、RT-B へのデフォルトルートを構成しなさい。
  2. < RT-A >
    Router# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Router(config)# host RT-A
    RT-A(config)# int f0/0
    RT-A(config-if)# ip add 192.168.1.1 255.255.255.0
    RT-A(config-if)# no shut
    RT-A(config-if)# int f0/1
    RT-A(config-if)# ip add 10.10.10.1 255.255.255.0
    RT-A(config-if)# no shut
    RT-A(config-if)# ip route 0.0.0.0 0.0.0.0 10.10.10.2
    RT-A(config)# ^Z
    RT-A#
    
    インターネットへの接続口のルータはデフォルトルートを設定し、ローカルで使用していない宛先宛ての全てのパケットをインターネット側へ転送します。
  3. RT-B をネットワーク構成図に示す通り設定し、200.10.10.8/29 のネットワークへ行くためのスタティックルートを構成しなさい。
  4. < RT-B >
    Router# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    Router(config)# host PC-C
    RT-B(config)# int f0/0
    RT-B(config-if)# ip add 10.10.10.2 255.255.255.0
    RT-B(config-if)# no shut
    RT-B(config-if)# int f0/1
    RT-B(config-if)# ip add 161.14.1.2 255.255.255.0
    RT-B(config-if)# no shut
    RT-B(config-if)# ip route 200.10.10.8 255.255.255.248 10.10.10.1
    RT-B(config)# ^Z
    RT-B#
    
    200.10.10.8/29 は ISP から割り当てられたグローバルアドレスで、この中の 200.10.10.9 と 200.10.10.10 をスタティック NAT で使用します。インターネット側の ISP ルータ (RT-B) は、固定でIPアドレスを割り当てた顧客向けには通常スタティックルートで設定します。
  5. 次のアドレス変換が行えるように RT-A でスタティック NAT を設定しなさい。
  6. 内部ローカルアドレス内部グローバルアドレス
    192.168.1.10200.10.10.9
    192.168.1.11200.10.10.10
    < RT-A >
    RT-A# conf t
    Enter configuration commands, one per line.  End with CNTL/Z.
    RT-A(config)# ip nat inside source static 192.168.1.10 200.10.10.9    ← 192.168.1.10 <-> 200.10.10.9
    RT-A(config)# ip nat inside source static 192.168.1.11 200.10.10.10   ← 192.168.1.11 <-> 200.10.10.10
    RT-A(config)# int f0/0
    RT-A(config-if)# ip nat inside   ← F0/0 側を内部ネットワークに指定
    RT-A(config-if)# int f0/1
    RT-A(config-if)# ip nat outside  ← F0/1 側を外部ネットワークに指定
    RT-A(config-if)# ^Z
    RT-A#
    
    インターネットの接続口で使用している NAT では、社内側 LAN を内部ネットワークといい、インターネット側を外部ネットワークといいます。



    そして、この内部ネットワーク内で使用しているアドレスを内部ローカルアドレス (192.168.1.10 や 192.168.1.11) といい、内部ネットワーク内の PC が外部ネットワーク (インターネット) に出て行く時に使用するアドレス (NAT により変換するグローバルアドレス) を内部グローバルアドレス (200.10.10.9 や 200.10.10.10) といいます。内部グローバルアドレスは通常、インターネットに接続するために ISP から割り当てられたアドレスです。そして、インターネット上のホストのアドレスが外部グローバルアドレス (161.14.1.2) です。
    [スタティック NAT の設定手順]

    1. 変換する内部ローカルアドレスと内部グローバルアドレスを1対1で定義
      ip nat inside source static [内部ローカルアドレス] [内部グローバルアドレス]

    2. 内部ネットワークの指定
      ip nat inside

    3. 外部ネットワークの指定
      ip nat outside
    NAT で使用する4つのアドレス
    Inside local内部ローカルアドレス内部ネットワークのホストに割り当てるアドレスで、通常はプライベートアドレス。
    Inside global内部グローバルアドレス内部ネットワークのホストが外部ネットワークのホストと通信するためのグローバルアドレスで、通常は ISP から割り当てられるアドレス。
    Outside local外部ローカルアドレス内部ネットワークから見た外部ネットワーク上のホストのアドレスで、通常は外部グローバルアドレスと同じ。
    Outside global外部グローバルアドレス外部ネットワーク上のホストに割り当てられているグローバルアドレスで、そのホストの管理者が割り当てる。
    ip nat inside source static コマンドで内部ネットワークのアドレス変換を行い、ip nat outside source static コマンドで外部ネットワークのアドレス変換を行います。ip nat outside source static コマンドを設定した場合は、外部ローカルアドレスと外部グローバルアドレスは異なるアドレスになります。ただし、特殊なケース以外は、通常、ip nat outside source static コマンドを使用しません。
  7. RT-A で、sh ip nat translations コマンドを実行しなさい。
  8. < RT-A >
    RT-A# sh ip nat translations
    Pro Inside global      Inside local       Outside local      Outside global
    --- 200.10.10.9        192.168.1.10       ---                ---
    --- 200.10.10.10       192.168.1.11       ---                ---
    RT-A#
    
    sh ip nat translations コマンドで NAT テーブルを表示します。
    スタティック NAT で設定した通り、正しく NAT テーブルが構成されています。
  9. Web サーバー、Mail サーバー、インターネット PC をネットワーク構成図に示す通り設定しなさい。
  10. < Web サーバー >
    C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.10 255.255.255.0 192.168.1.1
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター ローカル エリア接続:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 192.168.1.10
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
    
    C:\>
    
    < Mail サーバー >
    C:\> netsh interface ipv4 set address "イーサネット" static 192.168.1.11 255.255.255.0 192.168.1.1
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター ローカル エリア接続:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 192.168.1.11
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 192.168.1.1
    
    C:\>
    
    < インターネット PC >
    C:\> netsh interface ipv4 set address "イーサネット" static 161.14.1.10 255.255.255.0 161.14.1.2
    
    C:\> ipconfig
    
    Windows IP 構成
    
    イーサネット アダプター ローカル エリア接続:
    
       接続固有の DNS サフィックス . . . . .:
       IPv4 アドレス . . . . . . . . . . . .: 161.14.1.10
       サブネット マスク . . . . . . . . . .: 255.255.255.0
       デフォルト ゲートウェイ . . . . . . .: 161.14.1.2
    
    C:\>
    
  11. RT-A で、debug ip nat コマンドを実行しなさい。
  12. < RT-A >
    RT-A# debug ip nat
    IP NAT debugging is on
    RT-A#
    
    debug コマンドで、NAT 変換の動作を確認することができます。
  13. インターネット上の PC から社内の Web サーバーへ ping を実行しなさい。
  14. < インターネット PC >
    C:\> ping 200.10.10.9     ← Web サーバーのIPアドレス
    
    200.10.10.9 に ping を送信しています 32 バイトのデータ:
    200.10.10.9 からの応答: バイト数 =32 時間 =5ms TTL=126
    200.10.10.9 からの応答: バイト数 =32 時間 =2ms TTL=126
    200.10.10.9 からの応答: バイト数 =32 時間 =2ms TTL=126
    200.10.10.9 からの応答: バイト数 =32 時間 =2ms TTL=126
    
    200.10.10.9 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 2ms、最大 = 5ms、平均 = 2ms
    
    C:\>
    
  15. RT-A で、debug の結果を確認しなさい。(自動で表示されます)
  16. < RT-A >
    RT-A#
    *Nov 24 22:54:16.471: NAT*: s=161.14.1.10, d=200.10.10.9->192.168.1.10 [18801]  ← エコー要求
    *Nov 24 22:54:16.475: NAT*: s=192.168.1.10->200.10.10.9, d=161.14.1.10 [5566]   ← エコー応答
    
    エコー要求 (外部 → 内部) は、宛先アドレス (d) が 200.10.10.9->192.168.1.10 に変換され、
    エコー応答 (内部 → 外部) は、送信元アドレス (s) が 192.168.1.10->200.10.10.9 に変換されています。

  17. インターネット上の PC から社内の Mail サーベーへ ping を実行しなさい。
  18. < インターネット PC >
    C:\> ping 200.10.10.10     ← Mail サーバーのIPアドレス
    
    200.10.10.10 に ping を送信しています 32 バイトのデータ:
    200.10.10.10 からの応答: バイト数 =32 時間 =5ms TTL=126
    200.10.10.10 からの応答: バイト数 =32 時間 =2ms TTL=126
    200.10.10.10 からの応答: バイト数 =32 時間 =2ms TTL=126
    200.10.10.10 からの応答: バイト数 =32 時間 =2ms TTL=126
    
    200.10.10.10 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 2ms、最大 = 5ms、平均 = 2ms
    
    C:\>
    
  19. RT-A で、debug の結果を確認しなさい。(自動で表示されます)
  20. < RT-A >
    RT-A#
    *Nov 24 22:56:03.619: NAT*: s=161.14.1.10, d=200.10.10.10->192.168.1.11 [12992]  ← エコー要求
    *Nov 24 22:56:03.623: NAT*: s=192.168.1.11->200.10.10.10, d=161.14.1.10 [27205]  ← エコー応答
    
    エコー要求 (外部 → 内部) は、宛先アドレス (d) が 200.10.10.10->192.168.1.11 に変換され、
    エコー応答 (内部 → 外部) は、送信元アドレス (s) が 192.168.1.11->200.10.10.10 に変換されています。

  21. RT-A で、sh ip nat translations コマンドを実行しなさい。
  22. < RT-A >
    RT-A# sh ip nat translations
    Pro Inside global      Inside local       Outside local      Outside global
    icmp 200.10.10.9:1     192.168.1.10:1     161.14.1.10:1      161.14.1.10:1
    --- 200.10.10.9        192.168.1.10       ---                ---
    icmp 200.10.10.10:1    192.168.1.11:1     161.14.1.10:1      161.14.1.10:1
    --- 200.10.10.10       192.168.1.11       ---                ---
    RT-A#
    
    スタティックで設定した以下のエントリは、NAT テーブルから消えることはありませんが
    --- 200.10.10.9        192.168.1.10       ---                ---
    --- 200.10.10.10       192.168.1.11       ---                ---
    
    ping 実行により追加された以下のエントリは、60秒後に NAT テーブルから消えます。
    (IOS のバージョンによって表示されない場合あり)
    icmp 200.10.10.9:1     192.168.1.10:1     161.14.1.10:1      161.14.1.10:1
    icmp 200.10.10.10:1    192.168.1.11:1     161.14.1.10:1      161.14.1.10:1
    
  23. PC-C で telnet クライアントと tftp クライアントが使用できるようにしなさい。
  24. Windows 8.1 の場合

    [スタート] ボタンを右クリック → [コントロールパネル] → [プログラム] → [Windows の機能の有効化または無効化] の順にクリックし、[Windows の機能] ダイアログボックスで、[Telnet クライアント] と [TFTP クライアント] のチェックボックスをオンにする。

  25. PC-C から Web サーバー (200.10.10.9) 宛てに telnet および tftp を実行しなさい。
  26. < PC-C >
    C:\> telnet 200.10.10.9       ← telnet
    接続中: 200.10.10.9...ホストへ接続できませんでした。 ポート番号 23: 接続に失敗しました
    
    C:\> tftp 200.10.10.9 GET abc ← tftp
     接続要求に失敗しました
    
    C:\>
    
    Web サーバーには、telnet/tftp サーバーは起動していませんので接続は失敗しますが、接続を試みたことによるアドレス変換は行われています。 (ただし、60 秒以上経ってリストから消えている場合あり)
  27. RT-A で、sh ip nat translations コマンドを実行しなさい。
  28. < RT-A >
    RT-A# sh ip nat translations
    Pro Inside global      Inside local       Outside local      Outside global
    tcp 200.10.10.9:23     192.168.1.10:23    161.14.1.10:49160  161.14.1.10:49160
    udp 200.10.10.9:69     192.168.1.10:69    161.14.1.10:49161  161.14.1.10:49161
    --- 200.10.10.9        192.168.1.10       ---                ---
    --- 200.10.10.10       192.168.1.11       ---                ---
    RT-A#
    
    icmp が出力結果に残っている場合もあり。



    スタティック NAT で設定した通りにアドレス変換を行っています。
    Outside 側のポート番号 (49160,49161) は、telnet/tftp を実行した側の機器 (今回は PC-C) が勝手に決めた番号です。