10.06.2010 IPTV+Multicast на Gentoo

0.250 Предисловие

Постявил я у себя в локальной сети радио-сервер и так мне эта тема понравилась , что захотелось посмотреть IPTV, дабы второй дисплей не простаивал на столе без дела. ;-)

0.500 Дано
Роутер с предустановленной и настроенной ОС Gentoo Linux и миниимально настроенным файрволлом IPTables (все никак не соберусь написать о настройке, хотя небольшой опыт и понимание имеется).

0.750 Надо

1. Разрешаем в IPTables файрволле мультикаст.
2. Устанавливаем Multicast Routing Daemon (IGMP).
3. Конфигурируем демон.
4. Запускаем, проверяем, смотрим IPTV.

1. Реализация по порядочку

Роутинг для внешнего интерфейса (eth0) для прохождения мультикаст:
# route add -net 224.0.0.0/4 eth0


Редактируем наш файрволл (У меня IPTables не знаю как у вас)

# mcedit /etc/init.d/iptables


И добавляем правило в цепочки INPUT и FORWARD, если политика по умолчанию выставлена на DROP:

Добавляем следующие правила:
IPT="/sbin/iptables"
...
$IPT -A INPUT -d 224.0.0.0/4 -j ACCEPT
$IPT -A FORWARD -d 224.0.0.0/4 -j ACCEPT
$IPT -A FORWARD -s 224.0.0.0/4 -j ACCEPT


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

# emerge -av net-misc/igmpproxy
These are the packages that would be merged, in order:
Calculating dependencies... done!
[ebuild  N    ] net-misc/igmpproxy-0.1  137 kB
Total: 1 package (1 new), Size of downloads: 137 kB


Редактируем конфиг IGMPproxy

# mcedit /etc/igmpproxy.conf


У меня eth0 направлен во внешнюю сеть, а eth1 в локалку:


##------------------------------------------------------
## Внешка
##------------------------------------------------------
phyint eth0 upstream ratelimit 0 threshold 1
  altnet 10.0.0.0/8
  altnet 83.243.68.42 # Адреса IPTV-серверов, узнать айпи можно из дебаг лога, как включить дебаг - ниже
  altnet 95.140.93.0/24
##------------------------------------------------------
## Локалка
##------------------------------------------------------
phyint eth1 downstream ratelimit 0 threshold 1

##------------------------------------------------------
## Остальные интерфейсы блокируем
##------------------------------------------------------
phyint eth2 disabled
phyint tun0 disabled
phyint lo disabled


Указываем тут нашу подсеть.

Запускаем демона и прописываем init-скрипт в автозапуск:
# /etc/init.d/igmpproxy start 
# rc-update add igmpproxy default


Для дебаг-лога редактируем файлик /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"


Теперь мы можем смотреть IPTV на компьютере через любой плеер, например (VLC player)

P.S.:
Тем же из Вас, кто не хочет транслировать IGMP в сетку можно поставить udpxy (small-footprint UNIX/Linux daemon to relay multicast UDP traffic to client's TCP (HTTP) connection)
https://sourceforge.net/projects/udpxy/

10.1.0.1:4022/udp/224.200.202.6:1234
udpxy -m eth0 -a eth2 -p 4022

Идея статьи: Nilus Blog




Вас также может заинтересовать:

22.05.2010 Использование PackageSet в Gentoo (Или жизнь после установки Gentoo-Way)
Настройка РРТР в GENTOO консольный вариант (PPTP Gentoo-way)
01.05.2010 Установка Gentoo (x86 UTF-8 RUS)
12.06.2010 IPTables Gentoo
25.04.2010 Философия Gentoo
Представлен Gentoo LiveDVD 11.0