アプリ版:「スタンプのみでお礼する」機能のリリースについて

別のネットワークにA機器とB機器が存在し、二つの口をもつルータ経由で通信するとします。

A機器には、ルータのアドレスを正しく設定しています。
B機器には、ルータのアドレスを間違って設定しています。

この時、AからBへpingを送信すると、正しくレスポンスが帰ってきます。どうして、B機器はルータのアドレスを知らないのに、レスポンスが返るのでしょうか?

ICMPプロトコルはmacアドレスもipアドレスも知らず、IPプロトコルはAとBのIPアドレスしか知らず、誰もルータのアドレスを知らないと思うのですが、どうしてでしょうか。

宜しくお願いします

A 回答 (6件)

本当にルーティングテーブルが誤っていればレスポンスは返りません。

よってなんらかの設定がされているはずです。中継したルータに返すとか、AのARPが来るとかそんなことはありません。
B機器でルーティングテーブルを確認してみましょう。
(Windowsであれば、"route print")

「B機器のルータ設定が誤っている」というのがどう誤っているのか気になります。
*デフォルトゲートウェイは誤っているが、ホストルートあるいはネットワークルートは合っている
*別の経路がある
*A機器のpingの表示をよく見るとリプライでなくエラーであった(unreachable errorとか)
    • good
    • 0

そのローカルルータの「RIP機能」殺してみてください。


それでも通じるのでしょうか?
    • good
    • 0
この回答へのお礼

皆様有難う御座いました。
B機は一般的なPCではなく、TCP/IPプロトコルスタック組み込みのASICを入れた自作機でした。

一般的なPCに置き換えたら、ノーレスポンスになりました。

パケットをモニタで観察しました。
B機のASICが、ルータが設定されていない・ARPで見つからないなどの場合は、送信元のmacアドレスにそのまま送り返す仕様になっているようでした。

お礼日時:2003/07/18 07:41

echo replyが返ってくる 考えられる条件として、


・B機の設定しているルータ(デフォルトゲートウェイ)が、ICMPリダイレクト(Type5)に対応して、
 正規のルータにリダイレクトされている
・B機が自分自身をルータ(デフォルトゲートウェイ)としているため
 ブロードキャストでA機のarpが飛んで、正規のルータが応答している
・B機のwinsockの仕様で、指定したルータ(デフォルトゲートウェイ)である時間応答がなければ
 ブロードキャストにてarpを流すようになっている
 それで正規のルータが応答している
とかでしょうか。

B機側セグメントでパケットを拾ってみれば何が行われいるか簡単にわかると思いますよ。

それが難しいようであれば、
まずは、B機のルータアドレス(デフォルトゲートウェイ)が
自分なのか、存在しないのか、存在するのであれば、その機器は何なのか(ルータ?PC?(OSは?))
を補足して下さい。
    • good
    • 0

他の方は、pingが通らない事柄について回答しておられるようですが、


pingが届くのは何故か?というご質問ですよね?


B機器がルータ(RT)のアドレスを知らなくても、ルータはB機器のアドレスを
知ってるんですよね?

だとしたら、
 [A]->[RT]->[B]
となり、A機器からB機器に対して、pingパケットが届きます。

B機器が通信可能であれば、B機器はpingパケットを送ってきた相手に
パケットを送り返しているだけですので、結果、A機器にping responseが返ります。

ICMPとはIPの補助的なプロトコルであり、IPパケットのデータ部分に
乗る形で送受信されます。
ping パケットには当然、送信元IPアドレスと送信先IPアドレスの情報が
含まれていますので、IPアドレスを確認することはできます。

A機器が全く知らないはずのIPアドレスに対してパケットを送信した場合でも
A機器はまずデフォルトゲートウェイとして設定されたルータへアクセスします。
そこで、ルータはルーティングテーブルを参照し、適切な経路を選択し
パケットをさらに転送します。
目的の機器までpingパケットが到達すれば、あとはパケットを送ってきた
相手へresponseパケットを返していくだけです。
    • good
    • 0

こんにちは



A機器からB機器へは行きは問題なく、B機器のdefault G/Wが間違っているので帰れないはずだということですね。
でも正常にPINGが通ってしまうということですね。
[A]-[R]-[B]
となっていて、
AからBへのPINGはネットワークが違うので、default G/Wが[R]のA側に設定されていますので、[R]へパケットが飛びます。
[R]はBのいるネットワークへのパケットなので、B側へ投げ、[B]が応答して[R]に返します。
(このとき、[B]は[A]に返そうとしているわけではなく、[R]からのリクエストに応答しているのではないでしょうか?)
[R]は[A]からのリクエストなので、[A]に返そうとしていると思います。

B機器からA機器へはPINGが返ってこない。
というより[A]に届かない。
これは明白ですね。
    • good
    • 0

 レスポンスが返ってこないので、「time out」になるのです。

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!