LINUX.ORG.RU

Ростелеком и OpenTV (IPTV), нужно настроить шлюз


0

1

Входные данные:

1. Имеется пров Ростелеком с PPPoE

2. Имеется самопальный роутер-шлюз на генте

3. У Ростелекома есть бесплатное ОткрытоеТВ

4. Интернет в шлюзе худо-бедно настроен, IPTV нет)

На сайте Ростелекома есть кривоватый батник, который делает следующее: назначает сетевухе фиксированный IP 1.1.1.1, удаляет все маршруты на 224.0.0.0 и прописывает обратно один на этот фиксированный IP. Без этого костыля ТВ (VLC Player) показывает только при отключенном PPPoE. Ну можт это не такой уж и костыль, но суть не в этом, а в том, что ТВ идёт в обход PPPoE туннеля.

Вопрос: что и как настраивать в шлюзе? Если можно, с пояснениями что, зачем и почему)

На компе с виндой уже стоит Wireshark, но опыта работы с ним ноль, да и вообще, признаться, с сетевыми заморочками я знаком _весьма_ поверхностно. В гугле не нашёл готовых вариантов настройки для случаев с PPPoE, а изучать весь протокол IGMP у меня, если честно, боюсь не хватит мозгов...

4. Интернет в шлюзе худо-бедно настроен, IPTV нет)

Не надо «худо-бедно». Надо просто настроить.

Самый простой вариант — udpxy. Через неё igmp iptv потоки будут преобразованы в udp. Ставить на роутере.

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

Я силюсь именно _понять_ как это должно работать...

Поправьте меня если я не прав, но проблему я вижу в таком ключе: на шлюзе, судя по всему, надо пробросить два маршрута, один - чтобы пакеты запросов IGMP уходили в enp2s0 (а-ля «WAN») напрямую (а не через PPPoE), второй - для ответных пакетов, чтобы отсылались на enp1s0 (а-ля «LAN», домашняя сеть). И я их-таки пробросил. И запросы-таки уходят. Ответы не приходят. Подозреваю, что каким-то логичным методом надо донастроить iptables, чтобы не дропала пакеты нужные. Этого я пока ещё не сделал, ибо не до конца докурил маны. Поэтому буду мегапризнателен, если кто-нибудь сжато, но доступно растолкует механизм прохождения этого проклятого iptv по этим цифровым кишкам :) Сорри за эмоции

P.S. udpxy не хочу

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

P.S. udpxy не хочу

Тогда тебе нужен IGMP proxy.
http://lordinicus.blogspot.ru/2010/11/igmp-snooping-igmp-proxy.html

IGMP proxy является одновременно IGMP-клиентом и групповым маршрутизатором (IGMP router).
С одной стороны, proxy запрашивает групповые каналы у вышестоящего группового маршрутизатора, а с другой стороны – принимает запросы (join/leave) хостов и реплицирует полученный «сверху» групповой трафик в соответствующие интерфейсы.
Инструкции в интернете есть по его настройке. Попробуй по этой. О результатах отпиши.
http://www.tonchik.ru/pub/over/Linux Multicast Routing with IGMPProxy.html

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

Воу, вот этого мануала я в гугле не находил, спасибо, щас буду пробовать.

P.S. А всё-таки, зачем _вообще_ нужен какой бы то ни было прокси? Без него вообще никак что ли?

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

зачем _вообще_ нужен какой бы то ни было прокси?

Потому что igmp не умеет проходить в твою подсетку. По определению. Его что-то должно встречать на границе и пропускать.

И IGMP не нужен тебе в локалке. Просто потому что оно тебе всю локалку будет похабить пакетами с телевизионной картинкой. Тоже по определению.

Поэтому, рекомендую все-таки посмотреть на udpxy.

Если разжился m3u для vlc, заточенным для IGMP, то в вид работоспособный при udpxy оно переделывается одним регэкспом.

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

поделись опытом

Убунта на роутере, eth2 смотрит на ростелекомовскую коробочку с оптикой, eth1 — локалка. Кусок /etc/network/interfaces:

auto eth2
iface eth2 inet static
        address 169.254.161.84 # рандом, ничего от него не зависит
        network 169.254.0.0
        netmask 255.255.0.0
        broadcast 169.254.255.255
        post-up sleep 10 && /usr/local/bin/udpxy -a eth1 -p 4022 -m eth2 -c 9 -l /var/log/udpxy.log -n -10 || true
dmiceman ★★★★★
()
Ответ на: комментарий от dmiceman

Да пусть похабит, у меня гигабит в локалке :)

По сабжу:

phyint eth0 upstream ratelimit 0 threshold 1

altnet 10.20.0.0/16

altnet 88.210.40.0/24

altnet 80.240.211.0/22

Что это за адреса, откуда взяты? Согласно ману по igmpproxy.conf:

Defines alternate sources for multicasting and IGMP data. The network address must be on the following format 'a.b.c.d/n'. By default the router will accept data from sources on the same network as configured on an interface. If the multicast source lies on a remote network, one must define from where traffic should be accepted

Посредством wireshark я выяснил, что непосредственно пакеты с транспорт стримом идут с двух конкретных айпи, 213.140.243.123 и 78.132.130.18, в смысле я попереключал каналы в плейлисте, половина с одного адреса идёт, половина с другого. Каналы в плейлисте идут вида udp://@233.3.2.x:5000 и udp://@233.3.1.x:5000, соответственно у пакетов в поле destination и значится этот адрес. Короче, что мне указывать в altnet?

Далее. В предложенном выше мануале набор правил для iptables учитывает только 224.0.0.0, это (если я правильно понял) адрес подсети, в которую клиент (плейер) шлёт запрос подписки на мультикаст. Вопрос: для ответного трафика (который уже с других адресов) правила нужны? Ведь нужны же по логике?

Сорри, если вопросы глупые и ответ очевиден, просто ну не врубаюсь...

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

Короче, что мне указывать в altnet?

213.140.243.0/24 78.132.130.0/24

Ведь нужны же по логике?

Нет, не нужны. Там совершенно неважно что указано в качестве источника пакета. Главное — то что адрес назначения указан в 224.0.0.0.

То есть, iptables -A INPUT -i eth0 -d 224.0.0.0/4 -j ACCEPT && iptables -A OUTPUT -o eth0 -d 224.0.0.0/4 -j ACCEPT и все должно быть хорошо.

P.S. Если все-таки хочешь igmp, то имей в виду что про wifi в сети, без спец-роутера, который будет отсекать телевизор, придется забыть.

dmiceman ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.