Дано:
quickleave
- Asus RT-N16 c прошивкой DD-WRT v24-sp2 (08/19/13) kingkong (SVN revision 22200M)
- Интернет от ПТК (Пензенская телефонная компания) через PPPoE
- IPTV приставка TVIP S410
Задача:
- Пробросить IPTV-трафик с WAN на приставку.
Подготовка:
Решение:
Вариант первый
Объединяем LAN-порт подключения приставки с WAN портом.
IPTV заработает, но приставке не будет поступать интернет для загрузки списка каналов, телепрограммы, сервисов Youtube, IVI и прочее.
P.S. почему-то после перезагрузки переставал подниматься PPPoE
Вариант второй (изощренный)
Для этого воспользуемся утилитой трансляции мультикастных подписок igmpproxy. В dd-wrt она называется igmprt. Синтаксис конфигурации хорошо описан тут.
Если отключить Firewall->Filter Multicast, то igmprt будет запускаться автоматически, правда не между WAN и LAN как нам надо, а между LAN и PPPoE-туннелем. Также будут прописаны правила iptables для приема IGMP-трафика и перенаправления UDP-потока.
Поэтому оставляем включенным чекбокс фильтрации мультикаста и все напишем сами:
#Force IGMPv2 instead of IGMPv3
echo 2 > /proc/sys/net/ipv4/conf/vlan2/force_igmp_version
# Set random IP to WAN, else igmprt not start
ifconfig vlan2 192.168.50.137
# rules for traffic
iptables -I FORWARD -d 224.0.0.0/4 -p UDP -j ACCEPT
iptables -I INPUT -p igmp -j ACCEPT
# Create config
echo -e " quickleave
# Multicast source interface
phyint vlan2 upstream ratelimit 0 threshold 1
phyint vlan2 upstream ratelimit 0 threshold 1
# Destination multicast interface. Request must receive from here
phyint br0 downstream ratelimit 0 threshold 1
phyint br0 downstream ratelimit 0 threshold 1
phyint lo disabled
" > /tmp/igmpproxy.conf
Из-за объединения LAN и Wi-Fi мостом, мультикаст насмерть забивает канал Wi-Fi. Поэтому такой способ мало кому подойдет. Возможно поможет вынесение Wi-Fi из моста с помощью Wireless->Advances Settings->AP Isolation Enable.
Вариант третий
Также можно транслировать мультикастный трафик в UDP, и отсылать его только конкретным абонентам, а не всем без разбора. Для этого используется утилита udpxy.
И скрипт запуска должен выглядеть подобным образом:
#Force IGMPv2 instead of IGMPv3
echo 2 > /proc/sys/net/ipv4/conf/vlan2/force_igmp_version
# rules for traffic
iptables -I INPUT -p igmp -j ACCEPT
iptables -I INPUT -p udp -d 224.0.0.0/4 -j ACCEPT
/mnt/udpxy -a `nvram get lan_ipaddr` -p 4444 -m 192.168.50.137 -S
После чего необходимо изменить все адреса в плейлисте. Например,
udp://@239.195.32.1:1234
заменить на
http://192.168.1.1:4444/udp/239.195.32.1:1234
После запуска трансляции можно посмотреть статистику трансляции в браузере по адресу http://192.168.1.1:4444/status
" > /tmp/igmpproxy.conf
igmprt /tmp/igmpproxy.conf &
,где br0 - сетевой мост, состоящий из LAN-портов и Wi-Fi,
vlan2 - виртуальный интерфейс WAN-порта.
Описанные выше команды можно добавить в поле Commands->Save Startup. Но если произойдет заполнение nvram, куда все это сохраняется, то роутер может сброситься. Поэтому лучше закинуть скрипт на jffs или usb и поставить команду на автозапуск в Commands->Run startup в стиле sh /mnt/scripts/igmprt.sh
Из-за объединения LAN и Wi-Fi мостом, мультикаст насмерть забивает канал Wi-Fi. Поэтому такой способ мало кому подойдет. Возможно поможет вынесение Wi-Fi из моста с помощью Wireless->Advances Settings->AP Isolation Enable.
Вариант третий
Также можно транслировать мультикастный трафик в UDP, и отсылать его только конкретным абонентам, а не всем без разбора. Для этого используется утилита udpxy.
И скрипт запуска должен выглядеть подобным образом:
#Force IGMPv2 instead of IGMPv3
echo 2 > /proc/sys/net/ipv4/conf/vlan2/force_igmp_version
# Set random IP to WAN, else igmprt not start
ifconfig vlan2 192.168.50.137
iptables -I INPUT -p igmp -j ACCEPT
iptables -I INPUT -p udp -d 224.0.0.0/4 -j ACCEPT
/mnt/udpxy -a `nvram get lan_ipaddr` -p 4444 -m 192.168.50.137 -S
После чего необходимо изменить все адреса в плейлисте. Например,
udp://@239.195.32.1:1234
заменить на
http://192.168.1.1:4444/udp/239.195.32.1:1234
После запуска трансляции можно посмотреть статистику трансляции в браузере по адресу http://192.168.1.1:4444/status
Комментариев нет:
Отправить комментарий