IP : IP アドレッシング サービス

ネットワーク アドレス変換の設定:スタートアップ ガイド

2008 年 4 月 23 日 - ライター翻訳版
その他のバージョン: PDFpdf | 機械翻訳版 (2013 年 8 月 21 日) | 英語版 (2006 年 3 月 16 日) | フィードバック

目次

概要
前提条件
      要件
      使用するコンポーネント
      表記法
クイック スタート手順:NAT の設定と展開
NAT の Inside インターフェイスと Outside インターフェイスの定義
例:内部ユーザがインターネットにアクセスできるようにする場合
      NAT の設定:内部ユーザがインターネットにアクセスできるようにする場合
      NAT の設定:内部ユーザがインターネットにアクセスできるようにする場合(オーバーロードの使用)
例:インターネットから内部デバイスにアクセスできるようにする場合
      NAT の設定:インターネットから内部デバイスにアクセスできるようにする場合
例:TCP トラフィックを別の TCP ポートまたはアドレスにリダイレクトする場合
      NAT の設定:TCP トラフィックを別の TCP ポートまたはアドレスにリダイレクトする場合
例:ネットワーク移行時に NAT を使用する場合
      NAT の設定:ネットワーク移行時に NAT を使用する場合
例:オーバーラッピング ネットワークで NAT を使用する場合

      1 対 1 のマッピングと多対多のマッピングの違い
NAT の動作確認
結論
関連するシスコ サポート コミュニティ ディスカッション
関連情報

概要

このドキュメントでは、一般的なネットワーク シナリオにおける、Cisco ルータでの Network Address Translation(NAT; ネットワーク アドレス変換)の設定について説明しています。 このドキュメントの対象読者は、NAT を初めて設定するユーザです。

このドキュメントで使用されている「インターネット」または「インターネット デバイス」という用語は、任意の外部ネットワークにあるデバイスを意味します。

前提条件

要件

このドキュメントを読むには、Network Address Translation(NAT; ネットワーク アドレス変換)との接続で使用される用語についての基本的な知識が必要です。 一部の用語の定義については、『NAT:ローカルおよびグローバルの定義』を参照してください。

使用するコンポーネント

このドキュメントの情報は、次のソフトウェアとハードウェアのバージョンに基づくものです。

  • Cisco 2500 シリーズ ルータ

  • Cisco IOS(R) ソフトウェア リリース 12.2 (10b)

このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのような作業についても、その潜在的な影響について確実に理解しておく必要があります。

表記法

ドキュメント表記の詳細は、『シスコ テクニカル ティップスの表記法』を参照してください。

クイック スタート手順:NAT の設定と展開

NAT を設定する場合、特に NAT の初心者にとっては、どこから手をつければよいかわからないことがよくあります。 NAT の機能の定義手順と設定方法は、次が参考になります。

  1. NAT の Inside インターフェイスと Outside インターフェイスを定義します。

    • ユーザーが属するインターフェイスは複数ありますか?

    • インターネットに出て行くインターフェイスは複数ありますか?

  2. NAT によって何を達成しようとしているのかを定義します。

  3. 前のステップで定義した目的を達成するために、NAT を設定します。 ステップ 2 で定義した目的に従って、次の機能の中からどれを使用するかを決定します。

    • スタティック NAT

    • ダイナミック NAT

    • オーバーロード

    • 上記の組み合せ

  4. NAT の動作を確認します。

以降の NAT の例はそれぞれ、上記のクイック スタート手順のステップ 1 〜 3 の内容を具体的に示しています。 これらの例で取り上げられているのはいずれも、NAT の展開が推奨される一般的なシナリオです。

NAT の Inside インターフェイスと Outside インターフェイスの定義

NAT を展開するための最初のステップは、NAT の Inside インターフェイスと Outside インターフェイスを定義することです。内部ネットワークを Inside、外部ネットワークを Outside と定義するのが最も簡単であると思われるかもしれません。 ただし、「内部」と「外部」という用語はどちらも使用目的によって決まります。 次の図は、この例を示しています。

12a.jpg

ネットワーク ダイアグラム

