質問: ip経路とudp到達性 ルータ群で構成されたl3ネットワークのルーティング設定をしていました。 その際、ある末端に接続したpc-aにデフォルトゲートウェイ設定がない状態にしていました。 pc-aから一番遠い側のルータからpc-aの属するネットワークの経路は確認できるのですが、 pc-aはゲートウェイ設定が無いため icmp 応答はできず ping は通りません。 ここで質問です。 「udpなら片方向の通信到達性は確認できるのでは?」 とう質問をされたのですが、 「udpはicmp(または他の同レイヤのプロトコル)上の上に位置するレイヤのプロトコルなのでicmp到達性がない時点でudpの到達もできない」 と考えています。(udpの到達自体確認できないかもしれないですが。) この考えは正しいでしょうか? (言い方を換えるなら、icmpがngかつ、udpがokということはありえないという認識でよいでしょうか?) 質問自体、間違っている、などありましたらご指摘お願いいたします。
回答: > 「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パケットを届けたりすることは可能です。 普通によくある話です。