内容

概要

前提条件

要件

使用するコンポーネント

表記法

背景説明

アクセス リストの使用法

ホスト 1 からホスト 2

ホスト 1 からホスト 3

ルート マップを使用する方法

ホスト 1 からホスト 2

ホスト 1 からホスト 3

関連情報

概要

このドキュメントでは、ルート マップまたはアクセス リストを使用してのネットワーク アドレス変換（NAT）の設定方法について説明します。 NAT の詳細は、Cisco IOS NAT に関するドキュメントを参照してください。

前提条件

要件

このドキュメントに特有の要件はありません。

使用するコンポーネント

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

- Cisco 2500 シリーズ ルータ

- Cisco IOS® ソフトウェア リリース 12.3(3)

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

表記法

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

背景説明

NAT は、変換エントリを作成する必要がある場合にだけ、アクセス リストおよびルートマップを使用します。トラフィックに一致する変換エントリがすでに存在し、それが使用される場合は、アクセス リストまたはルート マップを調べません。アクセス リストまたはルート マップの使用における違いは、作成される変換エントリの種類です。

ルート マップ

NAT がルート マップを使用して変換エントリの作成を決定した場合は、常に「完全拡張」変換エントリを作成します。この変換エントリには、内部および外部（ローカルおよびグローバル）のアドレス エントリと、TCP または UDP ポートの情報の両方があります。『NAT：ローカルおよびグローバルの定義』を参照すると、内部および外部（ローカルおよびグローバル）アドレスの詳細を確認できます。

アクセス リスト（オーバーロードなし）

NAT がアクセス リストを使用して変換エントリの作成を決定した場合は、「簡易」変換エントリを作成します。この「簡易」エントリには、ip nat inside または ip nat outside コマンドを設定されているかどうかによって、単に内部または外部のローカルおよびグローバル IP アドレス エントリだけがあります。TCP または UDP ポート情報は含まれません。

アクセス リスト（オーバーロードあり）

NAT がアクセス リストを使用し、またオーバーロードが指定されている場合は、NAT は「完全拡張」変換エントリを作成します。（注 1 を参照）。 ルート マップにいくつか追加の機能がある以外は、操作はルート マップと同じです。詳細は、注 2 を参照してください。次のリンクのいずれかを選択して、簡易 NAT 変換エントリおよび完全拡張 NAT 変換の例を参照できます。

- 簡易 NAT 変換エントリ

- 完全拡張 NAT 変換エントリ

次のネットワーク図の例を用いて、NAT でルート マップを使用する場合とアクセス リストを使用する場合の違いを説明します。

上記のネットワーク図の例では、10.1.1.0 のホストが次のように変換される必要があります。

- 宛先が 131.108.1.0 の場合は 131.108.2.0

- 宛先が 131.118.1.0 の場合は、131.118.2.0

アクセス リストの使用法

アクセス リストを使用する方法では、次のように設定して、10.1.1.0 ホストを変換します。

ip nat pool pool108 131.108.2.1 131.108.2.254 prefix-length 24

!--- Defines a pool of global addresses to be allocated as needed.

ip nat pool pool118 131.118.2.1 131.118.2.254 prefix-length 24

ip nat inside source list 108 pool pool108

!--- Establishes dynamic source translation, specifying the !--- access list defined below.

ip nat inside source list 118 pool pool118

interface ethernet0

ip address 10.1.1.1 255.255.255.0

ip nat inside

!--- Marks the interface as connected to the inside.

interface ethernet1

ip address 10.1.2.1 255.255.255.0

ip nat outside

!--- Marks the interface as connected to the outside.

access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255

!--- Defines the access-list mentioning those addresses !--- that are to be translated.

access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255

これらのコマンドの詳細は、『IP アドレッシング コマンドおよびサービス コマンド』を参照してください。

ホスト 1 からホスト 2

ここでは、ホスト 1 からホスト 2 への Telnet で何が起こるかを説明します。

Packet on (Network 1) s:10.1.1.2(1024)     d:131.108.1.2(23)

Packet on (Network 2) s:131.108.2.1(1024)  d:131.108.1.2(23)   (after NAT)

NAT がこのトラフィックを照合するためにアクセス リストを使用したので、内部変換情報だけを含み、プロトコルやポート情報を含まない簡易変換エントリが作成されます。

inside                         outside

local        global          global         local

10.1.1.2     131.108.2.1       ----           ----

戻りパケット：ホスト 2 からホスト 1：

Packet on (Network 2)  s:131.108.1.2(23)  d:131.108.2.1(1024)

Packet on (Network 1)  s:131.108.1.2(23)  d:10.1.1.2(1024)      (after NAT)

ホスト 1 からホスト 3

上記の簡易変換の実行により、ホスト 1 からホスト 3 への Telnet で何が起こるかを説明します。

Packet on (Network 1)  s:10.1.1.2(1025)     d:131.118.1.2(23)

Packet on (Network 2)  s:131.108.2.1(1025)  d:131.118.1.2(23)   (after NAT)

問題が発生していることが確認できます。10.1.1.0ホストから131.118.1.0ホストに送信されるパケットは、131.108.2.0ではなく131.118.2.0に変換される必要があります。これは、10.1.1.2 <—> 131.108.2.1のNAT変換エントリがホスト1とホスト3の間のトラフィックにも一致するためです。

