16

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


セルジオに感謝します

4

1 に答える 1

15

これは、実際にはtracerouteを実行するための「古い」方法です。主な動機は、ICMPパケットの送信(rawソケットまたは同等のもの)のように、プレーンなUDPパケットの送信に特別な特権が必要ないことだったと思います。そのため、egpingは通常rootに設定されますが、これはセキュリティ面で大きなリスクです。

現在traceroute、ICMPおよびTCPプローブパケットもサポートしているため、ファイアウォールをこっそり通過する可能性が高くなります。ファイアウォールは、考慮せずに展開されない場合よりも可能性が高くなります。これはtraceroute、システムのsetuidrootでもある可能性が高いことも意味します。そのmanページ、特に利用可能なメソッドに関する部分を参照してください:http: //linux.die.net/man/8/traceroute

于 2012-04-25T10:59:01.140 に答える