Skip to content

双方向 NAT(ダブル NAT)を設定する

Cisco 機器に NAT 設定を施す場合、Outside / Inside、Local / Global という用語を理解していることが重要です。要約すると、これらの用語は以下のように使われます。

file

双方向 NAT の設定例

以下の構成で双方向 NAT を設定してみます。

file

まず、インターフェイスで inside / outside を定義します。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
interface FastEthernet0/0
 ip address 10.0.0.254 255.255.255.0
 ip nat inside
 no shutdown
!
interface FastEthernet0/1
 ip address 172.16.1.254 255.255.255.0
 ip nat outside
 no shutdown
!
end

次に静的 NAT エントリーを定義します。"ip nat inside source static" と "ip nat outside source static" コマンドを使います。

1
2
3
4
ip nat inside source static 10.0.0.1 172.16.1.99
ip nat outside source static 172.16.1.1 10.0.0.99
!
end

NAT の処理順序

ただし、これだけではサーバ間での通信は出来ません。なぜなら、NAT の処理順序 によると Outside → Inside の場合はルーティング処理が行われて出力インターフェイス&ネクストホップが決定してから NAT 処理が行われるのに対して、Inside → Outside の場合は NAT 処理よりも先にルーティング処理が行われてしまい、NAT 処理が行われなくなってしまうことが原因です。

以下は Cisco のサイトから、NAT の処理順序の抜粋です。

  • Outside から Inside へ
    1. IPSec の場合は入力アクセス リストをチェック
    2. 暗号解除 - CET または IPSec
    3. 入力アクセス リストをチェック
    4. 入力レート制限をチェック
    5. 入力アカウンティング
    6. 外部から内部への NAT(グローバルからローカルへの変換)
    7. ポリシー ルーティング
    8. ルーティング
    9. Web キャッシュにリダイレクト
    10. 暗号化(暗号化のためのマップをチェックしてマーク)
    11. 出力アクセス リストをチェック
    12. CBAC 検査
    13. TCP インターセプト
    14. 暗号化
    15. キューイング
  • Inside から Outside へ
    1. IPSec の場合は入力アクセス リストをチェック
    2. 暗号解除 - CET(Cisco Encryption Technology)または IPSec
    3. 入力アクセス リストをチェック
    4. 入力レート制限をチェック
    5. 入力アカウンティング
    6. ポリシー ルーティング
    7. ルーティング
    8. Web キャッシュにリダイレクト
    9. 内部から外部への NAT(ローカルからグローバルへの変換)
    10. 暗号化(暗号化のためのマップをチェックしてマーク)
    11. 出力アクセス リストをチェック
    12. 検査(コンテキストベース アクセス制御(CBAC))
    13. TCP インターセプト
    14. 暗号化
    15. キューイング

この回避する為に、本来は Global 側インターフェイスに存在する Outside Local アドレスに対して、Local 側へ向けるホストルートを設定します。

1
2
3
ip route 10.0.0.99 255.255.255.255 FastEthernet0/1
!
end

この状態で、ルーティングテーブルは以下のようになっています。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
Router2# show ip route 
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area 
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route

Gateway of last resort is not set

     172.16.0.0/24 is subnetted, 1 subnets
C       172.16.1.0 is directly connected, FastEthernet0/1
     10.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       10.0.0.0/24 is directly connected, FastEthernet0/0
S       10.0.0.99/32 is directly connected, FastEthernet0/1

通信確認

この状態で、ルータの NAT テーブルは以下のようになっています。NAT テーブルの確認には "show ip nat translations" を使います。

1
2
3
4
Router2# show ip nat translations 
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.0.0.99          172.16.1.1
--- 172.16.1.99        10.0.0.1           ---                ---

サーバ間で通信を実施すると、ルータ上に NAT エントリーが作成され、通信が可能になります。

1
2
3
4
5
Router2# show ip nat translations 
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.0.0.99          172.16.1.1
icmp 172.16.1.99:4     10.0.0.1:4         10.0.0.99:4        172.16.1.1:4
--- 172.16.1.99        10.0.0.1           ---                ---

参考リンク

  • http://www.cisco.com/JP/support/public/ht/tac/100/1008452/8-j.shtml
  • http://www.cisco.com/JP/support/public/ht/tac/100/1007991/nat-cisco-j.shtml
  • http://www1.cisco.com/JP/support/public/ht/tac/100/1008335/5-j.shtml