Cisco 機器に NAT 設定を施す場合、Outside / Inside、Local / Global という用語を理解していることが重要です。要約すると、これらの用語は以下のように使われます。
双方向 NAT の設定例
以下の構成で双方向 NAT を設定してみます。
まず、インターフェイスで inside / outside を定義します。
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" コマンドを使います。
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 へ
- IPSec の場合は入力アクセス リストをチェック
- 暗号解除 - CET または IPSec
- 入力アクセス リストをチェック
- 入力レート制限をチェック
- 入力アカウンティング
- 外部から内部への NAT(グローバルからローカルへの変換)
- ポリシー ルーティング
- ルーティング
- Web キャッシュにリダイレクト
- 暗号化(暗号化のためのマップをチェックしてマーク)
- 出力アクセス リストをチェック
- CBAC 検査
- TCP インターセプト
- 暗号化
- キューイング
- Inside から Outside へ
- IPSec の場合は入力アクセス リストをチェック
- 暗号解除 - CET(Cisco Encryption Technology)または IPSec
- 入力アクセス リストをチェック
- 入力レート制限をチェック
- 入力アカウンティング
- ポリシー ルーティング
- ルーティング
- Web キャッシュにリダイレクト
- 内部から外部への NAT(ローカルからグローバルへの変換)
- 暗号化(暗号化のためのマップをチェックしてマーク)
- 出力アクセス リストをチェック
- 検査(コンテキストベース アクセス制御(CBAC))
- TCP インターセプト
- 暗号化
- キューイング
この回避する為に、本来は Global 側インターフェイスに存在する Outside Local アドレスに対して、Local 側へ向けるホストルートを設定します。
ip route 10.0.0.99 255.255.255.255 FastEthernet0/1
!
end
この状態で、ルーティングテーブルは以下のようになっています。
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" を使います。
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 エントリーが作成され、通信が可能になります。
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 --- ---
コメント