====== ASUS WL500gP ====== Взято отсюда: http://brj.pp.ru/wiki/hardware/router-asus-wl500gp Легендарный беспроводной многофункциональный маршрутизатор чуть более чем полностью. На столько легендарный, что асус уже выпилил данную модель в архив продуктов. * [[http://www.3dnews.ru/communication/asus_wl-500g/print|Читать обзор]] на сайте 3dnews.ru * [[http://www.overclockers.ru/lab/print/23627.shtml|Читать обзор]] на сайте overclockers.ru. ==== Легенда ==== Почему роутер легендарный? Продан в январе 2011 года. Страница больше обновляться не будет. На момент анонса продукта, решение "искаропки" не работало и требовало от не самых глупых людей почти полгода ебли вприсядку. Спустя года практики хорошие люди написали автоматизированную камасутру и теперь можно к роутеру подключить лазерный принтер, жесткий диск и эти ваши интернеты, после чего роутер без компьютера будет скачивать порнографию с торрентов и покадрово её распечатывать! ==== Сегодня ==== Хваленый и ожидаемый [[http://wl500g.info/showthread.php?t=19629|ASUS RT-N16]] -> [[http://www.3dnews.ru/communication/asus_rt_n16/print/|обзор на 3dnews.ru]] -> сегодня сливает как по цене, так и по качеству -> это другая история -> поверьте не радостная для компании ASUS -> начинается эта грустная история с цены в 5700 рублей в Красноярске -> поэтому сегодня нужно и можно смело брать [[hardware:tl-wr1043nd|]]. ==== Фотографии ==== Что делает любой непоседливый мальчик, дорвавшись до долгожданной игрушки? Правильно, разбирает ее нафиг, чтобы посмотреть, как оно там внутри. Под катом - фотки ASUS WL-500G Premium изнутри и снаружи. [[http://sergscout.livejournal.com/32462.html|Inside]] ASUS WL-500G Premium. Если потыкать в фотографии, можно добраться до нормально качества. wiki при заливки сильно их изговнякала. Все фото (c) 2006 [[http://sergscout.livejournal.com|Серж Скаут]]. Использование фото на данном ресурсе с разрешения автора. ===== Что роутер будет делать? ===== === Что уже делает === - Стоит и не жужжыт :-) - Раздаёт у меня дома эти ваши интернеты на все устройства (nat + upnp) - Кеширующий DNS сервер + DHCPD - 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-разъемам роутера. ==== Немного о flashfs ==== - В данном виде (есть и другие flashfs, не путать) это технология сохранения части файловой системы во флеше. Была придумана то ли asus'ом толи Олегом и информации по ней в интернете не стоит искать. - Т.к. корневая файловая система роутера (в данном случае это sqashfs) доступна только для чтения то в дополнение к ней используется ramfs - файловая система, находящаяся в оперативной памяти. - В данной системе (linux от broadcom/asus) каталог /tmp (кстати /usr/local == /tmp/local, это симлинк) это подмонтированная ramfs и наличие свободного места зависит от наличия свободной оперативной памяти. - Команда flashfs - это скрипт, написанный Олегом. Поэтому о нем не будет никакой информации вне рамок данного форума. - При команде flashfs save в файле /tmp/flash.tar.gz создается сжатый архив каталога /usr/local + туда записываются файлы, из списка в файле /tmp/local/.files - При команде flashfs commit архивный файл /tmp/flash.tar.gz прошивается в отдельный раздел флеша, имеющий максимальный объем 64 килобайта. В прошивке не предусмотрена проверка на размер архива, так что если файл превышает данный объем то будет потерянна часть данных. - При старте роутера архивный файл flash.tar.gz, записанный во флеш ранее с помощью flashfs save && flashfs commit разворачивается в /tmp/local. - Команда 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 выпущенный производителем чипа. Убраны ограничения, которые вставляет в продукты маркетинговый отдел, обычно глуповатые люди, которые ищут как отработать свою зарплату. Убраны ошибки, которые программисты если и видят, то не исправляют: если быстро исправить - это будет признанием ошибки, а если не исправлять - можно делать вид, что это фича. Можно перешивать с любой версии официальной или нет и обратно - ограничений нет. Лучше обновить прошивку роутера в любом случае - пока он на гарантии проверить, что флэш не битый. © [[http://wl500g.info/|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 надо нажимать, после того как роутер полностью загрузится - подождать хотя бы минуту после перезагрузки. Свежую прошивку брать тут: [[http://oleg.wl500g.info/|oleg.wl500g.info]] Для любителей классики - stable as rox! Олег начал делать [[http://wl500g.info/showthread.php?t=18519|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! (c) [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-оболочка не глючила. Сбросьте в настройки по умолчанию, выбрав один из способов: - выбрав в веб-оболочке System Setup -> Factory Default (лучше всего этот способ) - нажав на его корпусе кнопку RESET на 5 секунд, лампочка PWR начнет мигать в этот момент можно отпустить кнопку камикадзе style: команды "erase /dev/mtd/3" и "erase /dev/mtd/4" (нужно убедиться, что на вашей версии прошивки эти устройства указывают на nvram и flashfs, смотри выше на **'cat /proc/mtd'**) В будущем, перед обновлением прошивки на более новую или внесении изменений в конфигурацию не забудьте сохранять настройки. Настройки сохраняются в 2 файлах: - flashfs: В веб-интерфейсе выбрать System Setup -> Flashfs Management -> HERE. Сохранятся в виде файла WL500g.Premium.tar.gz После обновления прошивки на новую нужно будет этот файл залить (кнопка Upload) из того же меню. - nvram (в формате для заливки через вебинтерфейс): System Setup -> Setting Management -> HERE. Файл WL500g.Premium.cfg ===== Настройки ===== ==== Камасутра ==== - [[http://wl500g.info/showthread.php?t=21889|Камасутра]] -> выпиливаем -> автоматизация -> установка программ для чайника - Хакинг и модинг ASUS WL500G Premium -> http://habrahabr.ru/blogs/DIY/90711/ -> локальный PDF {{:hardware:wl500gp-tunung.pdf|локальная копия в PDF}} - Guide to IP Layer Network Administration with Linux -> http://linux-ip.net/ -> Похоже на весьма полезный гайд по сетевым фичам линуксов, включая iproute -> Будем посмотреть более детально. -> http://linux-ip.net/html/linux-ip.html - Глянуть вот тут на это -> http://inetdxtra.sourceforge.net/ - Linux Advanced Routing & Traffic Control HOWTO -> http://lartc.org/ - 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 год ==== Когда роутер запускается у него 1970 год. Поэтому многие приложения могут не работать или например "протухают" сертификаты у openvpn. Как лечить? Добавляем в стартап скрипт, проверку. Пока дата неотсинхрилась - процесс не запускать. (while [ $(date +%s) -lt 1000000000 ]; do sleep 2; done; команда_запуска) & ==== STP ==== Проблема - ничего не качаются. А все активные линки раз в две секунды моргают? Это барабашка? Нет это [[http://en.wikipedia.org/wiki/Spanning_tree_protocol|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 - Create IPKG: n -> p -> 1 -> 'return' -> +512M - 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 Более подробно [[http://wl500g.info/showthread.php?t=18096|вот тут]] ==== ipkg ==== Установка полезных пакетов. Нужен раздел ext3. Неободимо чтобы в /opt была подмонтирована файловая система ext3 из-за разрешения на файлы и софтлинков. mkdir -p /opt/tmp/ipkg cd /opt/tmp/ipkg ipkg.sh update ipkg.sh install ipkg-opt ipkg update http://wl500g.googlecode.com/svn/ipkg/optware/ Починка ipkg install uclibc-opt -force-reinstall ==== Dropbear public key authentication ==== [[http://www.unixwiz.net/techtips/putty-openssh.html|Кошерный]] учебник по openssh + putty + keyauth. [[http://wiki.openwrt.org/DropbearPublicKeyAuthenticationHowto|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 [[http://www.unixwiz.net/techtips/putty-openssh.html|Читать]] Secure Linux/UNIX access with PuTTY and OpenSSH ==== Understanding Network Interfaces ==== [[http://wiki.openwrt.org/OpenWrtDocs/NetworkInterfaces?action=print|Understanding]] Network Interfaces in Asus WL-500G. {{hardware:network:router:asus-internals-default-sm.png|}} Ну а если на пальцах: * **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", или изменить на актуальное ;-) ==== Создаем дополнительный WLAN ==== Исходные данные: - 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 Для необходимого диапазона адресов просто настроим маршрутизацию. Вопрос решается двумя способами: - только через редактирование и добавление строк в файлы post-boot и post-firewall - настройка второго 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 ==== Скрипты в /usr/local/sbin ==== Взято тут: 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качать мои скрипты для асуса {{:hardware: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? Когда-то запускал с ноубука торрент-клиент. Он по 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... ==== fakeident ==== Бери, читай: http://wl500g.info/showthread.php?t=16949 iptables -I INPUT -p tcp --dport 113 -j ACCEPT Проверяй: http://www.0x1b.ch/cgi-bin/ident ===== Всё про Asus WL-500GP ===== В содержании журнала "Системный администратор" за Июль, 2007 была статья: //OpenWRT – Linux для встраиваемых систем. Если вы сталкиваетесь с постоянными зависаниями, неудобством управления или нехваткой функционала вашего роутера, и именно поэтому он вам не нравится – возможно, стоит попробовать установить OpenWRT.// by Дмитрий Столяров ===== Проблемы ===== ==== Чиним блок питания ==== [[http://wl500g.info/showpost.php?p=159131&postcount=25|Читать]] почти официальный учебник. У rtzra всё произошло так, как уже описывалось в теме: сначала отвалился внешний жёсткий диск, потом пропал интернет, после перезагрузки горят все лампочки LAN, WAN, не горит POWER и еле тлеет AIR. Долго не думали, сходили в серверную и взяли цеху. Цеха показала, шо БП мертвый. Блок питания выдаёт 2,14В даже без резисторов и нагрузки. Через два месяца БП сдох у меня. Ночью ещё интернет был, а с утра - горят 4 лампы. AIR, Power - не горят. Как свичь не работает. Здесь хочу отметить, что не так давно столкнулся с выходом из строя блока питания от маршрутизатора D-Link DI-524UP и отремонтировал его по инструкции из [[http://forum.dlink.ru/viewtopic.php?t=54051|темы]], однако там блок питания не работал вообще, проблема была в запускающем конденсаторе, но схемотехника блоков питания что у ASUS-а, что у D-Link-а одинаковая, как и их характеристики, различаются они только расположением элементов и немного отличающимися номиналами. {{:hardware:my-asus-bp.jpg|}} Теперь про восстановление: - Вскрываем блок питания. (Похоже блоки питания не особо проклеены, по крайней мере свой я открыл довольно просто, сначала немного его поломал за вилку в стороны, пока не исчез небольшой хруст и немного не отошёл край, дальше просунул в образовавшуюся щель пластиковую карту и вскрыл блок питания по кругу). (Если не получается вскрыть таким образом, то придётся резать, как указано в теме с форума D-Link-а) - Вынимаем плату {{:hardware:my-asus-bp2.jpg|}} - В моём случае был вздут кондёр под №2 (10v 1200mkF). Такого под рукой не оказалось, взял 10v 1000mkF - Также по совету знакомого телевизионного мастера поменял запускающий кондёр под №1. Оригинальный был по-моему 25v 10mkF, поменял на 50v 10mkF, который советует автор темы с форума D-Link-а - Собираем блок питания, я использовал для крепления бухгалтерские резинки для денег, опять же совет одного из отвечающих в теме с форума D-Link-а, вдруг ещё придётся вскрывать... (Если важен эстетический вид, то просто проклеить) via: http://wl500g.info/showpost.php?p=141637&postcount=427 В отличии от инструкции по ссылке выше у rtzra БП сам легко не распался и корпус пришлось немного покорежить. У меня разошелся как нужно. ==== некрофилия: Способ 1 ==== Кратко для себя - когда слетает прошивка (так бывает) либо чиь-то шаловливые ручки нажали 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 Железка усваивает эту прошивку и перезагружается сама. На этом все. ==== некрофилия: способ 2 ==== Здесь описывается альтернативный способ восстановления без использования утилиты от АСУСтека. Приготовление: - Выключить питание устройства; - Нажать кнопку RESTORE и удерживая её включить питание устройства - Дождаться, когда начнёт мигать индикатор POWER (примерно 1 секунда) и отпустить кнопку - Взять сетевой кабель (витую пару), подключить один хвост в любой из LAN портов устройства, другой к сетевому адаптеру Вашего ПК - В Windows для протокола TCP/IP назначить адаптеру адрес 192.168.1.2 с сетевой маской 255.255.255.0 (в случае, если у устройства был адрес 192.168.1.1) - Запустить cmd.exe - Проверить, что есть связь с устройством, выполнив команду 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 не загорелся, то необходимо включить/выключить роутер - автозагрузка не сработала по какой-то причине. ==== Хреновый wifi и качество сигнала ==== Отдельно [[hardware:homed-wifi|]] Отдельная ветка про хреновое качество линка wifi, из-за того, что китайцы хреновый транзистор распаяли на V1 -> http://wl500g.info/showthread.php?t=13261 ===== Полезные ссылки ===== - 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 ===== Ссылки ===== * "Олеговский форум" - http://wl500g.info/ * "Олеговская прошивка" - http://oleg.wl500g.info/ * Этот проект является развитием прошивки Олега - http://code.google.com/p/wl500g/ * Скрипт "Установка программ для чайника" и его обсуждение - http://wl500g.info/showthread.php?t=21889&langid=3 * DD-WRT - http://www.dd-wrt.com/wiki/index.php/All_Asus_WL-500xx_series_routers * В чем различие версий DD-WRT смотрим тут: [[http://www.dd-wrt.com/wiki/index.php/What_is_DD-WRT%3F#File_Versions]] {{tag>asus WL-500gP прошивка_Олега dd-wrt}}