6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

送信元ポート0のUDPパケットを送る方法

Last updated at Posted at 2022-04-02

インターネット上では不思議なことに、ポート番号が0のパケットが届くことがあります。

特に送信元ポート番号が0のUDPパケットは、ミドルウェアで処理をしいざ送り返そうとした時にエラー担ったりします。

そこで、ポート番号0のUDPパケットを受け取ったときの挙動を確認するために、まずはそのようなパケットを送る方法を探さなければありません。

(試すとわかりますが、ハイレベルなAPIだと送信元ポートに0を指定できなかったりします...)

constructing ip/udp packets in go

ちょうどそのようなツールをGoで書かれていたのでコレを使います。

使いかた

こんな感じで起動すると、stdin から受け取った文字列を指定されたポートにデータ送信します。

$ sudo go run rawudp.go -udpdst "送信先ポート" -udpsrc "送信元ポート"

これをncで繋いでやると、受け取ったパケットを、送信元ポート0でforwardすることができます

$ nc -u -l -p 8080 | sudo go run ./rawudp.go -udpsrc 0 -udpdst 53

image.png

ただ rawudp.go がstdinで処理する都合 \n ごとに処理するので、真面目にやるならrawudp.goを改造して素直にUDPリッスンしてProxyさせるのが良さそう

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?