2016-03-21 02:24 AM 2019-03-22 07:22 AM 更新
NATが正しく動作しているか把握できないので、教えていただけたら幸いです。
構成としては下記の通りで、PC#1からL3SW#1内に設定したLoopback 1に向けてpingを打ちます。
ただし、ルータにてソースIPをNATします。現用系は想定通りに動作しますが、ルータ#1-L3SW#1間を抜線したときのNATが把握できません。
■NW構成
PC#1-[GE0/1]ルータ#1[GE0/0] ― [GE0/0]L3SW#1
[GE0/3] [GE0/3]
| |
[GE0/3] [GE0/3]
ルータ#2[GE0/0] ― [GE0/0]L3SW#2
・ルータ#1,2およびL3SW#1,2間はiBGP、ルータ-L3SW間はeBGPで接続。
・各インターフェースのアドレスは仮に以下とします。
-PC#1:100.100.100.1/24
-ルータ#1
=loopback0:200.200.200.21/30
=GE0/1:100.100.100.100/24 (ip nat inside)
=GE0/0:200.200.200.13/30 (ip nat outside)
=GE0/3:200.200.200.9/30 (ip nat outside)
-ルータ#2
=loopback0:200.200.200.22/30
=GE0/0:200.200.200.17/30 (ip nat outside)
=GE0/3:200.200.200.10/30 (ip nat outside)
-L3SW#1
=loopback0:200.200.200.25/30
=loopback1:300.300.300.1/32
=GE0/0:200.200.200.14/30
=GE0/3:200.200.200.29/30
-L3SW#2
=loopback0:200.200.200.26/30
=GE0/0:200.200.200.18/30
=GE0/3:200.200.200.30/30
-NAT(source static):100.100.100.1 = 10.10.10.1
・スタティックNATの設定(上記)はルータ#1,2の両方に投入している。
・BGPの広告セグメントは下記の通り
ルータ側はLoopback0アドレスのセグメントおよびNATセグメント(10.10.10.0/24)
L3SW側はLoopback0アドレスのセグメントおよびLoopback1アドレス
・ルーティングは下記の通り(L3SWは無し)
-ルータ#1
=ip route 0.0.0.0 0.0.0.0 100.100.100.1
=ip route 10.10.10.0 255.255.255.0 Gigabitethernet0/1
-ルータ#2
=ip route 100.100.100.0 255.255.255.0 200.200.200.9 ←★ルータ#1のGE0/3アドレス
■疑問
ルータ#1とL3SW#1間のケーブルを抜線したとき、PC#1からLoopback 1へは
PC#1⇒ルータ#1⇒ルータ#2⇒L3SW#2⇒L3SW#1⇒L3SW#1のLoopback 1
の経路で通信しますが、その際に
show ip nat translations
のコマンドをルータ#1,2で確かめると、ルータ#1,2の両方でNATがかかっているように見受けられます。
また、ルータ#2の★部分のルーティングを削除するとpingが到達しなくなります。
tracerouteは2ホップ目(100.100.100.100(ルータ#1のPC#1側アドレス))以降、3 * * *と続きます。
このとき、ルータ#1ではソースNATされずにルータ#2へパケットが飛ばされるのでしょうか?
仮にそうであるとしてもルータ#2で経由するインターフェースはoutside⇒outsideなのでNATされるとは思えないのですが。。。
解決済! 解決策の投稿を見る。
2016-03-21 10:43 AM
これはデザインの問題のような気がします。現在の設定では、
のコマンドをルータ#1,2で確かめると、ルータ#1,2の両方でNATがかかっているように見受けられます。
これは現在の設定上で期待される動作ですね。ルータ#1では行きのsource変換が行われ、ルータ#2では戻りのdestination変換が行われていると想定します。Static NAT 変換では常時NATエントリがあるため、行きのNATエントリが無くとも、戻りのNAT変換をしてしまうと思います。outside->outsideでも。
たぶん合ってると思いますが、正確なところが知りたい場合は Cisco TAC へ問い合わせてみてください。
outsideからのパケットの処理は inside からとは異なるため実装かと思います。
参考:http://www.cisco.com/cisco/web/support/JP/100/1008/1008335_5-j.html
で、行きと戻りとも同じルータで NAT 変換させたいというデザインであれば、ルータ#1<->ルータ#2間のインタフェースを ip nat inside に変えればいいのではないかと思います。そうすれば、上記障害想定時においてもルータ#1では NAT 変換されず、ルータ#2のみで行きと戻りの両方がNAT変換されるかと思います。
ちなみに誤字だと思いますが、L3SW#1 の loopback1:300.300.300.1/32 は設定できませんよ。。。
2016-03-21 10:43 AM
これはデザインの問題のような気がします。現在の設定では、
のコマンドをルータ#1,2で確かめると、ルータ#1,2の両方でNATがかかっているように見受けられます。
これは現在の設定上で期待される動作ですね。ルータ#1では行きのsource変換が行われ、ルータ#2では戻りのdestination変換が行われていると想定します。Static NAT 変換では常時NATエントリがあるため、行きのNATエントリが無くとも、戻りのNAT変換をしてしまうと思います。outside->outsideでも。
たぶん合ってると思いますが、正確なところが知りたい場合は Cisco TAC へ問い合わせてみてください。
outsideからのパケットの処理は inside からとは異なるため実装かと思います。
参考:http://www.cisco.com/cisco/web/support/JP/100/1008/1008335_5-j.html
で、行きと戻りとも同じルータで NAT 変換させたいというデザインであれば、ルータ#1<->ルータ#2間のインタフェースを ip nat inside に変えればいいのではないかと思います。そうすれば、上記障害想定時においてもルータ#1では NAT 変換されず、ルータ#2のみで行きと戻りの両方がNAT変換されるかと思います。
ちなみに誤字だと思いますが、L3SW#1 の loopback1:300.300.300.1/32 は設定できませんよ。。。
2016-03-21 12:23 PM
t.higashimuraさん
早速のご返信ありがとうございます。
これは現在の設定上で期待される動作ですね。
実際の動作となります。
ルータ#1では行きのsource変換が行われ、ルータ#2では戻りのdestination変換が行われていると想定します。Static NAT 変換では常時NATエントリがあるため、行きのNATエントリが無くとも、戻りのNAT変換をしてしまうと思います。 outside->outsideでも。
大変勉強になります。
つまりStatic NATの場合、インターフェースにNATの設定がされていれば、たとえパケットが入る口と出る口がinside⇒insideでもoutside⇒outsideでも関係なく、入った口の設定に従ってNAT変換されるということなんですね。
で、行きと戻りとも同じルータで NAT 変換させたいというデザインであれば、ルータ#1<->ルータ#2間のインタフェースを ip nat inside に変えればいいのではないかと思います。そうすれば、上記障害想定時においてもルータ#1では NAT 変換されず、ルータ#2のみで行きと戻りの両方がNAT変換されるかと思います。
おっしゃる通りでした。ルータ#1<->ルータ#2間のインターフェースをip nat insideに変更して確認したところルータ#2のみでNAT変換されているように見えました。
★もし仮に同障害時、ルータ#1のみで行きも戻りもNATさせ、ルータ#2はただの土管役にすることは可能なのでしょうか。
私が理解した限りだと無理のような気がしますが、可能でしたらどのインターフェースにどういう設定をすればよいか教えていただきたいです。
ちなみに誤字だと思いますが、L3SW#1 の loopback1:300.300.300.1/32 は設定できませんよ。。。
完全に誤字ですね。。。申し訳ありません。
2016-03-22 12:38 AM
つまりStatic NATの場合、インターフェースにNATの設定がされていれば、たとえパケットが入る口と出る口がinside⇒insideでもoutside⇒outsideでも関係なく、入った口の設定に従ってNAT変換されるということなんですね。
若干補足すると、設定変更後に、R1 で inside->inside の時はNAT変換されないですよね。なので、inside と outside での処理は前回提示したページにある通り、処理順序が異なるため実装が異なるのでしょうね。outside->outside で変換されるのは、実装上の動作な気もしますが、念のため Cisco TAC へ確認してみてください。
★もし仮に同障害時、ルータ#1のみで行きも戻りもNATさせ、ルータ#2はただの土管役にすることは可能なのでしょうか。
ご認識の通り、それは難しいかと思います。
2016-03-22 11:22 PM
若干補足すると、設定変更後に、R1 で inside->inside の時はNAT変換されないですよね。なので、inside と outside での処理は前回提示したページにある通り、処理順序が異なるため実装が異なるのでしょうね。outside->outside で変換されるのは、実装上の動作な気もしますが、念のため Cisco TAC へ確認してみてください。
おっしゃる通り、inside->insideではNAT変換されませんでした。
in->outとout->inで実装上の動作が異なる可能性が高いということで了解しました。
社内でTACへ確認できそうでしたら確認してみます。ありがとうございました。
土管役はやはり無理がありますか。。。改めて設計を見直してみます。
エキスパートの回答、ステップバイステップガイド、最新のトピックなどお気に入りのアイデアを見つけたら、あとで参照できるように保存しましょう。
コミュニティは初めてですか?これらのヒントを活用してスタートしましょう。 コミュニティの活用方法 新メンバーガイド
下記より関連するコンテンツにアクセスできます