簡易変換エントリを NAT 変換テーブルで実行している場合は、外部ホスト上の任意の外部ユーザがホスト 1 の内部グローバル アドレス（131.108.2.1）を使用している限り、ホスト 1 へパケットを送信することができます。通常、このためにはスタティック NAT 変換が必要です。

ルート マップを使用する方法

この文書の例を構成する正しい方法は、ルート マップを使用することです。ルート マップを使用する方法では、次のように設定し、10.1.1.0 ホストを変換します。

ip nat pool pool-108 131.108.2.1 131.108.2.254 prefix-length 24

ip nat pool pool-118 131.118.2.1 131.118.2.254 prefix-length 24

ip nat inside source route-map MAP-108 pool pool-108

!--- Establishes dynamic source translation, specifying !--- the route-map MAP-108 which is defined below.

ip nat inside source route-map MAP-118 pool pool-118

!--- Establishes dynamic source translation, specifying the route-map MAP-118. !--- Here, the route-maps are consulted instead of !--- access-lists (as in the previous case).

interface ethernet0

ip address 10.1.1.1 255.255.255.0

ip nat inside

interface ethernet1

ip address 10.1.2.1 255.255.255.0

ip nat outside

access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255

access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255

route-map MAP-108 permit 10

!--- Defines the Route-map MAP-108.

match ip address 108

!--- Specifies the criteria for translation. Here, the IP !--- address mentioned in the access-list 108 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-108 pool pool-108 command.

route-map MAP-118 permit 10

!--- Defines the Route-map MAP-108.

match ip address 118

!--- The IP address mentioned in the access-list 118 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-118 pool pool-118 command.

これらのコマンドの詳細は、『IP アドレッシング コマンドおよびサービス コマンド』を参照してください。

ホスト 1 からホスト 2

ここでは、ホスト 1 からホスト 2 への Telnet で何が起こるかを説明します。

Packet on (Network 1) s:10.1.1.2(1024)     d:131.108.1.2(23)

Packet on (Network 2) s:131.108.2.1(1024)  d:131.108.1.2(23)   (after NAT)

この場合、NAT がルート マップを使用して変換するトラフィックを照合したので、NAT は内部および外部変換情報の両方を含む完全拡張変換エントリを作成します。

inside                               outside

local            global             global             local

10.1.1.2:1024    131.108.2.1:1024   131.108.1.2:23     131.108.1.2:23

戻りパケット：ホスト 2 からホスト 1：

Packet on (Network 2) s:131.108.1.2(23)  d:131.108.2.1(1024)

Packet on (Network 1) s:131.108.1.2(23)  d:10.1.1.2(1024)      (after NAT)

ホスト 1 からホスト 3

ここで、ホスト 1 がホスト 3 にパケットを送信すると、次のようになります。

Packet on (Network 1) s:10.1.1.2(1025)     d:131.118.1.2(23)

Packet on (Network 2) s:131.118.2.1(1025)  d:131.118.1.2(23)   (after NAT)

変換は正常に実行されました。これは、（N1）のパケットがホスト 1 からホスト 2 へのトラフィックに使用された完全拡張変換エントリに一致しないためです。既存の変換は一致しないため、NAT は、ホスト 1 からホスト 3 へのトラフィックに別の変換エントリを作成します。

次は、NAT ルータの完全拡張変換エントリです。

inside                               outside

local            global             global             local

10.1.1.2:1024    131.108.2.1:1024   131.108.1.2:23     131.108.1.2:23

10.1.1.2:1025    131.118.2.1:1025   131.118.1.2:23     131.118.1.2:23

NAT 変換テーブルには 2 つのフル エントリがあるため、同じソースから 2 つの異なる宛先へ送信されるトラフィックを正しく変換します。

アクセスリストによって作成された単純な変換エントリとは異なり、ルートマップを介して作成された完全拡張変換エントリは、他の外部ユーザがホスト1にパケットを送信するために使用できません。これを可能にするには、スタティックNAT変換が必要です。

注 1

オーバーロード付きのアクセス リストの場合、設定はオーバーロードなしのアクセス リストの場合と似ています。異なるのは、overload キーワードを ip nat inside source list 108 pool pool108 and ip nat inside source list 118 pool pool118 コマンドに追加する必要がある点です。

注 2

ルート マップを使用する利点は、match コマンドでソース IP アドレス以外の多くのオプションがあることです。たとえば、ルート マップで match interface または match ip next-hop を指定できます。ルート マップを使用して、IP アドレスおよびパケットが転送される次のホップ アドレスを指定できます。このため、加入者がさまざまな ISP にマルチホーミングしている場合は、NAT でルート マップが使用されます。

関連情報

- NAT：スタティック変換によりルート マップを使用する機能

- Cisco IOS ネットワーク アドレス変換

- ネットワーク アドレス変換の設定

- NAT：ローカルおよびグローバルの定義

- 問題解決とサービスのための Cisco IOS IP コマンド リファレンス、リリース 12.3

- テクニカル サポートとドキュメント – Cisco Systems