Cisco機器のNAT設定 | 静的NAT(スタティックNAT – ip nat outside source ①)

Cisco機器のNAT設定 | 静的NAT(スタティックNAT – ip nat outside source ①)

Cisco機器の静的NAT(スタティックNAT)の概要と、 外部送信元アドレスのNAT(ip nat outside source)について説明します。

NATの概要については、下記を参照してください。

目次

Cisco機器の基本的なNATの設定

Cisco機器では、下記の設定を行うことで、NATを行うことができます。

  1. インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
  2. NAT対象とするネットワーク(内部or外部)と変換前後のIPアドレスを設定する
STEP
インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定する
インターフェースを内部ネットワーク(inside)か外部ネットワーク(outside)に設定
STEP
NAT変換前とNAT変換後のIPアドレスを設定する
NAT変換前とNAT変換後のIPアドレスを設定

外部送信元アドレスの変換 | ip nat outside source

ネットワーク構成

下記のネットワーク構成を例に、具体的なNAT設定について説明します。ここでは、外部サーバーのIPアドレスを”200.200.1.1″から”192.168.2.1″に変換します。

ネットワーク構成

NATとルーティングの順序

NATとルーティングの順序に関しては、下記のルールがあります。外部送信元をNATする場合、insideからoutsideへのルーティングを考慮する必要があります。

inside側からoutside側への通信outside側からinside側への通信
「ルーティング」→「NAT」の順序で処理される「NAT」→「ルーティング」の順序で処理される

詳細に関しては、下記を参照してください。

通信NGとなる設定(ルーティング設定が不足している場合)

下記の設定だけでは、insideからoutsideへの通信に必要なルーティングが不足しているため、通信がNGとなります。

# Gi0/0をinsideに指定
interface GigabitEthernet0/0
 ip nat inside

# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
 ip nat outside

# outside側の送信元アドレス"200.200.1.1"を"192.168.2.1"に変換する
ip nat outside source static 200.200.1.1 192.168.2.1
通信の流れ(outside→insideへの通信) ※通信OK
STEP
外部サーバーから通信開始

外部サーバーから内部サーバー宛に通信が開始されます。

外部サーバーから通信開始
STEP
NATルーターにパケットが到達

NATルーターにパケットが到達します。

NATルーターにパケットが到達
STEP
NAT変換処理

送信元アドレスをNAT変換します。

NAT変換処理
STEP
ルーティング処理

送信先ネットワークに対して、ルーティング処理が行われます。

ルーティング処理
STEP
内部サーバーにパケットが到達

内部サーバーにパケットが到達します。

内部サーバーにパケットが到達
通信の流れ(inside→outsideへの通信) ※通信NG
STEP
内部サーバーから通信開始 ※戻り通信(応答パケットの送信)

外部サーバーから内部サーバー宛に通信が開始されます。

内部サーバーから通信開始
STEP
NATルーターにパケットが到達

NATルーターにパケットが到達します。

NATルーターにパケットが到達
STEP
ルーティング処理 ※ここで通信がNGとなる

送信先ネットワークに対して、ルーティング処理を行いますが、「192.168.2.1」宛の経路情報が無いため、パケットは破棄されます。

ルーティング処理

通信OKとなる設定

insideからoutsideへの通信を可能とするためには、NATルーターに適切なルーティング設定を行うことが必要です。(送信先ネットワークへの経路情報を保持する必要があります。)

パターン① ルーティングを手動で設定

192.168.2.1への通信はoutside側へルーティングされるようにスタティックルートを設定します。

# Gi0/0をinsideに指定
interface GigabitEthernet0/0
 ip nat inside

# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
 ip nat outside

# outside側の送信元アドレス"200.200.1.1"を"192.168.2.1"に変換する
ip nat outside source static 200.200.1.1 192.168.2.1

# insideからoutsideへの通信に必要なルーティングの設定
ip route 192.168.2.1 255.255.255.255 200.200.1.1

パターン②  ルーティングを自動追加(add-routeオプション)

NAT設定に”add-route”オプションを追加すると、outside側へのルーティングに必要な経路情報が自動的に設定されます。

# Gi0/0をinsideに指定
interface GigabitEthernet0/0
 ip nat inside

# Gi0/1をoutsideに指定
interface GigabitEthernet0/1
 ip nat outside

# outside側の送信元アドレス"200.200.1.1"を"192.168.2.1"に変換する
# 必要な経路情報を自動的に追加するように"add-route"オプションを追加
ip nat outside source static 200.200.1.1 192.168.2.1 add-route

ルーティングテーブルを確認すると、必要な経路情報(宛先アドレス:192.168.2.1、ネクストホップ:200.200.1.1)が追加されていることがわかります。

Router#show ip route

      192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.1.0/24 is directly connected, GigabitEthernet0/0
L        192.168.1.254/32 is directly connected, GigabitEthernet0/0
      192.168.2.0/32 is subnetted, 1 subnets
S        192.168.2.1 [1/0] via 200.200.1.1
      200.200.1.0/24 is variably subnetted, 2 subnets, 2 masks
