hardware:router:asuswl500gp

ASUS WL500gP

Взято отсюда: http://brj.pp.ru/wiki/hardware/router-asus-wl500gp

Легендарный беспроводной многофункциональный маршрутизатор чуть более чем полностью. На столько легендарный, что асус уже выпилил данную модель в архив продуктов.

Почему роутер легендарный?

Продан в январе 2011 года. Страница больше обновляться не будет.

На момент анонса продукта, решение «искаропки» не работало и требовало от не самых глупых людей почти полгода ебли вприсядку. Спустя года практики хорошие люди написали автоматизированную камасутру и теперь можно к роутеру подключить лазерный принтер, жесткий диск и эти ваши интернеты, после чего роутер без компьютера будет скачивать порнографию с торрентов и покадрово её распечатывать!

Хваленый и ожидаемый ASUS RT-N16обзор на 3dnews.ru → сегодня сливает как по цене, так и по качеству → это другая история → поверьте не радостная для компании ASUS → начинается эта грустная история с цены в 5700 рублей в Красноярске → поэтому сегодня нужно и можно смело брать tl-wr1043nd.

Что делает любой непоседливый мальчик, дорвавшись до долгожданной игрушки? Правильно, разбирает ее нафиг, чтобы посмотреть, как оно там внутри. Под катом - фотки ASUS WL-500G Premium изнутри и снаружи.

Inside ASUS WL-500G Premium. Если потыкать в фотографии, можно добраться до нормально качества. wiki при заливки сильно их изговнякала.

Все фото © 2006 Серж Скаут. Использование фото на данном ресурсе с разрешения автора.

Что уже делает

  1. Стоит и не жужжыт :-)
  2. Раздаёт у меня дома эти ваши интернеты на все устройства (nat + upnp)
  3. Кеширующий DNS сервер + DHCPD
  4. sshd → dropbear → проброс портов

Общая информация по работе роутера: в роутере обычно 8Мб флэша и 32Мб оперативной памяти.

При включении питания считываются первые 256Кб флэша, в них лежит загрузчик (CFE, аналог BIOS), он читает кусок флэша с параметрами (nvram 64Кб). Один из параметров указывает адрес во флэше, в котором лежит прошивка и nvram. Причем, адрес nvram может быть совсем другим, чего в норме быть не должно. Если такое происходит, то сбросить значения в базовом nvram можно только через консоль командой типа «flash -offset=65536 flash0.os flash0.os» или закорачиванием одной из ног микросхемы флэша на землю. Адрес nvram могут менять прошивки типа OpenWRT, если им мало 64Кб, отведенного под nvram по умолчанию.

Прошивка (firmware) грузится и тоже считывает из nvram (уже по новому адресу) параметры. В оперативной памяти роутера прошивка создает файловую систему, в которую можно писать. В эту файловую систему копируется прошивка и содержимое части флэша (flashfs содержит архив из файлов и директорий).

Вывод: чем больше прошивка+файлов во flashfs+логов, тем меньше памяти для работы линукса. Реально остается около 4Мб и это из 32Мб. Поэтому для хранения файлов лучше использовать USB-флэшку или USB-диск, подключенный к роутеру.
Разъем стандарта USB2.0, реальная скорость у Deluxe / Premium не выше 4 Мбайт/с.

После загрузки линукс смонтирует файловые системы флэшек / дисков / картридеров, подключенных к USB-разъемам роутера.

  1. В данном виде (есть и другие flashfs, не путать) это технология сохранения части файловой системы во флеше. Была придумана то ли asus'ом толи Олегом и информации по ней в интернете не стоит искать.
  2. Т.к. корневая файловая система роутера (в данном случае это sqashfs) доступна только для чтения то в дополнение к ней используется ramfs - файловая система, находящаяся в оперативной памяти.
  3. В данной системе (linux от broadcom/asus) каталог /tmp (кстати /usr/local == /tmp/local, это симлинк) это подмонтированная ramfs и наличие свободного места зависит от наличия свободной оперативной памяти.
  4. Команда flashfs - это скрипт, написанный Олегом. Поэтому о нем не будет никакой информации вне рамок данного форума.
  5. При команде flashfs save в файле /tmp/flash.tar.gz создается сжатый архив каталога /usr/local + туда записываются файлы, из списка в файле /tmp/local/.files
  6. При команде flashfs commit архивный файл /tmp/flash.tar.gz прошивается в отдельный раздел флеша, имеющий максимальный объем 64 килобайта. В прошивке не предусмотрена проверка на размер архива, так что если файл превышает данный объем то будет потерянна часть данных.
  7. При старте роутера архивный файл flash.tar.gz, записанный во флеш ранее с помощью flashfs save && flashfs commit разворачивается в /tmp/local.
  8. Команда flashfs enable прописывает в nvram(тоже отдельный раздел флеш, используется преимущественно для сохранения настроек веб-интерфейса) версию прошивки при которой был создан архив flashfs.tar.gz и если прошивка обновилась то при старте роутера flashfs не разворачивается во избежание конфликтных ситуаций. При первом создании flashfs или при обновлении прошивки эту команду необходимо запустить для того чтоб включить flsahfs.
