CiscoのNAT設定 双方向NAT

Cisco Systems - NAT

双方向NATとは

NATでは宛先アドレスや送信元アドレス等の変換が行えますが、宛先アドレスと送信元アドレスの両方を変換してしまう方法を双方向NATと呼んでいます。

どのような時に使うかというと、複数の組織間で接続する場合などに使われる事が多いです。

例えば、R10では10.1.1.0/24のネットワークのルーティングを行っており、R20では10.2.2.0/24のルーティングを行なっていたとします。それらのネットワークを接続する必要が発生した時に、R10で10.2.2.0/24をルーティングするように設定したり、R20で10.1.1.0/24のルーティングをさせなくてはならなくなります。

Nat dual

ダイナミックルーティングを行なっていれば何の問題もなさそうですが、それぞれのネットワークの管理者が異なっていたり、厳密な管理を行っていたりすると、新たなネットワークの管理を追加するのはポリシーとして面倒が生じる事があります。

そこでNATを用いて、管理するネットワークには影響を与えずにネットワークの相互接続を行えるようにします。

実現方法

設定は実に簡単で、送信元アドレスを変換するNATと宛先アドレスを変換するNATの2つの設定を入れるだけです。

ip nat inside source static 10.1.1.10 10.2.2.10
ip nat outside source static 10.2.2.20 10.1.1.20 add-route

変換テーブルは以下のようになります。

R1#show ip nat translations 
Pro Inside global      Inside local       Outside local      Outside global
--- ---                ---                10.1.1.20          10.2.2.20
--- 10.2.2.10          10.1.1.10          ---                ---

各々独立したNATのようですが、NATという一つの機能の中で、複数の条件を持っていると考えるといいかもしれません。ちょっとややこしいですけど。

ルーティングテーブルは次のようになります。

      10.0.0.0/8 is variably subnetted, 6 subnets, 2 masks
C        10.1.1.0/24 is directly connected, GigabitEthernet0/1
L        10.1.1.1/32 is directly connected, GigabitEthernet0/1
S        10.1.1.20/32 [1/0] via 10.2.2.20
C        10.2.2.0/24 is directly connected, GigabitEthernet0/2
L        10.2.2.1/32 is directly connected, GigabitEthernet0/2
L        10.2.2.10/32 is directly connected, GigabitEthernet0/2

add-routeオプションによってスタティックルートができています。

insideからoutsideへの通信は先ずルーティングが行われてからNATが行われるので、10.1.1.20への経路がここで決まることになります。

逆にoutsideからinsideへの通信はNATが行われてからルーティングされますので、10.1.1.10への経路はdirect connectで決まります。

ではR10からR20へtelnetしてみます。

R10#telnet 10.1.1.20
Trying 10.1.1.20 ... Open



User Access Verification

Password: 

R20>enable
Password: 
R20#show users
    Line       User       Host(s)              Idle       Location
*578 vty 0                idle                 00:00:00 10.2.2.10

  Interface    User               Mode         Idle     Peer Address

R20#

成功しました。R10の実IPアドレス10.1.1.10は10.2.2.10に変換されている事がわかります。

逆にR20からR10へtelnetしてみます。

R20#telnet 10.2.2.10
Trying 10.2.2.10 ... Open



User Access Verification

Password: 

R10>enable
Password: 
R10#show users
    Line       User       Host(s)              Idle       Location
*578 vty 0                idle                 00:00:00 10.1.1.20

  Interface    User               Mode         Idle     Peer Address

R10#

こちらも成功です。ちゃんと10.1.1.20に変換されてから接続されている事がわかります。

コメント

タイトルとURLをコピーしました