1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

NAPTとルーティング、NATテーブルについて

Last updated at Posted at 2022-08-02

NATについて改めて学習しなおそうと思い、パケットトレーサーでNAPTを使った簡単な構成を作りました。

参考にしたのはこちらの方の記事になります。
参考というかほぼ真似させていただきました、、
Cisco Packet TracerでNAPTを設定しよう

構成図は以下になります。
image.png

(config)#hostname RT1
(config)#ip nat pool CISCO 10.1.1.1 10.1.1.1 netmask 255.255.255.0
(config)#access-list 1 permit 192.168.2.0 0.0.0.255
(config)#ip nat inside source list 1 pool CISCO overload

(config)#interface GigabitEthernet0/0
(config-if)#ip address 192.168.1.254 255.255.255.0
(config-if)#ip nat outside
(config-if)#no shutdown

(config)#interface GigabitEthernet0/1
(config-if)#ip address 192.168.2.254 255.255.255.0
(config-if)#ip nat inside
(config-if)#no shutdown

PC1からServer1へpingおよびTCP接続を行ってみると、

RT1に着信したパケット
image.png

RT1から出力したパケット
image.png
以上の2つを比較してみると、Src IPがNAPT変換によって192.168.2.1→10.1.1.1に
書き換えられていることがわかります。

Server1からPC1に折り返すパケットを見ると

RT1に着信したパケット
image.png

RT1から出力したパケット
image.png

Server1からRT1に飛ばされたパケットのDST IPは10.1.1.1になっていて、
RT1からPC1に向けて飛ばされたパケットではNAPT変換でDST IPが10.1.1.1→192.168.2.1に
なり、もとのローカルIPにもどっていることがわかります。

PC2からServer1への通信も同様に変換されていることが確認できました。またポート番号がPC1とPC2でそれぞれ異なっていることも検証できました。ここでは繰り返しになるので割愛します。

検証自体は、参考にさせていただいたMakoto Taguchiさんと同様うまくいったのですが、不図疑問に思ったことがあります。
NATとルーティングの関係はどのようになっているのかということです。
Server1からPC1への折り返しのパケットを覗いてみると以下のようになります。
再掲
image.png
Des:10.1.1.1になっています。ですが、RT1のルーティングテーブルには10.1.1.1が宛先となるものは存在しません。

RT1のルーティングテーブル
image.png

今まであまり意識していませんでしたがNAT変換とルーティングについて調べてみると
以下のような記事を見つけました。
CiscoにおけるNATの処理順序

今焦点となっているNATとルーティングについて抜粋すると
insideからoutsideの時は、ルーティング→NAT変換の順番
outsideからinsideの時は、NAT変換→ルーティングの順番で処理が行われるとのことです。

今回の場合だと、Server1からRT1に折り返されたパケットは、outsideからinsideの処理になるので、DST IP 10.1.1.1が192.168.1.2に変換されてからルーティング処理が行われているということになります。
なのでルーティングテーブルに10.1.1.1宛ての情報が載っていなくても問題はないということですね。

ではServer1から10.1.1.1に向けてPingを打ってみれば通信できるのかと思い、やってみました。
image.png

そうすると、うまくいきません笑

NAT変換の状況を調べようと思い、おもむろに「show ip nat translations」で見てみると
image.png

ICMPプロトコルのNAT変換テーブルがありません、、
TCPはあるのですが

そこでまたいろいろ知らべてみると、ICMPのNATテーブルのキャッシュ保存時間は1分ほどと書いてありました。なるほど。
そしてまた、キャッシュの保存時間を変更できるコマンドもあるみたいなのですが、パケットトレーサーでは使えないみたいです。

なので、強行作戦になりますが、PC1からServer1へ永続Pingを打って、かつその間にServer1から10.1.1.1に向けてPingを打てばうまくいくんじゃないかと、、

やってみると
PC1→Server1
image.png
Server1→PC1(10.1.1.1)
image.png

Server1側からでもPingの疎通を確かめることができました。

その間のNATテーブルは大変なことになっていますが、、
image.png

今回の検証はあまり実用的なものではないかもしれませんが、機器の挙動について見つめるいい機会になったのではないかと思います。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?