Инструкция для желающих настроить Multicast Routing на Linux шлюзе, обеспечивающем работу клиентов через NAT.
Для переброса IGMP-трафика между подсетями будем использовать демон igmpproxy (http://sourceforge.net/projects/igmpproxy)Ставим IGMP Proxy из пакетов используемого дистрибутива или устанавливаем из исходных текстов:
# tar -zxf igmpproxy-src-0.1.tar.gz
# cd igmpproxy/
# less README
# cd src/
# make && make install
Правим файл конфигурации /etc/igmpproxy.conf. В представленном примере, интерфейс eth0 смотрит в публичную сеть провайдера Mig Telecom, а eth1 в домашнюю сеть.
# Enable Quickleave mode (Sends Leave instantly)
# Эту строчку раскомментируют только в том случае,
# если внути всего лишь один клиент IP TV
#quickleave
# Configuration for eth0 (Upstream Interface)
# Здесь указаны параметры для публичного интерфейса,
# на который придет поток от провайдера
phyint eth0 upstream ratelimit 0 threshold 1
altnet 10.20.0.0/16
altnet 88.210.40.0/24
altnet 80.240.211.0/22
# Configuration for eth1 (Downstream Interface)
# Типовая конфигурация для внутреннего интерфейса
phyint eth1 downstream ratelimit 0 threshold 1
# Configuration for eth2 (Disabled Interface)
# eth2 в системе есть, но не используется никем, отключаем
phyint eth2 disabled
Запускаем igmpproxy и переходим к небольшой конфигурации IPTables.
Вот этот набор правил понадобился для корректной работы пакетного фильтра, разрешается весь входящий мультикст, разрешается его форвардинг и плюс ко всему добавляем в TTL 1, без этого добавления не работает если пакеты от провайдера приходят с минимально выставленным TTL.
modprobe ipt_TTL
iptables -t filter -A INPUT -d 224.0.0.0/240.0.0.0 -i eth0 -j ACCEPT
iptables -t filter -A INPUT -s 224.0.0.0/240.0.0.0 -i eth0 -j ACCEPT
iptables -t filter -A FORWARD -d 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t filter -A FORWARD -s 224.0.0.0/240.0.0.0 -j ACCEPT
iptables -t mangle -A PREROUTING -d 224.0.0.0/240.0.0.0 -p udp -j TTL --ttl-inc 1
URL: http://www.tonchik.ru/pub/over/Linux%20Multicast%2...
Обсуждается: https://www.opennet.ru/tips/info/2235.shtml