【Cisco】Twice-NAT(双方向NAT)について


CiscoのTwice-NAT(双方向NAT)について業務で使うことが多かったのでまとめます。

一般的にNATというとインターネット接続ルータで複数の送信元プライベートIPアドレスを、一つのグローバルIPアドレスに変換するNAPT(IPマスカレード)を使うことが多いですが、今回はプライベートNW間で送信元、宛先ともに変換する双方向NATを紹介します。

twicenat.png

※各PCのDGWは真ん中のルータとします。

PC-AはPC-Bに対して通信する時は192.168.1.1を宛先にすれば通信できます。(PC-Bからは10.252.1.1)

例えばPC-Aに別NICがあって192.168.1.0/24へはそのNICから通信するように個別にルーティングを切っているとPC-Bとの通信できませんよね。PC-Bも同じように10.252.1.0/24のルーティングを個別に切っていると通信できません。

そんなときにルーターに設定してあげるといいのが双方向NAT!

PC-Aから見たPC-BのIPアドレスを別セグメントのIPアドレスとして、
同じくPC−Bから見たPC-AのIPアドレスも別セグメントのIPアドレスとして
真ん中のルータに双方向NAT設定してあげると通信ができるようになります。

NAT用のセグメントを用意します。今回は172.16.1.0/24を使用します。

PC-Aから見たPC-BのIPアドレスを172.16.1.1、PC-Bから見たPC-AのIPアドレスを172.16.1.2としてルータに設定を入れていきます。

interface FastEthernet0
ip address 10.252.1.254 255.255.255.0
ip nat inside
ip virtual-reassembly
duplex auto
speed auto
!
interface FastEthernet1
ip address 192.168.1.254 255.255.255.0
ip nat outside
ip virtual-reassembly
duplex auto
speed auto

まず、インターフェースにinsideとoutsideを設定します。

次に双方向NATの設定

ip nat inside source static 10.252.1.1 172.16.1.2
ip nat outside source static 192.168.1.1 172.16.1.1

実はこれだけだと上手く通信できないのでスタティックルーティングを追加します。

ip route 172.16.1.1 255.255.255.255 192.168.1.1

この設定、なんで必要なのかといいますと、outsideからinsideへ通信する時とinsideからoutsideへ通信する時とではNATとルーティングの処理順序が異なる為です。

outsideからinsideへはNAT→ルーティング、insideからoutsideへはルーティング→NATの順番で処理されるんですね。ルーティングは宛先IPアドレスを元にルーティングするのでinsideから172.16.1.1が宛先のパケットが届いても俺、知らねーよーってパケットが破棄されます。なので個別に172.16.1.1のスタティックルートを書いておく必要があります。ちなみにこのスタティックルートの設定を入れなくても以下の設定でも大丈夫です。

ip nat inside source static 10.252.1.1 172.16.1.2
ip nat outside source static 192.168.1.1 172.16.1.1 add-route

双方向NATは意外と使い道あるので覚えておくといいですよ。

ちなみに私はやったことがないんですがYAMAHAのルータだともっと簡単にできるみたいですね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です