Легендарный беспроводной многофункциональный маршрутизатор более чем полностью. На столько легендарный, что асус уже выпилил данную модель в архив продуктов. Почему легендарный? К нему можно подключить лазерный принтер, жесткий диск и эти ваши интернеты, после чего роутер без компьютера будет скачивать порнографию с торрентов и покадрово её распечатывать!
Круче этого роутера сегодня теоритчески может быть только ASUS RT-N16 → обзор на 3дньюс, хотя не понятно по какой стоимости и когда оно будет доступно в красноярских розничных каналах и когда.
Что делает любой непоседливый мальчик, дорвавшись до долгожданной игрушки? Правильно, разбирает ее нафиг, чтобы посмотреть, как оно там внутри. Под катом - фотки ASUS WL-500G Premium изнутри и снаружи.
Inside ASUS WL-500G Premium. Если потыкать в фотографии, можно добраться до нормально качества. wiki при заливки сильно их изговнякала.
Все фото © 2006 Серж Скаут. Использование фото на данном ресурсе с разрешения автора.
Хакинг и модинг ASUS WL500G Premium → http://habrahabr.ru/blogs/DIY/90711/ → локальный PDF локальная копия в PDF
моё «туды»:
Общая информация по работе роутера: в роутере обычно 8Мб флэша и 32Мб оперативной памяти.
При включении питания считываются первые 256Кб флэша, в них лежит загрузчик (CFE, аналог BIOS), он читает кусок флэша с параметрами (nvram 64Кб). Один из параметров указывает адрес во флэше, в котором лежит прошивка и nvram. Причем, адрес nvram может быть совсем другим, чего в норме быть не должно. Если такое происходит, то сбросить значения в базовом nvram можно только через консоль командой типа «flash -offset=65536 flash0.os flash0.os» или закорачиванием одной из ног микросхемы флэша на землю. Адрес nvram могут менять прошивки типа OpenWRT, если им мало 64Кб, отведенного под nvram по умолчанию.
Прошивка (firmware) грузится и тоже считывает из nvram (уже по новому адресу) параметры. В оперативной памяти роутера прошивка создает файловую систему, в которую можно писать. В эту файловую систему копируется прошивка и содержимое части флэша (flashfs содержит архив из файлов и директорий).
После загрузки линукс смонтирует файловые системы флэшек / дисков / картридеров, подключенных к USB-разъемам роутера.
Все знания были получены в результате проб и ошибок и на полное соответствие с действительностью не претендуют.
Кнопки RESET и EZCONFIG на роутере: они периодически опрашиваются линуксом прошивки и линукс что-то делает по этому событию (обычно, обнуляет часть параметров, но не весь nvram). Если прошивка не загрузилась нормально (кривая, не к этой модели), то кнопки ничего не сделают.
Если нажать кнопку RESET ее до включения питания, то загрузчик CFE не будет грузить прошивку, а перейдет в rescue режим (2 и 3 метод прошивки). То есть, если прошивка сбоит ее легко восстановить. Проблема бывает в том, что и CFE и прошивка хорошие, а в nvram часть важных параметров (задающие параметры железа) неправильные, то CFE просто подвиснет. Неправильные параметры могут появиться, если линукс туда запишет мусор. Самостоятьельно роутер пишет в nvram только в моменты загрузки, перепрошивки, нажатия кнопок, изменением параметров или выдачи команд администратором - в эти моменты роутер лучше не трогать.
Вот это важно. Что и где. И зачем. И что будет. См. дальше.
# cat /proc/mtd dev: size erasesize name mtd0: 00040000 00010000 "boot" mtd1: 007b0000 00010000 "linux" mtd2: 0070cef0 00010000 "rootfs" mtd3: 00010000 00010000 "nvram" mtd4: 00410000 00010000 "flashfs"
Обновление прошивки роутера на неофициальную, которая намного лучше по следующим причинам: Прошивка для роутера выпускаются пользователем этого роутера, который знает что нужно, а не программистами, которые далеки от народа как декабристы. Есть оперативная поддержка - создатель прошивки поддерживает обратную связь, программисты обычно не заинтересованы в поддержке, как только проект сдан и обновления идут редко. Создатель прошивки более умён, самому разобраться, не имея доступа к SDK сложно. Программисты обычно плохо разбираются в прошивке, только чуть настраивая SDK выпущенный производителем чипа. Убраны ограничения, которые вставляет в продукты маркетинговый отдел, обычно глуповатые люди, которые ищут как отработать свою зарплату. Убраны ошибки, которые программисты если и видят, то не исправляют: если быстро исправить - это будет признанием ошибки, а если не исправлять - можно делать вид, что это фича. Можно перешивать с любой версии официальной или нет и обратно - ограничений нет. Лучше обновить прошивку роутера в любом случае - пока он на гарантии проверить, что флэш не битый. © wl500g.info
Нужно отключить сетевой шнур от WAN, чтобы возможный аццкий сетевой флуд не повлияли на процесс. Нужно отключить из USB портов шнуры всех устройств. Перезагрузить роутер. Это можно сделать командой reboot через телнет или web интерфейс. Несколько секунд после перегрузки или включения питания НЕЛЬЗЯ выключать питание роутера. Зайти на страницу администрирования Sytem Setup → Firmware Upgrade. Нажать кнопку Browse выбрать файл с прошивкой (расширение trx). Нажать кнопу Upload. Не ошибитесь страничкой, есть еще страница загрузки файла настроек. Через какое-то время роутер перегрузится - обычно через 2 минуты. Если в момент перешивки выключилось питание или перешивка не удалась - ничего страшного - прошивку можно залить программой от ASUS rescuer.exe даже если загрузился только бутлоадер. После перешивки роутер перегрузится. Если вы меняете версии прошивки, например, 1.8 на 1.9, то нужно сбросить в настройки, по умолчанию нажав на его корпусе кнопку RESET на 10 секунд, а лучше сделать Reset to Dafault's из веб-интерфейса. Если переходите внутри версии, например с 1.9.6 на 1.9.7, то это не нужно. Кнопку RESET надо нажимать, после того как роутер полностью загрузится - подождать хотя бы минуту после перезагрузки.
Свежую прошивку брать тут: oleg.wl500g.info
[admin@router root]$ cd /tmp [admin@router /tmp]$ wget http://filehost/firmware.trx [admin@router /tmp]$ write /tmp/firmware.trx /dev/mtd/1 -r
в ответ будет /dev/mtd/1: CRC OK
http://wl500g.info/showthread.php?t=18096 - пошагово объяснены наиболее интересные вещи
Читать почти официальный учебник.
У rtzra всё произошло так, как уже описывалось в теме: сначала отвалился внешний жёсткий диск, потом пропал интернет, после перезагрузки горят все лампочки LAN, WAN, не горит POWER и еле тлеет AIR. Долго не думали, сходили в серверную и взяли цеху. Цеха показала, шо БП мертвый. Блок питания выдаёт 2,14В даже без резисторов и нагрузки. Через два месяца БП сдох у меня. Ночью ещё интернет был, а с утра - горят 4 лампы. AIR, Power - не горят. Как свичь не работает.
Здесь хочу отметить, что не так давно столкнулся с выходом из строя блока питания от маршрутизатора D-Link DI-524UP и отремонтировал его по инструкции из темы, однако там блок питания не работал вообще, проблема была в запускающем конденсаторе, но схемотехника блоков питания что у ASUS-а, что у D-Link-а одинаковая, как и их характеристики, различаются они только расположением элементов и немного отличающимися номиналами.
Теперь про восстановление:
via: http://wl500g.info/showpost.php?p=141637&postcount=427
В отличии от инструкции по ссылке выше у rtzra БП сам легко не распался и корпус пришлось немного покорежить. У меня разошелся как нужно.
После обновления прошивки - очистить кэш браузера, чтобы web-оболочка не глючила.
Сбросьте в настройки по умолчанию, выбрав один из способов:
В будущем, перед обновлением прошивки на более новую или внесении изменений в конфигурацию не забудьте сохранять настройки.
Настройки сохраняются в 2 файлах:
По умолчанию железяка не хочет понимать наших проблем с переводом часов на летнее / зимнее время.
В прошивке олега, есть проблема со старым uclibc, там таймзоны кривые. Что же, поправляем:
# touch /tmp/local/sbin/pre-boot # echo "#!/bin/sh" >> /usr/local/sbin/pre-boot # echo 'echo "KRAT-7KRAST,M3.5.0,M10.5.0/3" > /etc/TZ' >> /usr/local/sbin/pre-boot # echo 'nvram set time_zone="KRAT-7KRAST,M3.5.0,M10.5.0/3"' >> /usr/local/sbin/pre-boot # chmod +x /usr/local/sbin/pre-boot # flashfs save && flashfs commit && flashfs enabled
И после перезагрузки рутера все будет хорошо. Если перегружаться лениво, делаем
# echo "KRAT-7KRAST,M3.5.0,M10.5.0/3" > /etc/TZ # nvram set time_zone="KRAT-7KRAST,M3.5.0,M10.5.0/3"
Еще таймзоны:
Europe Moscow,Russia MSK-3MSD,M3.5.0,M10.5.0/3 Europe/Moscow Asia (UTC+4) Baku AZT-4AZST,M3.5.0/4,M10.5.0/5 Asia/Baku Asia (UTC+4) Yerevan AMT-4AMST,M3.5.0,M10.5.0/3 Asia/Yerevan Asia (UTC+5) Yekaterinburg YEKT-5YEKST,M3.5.0,M10.5.0/3 Asia/Yekaterinburg Asia (UTC+6) Novosibirsk NOVT-6NOVST,M3.5.0,M10.5.0/3 Asia/Novosibirsk Asia (UTC+6) Omsk OMST-6OMSST,M3.5.0,M10.5.0/3 Asia/Omsk Asia (UTC+7) Krasnoyarsk KRAT-7KRAST,M3.5.0,M10.5.0/3 Asia/Krasnoyarsk Asia (UTC+9) Yakutsk YAKT-9YAKST,M3.5.0,M10.5.0/3 Asia/Yakutsk
Побробности читать тут: http://wl500g.info/showthread.php?t=13727
Когда роутер запускается у него 1970 год. Поэтому многие приложения могут не работать или например «протухают» сертификаты у openvpn. Как лечить? Добавляем в стартап скрипт, проверку. Пока дата неотсинхрилась - процесс не запускать.
(while [ $(date +%s) -lt 1000000000 ]; do sleep 2; done; команда_запуска) &
Сегодня я покупаю у vzletka.net реальный IP адрес на порту. Стоит удовольствие 30 рублей / месяц. И обеспечивает полное отсуствие половой ебли чуть менее чем полностью. Не нужно VPN, маршруты, скрипты, перезвоны, обрывы, tcpmsfix, DNSы, и ебаться с MTU. Ничего не нужно. Просто тупо воткни кабель и наслаждайся.
ipkg install procps
Проблема - ничего не качаются. А все активные линки раз в две секунды моргают? Это барабашка? Нет это STP.
Как отключить STP (чтобы не флудил в LAN):
# brctl show br0 stp # brctl stp br0 disable # brctl br0 stp off # nvram set lan_stp=0 # nvram commit
Директория /usr/local (софтлинк на /tmp/local) и содержит каталоги, которые можно сохранить во флэше роутера в сжатом виде /tmp/flash.tar.gz, а при загрузке ими воспользоваться.
Этот файл кладется напрямую в раздел флэша. Размер раздела для wl500g DELUXE - 64Кб, для wl500gP - 2Мб. В логах веб-оболочки можно найти строчку: Jan 1 03:00:03 kernel: 0x003e0000-0x007f0000 : «flashfs». Эти каталоги сохраняются тремя командами flashfs save, flashfs commit, flashfs enable (вместо послледней можно один раз дать flashfs enabled). При этом не все файлы которые там лежат переписываются в корень, а только некоторые. Например, /usr/local/etc/hosts будет переписан в /etc/hosts, а /etc/passwd нет. Имена тех файлов, которые не переписываются можно включить в файл /usr/local/.files на каждой строчке полный путь к файлу, тогда эти файлы можно редактировать на их же местах.
По любасу купить флэшку для хранения программ и свопа. Лучше с лампочкой, чтобы видеть когда роутер в нее пишет. Раздел диска вместо флэшки нежелателен - вероятность выхода из строя диска выше. Отформатировать флэшку или раздел диска в файловую систему ext3.
fdisk /dev/discs/disc0/disc
part1 IPKG 512MB /opt part2 Swap 512MB type 82
[root@gate /]$ fdisk -l Disk /dev/scsi/host0/bus0/target0/lun0/disc: 1031 MB, 1031798272 bytes 255 heads, 63 sectors/track, 125 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/scsi/host0/bus0/target0/lun0/part1 1 63 506016 83 Linux /dev/scsi/host0/bus0/target0/lun0/part2 64 125 498015 82 Linux swap
[root@gate /]$ cat /etc/fstab /dev/scsi/host0/bus0/target0/lun0/part2 none swap sw 0 0 /dev/scsi/host0/bus0/target0/lun0/part1 /opt ext3 rw,noatime 1 1
# mkswap /dev/scsi/host0/bus0/target0/lun0/part2 Setting up swapspace version 1, size = 509960192 bytes # swapon /dev/scsi/host0/bus0/target0/lun0/part2
Установка полезных пакетов. Нужен раздел ext3. Неободимо чтобы в /opt была подмонтирована файловая система ext3 из-за разрешения на файлы и софтлинков.
mkdir -p /opt/tmp/ipkg cd /opt/tmp/ipkg ipkg.sh update ipkg.sh install ipkg-opt ipkg update
Починка
ipkg install uclibc-opt -force-reinstall
Кошерный учебник по openssh + putty + keyauth.
Public Key Authentication for Asus WL-500G pushstart.
# mkdir .ssh # cd .ssh # echo ssh-rsa AAAAB3N……8nq97Rcl5D= rsa-key-20061230 > authorized_keys # flashfs save # flashfs commit # flashfs enable
Читать Secure Linux/UNIX access with PuTTY and OpenSSH
Understanding Network Interfaces in Asus WL-500G.
Ну а если на пальцах:
По дефолту сделано 2:
vlan на данном устройстве настраивается при помощи утилиты robocfg. Посмотреть список настроек можно командой
robocfg showЧто такое vlan и зачем оно надо можно тут: http://ru.wikipedia.org/wiki/VLAN
Отдельно про качество сигнала - http://brj.pp.ru/wiki/hardware/homed-wifi
Отдельная ветка про хреновое качество линка wifi, из-за того, что китайцы хреновый транзистор распаяли на V1 - http://wl500g.info/showthread.php?t=13261
Linux Advanced Routing & Traffic Control HOWTO → http://lartc.org/
Linux Advanced Routing & Traffic Control HOWTO на русскам → http://lug.ivanovo.ru/lartc/
Легко изменить IP адрес сетевой карты под виндами с правами администратора можно с помощью
rem Установить статический IP netsh interface ip set address name="Local Area Connection" static 192.168.0.2 255.255.255.0 192.168.0.1 0 rem Вернуть DHCP обратно netsh interface ip set address name="Local Area Connection" dhcp netsh interface ip show config
Следует удостовериться, что сетевой интерфейс имеет название «Local Area Connection», или изменить на актуальное
Исходные данные:
- WAN смотрит в сеть провайдера. - WiFi раздает адреса мобильным устройствам. - Порт №1 втыкается в свитч/комп/и т.д. - в общем для локальных устройств. - Lan 1, WiFi - 192.168.xx.0/24
Задача: сделать Порт №4 дополнительным WAN-портом для работы в сети домашнего провайдера. Имя интерфейса - vlan2. Так как провайдер привязывается к MAC-адресам сетевушек, решить этот вопрос без звонков в техподдержку.
# robocfg vlan 0 ports "1 2 3 5t" vlan 1 ports "0 5t" vlan2 ports "4 5t" # vconfig add eth0 2 # ifconfig vlan 2 hw ether XX:XX:XX:XX:XX:XX # ifconfig vlan 2 10.0.0.100 broadcast 10.255.255.255 netmask 255.0.0.0 up
Далее осталось добавить маршруты если в этом есть необходимость, например:
# route add -net 172.0.0.0 netmask 255.0.0.0 gw 10.0.0.1 dev vlan2 # route add -net 84.22.xx.0 netmask 255.0.0.0 gw 10.0.0.1 dev vlan2
Ну и напоследок осталось разрешить всем, кто подключается через LAN 1 или WiFi попадать в сеть домашнего провайдера:
# iptables -t nat -A POSTROUTING -s 192.168.xx.0/24 -o vlan2 -j MASQUERADE
Взято тут: http://wl500g.info/showthread.php?t=2391
В моей прошивке существует возможность выполнения пользовательских программ в определённые моменты времени. Как правило, такие программы пишут на языке встроенного shell (ash), но будут работать и ELF исполняемый код (например, откомпилированная Си программа).
Итак, моя прошивка пытается исполнить следующие файлы:
* /usr/local/sbin/pre-boot - исполняется до основной инициализации, в момент, когда ещё не подгружены никакие модули ядра, но уже развёрнут flashfs и скопирован начальный образ для /etc из /usr/etc.
* /usr/local/sbin/post-boot - исполняется после того, как устройство закончило загрузку и запустило все сервисы, за исключением связанных с веб-камерой и usb дисками (они запустятся примерно через 10 секунд после этого при «обработке» hot plug событий, когда АСУСовский обработчик до них доберётся)
* /usr/local/sbin/post-mount - отрабатывает, когда устройство завершает монтирование usb дисков, с тем чтобы Вы могли запустить свои сервисы, которые эти диски используют
* /usr/local/sbin/pre-shutdown - работает перед перезагрузкой системы
* /usr/local/sbin/post-firewall - исполняется всякий раз, после того как устройство меняет внутренние правила с помощью команд iptables, с тем, чтобы Вы могли внести свои изменения в firewall
Добавляем в sysctl:
# To improve p2p networking performance net.ipv4.netfilter.ip_conntrack_generic_timeout=50 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close=5 net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=1200 net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait=120 net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait=60 net.ipv4.netfilter.ip_conntrack_udp_timeout=10
В целом роутер не может сказать торрент клиенту на компе, чт стек почти выпилен. Решается, очень просто в uTorrent, можно установить максимальное количество соединений в 130. Поэтому, если вам нужна простая формула, что бы и торренты качались и эти ваши интернеты не тормозили, то заходим в uTorrent «Speed Guide» и выставляем половину скорости на соединения интернет. Скажем у меня дома, 1 мегабит, поэтому ставим 512k и радуемся жизни. Если зайти на роутер, можно посмотреть, сколько он пытается вывезти на себе соединений:
# wc -l /proc/net/ip_conntrack 193
В роутере на самом деле встроено два http-сервера, родной асусовский для использования слишком специфичен, завести его толком не удалось, а вот на втором, который busybox-httpd прекрасно открывается статика и шуршит перловая cgi-based динамика.
Запуск прост:
# busybox_httpd -h /путь/к/веб/папке -p порт -c /etc/конфиг.conf
Если в папке есть папка cgi-bin - скрипты лежащие там будут соответственно запускаться. Чтоб основной вебсервер не мешался - надо его на другой порт перевесить:
# nvram set http_lanport=12345 # nvram commit
Ключ -p при запуске тогда можно не указывать.
Как очистить ненужные роуты созданные UPnP? Когда-то запускал с ноубука торрент-клиент. Он по UPnP сообщил случайные порты, для открытия исходящих соединений. Роутер их запомнил. Переставлял винду, запускал торрент клиента на другой машине, порты каждый раз были случайные. В Port Forwarding все эти порты висят. Как их оттуда убить? Например мне надо что бы тореннт использовал порт 6655, на машине 192.168.1.5, но до этого этот порт был проброшен уже на 192.168.1.2. Прописал роутинг вручную, получил 4 правила. 2 верных и 2 неверных.
Посмотреть:
# nvram show | grep forward_port
Очистить:
# nvram unset forward_portX
где forward_portX - принимает одно из значений, показанных командой 'show', например, forward_port0, forward_port1…
Бери, читай: http://wl500g.info/showthread.php?t=16949
iptables -I INPUT -p tcp --dport 113 -j ACCEPT
Проверяй: http://www.0x1b.ch/cgi-bin/ident
В содержании журнала «Системный администратор» за Июль, 2007 была статья: OpenWRT – Linux для встраиваемых систем. Если вы сталкиваетесь с постоянными зависаниями, неудобством управления или нехваткой функционала вашего роутера, и именно поэтому он вам не нравится – возможно, стоит попробовать установить OpenWRT. by Дмитрий Столяров
Поскольку мой журнал зачитали «до дыр», а потом и вовсе проебали не вернули - выкладываю скан статьи сюда:
http://wl500g.info/ - главный форум по всем устройствам ASUS WL-xx. Тут есть все что надо.
http://wl500g.info/showthread.php?t=2391 - подробный FAQ.
http://wl500g.info/showthread.php?t=18096 - НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS]
http://www.macsat.com/macsat/content/category/3/13/29/ - большое количество манов по настройке Олеговской прошивки и OpenWRT.
http://biker.pp.ru/ - Очень интересный блог, особенно записи «Второе PPPoE соединение в ASUS WL-500gP» http://biker.pp.ru/archives/35
«Статистика трафика на ASUS wl-500g Premium» http://biker.pp.ru/archives/25
[How To] Install and Configure Olegs firmware - http://wl500g.info/showthread.php?t=10307