На своем старом роутере wrt54gl я ставил udpxy - UDP Proxy, который берет мультикаст пакеты из внешнего интерфейса и пересылает на конкретный IP адрес. Таким образом WiFi остается рабочим. Есдинственное "но" - необходимо изменить адрес канала (указать адрес и порт прокси), но об этом чуть позже.
Решил искать скомпиленный udpxy для wrt160nl. Оказалось проблемой, так как другой производитель чипсета (Atheros, а не Broadcom). Нашел на форуме dd-wrt. Один добрый человек скомпилил под Атеросы. Только надо зарегиться, тогда будет видно ссылку.
Далее описаны шаги, как заставить работать udpxy автоматически и автоматически всегда иметь свежий плейлист со списком каналов, адаптированный под udpxy.
- Скачиваем этот файл (udpxy).
- Далее необходимо разрешить раздел /jffs (Web Interface -> Administration -> Management ).
- Заходим на роутер по SSH (клиент любой, самій простой putty). Для этого он должен быть предварительно разрешен (Web Interface -> Services).
- Выполняем с консоли:mkdir -p /jffs/etc/configmkdir /jffs/binmkdir /jffs/iptv (позже объясню зачем)
- Копируем на роутер файл udpxy в папку /jffs/bin/ :
- Из под Линукса это можно сделать командой scp:
- Из под Windows, предварительно скачав и установив программу WinSCP.
- Далее, опять в консоли, выполняем следующее: chmod +x /jffs/bin/udpxy (делаем файл исполняемым. Можно тоже самое делать с помощью WinSCP - установить атрибут исполняемого файла)
- Теперь, либо прямо из консоли посредством vi, либо на компьютере набрать, а потом скопировать любым описанным выше способом создаем файл запуска прокси в папке /jffs/etc/config.
vi /jffs/etc/config/udpxy.wanup
Разрешение файла .wanup - обязательно. Оно указывает на то, что файл будет запускаться сразу после поднятия внешнего интерфейса, смотрящего к провайдеру. И набираем текст:
iptables -I INPUT -d 224.0.0.0/240.0.0.0 -j ACCEPT/jffs/bin/udpxy -p 81 -M 30 -B 256Kb -m 10.10.1.1 -a 192.168.1.1
Сохраняем. Выходим.где:-p 81 - порт на котором будет выстявляться во внутреннюю сеть каналы по http протоколу;10.10.1.1 - внешний адрес роутера (заменить на свой);192.168.1.1 - внутренний адрес роутера (заменить на свой). - Далаем стартовый скрипт исполняемым:
- Необходимо плейлист менять на роутере, благо все для этого в нем есть, и грузить уже непосредственно с роутера. Необходимо создать в нем скриптовый файлик и сделать его исполняемым: vi /jffs/iptv/iptv_playlist.sh . И вбиваем туда следующий текст:
- iptv.inet-provider.com - адрес в сети провайдера, по которому можно найти плейлист;
- udp_playlist.m3u - плейлист со списком каналов, который нам отдает провайдер, который надо менять;
- http_playlist.m3u - плейлист со списком каналов, который мы формируем под наш udpxy;
- 192.168.1.1 - внутренний адрес роутера. После этого делаем его исполняемым: chmod +x jffs/iptv/iptv_playlist.sh
- Аналогично, описанному в шаге 7 создаем файлик: vi /jffs/etc/config/iptv.wanup и вбиваем туда следующий текст: /jffs/iptv/iptv_playlist.sh . Потом делаем его исполняемым, как описано выше. Все, с редактированием файлов закончено. Переходим к настройкам через Web.
- Заходим в админку роутера на страницу: Services -> NAS. Разрешаем ProFTPD сервер. Устанавливаем File Directory: /jffs. Allow Write: Disable. В поле User Password List вбиваем одном строкой: iptv iptv. Anonymous Login (Read-only) запрещаем. Сохраняем результат.
- Переходим на страницу Administration -> Management. Разрешаем планировщик заданий cron и вбиваем в поле Additional Cron Jobs задачу, например, ежедневного обновления в 6-00 плейлиста со списком каналов: 0 6 * * * root /jffs/iptv/iptv_maxnet.sh .
- Все сохраняем и перезагружаем роутер.
- Измененный список каналов теперь доступен по адресу: ftp://iptv:iptv@192.168.1.1/iptv/http_playlist.m3u
- Для VLC создается ярлык и правится строка запуска. После самого плеера вбивается этот адрес. Теперь у Вас всегда будет свежий плейлист с каналами.
- Для IPTV Player в настройках вбить адрес и указать обновление при запуске.
В принципе по работе самой прокси все. Если теперь рестартонуть роутер - прокся поднимется и будет слушать по 81 порту запросы на получение IPTV. Но есть 1 нюанс. Мультикаст UDP адрес IPTV канала имеет вид: udp://@239.0.0.59:1234 .
И наша поднятая прокси никак не сможет догадаться, что он нее хотят, если не изменить адрес канала. Необходимо в адресе указать, что надо пойти за каналом на проксю. И адрес канала изменится на следующий: http://192.168.1.1:81/udp/239.0.0.59:1234 . Это необходимо сделать для всего плейлиста со списком каналов. Хорошо если провайдер не меняет список доступных каналов. А если наоборот? И список меняется чуть-ли не каждый день, что характерно для провайдеров, которые только запускают услугу IPTV. Каждый раз менять руками (с помощью текстового редактора) весь плейлист - тяжко и напряжно. Правда в IPTV Player есть возможность указать сетевой интерфейс откуда брать "телевизор". Тогда плейлист можно не менять, а в интерфейс вписать адрес роутера и порт: 192.168.1.1:81. В VLC Media Player я такого не нашел. Может плохо искал. Но решил, что можно сделать и по другому.
echo -----------------------------------------------
echo updating providers iptv playlist from iptv.inet-provider.com
echo -----------------------------------------------
cd /jffs/iptv/
rm udp_playlist.m3u
rm http_playlist.m3u
wget http://iptv.inet-provider.com/udp_playlist.m3u
sed 's|udp://@|http://192.168.1.1:81/udp/|' udp_playlist.m3u > http_playlist.m3u
echo ----------------------------------
echo iptv playlist successfully updated
echo ----------------------------------
где:
Теперь, Вам неважно, поменял провайдер список каналов или нет. Он всегда будет обновленным. И не надо менять руками на каждом девайсе список, достаточно указать адрес списка каналов с роутера.
P.S. Данное решение подходит не только для этого роутера. Для любого, под который есть скомпиленный udpxy, и в прошивке есть ftp-server. Изначально решение было создано на роутере TP-Link TL-WR1043ND, но после того, как я его убил перепрошивкой на OpenWRT - Купил Linksys WRT160NL. Кста на OpenWRT это тоже работает, только там я ставил другой ftp-server (не помню какой). Но это и не важно. Можно вместо ftp, использовать http.
P.S. Данное решение подходит не только для этого роутера. Для любого, под который есть скомпиленный udpxy, и в прошивке есть ftp-server. Изначально решение было создано на роутере TP-Link TL-WR1043ND, но после того, как я его убил перепрошивкой на OpenWRT - Купил Linksys WRT160NL. Кста на OpenWRT это тоже работает, только там я ставил другой ftp-server (не помню какой). Но это и не важно. Можно вместо ftp, использовать http.
(с) william
Вы не знаете как для этого роутера выглядит соответствие физических портов и номеров при задании vlan (прошивка DD-WRT)?
ВідповістиВидалитиhttp://wiki.openwrt.org/toh/linksys/wrt160nl - вроде как здесь есть схема соответствия портов.
ВідповістиВидалитиЯ так понял это только для OpewWrt или она универсальная? Я спрашиваю вот в связи с чем, у других роутеров почти всегда среди внутренних портов явно присутствует WAN (обычно под номером 0), а у WRT160NL в схеме по этой ссылке я его не вижу. Т.е. получается на этом роутере невозможно перебросить тегированный трафик (например IPTV) на опредленный физический порт?
ВідповістиВидалитиСхема скорее всего универсальная. Так как там нет ни слова о программной привязке. внешний порт - интерфейс eth1. На схеме хорошо видно. Пробросом на определенный порт я не занимался. Но когда-то на dd-wrt.com встречал мануалы по этому поводу.
ВідповістиВидалитиВ этом и проблема, что во всех мануалах (по крайней мере которые я встречал) предполагается, что WAN доступен через внутренний порт, а не через интерфейс eth1 как в WRT160NL. Через внутренний порт там вроде всё просто решается через пару простых vlans, с интерфейсом же непонятно с какой стороны заходить.
ВідповістиВидалитиПохоже этот роутер вообще не поддерживает vlans: "Only Broadcom based devices support port-based VLAN's, no Atheros or Ralink devices. "
ВідповістиВидалитиhttp://dd-wrt.com/wiki/index.php/VLAN_Support
Выход - udpxy :-) - для IPTV.
ВідповістиВидалитиhttp://www.hermanvandrie.nl/index.php?option=com_content&view=article&id=12:test&catid=4:kpn-glasvezel&Itemid=15 - Вроде как реализовано в OpenWRT Backfire 10.3
ВідповістиВидалитиТакже здесь The VLAN column states whether the Ethernet device is capable of hardware VLANs, means whether the switch can be reprogrammed to generate tagged frames on certain ports, supports trunking etc. Tagged software VLANs (through vconfig) are possible in any case. http://wiki.openwrt.org/toh/start
ВідповістиВидалитиПишут, что должно работать на системном уровне
А то что провайдер выдаёт IPTV в тегированном vlan это не помеха, вышеописанный метод будет работать?
ВідповістиВидалити> Вроде как реализовано в OpenWRT Backfire 10.3
ВідповістиВидалитиЯ пытался, может руки кривые, но столкнулся с той же проблемой что и в DD-WRT: при задании vlan не понятно откуда брать WAN. Кроме того я пытался для якобы заглушки (5-й порт в схеме) задавать случайные значения и у меня роутер вообще повисал, приходилось делать анбрик.
у меня немного проще IPTV идет.
ВідповістиВидалитиСпасибо!
ВідповістиВидалитиВсе работает.
Осталась одна проблемка: после перезагрузки (выключения-включения) роутер WRT160NL на прошивке DD-WRT автоматом не соединяется с провайдером... приходиться заходить через Веб-морду (в настройках ничего не меняется, клонированный МАК остается) и достаточно на Веб-морде нажать "Применить" и вуаля мы в Инете.
...нет ли у автора решения для этого случая?
ЗЫ: есть предположение что автор живет в Харькове :)
ЗЫ2: поздравляю с возвращением к жизни TP-Link 1043 ND.
arvaroh, читай в блоге. Там есть про MAC-address clone на dd-wrt (http://wrt160nl.blogspot.com/2010/12/dd-wrt-linksys-wrt160nl-mac-addres.html).
ВідповістиВидалитиА вообще надо слазить с этой прошивки. Тем более для нее не было обновлений уже больше года. Драйвера WiFi - просто расстраивают. Глюки постоянные.
З.Ы. Да, я из Харькова.
подскажите как прошить на родную прошивку через винду, если на веб-морду не заходит и сброс не работает...
ВідповістиВидалитикак его шить то?
Роутер пингуется ?
Видалити