« パレード? | トップページ | windows8.1アップデート »

2013年10月16日 (水)

CISCOルータでの双方向NAT設定

10月の穴埋め記事書くよ、個人的な覚書だよ。

例えばルータ間でLAN側IPアドレスをそのまま流せない場合、IPパケットのSourceIPとDestinationIPを別のIPアドレスに置き換えねばならない。

ciscoルータではip nat inside source コマンドでSourceIPを置き換えるのだが、ip nat inside destination コマンドがIOSには無い。
DestinationIPを置き換えるにはip nat outside source コマンドで設定する必要がある。


1

上の様なネットワークでルータ間をNATでブリッジ接続する場合。

R3ルータは

interface FastEthernet0/0
ip address 10.1.1.2 255.255.255.0
ip nat outside
ip virtual-reassembly
!
interface FastEthernet0/1
ip address 192.168.220.254 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip route 192.168.220.100 255.255.255.255 10.1.1.1
!
!
ip nat inside source static 192.168.220.200 10.1.1.20
ip nat outside source static 10.1.1.10 192.168.220.100


R2ルータは

interface FastEthernet0/0
ip address 10.1.1.1 255.255.255.0
ip nat outside
ip virtual-reassembly
!
interface FastEthernet0/1
ip address 192.168.220.254 255.255.255.0
ip nat inside
ip virtual-reassembly
!
ip route 192.168.220.200 255.255.255.255 10.1.1.2
!
!
ip nat inside source static 192.168.220.100 10.1.1.10
ip nat outside source static 10.1.1.20 192.168.220.200

と設定すると192.168.220.200と192.168.220.100の通信パケットが
ルータ間では10.1.1.20と10.1.1.10の間の通信パケットに置き換わる。

R3ルータのoutsideとinsideをひっくり返した場合(多段NAT)、上記の様な簡単な設定ではダメで、R3ルータにloopbackインタフェースを設定してinsideからのパケットをip route設定でloopbackインタフェースへ一旦投げないとNAT変換が上手く行かない。(実際に上手く行かなかった)

この辺はCiscoのNAT変換処理の順番の問題で、insideのインタフェースではルーティング処理後にNAT処理をする為の様だ。
outsideのインタフェースではNAT処理後にルーティング処理されるので特に問題は発生しない。
この辺は実際にIPアドレスを変換しながら考えてみれば多分判る。
まあ私の理解も何となくなので、ルータ内での厳密な動きは説明はできない。

記事中特に触れていないが、CiscoのNAT処理にはinsideとoutsideの他にそれぞれにlocalとGlobalという考え方があるので理解していないと面倒。

基本的にはinsideインタフェースではinside-localのIPとinside-globalのIPの変換、outsideインタフェースではoutside-localのIPととoutside-globalのIPの変換を行っている。

送信パケットのsourceIPは受信パケットではDestinationIPとなるので、指定インタフェースではNAT変換テーブルに合致すればSourceIP、DestinationIPどちらでも変換してくれる。

これがinsideとoutsideのインタフェースを通過するパケットに対してそれぞれのNATテーブルで実施されるので、結果IPパケットのSourceIPとDestinationIP両方を置き換えができると言う訳だ。

市販のブロードバンドルータではこれと同じことはほぼ出来ない。
普通はこんな事せずにルータ間でVPN張って通すからね。

じゃあ何でVPNではなくこんな面倒なNAT処理でブリッジをするのか?
それはルータの中継区間がVPNを張ると運用上色々問題が発生する”仕様”だったからだ。

仕様って面倒くさいね。

|

« パレード? | トップページ | windows8.1アップデート »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/99274/58398715

この記事へのトラックバック一覧です: CISCOルータでの双方向NAT設定:

« パレード? | トップページ | windows8.1アップデート »