Jump to content
Калькуляторы

прокинуть iptv от RT в др. сеть openwrt или mikrotik?

здравствуте!

хочется странного :)

смотреть iptv от ростелекома на др. провайдере.

т.е. на стороне РТ есть оптика - huawei hg8245 и за ним роутер на openwrt.

пока на openwrt настроено udproxy и просмотр идёт с билайна по интернету.

но так показывают только некодированные каналы.

 

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

насколько я понял приставки ростелекомовские нормально работают только если "находятся" в сети РТ.

поэтому видимо задачу можно сформулировать так:

 

Нужно организовать прозрачный канал между двумя роутерами на openwrt, чтобы воткнув приставку в один роутер, она "попала" в сеть РТ, которая есть на другом роутере. В идеале сделать это когда оба openwrt находятся за NAT'ами.

 

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

но, поскольку у меня сейчас иногда падает работа моего текущего решения на openwrt (не понятно ещё почему), то я больше склонаюсь к микротику, как к более надёжному. дома и на работе микротики не падают так просто :)

но с микротиком не будет udp proxy. а значит картинка будет рассыпаться.

 

Поэтому хочется чтобы одновременно работало и по udp и через прокси.

не кодированные каналы - через прокси, кодированные - через udp.

 

Поэтому всё-таки наверное лучше на openwrt всё наладить, чтобы не падало.

итак. я пробовал настроить туннель по этой схеме. не получилось, так как оба openwrt находятся за NAT'ами. один за huawei, другой за домашним микротиком.

 

А для найденного решения нужно, чтобы микротики оба смотрели в инет, без NAT'а. поэтому придётся либо переключать оптику в бридж, но тогда скорее всего упадёт скорость интернета, поскольку его уже микротик будет раздавать, либо поднимать l2tp туннель между микротиками и через него пытаться поднять туннель из статьи....

 

В общем помогите, пожалуйста советом, как настроить openwrt под мою задачу?

Share this post


Link to post
Share on other sites
не будет udp proxy. а значит картинка будет рассыпаться
Вам нужен tcp туннель, и ничего рассыпаться не будет.

Share this post


Link to post
Share on other sites

смотреть iptv от ростелекома на др. провайдере.

 

 

https://itv.rt.ru/landing

 

а для странного

можете попробовать l3 (openvpn(tcp/udp) и l2tp) тунели с igmp прокси без организации L2

 

или пробросить l2 в разных комбинациях поверх L3 тунелей

https://github.com/agustim/openwrt-linux-eoip

Edited by kstin

Share this post


Link to post
Share on other sites

смотреть iptv от ростелекома на др. провайдере.

У Ростелекома есть телевидение 2.0. Работает через любого оператора.

Share this post


Link to post
Share on other sites

kstin, я правильно понимаю, что нужно перекомпилировать модуль для openwrt чтобы была совместимость с микротиком? но тогда не будет совместимости с другими openwrt?

 

У Ростелекома есть телевидение 2.0

я так понимаю у нас подключено v1.0. читал на форумах, что у 2.0 череp интернет битрейт сильно ниже.

поэтому и хочется заморочиться с туннелем.

опять же с 2.0 не все приставки имеющиеся работают. sml-282 и hd mini какая то я так понял не работают. тем более motorola vip1003

Edited by bsb5068

Share this post


Link to post
Share on other sites

kstin, я правильно понимаю, что нужно перекомпилировать модуль для openwrt чтобы была совместимость с микротиком? но тогда не будет совместимости с другими openwrt?

 

 

Вам нужно установить дополнительный пакет для openwrt, после чего сможете поднимать Mikrotik EoIP тунели. совместимости не потеряете.

 

 

 

 

П.С

openwrt-linux-eoip сам не пробовал , как и openwrt)

Edited by kstin

Share this post


Link to post
Share on other sites

Готового скомпилированного патча не нахожу, придётся видимо самому.

Я правильно понимаю что для ipoe нужно все равно будет сначала поднять l2tp например, а потом поверх него имея статические ip уже настраивать ipoe?

Share this post


