IPTV igmp non promiscuous mode magical bug
-
Поставил pfSense работать роутером на старом компьютере с 2 сетевыми картами.
ISP [ LAN [ static IP + IPTV ] + WAN [ L2TP ] ] -> pfSense PC [ rl0 + msk0 ] -> switch -> home LAN
Провайдер предоставляет телевещание по igmp multicast.
При прямом подключении Интернета к компьютеру все каналы работают нормально.Через pfSense работает примерно 2/3 каналов,
а остальные - только при включенном promiscuous mode на сетевой карте msk0, подключенной к домашней сети.234.5.2.0/24 - диапазон адресов каналов.
234.5.2.1 promiscuous only
234.5.2.2 ok
234.5.2.3 ok
234.5.2.4 promiscuous onlyPromiscuous mode включал на странице Diagnostics - Packet Capture.
Включение promiscuous mode - это костыль, причем вообще непонятно каким образом это помогает.
Хотелось бы понять причину бага и устранить ее без использование костылей.Пока в качестве плохого решения в Package / Services: Shellcmd Settings добавил команду /sbin/ifconfig msk0 promisc.
Shellcmd - дополнительно установленный пакет для инъекций команд. -
Добрый.
Поставил pfSense
Версия ? Разрядность ?
Так https://forum.pfsense.org/index.php?topic=16995.225 , https://forum.pfsense.org/index.php?topic=134795.0 или https://tech.cellfi.sh/journal/2016/6/19/nextgentel-iptv-and-your-own-router пробовали ?
Зы.
ISP [ LAN [ static IP + IPTV ] + WAN [ L2TP ] ]
Это же Dual\Russian ? Может с маршрутизацией что-то ? IPTV без поднятия l2tp работает или только при поднятой сессии?
Зы2. По фразе igmp iptv pfsense в Сети много интересного. Есть и свежее по времени.
Зы3. Надеюсь, что блокирование серых сетей на ВАН отключено изначально в вашем случае. -
Я несколько дней отлавливал ошибку. Кучу форумов облазил.
Из советов применил все, а именно:
1. В правилах для igmp разрешил ip options.
2. Не блокирую богоны и т.п.
3. Прописал апстрим сеть, т.к. источник не в моей подсети.С промиск мод все идеально работает.
Без него 1/3 каналов не работает, а именно:
жму "плей" в плеере - идет запрос на адрес канала и это сразу видно по логам/pfTop,
но у магической 1/3 каналов в логах пусто, просто тишина,
т.е. ощущение, что блокирует сетевая карта на уровне фреймов или как то так
(собственно, это единственный вывод, который можно сделать из факта, что в неразборчивом режиме работает все идеально).Еще раз напоминаю, что единственная разница между каналами - последнее число.
Работают без промиска определенные каналы.
Не работают без промиска тоже вполне определенные.
Т.е. это не рандомно, а всегда постоянно.Сетевые пробовал менять местами, с разных клиентов - все абсолютно также.
Система: 64х, последняя стабильная версия, 4Гб DDR2, Core 2 Duo, HDD 40 Гб, сетевые карты realtek 100 wan и marvell 1000 lan.
Маршрутов я не прописывал вообще никаких.
l2tp вообще не имеет отношение к тв, оно идет от статически прописанной локальной сети провайдера независимо от наличия или отсутствия Интернета. -
А сравните в плейлисте m3u (если он у вас, конечно, есть) как выглядят URL работающих и проблемных каналов, есть ли система?
-
Абсолютно одинаково выглядят.
Можно вручную открывать URL через VLC и эффект будет таким же.udp://@234.5.2.1 bug
udp://@234.5.2.2 ok
udp://@234.5.2.3 ok
udp://@234.5.2.4 bug
udp://@234.5.2.5 bug
udp://@234.5.2.6 ok
…Т.е. со стороны клиента все нормально, со стороны pfsense все тоже правильно настроено,
проблема где-то на уровне обработки пакетов от клиентов локальной сети.Совершенно непонятно по каким причинам такое происходит.
Что именно нужно сломать в посылаемых ethernet фреймах при смене адреса получателя UDP с 234.5.2.2 на 234.5.2.1,
чтобы сетевая карта их блокировала, считая посторонними?Напомню, что пробовал менять сетевую карту - т.е. маловероятно, что в драйверах дело.
-
Проблема не с сетевой картой, а с прохождением мультикаста.
Я в этой теме, к сожалению, не компетентен, а тема достаточно обширная. -
Добрый.
Вкл. сниффинг пакетов на интерфейсе (прямо в вебке пф) и посмотрите, что в нем при работающем и неработающим канале. -
werter, я и включал снифинг изначально - так и определил с каким костылем все работает как должно.
Просто снифинг показывает отсутствие igmp запросов.
Снифинг с галочкой промиск мод показывает igmp запросы и все работает.Т.е. включение packet capture + promiscuous mode в веб-интерфейсе pfsense
автоматически нейтрализует проблему и все каналы показывают нормально. -
Добрый.
Сетевые пробовал менять местами, с разных клиентов - все абсолютно также.
Попробуйте сменить (на время) сетевые на что-то приличное\поновее.
P.s. Отпишите в англоветку. Там разрабы сидят. Может и подскажут - баг это или фича.
-
что за мода на садо мазо?
снимайте поток до входа в маршрутер!!!!!! это делается на L2 коммутаторе. -
derwin, вы рофлите? я должен добыть ключи от чердака дома и от шкафа свитчей провайдера и прикрутить себе дополнительный кабель? если будет свободный порт? а еще найти дополнительный IP мимо договора с провайдером?
Там стоит DES-1228/ME (хотя по хорошему я, как клиент, вообще этого знать не должен)
Или вы хотите, чтобы я у себя дома поставил L2 свитч до pfsense? Допустим так, но мне нужен на tv-box не что-то одно из интернета и iptv, а и то и другое, а порт там, естественно, один.
И вообще, с какой целью мне "снимать поток до входа в маршрутер!!!!!!", если этот поток нужно закинуть в домашнюю сеть?
Может я что-то неправильно понял?P.S. с работой pfsense igmp proxy и IPTV сейчас проблем нет (с костылем), но есть проблема с ее качеством.
А именно, при канале в 100 Мбит/с, при минимальной потоковой загрузке (например twitch.tv) IPTV начинает моросить, т.е. происходит дроп пакетов хз в каком месте. Как с этим бороться я не знаю, точнее предполагаю, что нужно задавать приоритет UDP трафику от источника, но мне не удалось никак это реализовать в pfsense. Точнее ни один из вариантов не приводит к заметному результату.
Самый жирный HD канал берет около 13 Мбит/с. С чего вообще могут возникать лаги/дропы при свободной большей части канала я не понимаю. -
товарищ, если тебе нужно отдиагностировать проблему IPTV, то рекомендую начать с гугления по слову tsreader (это провайдерский инструментарий для таких случаев, но если позвоните провайдеру - скорее всего, он вас завернет в лес на поляну за грибами). Это программа- анализатор мультикаста. Выявляет битые последовательности (при перегруженном ретрансляторе или плохом канале), ошибки декодирования, ошибки контрольной суммы кодека и т.д.
Да, я предлагаю L2 снимать до входа в маршрутер. Кабель от провайдера перетягивать не обязательно, можно это сделать в метре от pfsense. L2 коммутаторы в простом исполнении по цене доступны, но могут не потянуть потоковое вещание (это ресурсоёмкая операция для чипа, нужно предварительно проверять). И да, чтобы закинуть поток в локалку - его нужно его прогнать на L2 до конечных потребителей, нужны минимальные знания сетевого инжиниринга, хотя бы в области VLAN и принципов коммутации/маршрутизации мультикаста.
Допустим так, но мне нужен на tv-box не что-то одно из интернета и iptv
а как вам провайдер подаёт услуги в кабель? там ведь и интернет, и IPTV. Вы почитайте хотя бы про адресацию в мультике, никакой проблемы тут нет.
-
мой вам совет. Если вам всё нужно и без ничего - купите себе домой зиксель кинетик лайт. Всё работает из коробки.
PS: DES-1228/ME - глючное д****о -
вот вам ещё http://www.dlink.ru/r/faq/58/266.html
кстати может стоять ограничение на кол-во каналов с порта у провайдера. -
derwin, спасибо за ответы,
много всего перепробовал - pfsense, open-wrt/lede, routeros, в итоге заказал MikroTik hEX lite - думаю его возможностей и мощности хватит для решения задачи.
маловероятно, что лаги iptv связаны с работой оборудования провайдера и нагрузка на свитч далеко не максимальная
по вашей схеме получается, что кабель от провайдера идет сначала в мой L2 роутер, который занимается мультикастом, затем в роутер/pfsense для раздачи интернета, и они соединены по lan портам, чтобы конечные потребители получали все вместе
-
MikroTik hEX lite - думаю его возможностей и мощности хватит для решения задачи.
Применительно именно к IPTV через мультикаст (многие провайдеры перешли на OTT\HLS,)
https://ru.wikipedia.org/wiki/OTT
https://ru.wikipedia.org/wiki/HLS
Микротик может и не лучший выбор. Многие роутеры-мыльницы с мультикастом справляются лучше.
Вероятно понадобится (обычно отсутствует в списке установленных) доп. пакет multicast-*.npk. Берется из Extra packages для для вашей архитектуры\версии ROS
https://mikrotik.com/download -
да вы чего, микротик и мультикаст вообще несовместимые вещи. Тупо чит не умеет, а проца не хватает на софтовую обработку.
-
Отлично работает IGMP Proxy на RB951G и на приставке и на компе показывает.
-
Отлично работает IGMP Proxy на RB951G и на приставке и на компе показывает.
вот именно, это PROXY, причём совтовое
-
вот именно, это PROXY, причём совтовое
А где он не софтовый? Коммутаторы тоже имеют софт. Данные ведь никто не перепаковывает, только заголовки пакетов.