Я пытался решить эти 2 проблемы, но безуспешно.
Интересно, возможно ли удалить определенные пакеты из интерфейса с Gopacket или это только для прослушивания по проводам?Например, когда я отправляю пакет UDP на неправильный порт, а затем с помощью Gopacket исправляю его, он отправляет 2 пакета, 1 на неправильный порт и 1 на правильный.Есть ли способ отбросить / отбросить неправильный пакет с помощью Gopacket?
Что я пытаюсь сделать, это подобрать все пакеты, отправленные клиентом по IP, а затем инкапсулироватькаждый пакет в качестве полезной нагрузки в другом протоколе X и отправить на удаленный хост, который будет получать по протоколу X, получить полезную нагрузку и отправить его по своему интерфейсу, чтобы снова достичь сервера через IP.(IP (Клиент) -> Протокол X (Sniffer 1) -> Протокол X (Sniffer 2) -> IP (Сервер))
Я проверил, что пакет, который Sniffer 1 выбираетиз интерфейса клиента то же самое, что и в Sniffer 2, но проблема в том, что Sniffer 2 внедряет его в интерфейс сервера.Я не вижу этот пакет с tcpdump или любым другим инструментом.Пакет вводится с помощью этой команды:
if handle, err := pcap.OpenLive("enp0s8", 1600, true, 100); err != nil {
panic(err)
} else {
err = handle.WritePacketData(packet.Data())
}
Если избежать части протокола X, сервер получит сообщения от клиента, но с протоколом X это невозможно.
Спасибозаранее!