例:内部ユーザがインターネットにアクセスできるようにする場合

内部ユーザがインターネットにアクセスできるようにすることは可能であるものの、有効アドレスの数がすべてのユーザに対応できるほど十分にない場合があります。 インターネット上のデバイスとの通信がすべて内部デバイスから開始される場合は、1 つの有効アドレスか、または有効アドレスのプールが必要です。

次の図は、Inside および Outside として定義されたルータ インターフェイスを含む単純なネットワーク ダイアグラムです。

12b.jpg

ネットワーク ダイアグラム
※ 画像をクリックすると、大きく表示されます。

この例では、NAT の使用目的を「各デバイスの無効なアドレスを 1 つの有効アドレスまたはアドレス プールに変換して、Inside にある特定のデバイス(サブネットごとに最初の 31 のデバイス)が Outside デバイスとの通信を開始できるようにすること」と定義しました。 アドレス プールは、172.16.10.1 〜 172.16.10.63 の範囲で定義されています。

これで NAT を設定する準備ができました。 上記の目的を達成するには、ダイナミック NAT を使用します。 ダイナミック NAT では、ルータ上の変換テーブルに最初は何も登録されておらず、変換が必要なトラフィックがルータを通過するたびにエントリが追加されます(それに対してスタティック NAT では、変換があらかじめ静的に設定されており、変換が必要なトラフィックがなくても変換テーブル内にエントリが登録されています)。

この例では、NAT を設定して、Inside デバイスをそれぞれ異なる有効アドレスに変換できます。また、Inside デバイスすべてを同じ有効アドレスに変換することも可能です。 後者の方法をオーバーロードと呼びます。 各方法の設定例を次に示します。

NAT の設定:内部ユーザがインターネットにアクセスできるようにする場合

NAT ルータ
interface ethernet 0
 ip address 10.10.10.1 255.255.255.0
 ip nat inside

!--- ethernet 0 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface ethernet 1
 ip address 10.10.20.1 255.255.255.0
 ip nat inside

!--- ethernet 1 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface serial 0
 ip address 172.16.10.64 255.255.255.0
 ip nat outside

!--- serial 0 に IP アドレスを設定し、NAT Outside インターフェイスとして定義します。

 
ip nat pool no-overload 172.16.10.1 172.16.10.63 prefix 24
 !

!--- 172.16.10.1 〜 172.16.10.63 のアドレス範囲を持つ NAT プールを 

!--- no-overload という名前で定義します。



ip nat inside source list 7 pool no-overload 
 !
 !

!-- Inside インターフェイスで受信されたパケットのうち、
!--- access-list 7 で許可されている
!--- パケットの送信元アドレスが、NAT プール「no-overload」の
!--- 範囲内のアドレスに変換されることを示します。


access-list 7 permit 10.10.10.0 0.0.0.31
access-list 7 permit 10.10.20.0 0.0.0.31

!--- access-list 7 は、送信元アドレスが 10.10.10.0 〜 10.10.10.31 および

!--- 10.10.20.0 〜 10.10.20.31 の範囲にあるパケットを許可します。
 

NAT コマンドで参照されるアクセス リストを permit any に設定しないように強く推奨いたします。 permit any を使用すると NAT によって大量のルータ リソースが消費され、ネットワークの問題を引き起こすおそれがあります。

上記の設定では、サブネット 10.10.10.0 から最初の 32 アドレスと、サブネット 10.10.20.0 から最初の 32 アドレスのみが access-list 7 によって許可されています。 したがって、これらの送信元アドレスのみが変換されます。 Inside ネットワークには、これ以外のアドレスを持つデバイスがある可能性がありますが、それらは変換されません。

最後のステップは、NAT が意図したとおりに動作していることを確認することです。

NAT の設定:内部ユーザがインターネットにアクセスできるようにする場合(オーバーロードの使用)

NAT ルータ
interface ethernet 0
 ip address 10.10.10.1 255.255.255.0
 ip nat inside

!--- ethernet 0 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface ethernet 1
 ip address 10.10.20.1 255.255.255.0
 ip nat inside