Link to post
Share on other sites
В идеале сделать это когда оба openwrt находятся за NAT'ами.

При нахождении обеих точек за неконтролируемым NAT, для их объединения нужна третья, с "белым" ip, где будет стоять серверная часть.

 

опять же с 2.0 не все приставки имеющиеся работают.

Скажем так - с 2.0 работает только та приставка, которая для него изначально предназначалась. Она криво перешивается под 1.0, но не наоборот.

Share this post


Link to post
Share on other sites

Пытаюсь поднять ipip между двумя openwrt. Сейчас они в одной подсети (через l2tp), но вроде туннель не поднимается, так же не понятно как привязать его к какому-то физическому порту на openwrt. На микротике это понятно как делается, а как тут? Перечитал статью на хабре, там сказано, что ipip только unicast пересылает, а мультикаст нет. А gre и мультикаст. Так ли это?

Share this post


Link to post
Share on other sites

Тебе нужен сервер, чтобы мульткаст превратить в юникаст и все у тебя заработает.

Share this post


Link to post
Share on other sites

нене, тогда не будет работать verimatrix.

у меня сейчас есть такой сервер на openwrt. работает. но показыват ТОЛЬКО открытые каналы.

я так понял нужен именно родной полноценный udp от ростелекома....

будет ли это рабоать через ipip туннель или только через gre?

Edited by bsb5068

Share this post


Link to post
Share on other sites
будет ли это рабоать через ipip туннель или только через gre?

Если под ipip ты подразумеваешь L3 транзит - то в теории может, сильно зависит от реализации.

Помимо gre есть куча других вариантов проброса л2.

Я когда то пробрасывал заворачивая в udp, но требуется фрибсд и белые ip с обоих сторон.

Share this post


Link to post
Share on other sites

Ещё раз - вам нужен tcp L2 туннель.

ipip, gre, udp туннели не годятся - они не обеспечивают надёжной доставки мультикаста, при малейших потерях будет квадратить.

также у ipip и gre есть большие проблемы с работой через нат, а для tcp достаточно пробросить порт с одной из сторон.

 

Простейшее решение - OpenVPN.

Share this post


Link to post
Share on other sites

rdc, понял вас. спасибо за разъяснение. я просто думал gre поверх допустим l2pt будет уже отрабатывать потери.

пойду пробовать настроить openvpn.

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

Share this post


Link to post
Share on other sites

Да сдались ему эти потери, вот если будет сильно досаждать тогда имеет смысл с tcp возится.

Share this post


Link to post
Share on other sites

ребята спасибо! заработало!

 

попутно выяснил, что туннель типа TUN не добаляется в бридж, зато типа TAP - добавляется.

 

я тоже так думал, да сдались они мне потери, ведь моего входящего 30 мбит на 1 приставку и интернет хватит, но тут туннель поднялся, и я заметил, что в него пошёл трафик, который идёт к локальному udp proxy на стороне RT.

что в принципе и логично, ведь поток входит в бридж br-wan.

 

получается при наличии 1 локального клиента на той стороне, меня и ещё кого-то (через гипотетический tap2), 3 потока HD каналов по 10мбит весь мой канал и сожрут :)

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

в принципе какая постановка, такая и реализация сейчас вышла:

 

удалённая от меня сторона (т.е. RT):

 

root@OpenWrt:~# brctl show
bridge name     bridge id               STP enabled     interfaces
br-lan          7fff.2674ee800055       no              eth0.1
                                                       eth0.4
br-wan          7fff.e42772540281       no              eth0.2
                                                       eth0.3
                                                       tap0

в wan приходит с порта iptv, в лан - интернет, всё от оптического терминала.

tap0      Link encap:Ethernet  HWaddr 82:63:DA:26:26:31  
         inet addr:192.168.8.2  Bcast:192.168.8.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:63479 errors:0 dropped:2 overruns:0 frame:0
         TX packets:918997 errors:0 dropped:27441 overruns:0 carrier:0
         collisions:0 txqueuelen:100 
         RX bytes:5018318 (4.7 MiB)  TX bytes:1207013197 (1.1 GiB)

