- 締切済み
ICMP Echo Message はtcp,udpのポート7?
ICMP Echo Message-Type0 (いわゆるping) は tcp(udp)ポート番号の"7"と 同じものなのでしょうか? (ウイルスバスターのパーソナルファイアウォールでは7/tcpのフィルタで ping応答が止まりました) そうならば、他のICMP (TimestampやDestination...なんか)は tcp,udpの何番ポートで制御できるのでしょうか? 「質問自体間違っているよ!」って場合もご指摘ください。 よろしくお願いいたします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- a-kuma
- ベストアンサー率50% (1122/2211)
ほとんど selenity さんが回答されているので、 > 3.各OSのpingコマンドで使用しているプロトコル(tcp,udp,icmp) はまちまちなのでしょうか? についてだけ。 普通の unix であれば、icmp で実装されているのが普通です。 ただ、最近の Windows 系だと socket() では icmp は扱えず、専用の API があったり(ちょっと、うろ覚えです)、ちょっと前の Windows3.1 や MS-DOS だと、提供されるプロトコルスタックによって違っていたり ということは十分ありえます。 因みに、 > なるほど!こう使いわけるのですね。 >(使い分ける人なんているのかな?) は、真剣に大き目のネットワークを構築するときは、使い分けたりします。 どこまでは TCP を通すが、ここでは遮断する、なんてやってるときに 「こっちから見えないぞお」ってときは、icmp がないと確認しようが無い。 もし、外とつなぐようなときには、最終的に icmp もブロックしてしまい ますけど。
- selenity
- ベストアンサー率41% (324/772)
補足1) 通常pingは ・自身機から[ICMP Echo-Request(type 8)]を相手機に向けて送信 ・相手機は差出人(この場合自身機)に向けて[ICMP Echo-Reply(type 0)]を返信 または、 ・相手機から[ICMP Echo-Request(type 8)]を自身機に向けて送信 ・自身機は差出人(この場合相手機)に向けて[ICMP Echo-Reply(type 0)]を返信 というステップを行います。 したがって、他のマシンからのpingを無視したければ[ICMP Echo-Request(type 8)]のインバウンド(input)パケットをDROP(Reject)するか、ICMP Echo-Reply(type 0)]のアウトバウンド(output)パケットをDROP(Reject) します。 したがって、7/tcpをブロックしてもpingはブロックできないのが普通です。 補足2) もし本当に7/tcpで生存確認をしているのであれば、そのような(擬似)pingパケットは通過します。 また、7/tcpだけでなく7/udpを使っている可能性もあります。 補足3) 通常はICMPメッセージタイプ0/8を使用していると思います。 興味とマシンがあればtcpdump/windump/ネットワークモニターツールなどのネットワークモニターで流れているパケットをのぞいてみてください。
お礼
丁寧なご回答ありがとうございました。 Echo-RequestとReplyでtypeは変わるのですね。忘れてました。 >もし本当に7/tcpで生存確認をしているのであれば、そのような(擬似)pingパケットは通過します。 > 試しにicmp type0でフィルタをかけたところ、7/tcpで止まっていたpingパケットも みごとに止まりました。 どういうパケット(TCPセグメント)になってるのかな? 2つ出ているのかな? ->パケットモニターしてみます。 >興味とマシンがあればtcpdump/windump/ネットワークモニターツールなどのネットワークモニターで >流れているパケットをのぞいてみてください。 > snifferが借りられるので、ちょっと見てみます。 やはり迷ったらまずパケットモニターですね。怠けてました、すみませんっ!
- selenity
- ベストアンサー率41% (324/772)
一般的にはpingと7/tcpとは全くの別物です。 一般的なpingプログラムはICMPプロトコルのICMPメッセージを使用します。 ICMPはIPプロトコルレベルでの到達可能性を、7/tcpはTCP/UDPプロトコルレベルでの(サービスの)到達可能性を調べるためのものです。 ICMPメッセージの制御はICMPプロトコルを使用しないと制御できません。 NortonはちゃんとICMPメッセージの制御ができますよ。
お礼
ご丁寧な回答ありがとうございました。 >ICMPはIPプロトコルレベルでの到達可能性を、7/tcpはTCP/UDPプロトコルレベルでの(サービスの)到達可能性を >調べるためのものです。 > なるほど!こう使いわけるのですね。 (使い分ける人なんているのかな?) >NortonはちゃんとICMPメッセージの制御ができますよ。 > 普通のファイアウォール製品はそうですよね~^ ^;) ウイルスバスターのパーソナルファイアウォールはおまけ機能? #1の補足で追加質問してしまいました。 勉強不足で申し訳ないです。 まだおつきあいしていただけるのであれば、ご回答をお願いいたします。
- a-kuma
- ベストアンサー率50% (1122/2211)
普通の ping は、IP の上位プロトコルは ICMP です。これにはポート番号 という概念はありません。 ポート番号とは、UDP や TCP のプロトコルで実装されている考え方です。 ポート番号7は、echo というプロトコルで使われているポートで、ICMP 同様 相手が応答するかどうかを調べるために使われるプロトコルです。 ポート番号7を閉じて、ping の応答が返ってこなくなったのは、その ping コマンドが echo プロトコルを使って実装されているから、ということだと 思います。
補足
ご回答ありがとうございました。 >ポート番号7を閉じて、ping の応答が返ってこなくなったのは、その ping >コマンドが echo プロトコルを使って実装されているから、ということだと思います。 > そういうことなんですね。 ちょっとまたまた疑問ですが、 1.7/tcpを閉じても7/udpのpingやicmpでecho requestしてきたものは通してしまうのでしょうか? 2.icmp type0を止めていても7/tcpのpingは通ってしまうのでしょうか? 3.各OSのpingコマンドで使用しているプロトコル(tcp,udp,icmp) はまちまちなのでしょうか? (1と2はファイアウォールの仕様で変わってくるのかな?)
お礼
追加のご回答ありがとうございました。 >ただ、最近の Windows 系だと socket() では icmp は扱えず、専用の API >があったり(ちょっと、うろ覚えです)、ちょっと前の Windows3.1 や >MS-DOS だと、提供されるプロトコルスタックによって違っていたりということは十分ありえます。 > 情報の提供ありがとうございます。 Windowsはpingひとつとってもややこしいですね^ ^;) これをヒントにちょっと自分でも調べてみます。