В новой прошивке Олега появилась команда flashfs enabled, после которой невзирая на версию прошивки, flashfs будет разворачиваться всегда.

Все знания были получены в результате проб и ошибок и на полное соответствие с действительностью не претендуют.

Кнопки RESET и EZCONFIG на роутере: они периодически опрашиваются линуксом прошивки и линукс что-то делает по этому событию (обычно, обнуляет часть параметров, но не весь nvram). Если прошивка не загрузилась нормально (кривая, не к этой модели), то кнопки ничего не сделают.

Если нажать кнопку RESET ее до включения питания, то загрузчик CFE не будет грузить прошивку, а перейдет в rescue режим (2 и 3 метод прошивки). То есть, если прошивка сбоит ее легко восстановить. Проблема бывает в том, что и CFE и прошивка хорошие, а в nvram часть важных параметров (задающие параметры железа) неправильные, то CFE просто подвиснет. Неправильные параметры могут появиться, если линукс туда запишет мусор. Самостоятьельно роутер пишет в nvram только в моменты загрузки, перепрошивки, нажатия кнопок, изменением параметров или выдачи команд администратором - в эти моменты роутер лучше не трогать.

Если роутер работает без перезагрузки много месяцев, то перед изменением любых настроек, требующих записи в 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

Для любителей классики - stable as rox! Олег начал делать 1.9.2.7-10a первый пост обновляется. Но мы за дальнейшее развитие, а не баг-фиксы.
Пока Олег отошел от дел, прошивку решили продолжать другие люди - lly & themiron. За, что им поклон, респект и уважуха. http://code.google.com/p/wl500g/
Самому себе - у тебя в роутере сейчас стоит wl500g-1.9.2.7-d-r2381 (2010-11-27)
WARNING: Способ для самоубийц-камикадзе! Я предупредил. Смотри выше на 'cat /proc/mtd' и DON’T TRY CUSTOM FIRMWARES UNLESS YOU KNOW WHAT YOU ARE DOING, YOU COULD DESTROY YOUR UNIT BY DOING THIS! I’M NOT RESPONSIBLE TO ANY DAMAGE CAUSED TO YOUR UNIT BY USING IT! USE ON YOUR OWN RISK! ©
[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

:!: опасносте :!: в /dev/mtd/0 лежит загрузчик и если начать прошивать в туда (вдруг ошибившись), то будет большой муржской половой хуй, и как следствие, большая половая ебля заканчивающийся выпаиванием микросхем! 100% гарантия

После обновления прошивки - очистить кэш браузера, чтобы web-оболочка не глючила.

Сбросьте в настройки по умолчанию, выбрав один из способов:

  1. выбрав в веб-оболочке System Setup → Factory Default (лучше всего этот способ)
  2. нажав на его корпусе кнопку RESET на 5 секунд, лампочка PWR начнет мигать в этот момент можно отпустить кнопку
камикадзе style: команды «erase /dev/mtd/3» и «erase /dev/mtd/4» (нужно убедиться, что на вашей версии прошивки эти устройства указывают на nvram и flashfs, смотри выше на 'cat /proc/mtd')

В будущем, перед обновлением прошивки на более новую или внесении изменений в конфигурацию не забудьте сохранять настройки.

Настройки сохраняются в 2 файлах:

  1. flashfs: В веб-интерфейсе выбрать System Setup → Flashfs Management → HERE. Сохранятся в виде файла WL500g.Premium.tar.gz После обновления прошивки на новую нужно будет этот файл залить (кнопка Upload) из того же меню.
  2. nvram (в формате для заливки через вебинтерфейс): System Setup → Setting Management → HERE. Файл WL500g.Premium.cfg
  1. Камасутра → выпиливаем → автоматизация → установка программ для чайника
  2. Хакинг и модинг ASUS WL500G Premium → http://habrahabr.ru/blogs/DIY/90711/ → локальный PDF локальная копия в PDF
  3. Guide to IP Layer Network Administration with Linux → http://linux-ip.net/ → Похоже на весьма полезный гайд по сетевым фичам линуксов, включая iproute → Будем посмотреть более детально. → http://linux-ip.net/html/linux-ip.html
  4. Глянуть вот тут на это → http://inetdxtra.sourceforge.net/
  5. Linux Advanced Routing & Traffic Control HOWTO → http://lartc.org/
  6. Linux Advanced Routing & Traffic Control HOWTO на русскам → http://lug.ivanovo.ru/lartc/

По умолчанию железяка не хочет понимать наших проблем с переводом часов на летнее / зимнее время.

В прошивке от lly и themiron это проблема исправлена.

В прошивке олега, есть проблема со старым 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; команда_запуска) &