root@OpenWrt:~# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.100.1   0.0.0.0         UG    1      0        0 br-lan
10.10.10.0      *               255.255.255.0   U     0      0        0 br-wan
192.168.8.0     *               255.255.255.0   U     0      0        0 tap0
192.168.100.0   *               255.255.255.0   U     1      0        0 br-lan

 

моя сторона:

 

root@OpenWrt:/etc/init.d# brctl show
bridge name     bridge id               STP enabled     interfaces
br-lan          7fff.a0f3c1c38b21       no              eth0.1
                                                       wlan0
br-rtbridge             7fff.a0f3c1c38b21       no              eth0.2
                                                       tap0

tap0      Link encap:Ethernet  HWaddr 16:DB:FA:B4:F2:D9  
         inet addr:192.168.8.1  Bcast:192.168.8.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:766753 errors:0 dropped:0 overruns:0 frame:0
         TX packets:19963 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:100 
         RX bytes:1023668703 (976.2 MiB)  TX bytes:1575542 (1.5 MiB)

br-rtbridge Link encap:Ethernet  HWaddr A0:F3:C1:C3:8B:21  
         inet addr:192.168.8.1  Bcast:192.168.8.255  Mask:255.255.255.0
         inet6 addr: fe80::a2f3:c1ff:fec3:8b21/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:7156 errors:0 dropped:0 overruns:0 frame:0
         TX packets:481 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000 
         RX bytes:2241528 (2.1 MiB)  TX bytes:36742 (35.8 KiB)


root@OpenWrt:/etc/init.d# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.37.1    0.0.0.0         UG    0      0        0 br-lan
10.0.0.0        10.12.72.1      255.0.0.0       UG    0      0        0 eth1
10.12.72.0      *               255.255.252.0   U     0      0        0 eth1
10.12.72.1      *               255.255.255.255 UH    0      0        0 eth1
78.107.196.0    10.12.72.1      255.255.252.0   UG    0      0        0 eth1
192.168.8.0     *               255.255.255.0   U     0      0        0 br-rtbridge
192.168.8.0     *               255.255.255.0   U     0      0        0 tap0
192.168.37.0    *               255.255.255.0   U     0      0        0 br-lan

в lan - интернет. eth1 - для iptv от белайна, eth0.2 - проброшенный в RT порт.

 

в процессе изменения ip адресов был момент когда 8.1 и 8.2 пинговали успешно друг друга. сейчас почему-то они не пингуются, но туннель работает, поэтому это не сильно меня беспокоит. хотя, возможно, это "звоночек" о некорректной настройке.

 

подскажите, пожалуйста, какие есть способы чтобы трафик предназначенный не для меня не слать в туннель?

мне придумалось два:

1. через правила фаервола.

2. на каждого "клиента" выделить отдельный интерфейс, повешать на него igmp proxy и потом его в бридж с туннелем сделать.

но я пока не знаю будет ли RT приставка декодировать каналы, если она будетполучать через igmproxy поток, а не напрямую.

 

в добавок сейчас снова всплыла проблема с этим igmp proxy. по непонятным причинам он перестаёт работать через какое то время.

например начинаю смотреть канал через udproxy на стороне RT, поток пошёл. можно смотреть 5 минут, переключить канал и уже после этого udproxy не может получить поток от igmproxy.

а иногда после переключения всё работает.

чтобы всё заработало можно нажать reconnect в морде на WAN интерфейсе. но опять же до первого переключения канала.

а иногда по пол дня работает. не могу понять закономерности.

как я понял igmproxy пропадает из процессов (нет его в выводе ps)

 

ещё я так понял он при старте должен взять конфиг /etc/config/igmpproxy, пропарсить его и положить в /var/etc/igmpproxy.conf и уже запустить его с полученным конфигом. так вот сейчас он не парсит изменённый в /config, в /var лежит старый.

 

может встречали такое?

 

а для первого варианта не понятно как научить сторону RT узнавать какие MAC'и ждут поток в туннель, а какие в igmp/udp proxy на строне RT и как это всё прописать в правила.....

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this