LINUX.ORG.RU
решено ФорумAdmin

Ip tv через второго провайдера

 , , ,


1

2

#Здравствуйте всем. вот проблемка как сделать так что бы можно было бы организовать такую схему.

есть два провайдера, они воткнуты в комп на прямую по витой паре. допустим п1 и п2. через п1 доступ в интернет и ресурсы провайдера. второй провайдер раньше тоже предоставлял интернет (когда было уплачено) и свои ресурсы независимо от оплаты, в том числе и iptv. вот и захотелось мне пользоваться дешовым интернетом через п1 а так жэ смотреть телевизор через п2. прочитал на форумах этого сайта почти всё что касается Multicast. и в результате что-то неработает.

у меня дебиан бастер со всеми обновлениями, уже даже обновился с тестовой ветки, в надежде что поможет. выяснил что телевизионные пакеты идут по адресам udp://@239.239.0.0:1234. но результат как можно понять, прежний. так вот по советампробовал следующее.

dhclient п1 интернет работает, а телек соответственно нет. dhclient п2 телек работает а интернет соответственно нет. потом пишу ip route replace default dev п1 интернет соответственно заработал ну и телек конечно же нет. ну думаю дело в маршрутах. поэтому пишу ip route add 224.0.0.0/4 dev п2 но не тутто было. маршрут действует а мултикаст не проходит. попробовал такой способ

dhclient п2 dhclient п1 ip route add default dev п2 tavle 100 ip rule add to 224.0.0.0/4 table 100 и никак. решил покрутить свой фаервол nftables. хотя он у меня настроен на приём мультикаста от провайдера п2, но включение ивыключение его, ничего не дали. попробовал добавить такое правило nft add rule ip filter INPUT iifname «п1» udp dport 1234 pkttype multicast counter accept comment "IpTv"

и видно что когда шлюзом стоит второй провайдер, то мультикаст через это правило прёт. а когда ставиш шлюзом первого провайдера, то от второго провайдера вообще мультикаста нету. такое ощющение что перед самим фаерволом ядро режит весь широковещательный трафик. тоесть фаервол как бы не при делах. как буд-то в ядре стоит какая-то настройка чтобы принимать мультикаст только от самого первого шлюза.

просьба ко всем умнейшим более чем я подсказать. где и что ещё можно покрутить? всем удачи.

а что за провайдер такой, который без подключения доступа в интернет предоставляет IPTV?

xmikex ★★★★
()

ядро режит весь широковещательный трафик

Ты же в курсе, что мультикаст не является широковешалкой? Тебе не падает поток всего доступного видео от провайдера2 в твой порт. Твой ТВ-плеер/VLC делает IGMP request в порт провайдера2 при включении канала, который живет на, например, udp://@239.239.0.0:1234 и тогда и только тогда провайдерский коммутатор к которому подключен твой комп начинает пропускать к тебе трафик нужной тебе мультикаст группы.

и видно что когда шлюзом стоит второй провайдер, то мультикаст через это правило прёт

наверное потому что запрос подписки на мультикаст группу в этом случае улетает в правильный шлюз п2, а не в пустоту.

Бери в руки tcpdump и проверяй по фильтру igmp и смотри куда летят джойны.

BOOBLIK ★★★★
()
Последнее исправление: BOOBLIK (всего исправлений: 1)
Ответ на: комментарий от BOOBLIK

Привет всем. «нужной тебе мультикаст группы» а как правильно это сделать? какую команду написать? по всей видимости взяв в руки tcpdump я его найду, но к сожалению не так скоро как хотелось бы. дело в том что я пока не силён в дампах, поэтому я в этом буду разбираться не быстро. ну хоть примерно подсказали, и на этом спасибо. буду тогда сейчас грысть tcpdump. за помощь спасибо и всем всего доброго. а провайдер podryad.tv

FiveFiveFive
() автор топика
Ответ на: комментарий от FiveFiveFive

люди добрые! а вот в этом случае igmpproxy мне поможет? кто настраивал и знает, раскажите. всем удачи.

FiveFiveFive
() автор топика
Ответ на: комментарий от Psilocybe

Привет всем. «скроссировать на уровне L2» а это как? по всей видимости я не на столько мудрён, что не понял этот придложенный вариант. пожалуйста ткните меня в нужные знания где про это можно почитать? а L2 это случайно не второй аппаратный уровень модели оси? тогда какие правила можно сочинить в arp таблице фаервола nftables? просто в инете нет внятных примеров как правильно и аккуратно писать правила под именно эту таблицу? всем удачи.