!--- ethernet 1 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface serial 0
 ip address 172.16.10.64 255.255.255.0
 ip nat outside

!--- serial 0 に IP アドレスを設定し、NAT Outside インターフェイスとして定義します。


ip nat pool ovrld 172.16.10.1 172.16.10.1 prefix 24
 !

!--- 単一の IP アドレス、172.16.10.1 のみが範囲に含まれる NAT プールを
!--- ovrld という名前で定義します。


ip nat inside source list 7 pool ovrld overload
 !
 !
 !
 !

!--- Inside インターフェイスで受信されたパケットのうち、access-list 7 で
!--- 許可されているパケットの送信元アドレスが、NAT プール「ovrld」の
!--- 範囲内のアドレスに変換されることを示します。 
!--- 変換はオーバーロードされるため、複数の Inside デバイスが 1 つの有効な
!--- IP アドレスに変換されます。


access-list 7 permit 10.10.10.0 0.0.0.31
access-list 7 permit 10.10.20.0 0.0.0.31

!--- access-list 7 は、送信元アドレスが 10.10.10.0 〜 10.10.10.31 および

!--- 10.10.20.0 〜 10.10.20.31 の範囲にあるパケットを許可します。
 

上記の 2 番目の設定では、NAT プール「ovrld」には 1 つのアドレスだけの範囲が含まれています。 ip nat inside source list 7 pool ovrld overload コマンドのようにキーワード overload を使用すると、複数の Inside デバイスがプール内の単一アドレスに変換されます。

このコマンドのもう 1 つの形が ip nat inside source list 7 interface serial 0 overload です。このように設定すると、serial 0 インターフェイスに割り当てられたアドレスにオーバーロードされます。

オーバーロードを設定すると、ルータではグローバル アドレスを適切なローカル アドレスに逆変換するために、高レベル プロトコルからの情報(TCP ポート番号や UDP ポート番号など)が保持されます。 グローバル アドレスとローカル アドレスの定義については、『NAT:ローカルおよびグローバルの定義』を参照してください。

最後のステップは、NAT が意図したとおりに動作していることを確認することです。

例:インターネットから内部デバイスにアクセスできるようにする場合

インターネットにあるデバイスと情報を交換する内部デバイスが必要となる場合があります。この場合、通信はインターネット デバイスから開始されます。 典型的な例として、インターネット上のデバイスが内部ネットワークにあるメール サーバに電子メールを送信するケースが挙げられます。

12c.jpg

ネットワーク ダイアグラム
※ 画像をクリックすると、大きく表示されます。

NAT の設定:インターネットから内部デバイスにアクセスできるようにする場合

この例では、まず NAT の Inside インターフェイスと Outside インターフェイスを上記のネットワーク ダイアグラムのように定義します。

次に、Inside のユーザが Outside との通信を開始できるように定義します。Outside のデバイスは、Inside のメール サーバとの通信のみを開始できるようにする必要があります。

次のステップは NAT の設定です。 上記の目的を達成するには、スタティック NAT とダイナミック NAT をどちらも設定します。 この例の設定方法については、『スタティック NAT とダイナミック NAT の同時設定』を参照してください。

最後のステップは、NAT が意図したとおりに動作していることを確認することです。

例:TCP トラフィックを別の TCP ポートまたはアドレスにリダイレクトする場合

インターネット上のデバイスが内部デバイスとの通信を開始する必要があるもう 1 つの例が、内部ネットワークに Web サーバがある場合です。 内部 Web サーバでは、TCP ポート 80 以外のポート(8080 など)上の Web トラフィックをリスニングするように設定することがあります。 この場合は、NAT を使用して、TCP ポート 80 宛てのトラフィックを TCP ポート 8080 にリダイレクトできます。

12d.jpg

ネットワーク ダイアグラム
※ 画像をクリックすると、大きく表示されます。

インターフェイスを上記のネットワーク ダイアグラムのように定義した後、NAT の使用目的を「Outside から到達した 172.16.10.8:80 宛てのパケットを 172.16.10.8:8080 にリダイレクトすること」と決定します。 この目的を達成するには、static nat コマンドを使用して TCP ポート番号を変換します。 設定例を次に示します。

