PingがOKとなる条件(NAT環境で異なるアドレスから応答が返ってきた場合)

PingがOKとなる条件(異なるアドレスから応答が返ってきた場合)

経路途中にNAT機器があり、異なるアドレスから応答が返ってきた場合、Pingの結果がどうなるのかを検証します。

目次

ネットワーク構成

CMLで下記のネットワークを構築し検証します。

ネットワーク構成

各機器の設定

検証

Router1(192.168.1.1)→Router2(172.16.1.1)へのPing

Router1からRouter2へPingを実施します。

Router1(192.168.1.1)→Router2(172.16.1.1)へのPing

問題なくPingが通ります。

Router1(192.168.1.1)→Router2(172.16.1.1)へのPing結果

Router2(172.16.1.1)→Router1(1.1.1.1)へのPing

Router2からRouter1のNATアドレス(1.1.1.1)にPingを実施します。

Router2(172.16.1.1)→Router1(1.1.1.1)へのPing

問題なくPingが通ります。

Router2(172.16.1.1)→Router1(1.1.1.1)へのPing結果

Router2(172.16.1.1)→Router1(192.168.1.1)へのPing ※※異なるアドレスから応答が返ってくるパターン

Router2からRouter1の実アドレス(192.168.1.1)にPingを実施します。この場合、戻り通信のみ192.168.1.1が1.1.1.1にNATされるため、異なるアドレスから応答が返ってきたように見えるはずです。Ping結果はどうなるのでしょうか?

Router2(172.16.1.1)→Router1(192.168.1.1)へのPing

問題なくPingが通りました。

Router2(172.16.1.1)→Router1(192.168.1.1)へのPing結果

Router2とNAT-Routerの間でパケットキャプチャを取得して確認してみます。

ICMP echo requestの中身は下記の通りです。

ICMP echo request
送信元IP:172.16.1.1
送信先IP:192.168.1.1
Type:8
Identifier:8
Sequence number:0

Router2(172.16.1.1)→Router1(192.168.1.1)へのPing(echo request)のキャプチャファイル

ICMP echo replyの中身は下記の通りです。

ICMP echo reply
送信元IP:192.168.1.1
送信先IP:1.1.1.1
Type:0
Identifier:8
Sequence number:0

Router2(172.16.1.1)→Router1(192.168.1.1)へのPing(echo reply)のキャプチャファイル

異なるアドレスから応答が返ってきていますが、”Identifier”と”Sequence number”の値が合致しているため、Ciscoルーターで実装されているPingの仕様としては問題なしと判断されるようです。
※Wireshark上では、IPアドレスもPing応答OKの判断材料としており、”no response found!”と表示されています。

ICMPのRFCを確認すると下記の記述があります。

The identifier and sequence number may be used by the echo sender to aid in matching the replies with the requests.
The destination returns these same values in the reply.
識別子とシーケンス番号は、エコー送信者が応答と要求の照合を支援するために使用できます。
宛先は、これらの同じ値を応答で返します。

rfc792 – IETF Tools

これで、PingがOKとなる条件(異なるアドレスから応答が返ってきた場合)の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次