FiveFiveFive
() автор топика
Ответ на: комментарий от FiveFiveFive

Тебе скорей всего нужно просто прописать статический. маршрут 224.0.0.0/4 через п2 (IPTV) и должно будет работать

Tok ★★
()
Ответ на: комментарий от Tok

Привет всем. «скорей всего нужно просто прописать статический. маршрут» в том-то и дело что я так делал и тоже был уверен что должно работать. посмотрите пожалуйста моё первое сообщение. в первом варианте который я описывал этот маршлут был добавлен. да и во втором через дополнительную таблицу маршрутизацыи этот маршрут косвено работает. и во всех двух моих попытках команда ip route get говорит что этот мультикаст должен идти как мне надо. но именно мультикаст до фаер вола не доходит. он режится где-то до него! а пока расбираюсь в дампе. может кто-нибуть знает? как сделать так чтобы поставить какую-нибуть прогу в фоновой задаче, которая бы сразу показывала и звучала если по определённому порту прилетит мультикаст? кроме wireshark? всем удачи.

FiveFiveFive
() автор топика
16 апреля 2022 г.
Ответ на: комментарий от FiveFiveFive

Привет всем. вот расгрыз эту задачку. может кому-то пригодится. оказалось не слишком сложно. просто в файл настроек системмы /etc/sysctl.conf добавляем следующие параметры: net.ipv4.conf.p2.rp_filter=2

ну и до кучи

net.ipv4.conf.p2.force_igmp_version=3 net.ipv4.conf.all.force_igmp_version=3 net.ipv4.conf.default.force_igmp_version=3 последние три строчки просто принуждают использовать протокол иммено третьей версии. а так всё работает. единственно что, при использовании этого способа решения подобной задачи с двумя провайдерами. страдает безопасность. на двух ресурсах об этом явно предупреждали. так что этот подход использовать с оглядкой. если вы хорошо настроили свой фаервол. всем удачи.

FiveFiveFive
() автор топика
13 ноября 2022 г.
Ответ на: комментарий от FiveFiveFive

Сталкивался с такой же ситуацией.
Два провайдера, у каждого есть свой IPTV по IGMP.
У каждого из провайдеров IPTV уже доступен до авторизации пользователя по PPPoE.
В распоряжении роутер с двумя wan сетевыми интерфейсами. В зависимости от того, на какой интерфейс зарулить 224.0.0.0/4 от того провайдера и будем получать IPTV.

Провайдер рекомендует объединять на роутере сетевые интерфейсы в мост, и подключать уже к мостовому интерфейсу по ethernet SmartTV или приставку от провайдера (производители некоторых роутеров предлагают производить объединение на уровне vlan, и не использовать мост). При таком соединении IPTV не доступен на ПК пользователей. Хотя если дополнительно настроить igmpproxy, то IPTV появится у пользователей, и не надо настраивать мосты и vlan.

Теперь самое интересное. Оба провайдера вещают все каналы, которые у них есть. А показом ТВ-каналов пользователю занимается приложение от провайдера, которое показывает только те каналы, за которые заплатил пользователь.
Если не пользоваться приложением провайдера в виде прокладки, то для просмотра доступный все каналы.

Теперь же список ТВ-каналов у провайдеров. По большому счету он пересекается, но есть ТВ-каналы уникальные для каждого провайдера. Если пользоваться твоей схемой, то когда нужно посмотреть ТВ-канал одного или второго провайдера, нужно каждый раз переключать маршрутизацию. А, как мне кажется - это не очень удобно.

Один из выходов:
На роутере поднять два контейнера (например docker или lxc/lxd).
Каждый из контейнеров сбридживать на сетевой интерфейс только одного их провайдеров.
В каждом из контейнеров установить udpxy*.
Сформировать общий m3u таким образом, что бы m3u cодержал уникальные каналы каждого из провайдеров.

Итог:
Плейлист m3u, содержащий список всех возможных TB-каналов, включая уникальные каналы каждого из провайдеров.

Кроме того, udp трафик очень плохо чувствует себя в беспроводных сетях, поэтому преобразование multicast-udp трафика в unicast-tcp трафик позволит безболезненно просматривать ТВ-каналы на беспроводных устройствах (SmartTV, смартфоны, планшеты).

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

ivanlex ★★★★★
()
Последнее исправление: ivanlex (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.