UDPパケットを生成する方法は?

UDPパケットを生成する方法は?

次のNetcatコマンドを実行してパケットを表示すると、ワイヤーシャーク、これはUDPパケットのフォーマットが正しくないことを示します。

$ echo "this is a test" | nc -u 127.0.0.1 53

同様に$ echo "this is a test" > /dev/udp/127.0.0.1/53、Wiresharkで次のコマンドを使用すると、「Malformed Packet」エラーが発生します。

ここに画像の説明を入力してください。

echoコマンドは、エラーなしでNetcatサーバーに送信/転送されます。しかしそれは私を気にする:echoやその他の基本的なUnixツールを使用して正しいUDPパケットを手動で構築できますか?

私はDebianとmacOSを使用しています。

ベストアンサー1

IP と UDP の観点から見ると、パケットは完全に有効です。 Wiresharkの下部ペインでEthernet / IP / UDPのプロトコルの詳細を展開すると、パケットが正常に解析されたことを確認できます。

ただし、宛先がポート53であるため、WiresharkはそれをDNSパケットに解析しようとしますが、実行できません(文字列「this is a test」は有効なDNS要求ではないため)。RFC 1035仕様)。

そのリンクの仕様によれば、DNS要求で解析されたときに有効なパケットを設定できます。パケットを別のポートに送信すると、WiresharkはパケットをDNS要求として解析しなくなり、警告は表示されません。

おすすめ記事