Пробрасываем multicast в локальную сеть

Если ваш провайдер предоставляет услугу IP-TV по мультикасту, то находясь за роутером не удастся посмотреть, так как пакеты не будут проходить на целевую машину.
Решить эту проблему можно двумя путями:
1. Входящий трафик заворачивать в http и посылать на комп. Для этого можно воспользоваться udpxy
2. Прозрачно прокидывать трафик с помощью igmpproxy

Первый вариант очень хорош тем, что не спамит лишний трафик в локальную сеть, а выдает трафик тому кто его запросил, но есть маленький недостаток – немного нагружает сам шлюз и требуется редактирование плейлиста.
Но если нужно прозрачно все передавать в локалку, то ваш выбор за igmpproxy

Устанавливаем Multicast Routing Daemon для проброса IGMP

emerge -av net-misc/igmpproxy

Конфигурируем /etc/igmpproxy.conf

quickleave
phyint eth1 downstream  ratelimit 0  threshold 1
        altnet 10.0.1.0/24
phyint tun1 downstream  ratelimit 0  threshold 1
        altnet 10.0.14.2/32
phyint eth0 upstream  ratelimit 0  threshold 1
        altnet 10.15.1.0/24
phyint tun0 disabled

eth0 – внешний интерфейс
eth1 – внутренний интерфейс

Добавляем правила в фаервол для цепочек INPUT и FORWARD

#правила для igmpproxy
    $IPTABLES -t filter -A INPUT -d 10.15.0.0/24 -i $WAN -j ACCEPT
    $IPTABLES -t filter -A INPUT -s 10.15.0.0/24 -i $WAN -j ACCEPT
    $IPTABLES -t filter -A OUTPUT -d 10.15.0.0/24 -j ACCEPT
    $IPTABLES -t filter -A OUTPUT -s 10.15.0.0/24 -j ACCEPT
    $IPTABLES -t filter -A FORWARD -d 10.15.0.0/24 -i $WAN -j ACCEPT
    $IPTABLES -t filter -A FORWARD -s 10.15.0.0/24 -i $WAN -j ACCEPT
    $IPTABLES -t filter -A FORWARD -d 224.0.0.0/4 -i $WAN -j ACCEPT
    $IPTABLES -t filter -A FORWARD -s 224.0.0.0/4 -i $WAN -j ACCEPT
#тоже самое для OUTPUT и FORWARD + добавляешь в TTL 1
    $IPTABLES -t mangle -A PREROUTING -d 10.15.0.0/24 -p udp -j TTL --ttl-inc 1

$WAN – имя внешнего интерфейса

Для дебаг-лога редактируем файлик /etc/conf.d/igmpproxy

# Specify a configuration file
IGMPPROXY_CONFIG="/etc/igmpproxy.conf"
# Additional command line options.
# See igmpproxy(8) for more information.
IGMPPROXY_OPTS="-vv"

Это поможет найти сети с которых идет видеопоток

Добавить комментарий