NAT の設定:TCP トラフィックを別の TCP ポートまたはアドレスにリダイレクトする場合

NAT ルータ
interface ethernet 0 
 ip address 172.16.10.1 255.255.255.0
 ip nat inside

!--- ethernet 0 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface serial 0
 ip address 200.200.200.5 255.255.255.252
 ip nat outside

!--- serial 0 に IP アドレスを設定し、NAT Outside インターフェイスとして定義します。


ip nat inside source static tcp 172.16.10.8 8080 172.16.10.8 80

!--- このスタティック NAT コマンドにより、Inside インターフェイスで受信された、
!--- 送信元アドレスが 172.16.10.8:8080 であるパケットが
!--- すべて 172.16.10.8:80 に変換されます。


上記のスタティック NAT コマンドの設定は、Inside インターフェイスで受信された、送信元アドレスが 172.16.10.8:8080 であるパケットがすべて 172.16.10.8:80 に変換されることを示しています。 これはまた、Outside インターフェイスで受信された、宛先アドレスが 172.16.10.8:80 であるパケットがすべて 172.16.10.8:8080 の宛先に変換されることも意味します。

最後のステップは、NAT が意図したとおりに動作していることを確認することです。

例:ネットワーク移行時に NAT を使用する場合

ネットワーク上のデバイスのアドレスを変更する場合や、あるデバイスを別のデバイスに置き換える場合は、NAT を使用すると便利です。 たとえば、ネットワーク内のすべてのデバイスが使用している特定のサーバを、新しい IP アドレスを持つ新しいデバイスに置き換える場合、すべてのネットワーク デバイスの設定を新しいサーバ アドレスに変更するには相当時間がかかります。 その間に、古いアドレスを使用しているデバイスのパケットを変換するよう NAT を設定すれば、それらのデバイスと新しいサーバが通信可能になります。

12e.jpg

ネットワーク ダイアグラム
※ 画像をクリックすると、大きく表示されます。

NAT インターフェイスを上記のように定義した後、NAT の使用目的を「Outside から到達した、古いサーバ アドレス(172.16.10.8)宛てのパケットを変換し、新しいサーバ アドレスに送信すること」と決定します。 新しいサーバは別の LAN にあるため、この LAN 上のデバイス、またはこの LAN を経由して到達可能なデバイス(ネットワークの Inside 側にあるデバイス)は、可能であれば新しいサーバの IP アドレスを使用できるように設定します。

上記の目的を達成するには、スタティック NAT を使用します。 設定例を次に示します。

NAT の設定:ネットワーク移行時に NAT を使用する場合

NAT ルータ
interface ethernet 0
 ip address 172.16.10.1 255.255.255.0
 ip nat outside

!--- ethernet 0 に IP アドレスを設定し、NAT Outside インターフェイスとして定義します。


interface ethernet 1
 ip address 172.16.50.1 255.255.255.0
 ip nat inside

!--- ethernet 1 に IP アドレスを設定し、NAT Inside インターフェイスとして定義します。


interface serial 0
 ip address 200.200.200.5 255.255.255.252

!--- serial 0 に IP アドレスを定義します。 このインターフェイスは、
!--- NAT には関係ありません。


ip nat inside source static 172.16.50.8 172.16.10.8

!--- Inside インターフェイスで受信された、送信元アドレスが 172.16.50.8 の
!--- パケットがすべて 172.16.10.8 に変換されます。


この例の inside source NAT コマンドは、Outside インターフェイスで受信された、宛先アドレスが 172.16.10.8 であるパケットがすべて 172.16.50.8 の宛先アドレスに変換されることも意味します。

最後のステップは、NAT が意図したとおりに動作していることを確認することです。

例:オーバーラッピング ネットワークで NAT を使用する場合

