プロが教えるわが家の防犯対策術!

ルータ群で構成されたL3ネットワークのルーティング設定をしていました。
その際、ある末端に接続したPC-Aにデフォルトゲートウェイ設定がない状態にしていました。

PC-Aから一番遠い側のルータからPC-Aの属するネットワークの経路は確認できるのですが、
PC-Aはゲートウェイ設定が無いため ICMP 応答はできず ping は通りません。

ここで質問です。

「UDPなら片方向の通信到達性は確認できるのでは?」
とう質問をされたのですが、
「UDPはICMP(または他の同レイヤのプロトコル)上の上に位置するレイヤのプロトコルなのでICMP到達性がない時点でUDPの到達もできない」
と考えています。(UDPの到達自体確認できないかもしれないですが。)

この考えは正しいでしょうか?

(言い方を換えるなら、ICMPがNGかつ、UDPがOKということはありえないという認識でよいでしょうか?)

質問自体、間違っている、などありましたらご指摘お願いいたします。

A 回答 (6件)

>「UDPなら片方向の通信到達性は確認できるのでは?」


何が言いたいのか不明です
単純に、PC-Aから一番遠い側のルータ → PC-A が到達したか、否かであれば
PC-Aのルーティングが無くても確認する事は可能です。

また、このような場合にはpingでは無く、tracerouteを利用するべきです。
なぜ?かは、tracerouteの動作を確認すれば一目瞭然でしょう。
ただし、この場合にはFireWallやルーターのパケットフィルタでDenyしていない事が前提となります。

pingやtracerouteの詳細をもう少し調べてみるべきでは?
icmp udpどちらかを利用するか など
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。ICMP,UDPともIP設定により可/不可が決まる。ping では、ある1対象まで、traceroute ではどの区間でそれらが可/不可かがわかる、ということで理解しました。

お礼日時:2011/05/21 01:59

> 「UDPはICMP(または他の同レイヤのプロトコル)上の上に位置するレイヤのプロトコルなので


> ICMP到達性がない時点でUDPの到達もできない」

そもそも、この認識が間違っています。

UDPはICMPの上に位置するレイヤのプロトコルではありません。

UDPはIPプロトコルの上に位置するプロトコルです。
ICMPもIPプロトコルの上に位置するプロトコルです。
つまり、両者は並列でIPプロトコルの上に位置しています。

通信が到達するか否かは、IPプロトコルのルーティングだけで決まります。
その通信の到達性を確認するための要求パケット/応答パケットの
標準フォーマットを決めたのがICMP echoです。
ICMPが通信の到達性を制御しているわけではありません。
同様にUDPも通信の到達性を制御しているわけではありません。

ICMP echoがNGでも、UDPがOKのケースは普通によくあります。
例えば、Windowsファイアーウォールは、デフォルトではICMP echoパケットを
通さないように設定されています。この場合、pingで疎通確認をしてもエラーになりますが、
そのPCにTCP/IPコネクションを生成したり、UDPパケットを届けたりすることは可能です。
普通によくある話です。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。あくまで通信はIPで制御されており、ICMP要求、UDPそれぞれ届くかどうかはIP設定次第であり、ping応答がないのはICMP応答の通信がIPで制御できているかどうかによる、ということですね。

お礼日時:2011/05/21 01:52

No.1です



ICMPが帰ってこない=IP疎通性がない ではありません。

ICMPが帰ってこないのは
・そもそもルーティングされていない(この場合はアンリーチャブルになる)
・途中のルータで破棄されている(設定による timeoutになる)
・届いてはいるがデフォルトゲートウェイの設定ミスなどにより帰ってこない(timeout)
・端末側で帰さない設定にしている(timeout)
・ルータ段数が多すぎる

よってICMPが帰って来なくてもパケットは届いている可能性はあります。
この場合UDPも届いる可能性があります。

ただ、このような場合、届いているかは受け側でしか判りません。No.2さんの様に受け側でパケットキャプチャするか、UDPなら動画をストリーミングして再生できるかとか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。よくわかりました。

お礼日時:2011/05/21 02:00

>PC-Aから一番遠い側のルータからPC-Aの属するネットワークの経路は確認できるのですが、


>PC-Aはゲートウェイ設定が無いため ICMP 応答はできず ping は通りません。

ファイアウォール等の通信を阻害するものが無いという前提です。

この場合、PingはICMPのEcho ReplyがPC-Aがら来るルートが判断出来ないため、来ないということになりPingは通らないということになりますが、
一番遠い側のルータからPC-AへのICMPのEcho Requestは到達しているはずです。

つまり、IP通信は一方向で完結する通信でですので、
一番遠い側のルータ → PC-AのIPレベルの通信は通り、
PC-A → 一番遠い側のルータのIPレベルの通信は通らない、
ということだと思います。

>「UDPなら片方向の通信到達性は確認できるのでは?」

UDPはIPの上位レベル(レイヤ4)の通信ですが、一方向の通信であるのでこの質問はある意味正しい(確認できる)と思います。
ある意味というのは、
一番遠い側のルータ → PC-A
は通信出来るけどそれを確認するためにはPC-A上で到達したことを確認するしかないということです。
例えばUDPを待ち受けるソフトウェア(又はパケットキャプチャツールなど)を実行して、UDPの通信が来ることを確認すれば、「片方向の通信到達性」を確認したと言えるでしょう。

ただ、こんなことをする意味があるかは別でしょうが。

>「UDPはICMP(または他の同レイヤのプロトコル)上の上に位置するレイヤのプロトコルなのでICMP到達性がない時点でUDPの到達もできない」

これは言い方がちょっと違うのではないかと思います。
到達できないのではなく、
PC-Aのデフォルトゲートウェイが無く、「PC-A → 一番遠い側のルータ」への通信が出来ないため、「一番遠い側のルータ → PC-A」の通信か到達したかどうかを確認する術がない。
ということではないかと思います。

今回の環境では実際には「一番遠い側のルータ → PC-A」はICMP(Ping場合はEcho Request)も、UDP通信も到達すると思います。
ただあまり、このような状態で使用することはないと思います。
(PC-Aだけ同一サブネットだけしか通信させたくない場合にこんな設定にする場合もあるかな)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。詳しいご説明でよくわかりました。

お礼日時:2011/05/21 01:52

一方通行なのであまり使えるシーンは少ないと思いますが。


問題ないくパケットは届くと思います。
(届いた事を確認する術は有りませんが)

WIRESHARK(パケットキャプチャ)
ipsendwin(パケットジェネレータ)
などで試してみてはいかがでしょうか?
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。ツール類参考にさせていただきます。

お礼日時:2011/05/21 01:49

UDPは再送保証のないプロトコルです。

送ったら送りっぱなし。確認はありません。

>(言い方を換えるなら、ICMPがNGかつ、UDPがOKということはありえないという認識でよいでしょうか?)
UDPは送った側からOKかどうか知る術が無いはずです。

この回答への補足

ご回答ありがとうございます。
UDPがOKか知る術がないため確認はできないということですね。
ただ、IP疎通性がない場合でもUDPの通信自体が成立することはありえるのでしょうか?
送りっぱなしということは、質問文中のように片方向だけ経路が確認できる状態だと成立するのかどうかが気になっております。

補足日時:2011/05/16 16:08
    • good
    • 0

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