問題タブ [icmp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
682 参照

c++ - ICMP 応答パケット

icmp.dll の API を使用して、ICMP 応答パケットを生成できますか? 今のところ、IcmpCreateFile、IcmpSendEcho、および IcmpCloseHandle API を使用して標準の Request パケットを送信することしかできませんでした。ありがとう。

0 投票する
3 に答える
5145 参照

python - Python での ICMP traceroute の作成

Python で ICMP ベースの Traceroute を実装しようとしています。非常に役立つガイド ( https://blogs.oracle.com/ksplice/entry/learning_by_doing_writing_your ) を見つけたので、UDP ベースの Traceroute を作成できるので、変更が必要です。しかし、私は周りを見回して、送信ソケットを変更して機能させるのに問題があります。誰でも私を助けることができますか?

0 投票する
1 に答える
4449 参照

sockets - 「Destination Unreachable」パケットの受信中に ICMP エコー要求が送信されない

raw BSD ソケット経由で ICMP を使用して管理対象ホストに ping を実行するネットワーク管理アプリケーションに取り組んでいます ( sendto)。

私の質問はそれを行う方法ではなく、実際には非常にうまく機能します。ターゲット ホストがICMP エコー要求をそのホストに送信しようとしているときに、ターゲット ホストが宛先到達不能メッセージを管理サーバーに送信している場合にのみ、問題が発生するようです。

ホストが管理アプリケーションに追加されると、ホストは前述の ICMP ping を使用してテストされ、同時に「検出」が開始され、それぞれのプロトコルを使用して SNMP (161) などのホスト上のさまざまなポートがテストされます。そうする必要があります。

さて、ホストが存在するか応答するか (つまり、ICMP エコー応答を送信したか) がわからないホストでその「検出」を実行することはあまり意味がないことを認識していますが、この質問ではこれが重要です。また、問題のホストが実際に到達可能であり、たとえばコマンド ライン経由で ICMP ping に応答すると仮定しますping

「検出」により、最終的に ICMP 「Destination unreachable: Port unreachable」パケットが管理サーバーに送り返されます。たとえば、ターゲット ホストで実行されている SNMP エージェントがなく、ポート 161 に実際に到達できない場合などです。

これはまったく問題ありませんが、何らかの理由で、ICMP ping に必要な ICMP エコー要求を ICMP ソケットがそのホストに送信するのを妨げているようです。そのリクエストは決して送信されないため、私のアプリケーションには応答がなく、ホストはしばらくすると「到達不能」と見なされます (タイムアウト)。

Wireshark を使用してネットワーク トラフィックを分析した結果、実際にはターゲット ホストに ICMP エコー リクエストが送信されていないことがわかります。私が取り組んでいるアプリケーションには、そのホストで別の ICMP ping を「手動で」実行するために使用できる「ステータス ポール」機能もあります。ホストが追加された後にこれが使用された場合 (つまり、Destination unreachableパケットが着信しなくなった場合)、エコー要求は問題なく送信されます。

上記で説明した状況で ICMP エコー要求が送信されないことに当惑しています。すべての着信 ICMP パケットを受信する別の ICMP ソケットがありますが (応答に反応するために)、送信ソケットに影響を与えるべきではありませんか? 私のコードでは、 Destination unreachableメッセージに対して定義された反応はありません。それらは単に無視されるため、リクエストの送信を無効にするのは私自身のコードではないことは確かです。

実際、sendtoリクエストの送信を担当する関数が実行され (デバッグによって確認されます)、成功 (送信されたバイト数) が返されますが、パケットは実際には送信されていません。これは Windows システムと Linux システムの両方で再現できるので、オペレーティング システムの問題ではないと思います。

これらの宛先到達不能メッセージが送り返される原因となる「検出」を無効にすると、すべてが正常に機能するようになるため、ICMP エコー要求の送信を妨げているのはこれらのメッセージであると確信しています。私が答えを見つけることができない大きな疑問は、なぜですか?

必要に応じてさらに情報を提供できますが、これは商用製品であるため、ここにコードを投稿することは許可されていません。ただし、コードは特別なものではなく、未加工の ICMP ソケットを使用TOS=0して ICMP (IPv4) パケットを送受信するだけです。TTL=64

0 投票する
1 に答える
3185 参照

python - Python での ICMP traceroute

Python で ICMP ベースの Traceroute を実装しようとしています。

非常に役立つガイド ( https://blogs.oracle.com/ksplice/entry/learning_by_doing_writing_your ) を見つけたので、UDP ベースの Traceroute (以下のコード) を作成できるので、変更が必要です。送信ソケットを ICMP に変更しようとしましたが、例外なく何も実行できません。

注 - 以下のコードは機能しますが、これは UDP traceroute (UDP パケットを送信し、ICMP パケットを受信する) であり、ICMP パケットを送信して ICMP パケットを受信するにはプログラムが必要です。基本的に、UDP ソケットを ICMP ソケットに変更する必要があります。

これは、試みて達成する最も一般的なことではなく、これを行う方法についてネットで調査するのに苦労していると思います。誰かが洞察を提供できる場合は、本当に感謝します:-)

0 投票する
1 に答える
905 参照

networking - ICMP エラー メッセージとそれを生成した IP パケットとの相関関係

ICMP TTL-expired エラー メッセージをトリガーすると確信している一連の IP パケットを送信する必要があります。各エラー メッセージをそれを生成したパケットと正確に関連付けるにはどうすればよいですか? これには、ICMP ヘッダーのどのフィールドが使用されますか?

元の IP ヘッダーでカスタム ID 番号を使用して、どのエラー メッセージがどのパケットに対応しているかがわかるようにする必要がありますか? もしそうなら、どの分野がこれに最も適していますか?

0 投票する
2 に答える
9275 参照

python - Python で ICMP traceroute を作成する方法

Python で ICMP ベースの Traceroute を実装しようとしています。

非常に役立つガイド ( https://blogs.oracle.com/ksplice/entry/learning_by_doing_writing_your ) を見つけたので、UDP ベースの Traceroute (以下のコード) を作成できるので、変更が必要です。送信ソケットを ICMP に変更しようとしましたが、例外なく何も実行できません。

注 - 以下のコードは機能しますが、これは UDP traceroute (UDP パケットを送信し、ICMP パケットを受信する) であり、ICMP パケットを送信して ICMP パケットを受信するにはプログラムが必要です。これは、最近のファイアウォールが以前よりもスマートになり、ランダムなポートの UDP パケットを受信した後に常に ICMP 応答を送信するとは限らないためです。基本的に、UDP ソケットを ICMP ソケットに変更する必要があります。

これは、試みて達成する最も一般的なことではなく、これを行う方法についてネットで調査するのに苦労していると思います。誰かが洞察を提供できる場合は、本当に感謝します:-)

覚えておくべき主なポイントは、traceroute は TTL を設定することで機能するため、ソリューションが ICMP ライブラリを使用する場合は、設定可能な TTL が必要であるということです:-)

0 投票する
2 に答える
24746 参照

windows-server-2008 - Windows Server2008R2でpingをブロックする

Asp.NetWebアプリケーションをWindowsServer2008 R2に展開しましたが、アプリケーションに影響を与えずに、このサーバーへのすべてのping要求をブロックし たいと考えています

前もって感謝します

0 投票する
1 に答える
23291 参照

networking - tracerouteがICMPパケットではなくUDPパケットを送信するのはなぜですか?

Stevens(TCP / IP Illustrated)によると、tracerouteプログラムはUDPパケットを増分TTL(1、2、3など)で宛先ホストに送信し、ICMPTTLEXPIREDメッセージから中間ホップ情報を取得します。
宛先に到達しました」状態はICMPPORTUNREACHABLEメッセージです。これは、tracerouteが多数のランダムなポートをアドレス指定しているためです(つまり、誰かがそこでリッスンしている可能性は低いです)
。したがって、私の質問は、技術的な理由(欠点、RFCなど)があります。 )たとえば、 ICMPエコー要求メッセージ(TTLを増やして)を使用するのではなくUDPパケットを使用し、エコー応答応答を終了条件として使用するには?
ICMPエコー応答が途中のファイアウォールまたは他のネットデバイスによって除外される可能性があることを理解していますが、これはUDPパケットにも発生する可能性があると思います;)


セルジオに感謝します

0 投票する
2 に答える
4093 参照

icmp - scapy: スニッフィングされたトラフィックの TTL を変更する正しい方法

Scapy をいじっていて、何か変なことに気づきました。

ICMP 時間超過エラー メッセージをトリガーするためにパケットを作成すると、次のようになります。

...関数で送信すると、ICMPメッセージを取得しますsr

一方、盗聴した送信パケットを取得し、その ttl 値を上記と同じ値に変更すると、まったく応答がありません。

ここで何が問題なのですか?実際の交通ではなく、ダミーの交通を使ってこれを体験できると思いました!他の TTL 値でも試してみましたが、役に立ちませんでした。

0 投票する
2 に答える
5523 参照

snmp - トラフィックに関する ICMP と SNMP ping の比較

10 秒ごとにステータスを知りたいデバイスが 100 台あります。トラフィック負荷の点で ICMP と SNMP のどちらを使用した方がよいか教えてください。それとも、ネットワークを詰まらせるという点ではどちらも同じですか?