オーバーラッピング ネットワークは、インターネット内の他のデバイスですでに使用されている IP アドレスを内部デバイスに割り当てたときに起こります。 また、社内ネットワークで RFC 1918 leavingcisco.com の IP アドレスを使用している 2 つの会社が合併したときにも発生します。 これら 2 つのネットワークは、できればすべてのデバイスのアドレスを再設定せずに通信できる必要があります。 この目的で NAT を設定する場合についての詳細は、『重複ネットワークでの NAT の使用』を参照してください。

1 対 1 のマッピングと多対多のマッピングの違い

スタティック NAT 設定では、1 対 1 のマッピングが作成され、特定のアドレスが別のアドレスに変換されます。 このタイプの設定では、設定が存在する限り、NAT テーブルに恒久的なエントリが作成され、Inside ホストと Outside ホストの両方から接続を開始できます。 これは、主にメール、Web、FTP などのアプリケーション サービスを提供するホストで便利な設定です。 例:

Router(config)#ip nat inside source static 10.3.2.11 10.41.10.12
 Router(config)#ip nat inside source static 10.3.2.12 10.41.10.13

ダイナミック NAT は、変換されるホストの実際の数より使用できるアドレスが少ない場合に便利です。 ホストが接続を開始すると NAT テーブルにエントリが作成され、アドレス間に 1 対 1 のマッピングが確立されます。 ただし、マッピングは変化する場合があり、通信の時点でのプール内の使用できる登録済みアドレスに依存します。 ダイナミック NAT では、NAT が設定されている Inside または Outside のネットワークからのみ、セッションを開始できます。 一定の時間ホストが通信を行わないと、ダイナミック NAT のエントリは変換テーブルから削除されます。この時間は設定可能です。 次に、アドレスはプールに戻されて、別のホストが使用できるようになります。 たとえば、次の設定手順を参照してください。

  1. アドレスのプールを作成します。

    Router(config)#ip nat pool MYPOOLEXAMPLE 10.41.10.1 10.41.10.41 netmask 255.255.255.0
    
    
  2. マッピングする必要のある Inside ネットワークの access-list を作成します。

    Router(config)#access-list 100 permit ip 10.3.2.0 0.0.0.255 any
    
    
  3. NAT 対象の内部ネットワーク 10.3.2.0 0.0.0.255 を選択する access-list 100 をプール MYPOOLEXAMPLE と関連付けた後、アドレスをオーバーロードします。

    Router(config)#ip nat inside source list 100 pool MYPOOLEXAMPLE overload
    
    

NAT の動作確認

NAT の設定が完了したら、それが期待通りに動作するかを確認します。 これには、ネットワーク アナライザの使用や、show コマンド、debug コマンドの使用など、いくつかの方法があります。 NAT の動作確認例についての詳細は、『NAT オペレーションの検証と NAT の基本的なトラブルシューティング』を参照してください。

結論

このドキュメントの例は、クイック スタート手順が NAT の設定と展開に役立つことを具体的に示しています。 クイック スタート手順は、次のステップから構成されています。

  1. NAT の Inside インターフェイスと Outside インターフェイスを定義します。

  2. NAT によって何を達成しようとしているのかを定義します。

  3. ステップ 2 で定義した目的を達成するために、NAT を設定します。

  4. NAT の動作を確認します。

上記のそれぞれの例では、さまざまな形式の ip nat inside コマンドが使用されています。 NAT の動作の順序に留意すれば、ip nat outside コマンドを使用しても同じ目的を達成できます。 ip nat outside コマンドを使用した設定例については、『ip nat outside source list コマンドを使用した設定例』および『ip nat outside source static コマンドを使用した設定例』を参照してください。

上記の例では、次のコマンドの使用方法も示しています。

コマンド アクション
ip nat inside source
  • Inside から Outside へ移動する IP パケットの発信元を変換します。

  • Outside から Inside へ移動する IP パケットの宛先を変換します。

ip nat outside source
  • Outside から Inside へ移動する IP パケットの発信元を変換します。

  • Inside から Outside へ移動する IP パケットの宛先を変換します。



関連するシスコ サポート コミュニティ ディスカッション

シスコ サポート コミュニティは、どなたでも投稿や回答ができる情報交換スペースです。


関連情報


Document ID: 13772