++ Задача:Осуществить возможность пробуждения ([[http://en.wikipedia.org/wiki/Wake-on-LAN Wake on Lan]]) из интернета удаленного компьютера, находящегося дома за роутером марки D-Link (DIR-300, DIR-320).
++ Решение:
Использование команды ip, имеющейся в стандартных сборках BusyBox'a в роутерах D-Link.
++ Предисловие:Дома стоит роутер D-Link DIR-320/NRU ревизии B1, а до этого был DIR-300/NRU ревизии B5, для которых (на данный момент) нет альтернативных готовых прошивок (в том числе и горячо всеми любимой DD-WRT). На роутере стоит BusyBox 1.12.
Проблема состояла в том, что встроенное в веб-интерфейс средство переброса пакетов не позволяют переадресацию в широковещательный канал - [[http://en.wikipedia.org/wiki/Broadcasting_(networking) broadcast]] (x.x.x.255), а хитровыделанный D-Link обновляет arp-таблицу каждые 15-30 секунд, так что непосредственно в выключенный длительное время компьютер Magic Packet тоже не перебросить. Тайваньские ребята решили отказаться от компиляции arp, sudo и прочих печенюшек в BusyBox, поскольку iptables тоже не позволяет POSTROUTING на широковещательный канал.
Решение после недели напряженного поиска было [[http://liveweb.archive.org/http:%2F%2Fwww.brazilfw... найдено]] случайно на ныне почившем форуме сборки линукса для старых компьютеров под роутер.
++ Пример:
Для начала настройте BIOS вашей материнской платы (в разделе настроек питания есть пункт о пробуждении из выключенного состояния) и вашей сетевой карты (уже из операционной системы в свойствах карты). Для проверки выключите компьютер и посмотрите, если индикация сетевого разъема мигает, значит все в порядке.
1. Подключаемся telnet-ом к роутеру (логин и пароль те же, что и для веб-интерфейса):
Dlink-Router login: admin
Password:
Welcome to
_______ ___ __ ____ _ _ ___
| ___ \ | | |__|| \ | || | / /
| | | || ___ | |__ __ | \| || |/ /
| |___| || |___| | || || |\ || \
|_______/ |______||__||_| \____||_|\___\
= Ebuilding Networks for People =
BusyBox v1.12.1 (2011-05-13 14:42:48 MSD) built-in shell (ash)
Enter 'help' for a list of built-in commands.
#
2. Если компьютер в данный момент присоединен к роутеру, то ищем его mac-адрес, набираем:
# ip neigh show<Внешний_ip> dev eth2.5 lladdr 01:23:45:67:AB:CD DELAY ! Внешний адрес
192.168.0.50 dev br0 lladdr 11:22:33:44:55:66 REACHABLE ! Настольный компьютер
192.168.0.90 dev br0 lladdr 77:88:99:00:AA:BB REACHABLE ! Ноутбук3. Поскольку в данный момент уже уже есть запись для нашего mac-адреса, то мы не добавляем, а просто изменяем текущую:
# ip neigh change 192.168.0.50 lladdr 11:22:33:44:55:66 nud permanent dev br0
4. Смотрим результат, снова набираем:
# ip neigh show<Внешний_ip> dev eth2.5 lladdr 01:23:45:67:AB:CD DELAY ! Внешний адрес
192.168.0.50 dev br0 lladdr 11:22:33:44:55:66 PERMANENT ! Настольный компьютер
192.168.0.90 dev br0 lladdr 77:88:99:00:AA:BB REACHABLE ! Ноутбук
После этого уже заходим на веб-интерфейс нашего роутера и в разделе "межсетевой экран" в пункте "Виртуальные серверы" добавляем проброс 9 (или 7, в зависимости от вашей сетевой карты) порта роутера на порт ip вашего компьютера.++ Послесловие:
Совет: настройте через веб-интрефейс роутера DHCP для mac'а вашего компьютера статический IP (по умолчанию DIR-300(320)/NRU выдает их в диапазоне от 192.168.0.2 - 192.168.0.100)
Дополнительные ссылки:
** Немного о линуксовых командах в пределах BusyBox: http://noted.org.ua/1727
** Чуть подробнее про команду ip: http://linux-ip.net/html/tools-ip-neighbor.html
** Для проверки работоспособности можно воспользоваться сайтом: http://wakeonlan.me/
** Особая благодарность русскоязычному форуму D-Link'a, оказавшую неоценимую помощь и моральную поддержку: [[http://forum.dlink.ru/viewtopic.php?f=3&t=144364 1]], [[http://forum.dlink.ru/viewtopic.php?f=3&t=151446 2]], [[http://forum.dlink.ru/viewtopic.php?f=3&t=152999 3]]
URL:
Обсуждается: http://www.opennet.me/tips/info/2727.shtml
Здравствуйте, знатоки.После добавления статической записи в ARP таблицу роутера остается еще одна проблема: запись остается там только до первого ребута.
Моя попытка решения:
1. Смотрю, что есть в моем распоряжении#ls /bin
zcat ps led dnsmasq
wlctl ping kill dmac
umount pidof iptables-save dd
true pcmcmd iptables-restore date
touch netstat iptables csr_go
tc mv ip cp
tar mtr initdongle clscmd
switch mtdc_wt igmpproxy chmod
sleep mtdc_rd hw_nat cat
sh mount hostname busybox
sed mknod gzip ated
run-parts mkdir gunzip ash
rm mfc grep acl
resident_cli mem_usage flash ac
resident ls false 3gcli
reg login egrep
pwd ln echo# ls /etc
xl2tpd.conf miniupnpd.conf ethers
wireless_country_list ld.so.conf e2p.bin
usb_modeswitch.d lanwanext.conf.in dsa_passwd
services init.d default
resolv.conf httpd.conf config.default
protocols hosts admin.spool
ppp group Wireless
passwd fstab TZ
motd ethertypes# ls /etc/init.d
rcSЗдесь, насколько я понял, пингвин оставляет себе записку на память, чем заниматься при пробуждении. Смотрю:
# cat /etc/init.d
#! /bin/shexport PATH=$PATH:/usr/sbin:/usr/bin:/sbin:/bin
led power on
dcfg pre_boot
/usr/sbin/loadconfig
#trap - INT QUIT TSTP
mkdir -p /var/spool/cron/crontabs
cp /etc/admin.spool /var/spool/cron/crontabs/admin
crond -l 10echo "NTPValid=0" > /var/run/ntp_status
#dcfg set_device_params
echo 2 >/proc/sys/vm/overcommit_memorytouch /tmp/boot.tmp
/usr/sbin/drop_caches/bin/resident
/usr/sbin/drop_caches
echo 0 >/proc/sys/vm/overcommit_memory
rm -f /tmp/boot.tmp
cat /etc/motd
dcfg post_bootexit $?
Здорово, похоже на правду. Перед тем как добавить туда свою "ip neigh add...", пришлось немного выдать прав на изменение файла.
# mount -o remount / -rw
# chmod 777 /etc/init.d/rcS
# ls -l /etc/init.d/rcS-rwxrwxrwx 1 0 0 514 /etc/init.d/rcS
А вот дальше все тухло складывалось:
# cat > /etc/init.d/rcS
testcat: write error: Invalid argument
Если туда транслировать с помощью эхо (вначале копировал файл rcS в /tmp, правил с помощью cat, проверял):
# echo /tmp/rcS > /etc/init.d/rcS
# cat /etc/init.d/rcSПусто.
# mv -f /tmp/rcS /etc/init.d/rcS
mv: cannot remove '/etc/init.d/rcS': Operation not permitted
Что примечательно сразу после перезагрузки все приобретает первоначальный вид.
И вот дальше я продвинуться не смог. sudo в распоряжении нет; rcS вроде бы доступен для разных непотребств, а все равно не выходит (каменный цветок).Буду очень признателен за советы в настройке init'a.
> Что примечательно сразу после перезагрузки все приобретает первоначальный вид.
> И вот дальше я продвинуться не смог. sudo в распоряжении нет; rcS
> вроде бы доступен для разных непотребств, а все равно не выходит
> (каменный цветок).Ну так все правильно - корень хранится в упакованном виде во флеше в каком-нибудь SquashFS и знать ничего не знает о том, что в распакованном в RAM корне что-то поменяли.
В вашем случае, я так подозреваю, используется родная прошивка от DLink. На сколько мне не изменяет мой склероз, в ней нет возможности менять чего-либо не предусмотренное разработчиком. Если у Вас одна из предыдущих аппаратных ревизий, то выходом может быть установка какого-нибудь dd-wrt или openwrt - в них есть возможность задавать дополнительные стартовые скрипты. Для двух последних ревизий *wrt недоступны - SoC другой.
> Для двух последних
> ревизий *wrt недоступны - SoC другой.По поводу ревизий - уже три. B5, B6, B7.
Цитата:
Дома стоит роутер D-Link DIR-320/NRU ревизии B1 для которого (на данный момент) _нет_ альтернативных готовых прошивок (в том числе DD-WRT).Если я понял вас правильно, то роутер каждый раз при включении разворачивает систему из упакованного внутри образа, изменить который можно только перепрошивкой, да?
А те изменения в настройках веб-интерфейса которые я внес, где хранятся они? Потому что даже после перезагрузки они остаются на месте. Значит есть инструмент изменения образа системы, при том предусмотренный разработчиками, вот только как до него добраться и как им пользоваться для своих целей?
Вы несовсем правильно представили себе...
Там чип ппзу с парай метров... При записи образ разварачивается в ром. При этом область делится на так скажем зоны, и настройки шьются в специальную зону. Как правило это nvram, но могут применять и другой инструмент.
Длинки самое паршивое... Как народ такое покупает. Есть замечательная поговорка "дешева рибка - х... юшка" (укр.)... Линксис - для дома самое то, на крайняк тп-линк
> Вы несовсем правильно представили себе...
> Там чип ппзу с парай метров... При записи образ разварачивается в ром.Ну, во-первых, там 4M, во-вторых, Flash Memory - это не просто ППЗУ, а тогда уж ЭСППЗУ.
Ибо главное тут - "электрически стираемое".> Длинки самое паршивое... Как народ такое покупает. Есть замечательная поговорка "дешева
> рибка - х... юшка" (укр.)... Линксис - для дома самое то,
> на крайняк тп-линкЯ бы сказал, что "на крайняк" как раз "Линксис", и уж тем более "тп-линк".
А так - Asus (как самые удачные, надёжные, "раскуроченные", производительные), Zyxel (с их очень удачными Keenetic).
D-Link покупают из-за их дешевизны - или "простые обыватели", или те, кто знает, что им нужно, и эти люди, как правило, тут же прошивают их альтернативными прошивками.
>Ну, во-первых, там 4M, во-вторых, Flash Memory - это не просто ППЗУ, а тогда уж ЭСППЗУ.
>Ибо главное тут - "электрически стираемое".Чувак, явно хочешь офтопа!
Главное тут, "перепрограммируемое" - т.к. в кустарных условиях вполне можно изменить содержимое. А то как - электрически или неэлектрически для кустарных условий это уже вопрос второй... И напрашиваешься на соответстующий вопрос: а неэелектрически стираемые в живую ТЫ видел? на моей памяти последнее применение таких технологий это спецпромышленная электроника, а до этого только компьютеры поколения синклера, тр-доса, искры и т.п.>D-Link покупают из-за их дешевизны...
а потом хотят, что-то еще и выжать... ну купи себе оку с целью проапгрейдить до мерседеса. А теперь лезут вопросы... как сделать - то, что производитель не задумал :)
длинк, комплектуют самыми дешевыми и низкотехнологичными комплектующими и модулями.>Я бы сказал, что "на крайняк" как раз "Линксис", и уж тем более "тп-линк".
Хотя бы посмотри по комплектации: процессоры на класс выше и озу в разы больше
А зазор в цене мене чем в 2 раза, если длинк 50$ то линксис 80... а тп-линк и то меньше, т.к. это оем от линксис - ну экономят на обвязках и всяких фильтрах - но на то она и разница в цене.
>А так - Asus (как самые удачные, надёжные, "раскуроченные", производительные)Асус это OEM. ОДМ только на комплектующих для пк и самих мобильных платформ... ихнюю историю по производсвту сетевого оборудования - хватит пальцев одной руки для перечисления.
Zyxel (с их очень удачными Keenetic) - давно они уже не odmИ, вообще, если манагер-средного-звена утверждает, что дешевое лучше дорого home-based то значит, что он не удосужился открыть коробку и хотя бы порсмотреть инструкцию.
А если он же считает, что это сложнее, то тут опять же не видел её в "живую" и не сталкивался с высокотехнологичным оборудыванием.
Лично мне нравится и дома использую люцентовское оборудование - но я же не призываю всех и везде его использовать. А советую действительно хом-бейзед оборудование, с которым можно очень много сделать, т.к. имея опыт почти в 15 лет построения радио сетей (в масштабах областей) и перекрутил в руках, практически, всё, что предлагает рынок.
>>D-Link покупают из-за их дешевизны...
> а потом хотят, что-то еще и выжать... ну купи себе оку с
> целью проапгрейдить до мерседеса. А теперь лезут вопросы... как сделать -
> то, что производитель не задумал :)
> длинк, комплектуют самыми дешевыми и низкотехнологичными комплектующими и модулями.Мне даже как-то стыдно стало =)
Да, купил ОКУ, но намерения сделать из нее реактивный самолет с искусственным интеллектом нет.
Есть простая (на мой взгляд) задача - добавить строку в автозагрузку.
Сейчас прозвучит бредово, но: производитель не является конечной инстанцией в вопросах возможностей своего оборудования, так что если есть возможность что-то допилить, исправить, добавить в имеющийся маршрутизатор "из коробки" при минимальном усилии - почему я должен себе отказывать в этом удовольствии.
Все чего я прошу - помочь с советом в незнакомой мне операционной системе.
> роутер D-Link DIR-320/NRU ревизии B1 для которого (на данный момент) _нет_ альтернативных готовых прошивок (в том числе DD-WRT).Не совсем так.
Работают над OpenWRT: https://sat-forum.info/index.php/topic,9961.1380.html (требуется регистрация)
Есть и другие сборки.
DD-WRT я на нём сейчас пытаюсь запускать, но пока проблемы с ядром.
Есть решение проще.
См. http://wl500g.info/showthread.php?4262-Wake-On-Lan-%28W...
(последние страницы)
Интерес вызывает настройка динь-ди-линка "из коробки", потому что ревизии постоянно обновляются, и не всегда пользовательские сборки поспевают за новыми маршрутизаторами.Попробовал варианты из ссылки, которую вы дали, но проблема с доступом на запись и создание файлов в /bin. К сожалению, линукс для меня в новинку, так что многое делается по наитию. Был бы очень благодарен за персональную помощь в настройке шелла бизибокса.
По поводу того, что Д'Линк фигня, настоящие мужики покупают циски, асусы и вообще разруливают пакеты силой мысли - это ненужный холивар, здесь он не к месту.
Теперь поподробнее про ситуацию:
Любой touch, echo >> и прочее обрываются пермишшн динайед.
Как я уже писал выше sudo, su не присутствуют в сборке.
ro system переводился ломом:
mount -o remount / -rwНасколько я понял принцип такой: добавляем в шелл свою команду, именуем ее типа playmymacro, сохраняем на встроенной ЭСППЗУ и при перезагрузке каждый раз заново вызываем.
Что требуется: автоматическое добавление arp записи при старте системы.Опять таки буду благодарен за любой адекватный совет на данную тему.
nvram show
nvram show |grep rc_sturtup
nvram set rc_sturtup="команды"
nvram commit
reboot
> nvram show
> nvram show |grep rc_sturtup
> nvram set rc_sturtup="команды"
> nvram commit
> reboot*rc_startup
# nvram show
sh: nvram: not found
fis
?
дожились... длинк уже прошивки в исходники выкладывают...
ftp://ftp.dlink.ru/pub/Router/DIR-320_NRU/Source/
огромное спасибо!!заработало все как только поставил
сетевушку pci.на встроеной все молчало,индикаторы в том числе.мать gigabyte p55m-ud2
роутер dir 300 a1, сетвуха dlink dfe 520tx.делал все по инструкции.запускаю комп удаленно через смарт на андройде спец прогой.включается быстро даже если интернет еле ловит (edge)
заметил косячек ,что если роутер выключить из сети перманент ай пи слетает и надо заново все делать...может есть выход??
Увы, здесь я бессилен, не хватает знаний в область nix систем. Как только найду ответ, обязательно обновлю статью.
Спасибо автору,действительно работает...
А не легче ли реализовать переадресацию в широковещательный канал, воспользовавшись этим советом? http://batafan.blogspot.com/2012/09/wol-wake-on-lan-d-link-d...