Привет, у меня, наверное, вопрос noob, я уже потратил на это некоторое время и также испортил локальную сеть так:
У меня есть мини-ПК для ведения журнала в реальном времени между сетью и приставкой IPTV . На коробке есть DHCP, поэтому он также может предоставить IP-адрес. Также приложение под названием loglicent используется для захвата журналов, поступающих от телевизионной приставки.
Eth0 подключен к внешней сети с установленной на нем многоадресной рассылкой. На Eth1 есть приставка с IP, службы без многоадресной рассылки работают (воспроизведение из хранилища и тому подобное), но прямой поток - многоадресный - нет.
Я пробовал https://github.com/pali/igmpproxy , но это не сработало , поскольку мини-ПК начал вести себя как маршрутизатор, и другие устройства запрашивали этот mcast, конечно, без ответа.
Мне интересно, есть ли какой-нибудь простой способ, как просто транслировать трафик mcast между eth0 и eth1? Приложение logclient все еще работает.
igmpproxy
- правильный способ справиться с вашей ситуацией. Однако для передачи многоадресного трафика через маршрутизатор необходимо установить следующие переменные sysctl
:
sysctl net.ipv4.conf.all.rp_filter = 2
sysctl net.ipv4.conf.all.mc_forwarding = 1
Что делает igmpproxy
, так это то, что он перенаправляет запросы на присоединение / выход для групп многоадресной рассылки, поступающие от вашего STB, в вышестоящую сеть, если mc_forwarding
отключен, многоадресный трафик не будет маршрутизироваться, и обычно требуется rp_filter
, потому что большинство многоадресных ТВ-потоков обычно имеют странные исходные IP-адреса, которые могут перекрываться с вашим собственным сетевым пространством ..