У меня есть то, что звучит как простейший из возможных вариантов использования, и все же ничего не удовлетворительное.
У меня есть хост с несколькими домами, и я хотел бы слушать многоадресные передачи на eth1 и помещать всю полезную нагрузку (НЕ включая заголовки пакетов UDP, только полезную нагрузку) в файл. Вот некоторые вещи, которые я уже пробовал,
- Сокат. Похоже, это был бы идеальный инструмент, но я понятия не имею, какой синтаксис использовать, и все примеры, которые я нахожу, предназначены для гораздо более сложных вариантов использования. Я не могу на самом деле делать головы или хвосты из примеров, которые я вижу. Если кто-нибудь знает, как я мог заставить socat сделать это? Не стесняйтесь называть меня идиотом за то, что я не понял этого.
- VLC. Изредка отбрасывает пакеты, что недопустимо. Мне нужно, чтобы он работал долго без потери одного пакета. Я вижу это случайное падение во многих версиях VLC на разных платформах, и я просто не доверяю этому.
- Wireshark. Это работает и никогда не сбрасывает пакеты типа vlc (даже при одновременном запуске), но на самом деле мне не нужен дамп пакета, только полезная нагрузка. После этого я могу использовать wireshark, чтобы записать всю полезную нагрузку в файл, используя функцию "следить за потоком UDP", но это занимает много времени и не позволяет мне сохранять полезную нагрузку в реальном времени. Кроме того, это возможно только в графическом интерфейсе Wireshark. Мой рабочий процесс был бы намного проще без некоторого графического интерфейса.
- Netcat. Звучит как правильный инструмент, но не делает дерьмо, когда дело доходит до получения многоадресной рассылки. Не знаю, как отлаживать или просто не работает с многоадресной рассылкой. Кроме того, я использую nemesis для принудительного соединения igmp, и с помощью tcpdump я вижу, что это работает. Пожалуйста, предложите, если я что-то упускаю глупо.
- Кс6. тот же результат, что и у netcat.