Проблема - ничего не качаются. А все активные линки раз в две секунды моргают? Это барабашка? Нет это STP.

Как отключить STP (чтобы не флудил в LAN):

# brctl show br0 stp
# brctl stp br0 disable
# brctl br0 stp off
# nvram set lan_stp=0
# nvram commit
команда nvram set устанавливает переменную, nvram unset убирает, «nvram get имя» или «nvram show | grep имя» показывает и 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 на каждой строчке полный путь к файлу, тогда эти файлы можно редактировать на их же местах.

Перед flash save можно удалять файл/tmp/local/root/.mc/history и /tmp/local/root/.cedit, чтобы не сохранять мусор.
В прошивке от lly и themiron sshd (dropbear) уже «вделан» в прошивку.

По любасу купить флэшку для хранения программ и свопа. Лучше с лампочкой, чтобы видеть когда роутер в нее пишет. Раздел диска вместо флэшки нежелателен → вероятность выхода из строя диска выше. Отформатировать флэшку или раздел диска в файловую систему ext3.

fdisk /dev/discs/disc0/disc
part1 IPKG 512MB /opt
part2 Swap 512MB type 82
  1. Create IPKG: n → p → 1 → 'return' → +512M
  2. Create swap: n → p → 2 → 'return' → +512M → t → 82
