URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 74931
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Проброс IPTV-трафика в локальную се..."

Отправлено auto_tips , 23-Фев-11 02:37 
Возникла необходимость обеспечения возможности просмотра IPTV сразу на нескольких устройствах в домашней сети. Реализации данной схемы мешало то, что полученный от провайдера модем имел два раздельных порта для данных и для IPTV. Простейшим решением было бы закорачивание IPTV-порта в домашний коммутатор, но такая схема  нарушает принципы построения безопасных систем и сулит появление паразитного трафика. В связи с этим было решено организовать перенаправление IPTV-трафика через локальный шлюз, на котором используется пакетный фильтр PF и IGMP-прокси.

1. Включаем поддержку переброса между сетевыми интерфейсами мультикаст трафика, для OpenBSD:

   echo "multicast_router=YES" >> /etc/rc.conf.local

перезагружаем систему.

Активируем перенаправление мультисаст трафика:

   sysctl net.inet.ip.mforwarding=1

в /etc/sysctl.conf сохраняем настройку "net.inet.ip.mforwarding=1".

2. Устанавливаем пакет net/igmpproxy с реализацией igmp-прокси:

   pkg_add igmpproxy

Отображаем свои сетевые настройки в файле конфигурации /etc/igmpproxy.conf:

   quickleave
   altnet 0.0.0.0/0    # принимаем igmp-трафик из всех подсетей
   phyint vr2 upstream  ratelimit 0  threshold 1
   phyint vr0 downstream ratelimit 0  threshold 1
   phyint pppoe0 disabled

Добавляем запуск igmpproxy в /etc/rc.local, чтобы прокси запустился после перезагрузки.

3. Настраиваем параметры внешнего сетевого интерфейса, через который приходит IPTV-поток. Для работы  igmpproxy на интерфейсе должен быть IP-адрес, для получения которого обычно можно использовать DHCP или назначить вручную (бывают случаи привязки IP к MAC-адресу телеприставки, что потребует подмены MAC-адреса на сетевом интерфейсе шлюза).

4. Настраиваем правила для прохождения IGMP-трафика и multicast-потока в пакетном фильтре PF (в нашем случае - это UDP трафик на 5002 порт).  Основной проблемой, возникающей в процессе настройки, является то, что в IGMP пакетах используется опция протокола IP "Router Alert", которая по умолчанию вычищается из пакетов при использовании PF (для отключения чистки расширенных опций необходимо использовать параметр allow-opts). В pf.conf добавляем примерно следующее:

   LAN  = "vr0"
   IPTV = "vr2"

   block on $IPTV
   pass in on $IPTV inet proto udp from any to any port 5002
   pass on {$LAN, $IPTV} proto igmp allow-opts

URL: http://undeadly.org/cgi?action=article&sid=20110222002946
Обсуждается: http://www.opennet.ru/tips/info/2538.shtml


Содержание

Сообщения в этом обсуждении
"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено Анонимко , 23-Фев-11 02:37 
Хочу использовать технологию для доставки сигнала по своим (не мультимедиа) протоколам.
Что для этого нужно с точки аппаратной стороны и что нужно научиться понимать?

Мне это видится как подписка на поток сигналов выбранного типа.


"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено mma , 23-Фев-11 10:27 
а зачем multicast_router и net.inet.ip.mforwarding когда трафик всеравно проксируется igmpproxy. Помоему оно тут лишнее

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и п..."
Отправлено banzai , 24-Фев-11 06:31 
Нет. IGMP прокси, проксирует только igmp запросы.
Получает запрос с внутренней сети, и подписывается на поток снаружи и добавляет маршрут в таблицу маршрутизации. ( можно посмотреть netstat -g ). Т.е. до клиента бежит multicast трафик.
Скорее всего вы перепутали с udpxy, который как раз сам подписывается на поток и перегоняет его к вам уже по unicast.

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и п..."
Отправлено mma , 24-Фев-11 18:20 
multicast_router не нужен точно. А вот forward нужен, тут я ошибся

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено Аноним , 23-Фев-11 13:00 
Автор! Напишите версию OpenBSD, пожалуйста, на которой вы это делали.

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено unscrubber , 24-Фев-11 07:33 
у меня такое решение на FreeBSD 7 серии работает и давно уже (более года), раньше правда igmpproxy в портах не было, щас все легко и просто.

по поводу конфигов, помоему у меня с 0.0.0.0/0 не работало, если такое наблюдается - можно перечислить как это у провайдера сделано например: altnet 10.0.0.0/8 и altnet 224.0.0.0/4

в PF использовал правила
mcast_ll= "10.0.0.0/8"
mcast_as= "224.0.0.0/4"
pass quick on {$int_if $ext_if} proto igmp to {$mcast_ll $mcast_as} allow-opts modulate state label "mcast"
pass quick on {$int_if $ext_if} proto udp to {$mcast_ll $mcast_as} port {1234, 9875} keep state label "mcast udp"

единственное  с чем не доконца разобрался - наблюдал много не очень нужных мне пакетов которые просто решил блокировать:
block in quick on $ext_if proto 103 all label "block in PIMv2 Cisco Hello spam"

а в целом отличный проксик, с ключом -d инфы выдает очень много и подробно (если чего не выходит то можно поколупатся и поанализировать), очень благодарен умельцам которые ее с линукса портировали.


"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено АнанистМус , 24-Фев-11 11:13 
udpxy ни как не осилить?
По дефолту 16 клиентво на один процесс.

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и п..."
Отправлено unscrubber , 24-Фев-11 11:30 
этому (udpxy) порту всего 13 месяцев, igmpproxy был доступен раньше.
ну и они разные вещи делают вообщето.
схожие, но udp и http раздача клиентам в локалкеэто не одно и тоже

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и п..."
Отправлено Leshka , 01-Мрт-11 18:27 
Что-то я в свое время не осилил igmpproxy. На мой взгляд для локалки не будет заметно разницы между udpxy и igmpproxy по объему генерируемого трафика.

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и пакетного фильтра PF"
Отправлено FSA , 27-Фев-11 06:57 
Тема заинтересовала, но у меня всё гораздо проще. IPTV идёт через ADSL модем. С модема убраны все разделдения портов на группы. Интернет настроен через PPPoE в модеме. VPI/VCI с потоком в режиме бридж, так же как и управляющий канал для приставки.
Из неприятного - приходится отказаться от DHCP. Точнее оно присутствует из-за управляющего канала и выдаёт хитрые адреса с медленным интернетом. Так что при отсутствии приставки можно просто убрать управляющий канал, а при её наличии вбивать адреса устройств руками.
Ещё встречался с проблемой, что некоторые каналы идут с 200 номера порта. Приходится играть с файерволом и перенаправлять их на порт выше 1024.

"Проброс IPTV-трафика в локальную сеть при помощи OpenBSD и п..."
Отправлено Alexander Sheiko , 27-Фев-11 19:04 
Укртелеком? Если нет приставки и нужно смотреть передачи на локальном компе, стоящем за опенроутером - как вам удалось всё это сконфигурировать?

"Раздел полезных советов: Проброс IPTV-трафика в локальную се..."
Отправлено _KUL , 24-Мрт-12 19:21 
Проброс IPTV для линукса, в примере используется Debian, может кому пригодиться

http://rukul.ru/system-setting/linux-debian-проброс-multicast-iptv-пробросить-через-nat-в-лока