C        200.200.1.0/24 is directly connected, GigabitEthernet0/1
L        200.200.1.254/32 is directly connected, GigabitEthernet0/1
通信の流れ(outside→insideへの通信) ※通信OK
STEP
外部サーバーから通信開始

外部サーバーから内部サーバー宛に通信が開始されます。

外部サーバーから通信開始
STEP
NATルーターにパケットが到達

NATルーターにパケットが到達します。

NATルーターにパケットが到達
STEP
NAT変換処理

送信元アドレスをNAT変換します。

NAT変換処理
STEP
ルーティング処理

送信先ネットワークに対して、ルーティング処理が行われます。

ルーティング処理
STEP
内部サーバーにパケットが到達

内部サーバーにパケットが到達します。

内部サーバーにパケットが到達
通信の流れ(inside→outsideへの通信) ※通信OK
STEP
内部サーバーから通信開始 ※戻り通信(応答パケットの送信)

外部サーバーから内部サーバー宛に通信が開始されます。

内部サーバーから通信開始
STEP
NATルーターにパケットが到達

NATルーターにパケットが到達します。

NATルーターにパケットが到達
STEP
ルーティング処理

送信先ネットワークに対して、ルーティング処理が行われます。

ルーティング処理
STEP
NAT変換処理

送信先アドレスをNAT変換します。

NAT変換処理
STEP
外部サーバーにパケットが到達

外部サーバーにパケットが到達します。

外部サーバーにパケットが到達

通信確認

内部サーバーから外部サーバーに通信を行い、NATのステータスを確認します。

外部サーバーから内部サーバーへの通信
STEP
通信前のNATステータス確認

NATのステータスは、下記のコマンドで確認できます。

show ip nat translations
Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                192.168.2.1        200.200.1.1

Cisco機器の静的NAT(スタティックNAT)の場合、設定した値が確認できます。

STEP
外部サーバーから内部サーバーにPing(ICMP通信)を実施
Server2:~$ ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=63 time=8.566 ms
64 bytes from 192.168.1.1: seq=1 ttl=63 time=5.290 ms
64 bytes from 192.168.1.1: seq=2 ttl=63 time=9.345 ms
64 bytes from 192.168.1.1: seq=3 ttl=63 time=4.931 ms
64 bytes from 192.168.1.1: seq=4 ttl=63 time=5.492 ms
STEP
通信後のNATステータス確認
Router#show ip nat translations
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                192.168.2.1        200.200.1.1
icmp 192.168.1.1:3747  192.168.1.1:3747   192.168.2.1:3747   200.200.1.1:3747

NATエントリーが追加され、プロトコル/ポート番号なども表示されます。

show ip nat translations の見方は下記の通りです。

項目意味説明
ProプロトコルTCP/UDP/ICMPなどのプロトコル情報
Inside global内部機器のグローバルアドレスインサイド側の機器のアウトサイド側で見えるアドレス
Inside local内部機器のローカルアドレスインサイド側の機器のインサイド側で見えるアドレス
Outside local外部機器のローカルアドレスアウトサイド側の機器のインサイド側で見えるアドレス
Outside global外部機器のグローバルアドレスアウトサイド側の機器のアウトサイド側で見えるアドレス
覚え方のポイント

難解な表記となっていますが、下記のように覚えると分かりやすいです。

show ip nat translationsの覚え方

デバッグ確認

ルーターでのNAT状況を確認するために、下記のデバッグコマンドを実行します。

debug ip nat detailed

NAT実施時のデバッグログ

Router#
07:17:43.247: NAT: s=200.200.1.1->192.168.2.1, d=192.168.1.1 [41254]
  • 送信元のNAT結果
    • s=200.200.1.1->192.168.2.1:送信元(s – source)をNAT変換
    • d=200.200.1.1:送信先(d – destination)は変更なし

キャプチャ確認

NAT状況を確認するため、双方のサーバーでパケットキャプチャの結果を確認します。

外部サーバー側のパケットキャプチャ

外部サーバー側のパケットキャプチャ

要求(request)パケットの送信元、応答(reply)パケットの送信先が、”200.200.1.1″となっていることがわかります。

内部サーバー側のパケットキャプチャ

内部サーバー側のパケットキャプチャ

要求(request)パケットの送信元、応答(reply)パケットの送信先が、”192.168.2.1″となっていることがわかります。

逆方向の通信について

上記のNAT設定(ip nat outside source 〜〜)では、内部サーバーから外部サーバーのプライベートIPアドレス(192.168.2.1)に通信した場合も、NAT変換が行われます。

下記のように双方向でのNATが可能です。

逆方向の通信

内部サーバーから通信した場合のデバッグログ

Router#
07:28:32.723: NAT*: s=192.168.1.1, d=192.168.2.1->200.200.1.1 [33936]

送信先がNATされていることがわかります。(d=192.168.2.1->200.200.1.1)

  • URLをコピーしました!
  • URLをコピーしました!
目次