Использование socat для копирования многоадресной рассылки из одной сети в другую

#multicast #socat

#многоадресная рассылка #socat

Вопрос:

Я пытаюсь скопировать / ретранслировать входящий канал многоадресной рассылки с одного адреса на другой, поэтому я решил, что socat позволит мне это сделать.

Если у меня уже есть что-то, подключенное к этой сети и входящее в консоль:

 ./socat UDP4-RECVFROM:14314,reuseaddr - | ./socat - udp-sendto:239.160.2.13:14314
 

или если я этого не сделаю:

 ./socat UDP4-RECVFROM:14314,ip-add-membership=233.158.8.5:0.0.0.0 - | ./socat - udp-sendto:239.160.2.13:14314
 

Но они завершаются после первого пакета или около того, поэтому я решил, что добавление fork поможет, но, похоже, это просто создает другого издателя для каждого полученного пакета, поэтому было массовое эхо.

Пожалуйста, есть какие-нибудь предложения о том, как это исправить? Я пробовал использовать чит-лист dest-unreach, но, похоже, там ничего не соответствует моим точным потребностям. Вероятно, я упускаю что-то действительно очевидное.

Комментарии:

1. Не уверен, что я это понимаю, и не могу проверить, но я думаю, что вам нужен только один экземпляр socat , а не 2, соединенных каналом. Больше похоже socat recvfrom:... sendto:...

2. кажется, мое эхо было вызвано тем, что я переиздавал на тот же порт, что и прием. Кажется, что каждый разветвленный socat пересылает одно сообщение, а затем умирает, и, похоже, все в порядке. команда, на которую я, наконец, пошел, была ./socat UDP4-RECVFROM:14314,reuseaddr,fork udp-sendto:239.160.2.13:14315