В прошивке от lly и themiron все намного лучше.
[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.

Ну а если на пальцах:

  • eth0 - физический адаптер, представляющий из себя пять равноценных эзернет портов, пронумерованных с 0 по 4 (из них 4 доступны для подключения устройств - 1,2,3,4)
  • eth1 - физический адаптер (беспроводной, WiFi)
  • vlan0, vlan1 - путем программной конфигурации в eth0 может быть организовано несколько vlan (на WL-500gP их 16, пронумерованы от 0 по 15-й).

По дефолту сделано 2:

  • vlan0 - 4 порта LAN
  • vlan1 - WAN

vlan на данном устройстве настраивается при помощи утилиты robocfg. Посмотреть список настроек можно командой

robocfg show

Что такое vlan и зачем оно надо можно тут: http://ru.wikipedia.org/wiki/VLAN

  • br0 - это vlan0 + eth1
  • MAN - локальная сеть вашего провайдера, т.е. MAN - это всегда проводной интерфейс, обозначенный у роутера как WAN порт. При этом в случае PPPoE/PPTP/L2TP, WAN соединение - это виртуальный PPP канал.
  • ppp0 - Виртуальный интерфейс, появляется при установленном PPPoE/PPTP/L2TP-подключении.

Легко изменить 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://ru.wikibooks.org/wiki/Настройка_роутера_WL500g_Premium

Что необходимо: получить интернет и локальные ресурсы от П1 и получить локальные ресурсы от П2.

Что дано: 2 провайдера, по 1 кабелю от каждого.

1-й провайдер, назовем его «П1», второй, соответственно, «П2»

П1 подключен к основному wan порту, у него автоматическая раздача настроек (DHCP). Подразумевается, что интернет от П1 уже настроен, прописаны необходимые маршруты и т.д.

У П2 настройки производятся вручную (DHCP нет).

Из особенностей, диапазон внутренней сети пересекается: у обоих сеть вида 10.0.0.0/255.0.0.0 Для необходимого диапазона адресов просто настроим маршрутизацию.

Вопрос решается двумя способами:

  1. только через редактирование и добавление строк в файлы post-boot и post-firewall
  2. настройка второго wan производится уже не через post-boot. А маршрутизация все также в post-firewall (второй вариант лучше, т.к. интерфейс wan2 при перезагрузке уже работает, а в первом - он поднимается только с загрузкой файла post-boot, т.е. до момента загрузки файла роутер может отправлять не правильные пакеты в сеть П2).

1-й вариант:

Нужно добавить следующие строки в файл post-boot:

#!/bin/sh 
$ robocfg vlan 2 ports "1 5t" vlan 0 ports "2 3 4 5t" #строка создает из интерфейса lan1 второй wan 
$ vconfig add eth0 2 #задает название второму интерфейсу 
$ ifconfig vlan2 hw ether 00:00:00:00:00:00 #строка присваивает второму интерфейсу wan определенный
мак-адрес, нужно, если  провайдер осуществляет привязку по мак'у (вместо 00:00:00:00:00:00 вводим свой мак-адрес)
$ ifconfig vlan2 10.xx.xx.xx broadcast 10.10.255.255 netmask 255.255.0.0 up #строка запускает, определяет диапазон сети для второго интерфейса. 

10.xx.xx.xx - ВАШ IP адрес, заданный провайдером, 10.10.3.10, например

Нужно добавить следующие строки в файл post-firewall:

#!/bin/sh 
route add -net 75.75.75.20 netmask 255.255.0.0 gw 10.yy.yy.yy dev vlan2 #задаем необходимые адреса П2, которые нужны для доступа к его ресурсам, вместо 10.yy.yy.yy пишем шлюз П2
route add -net 10.12.0.0 netmask 255.255.0.0 gw 10.yy.yy.yy dev vlan2
route add -net 95.75.75.20 netmask 255.255.0.0 gw 10.yy.yy.yy dev vlan2
iptables -A INPUT -i vlan2 -m state --state NEW -j SECURITY #защита от DoS (не обязательно)
iptables -A FORWARD -i vlan2 -m state --state NEW -j SECURITY #защита от DoS (не обязательно)
iptables -t nat -A POSTROUTING -o vlan2 ! -s 10.xx.xx.xx -j MASQUERADE #вместо 10.xx.xx.xx прописываем IP, который задан на втором WAN, он же IP, который ВАМ выдал П2)
iptables -A FORWARD -i ! br0 -o ! br0 -j DROP #чтобы роутером не пользовались как халявным прокси
iptables -t nat -A PREROUTING -d 10.xx.xx.xx -j VSERVER #чтобы проброс портов из веб-интерфейса работал для второй сети, вместо 10.xx.xx.xx - ВАШ IP адрес, заданный провайдером

После введения строк в файлы post-boot и post-firewall, необходимо сохранить изменения и выполнить перезагрузку роутера:

flashfs save && flashfs commit && flashfs enable && reboot

2-й вариант:

в консоли пишем следующие строки:

$ robocfg vlan 2 ports "1 5t" vlan 0 ports "2 3 4 5t"
$ vconfig add eth0 2
$ ifconfig vlan2 hw ether 00:00:00:00:00:00
$ ifconfig vlan2 10.xx.xx.xx broadcast 10.10.255.255 netmask 255.255.0.0 up

Опять таки, вместо 00:00:00:00:00:00 указываем необходимый мак-адрес. Вместо 10.xx.xx.xx указываем IP адрес, заданный провайдером.

Обязательно после настройки сохранить результат командой:

$ nvram commit

Переходим к заполнению файла post-firewall, здесь все тоже самое из первого варианта настройки.

Сохраняем настройки и перезагружаемся:

flashfs save && flashfs commit && flashfs enable && reboot

Взято тут: 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
brj: cкачать мои скрипты для асуса brj-settings-wl500gp-07.08.2009.tar.gz

Добавляем в 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 Дмитрий Столяров

Читать почти официальный учебник.

У rtzra всё произошло так, как уже описывалось в теме: сначала отвалился внешний жёсткий диск, потом пропал интернет, после перезагрузки горят все лампочки LAN, WAN, не горит POWER и еле тлеет AIR. Долго не думали, сходили в серверную и взяли цеху. Цеха показала, шо БП мертвый. Блок питания выдаёт 2,14В даже без резисторов и нагрузки. Через два месяца БП сдох у меня. Ночью ещё интернет был, а с утра - горят 4 лампы. AIR, Power - не горят. Как свичь не работает.

Здесь хочу отметить, что не так давно столкнулся с выходом из строя блока питания от маршрутизатора D-Link DI-524UP и отремонтировал его по инструкции из темы, однако там блок питания не работал вообще, проблема была в запускающем конденсаторе, но схемотехника блоков питания что у ASUS-а, что у D-Link-а одинаковая, как и их характеристики, различаются они только расположением элементов и немного отличающимися номиналами.

Теперь про восстановление:

  1. Вскрываем блок питания. (Похоже блоки питания не особо проклеены, по крайней мере свой я открыл довольно просто, сначала немного его поломал за вилку в стороны, пока не исчез небольшой хруст и немного не отошёл край, дальше просунул в образовавшуюся щель пластиковую карту и вскрыл блок питания по кругу). (Если не получается вскрыть таким образом, то придётся резать, как указано в теме с форума D-Link-а)
  1. Вынимаем плату

  1. В моём случае был вздут кондёр под №2 (10v 1200mkF). Такого под рукой не оказалось, взял 10v 1000mkF
  2. Также по совету знакомого телевизионного мастера поменял запускающий кондёр под №1. Оригинальный был по-моему 25v 10mkF, поменял на 50v 10mkF, который советует автор темы с форума D-Link-а
  3. Собираем блок питания, я использовал для крепления бухгалтерские резинки для денег, опять же совет одного из отвечающих в теме с форума D-Link-а, вдруг ещё придётся вскрывать… (Если важен эстетический вид, то просто проклеить)

via: http://wl500g.info/showpost.php?p=141637&postcount=427

В отличии от инструкции по ссылке выше у rtzra БП сам легко не распался и корпус пришлось немного покорежить. У меня разошелся как нужно.

Кратко для себя - когда слетает прошивка (так бывает) либо чиь-то шаловливые ручки нажали reset, либо update. Нужно скачать прошивку с сайта, положить её на tftp сервер и «забутить» железку. Заодно обновил у себя конфиг DNSMASQ, что бы грузилось по сети. Вот прекрасная инструкция via: http://smartchecker.livejournal.com/1991.html → Сохраню на память:

Реанимация кривопрошитого ASUS WL-566gM. Сегодня один коллега, из тех, которые считают себя умельцами, профлэшил свой домашний ASUS WL-566gM (это Wi-Fi роутер такой). Но эта процедура у него не увенчалась успехом и железка сказала, что жить не будет. Процедура восстановления заключалась в следующем. Имеем debian. Для рездачи firmware нужны две вещи dhcpd и какой-нибудь tftpd (я выбрал atftpd)

# aptitude install dhcp3-server
# aptitude install atftpd
# aptitude install ftp

Эта мега железка хочет себя ощущать как 192.168.1.1, то на ubuntu настраиваем любой другой из этой же сети /etc/network/interfaces выглядит так

auto eth1
iface eth1 inet static
       address 192.168.1.2
       netmask 255.255.255.0
       broadcast 192.168.1.255
       gateway 192.168.1.1

Делаем ifup eth1, так как у меня на debian'е несколько рабочих интерфейсов и я не хочу смущать другую сеть своим dhcp сервером, то /etc/default/dhcp3-server выглядит так INTERFACES=«eth1», Правим dhcpd.conf чтобы выглядел так

authoritative;
ddns-update-style interim;
allow client-updates;
log-facility local7;

subnet 192.168.1.0 netmask 255.255.255.0 {
        option routers 192.168.1.1;
        option subnet-mask 255.255.255.0;
        option domain-name "test.local";
        option domain-name-servers 192.168.1.1;
        default-lease-time 600;
        max-lease-time 7200;

        host wl-566gm {
                hardware ethernet вп:ис:ал:иа:др:ес; 
                fixed-address 192.168.1.1;
                filename "WL500gp-1.9.2.7-rtn-r2972.trx";
        }
}

Собственно WL500gp-1.9.2.7-rtn-r2972.trx - файл с прошивкой.

Берется она здесь: http://code.google.com/p/wl500g/

Дальше ее нужно развернуть и положить в /tftpboot/ и стартуем dhcp3-server и atftpd

# /etc/init.d/dhcp3-server start
# /etc/init.d/atftpd start

После соединяем LAN1 c eth1 на ubuntu и включаем питание в WL-566gM.

В /var/log/syslog видим что-то типа

Mar 14 12:51:33 localhost kernel: e100: eth1: e100_watchdog: link up, 100Mbps, full-duplex
Mar 14 12:51:35 localhost dhcpd: BOOTREQUEST from 00:17:31:2e:d1:5e via eth1
Mar 14 12:51:35 localhost dhcpd: BOOTREPLY for 192.168.1.1 to wl-566gm (00:17:31:2e:d1:5e) via eth1
Mar 14 12:51:36 localhost atftpd[4588]: Serving WL566gM_1.0.1.7_EN_TW_DE_CN.trx to 192.168.1.1:69

Железка усваивает эту прошивку и перезагружается сама. На этом все.

Здесь описывается альтернативный способ восстановления без использования утилиты от АСУСтека.

Приготовление:

  1. Выключить питание устройства;
  2. Нажать кнопку RESTORE и удерживая её включить питание устройства
  3. Дождаться, когда начнёт мигать индикатор POWER (примерно 1 секунда) и отпустить кнопку
  4. Взять сетевой кабель (витую пару), подключить один хвост в любой из LAN портов устройства, другой к сетевому адаптеру Вашего ПК
  5. В Windows для протокола TCP/IP назначить адаптеру адрес 192.168.1.2 с сетевой маской 255.255.255.0 (в случае, если у устройства был адрес 192.168.1.1)
  6. Запустить cmd.exe
  7. Проверить, что есть связь с устройством, выполнив команду
ping 192.168.1.1

Должно появится нечто похожее на

Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=2ms TTL=100

Обращаем внимание на TTL=100 - это отвечает встроенный загрузчик.

Восстанавливаем прошивку (прошивка.trx нужно заменить на имя файла с прошивкой)

tftp -i 192.168.1.1 put прошивка.trx

Ждём несколько секунд, вываливается надпись типа: Transfer successful: 3706880 bytes in 7 seconds, 529554 bytes/s

Ждём от 2-х минут до 10-ти, пока прошивка не запрограммируется и не загорится индикатор AIR - устройство загрузилось.

Если через 10 минут AIR не загорелся, то необходимо включить/выключить роутер - автозагрузка не сработала по какой-то причине.

Отдельно homed-wifi

Отдельная ветка про хреновое качество линка wifi, из-за того, что китайцы хреновый транзистор распаяли на V1 → http://wl500g.info/showthread.php?t=13261

  1. http://wl500g.info/ - главный форум по всем устройствам ASUS WL-xx. Тут есть все что надо.
  2. http://wl500g.info/showthread.php?t=2391 - подробный FAQ.
  3. http://wl500g.info/showthread.php?t=18096 - НАСТРОЙКА ASUS WL-500gP [DURAK EDITIONS]
  4. http://www.macsat.com/macsat/content/category/3/13/29/ - большое количество манов по настройке Олеговской прошивки и OpenWRT.
  5. http://biker.pp.ru/ - Очень интересный блог
  6. Второе PPPoE соединение в ASUS WL-500gP http://biker.pp.ru/archives/35
  7. Статистика трафика на ASUS wl-500g Premium« http://biker.pp.ru/archives/25
  8. [How To] Install and Configure Olegs firmware - http://wl500g.info/showthread.php?t=10307
  • hardware/router/asuswl500gp.txt
  • Последнее изменение: 2017/05/09 18:34
  • 127.0.0.1