Отправка пакетов на 127.0.0.1 через gopcap - PullRequest
0 голосов
/ 30 мая 2018

Кажется, что пакеты, отправленные с использованием gopacket / gopcap, каким-то образом «отправляются», поскольку они видны в трассировке tshark:

444 143.613451037    127.0.0.1 → 127.0.0.1    UDP 66 6000 → 8888 Len=22

, но эти пакеты никогда не поступают в процесс на той же машине, прослушивая127.0.0.1:8888 (например, netcat -ul 8888).

Есть ли у кого-нибудь какие-либо намеки на то, почему это или какие вещи стоит попробовать?Как уже упоминалось, пакеты фактически видны в следе tshark ... после этого они просто кажутся полностью исчезающими.

... irrelevant
out , err := pcap.OpenLive(*iface, 65535, true, -1 * time.Second)
out.WritePacketData(buf.Bytes())
... irrevelant

Идея состоит в том, чтобы создать пакеты и отправить их в lo, чтобыпроцесс прослушивания на 127.0.0.1:<some port> действительно может видеть эти пакеты.

IP src / dst равны 127.0.0.1, а ethernet src / dst оба равны 00: 00: 00: 00: 00: 00.

Редактировать:

Что касается дальнейших исследований, то представляется, что отправка пакетов с помощью pcap обходит стеки IP-сети таким образом, что пакеты могутне видно по процессам.Обходной путь - удалить нижние уровни пакетов в трассировке, открыть обычный сокет udp / tcp и отправить полезную нагрузку через этот сокет.

1 Ответ

0 голосов
/ 13 июня 2018

Что касается дальнейших исследований, то представляется, что отправка пакетов с помощью pcap обходит стеки IP-сети таким образом, что пакеты не могут быть видны процессам.Обходной путь - удалить нижние уровни пакетов в трассировке, открыть обычный сокет udp / tcp и отправить полезную нагрузку через этот сокет.

...