Отвечу, как я настраивал совместное использование двух провайдеров на wl600-g.
Прошивка за основу берётся стандартная, я скачал с сайта ASUS'а версию 1.0.3.3.A (в исходниках)
Копать надо в веб-интерфейсе в направлении Advanced Setup -> Port Mapping. Включаем "Enable virtual ports on LAN (1-4)", затем на этом же экране можно добавлять VLAN на конкретные порты (LAN1, LAN2, LAN3, LAN4, Wireless, USB). Кстати, порты проименованы задом наперёд: LAN1 отображается на устройство eht0.5, LAN2 - на eth0.4, и т.д.
Стандартный VLAN отображается в роутере на устройство br0, после добавления пользовательского VLAN'а появится br1, и т.д.
Затем я выполнял кое-какой свой скриптик для настройки второй сети.
Например, подменить мак-адрес:
Code:
ip link set eth0.5 down
ip link set eth0.5 address $WAN_MACADDR
ip link set eth0.5 up
, прописать маршруты, правила для iptables, и всё остальное, что было нужно. Целиком этот скрипт выкладывать сюда нет смысла, потому что там все настройки индивидуальные для конкретной сети.
Скрипт у меня хранится на флешке, подключённой к USB.
Самое сложное было - заставить систему исполнять этот скрипт после каждой перезагрузки роутера, после того как подмонтируется флешка.
Тут я не придумал ничего более умного, как влезть в прошивку и кое-куда там вклиниться. Наверняка, есть более простой способ это сделать, но я про него не знаю.
Идея такая, что после монтирования внешней флешки по USB, система автоматически запускакет свой доморощенный ftp-сервер, который называется
stupid-ftpd.
Залезаем в исходники прошивки, и видим, что исходного кода stupid-ftpd там нету. Вместо этого там есть бинарный файл
/opt/bcm963xx/userapps/broadcom/stupid-ftpdmips/stupid-ftpd_96348GW_save, который при сборке прошивки копируется в
/opt/bcm963xx/targets/fs.src/bin/stupid-ftpd
Вот к нему то и можно прицепиться.
Копируем оригинальный файл под именем
/opt/bcm963xx/targets/fs.src/bin/stupid-ftpd2 .
Затем нам понадобится программа-подменка:
Code:
#include <stdlib.h>
int main(int argc, char* argv[])
{
system("/var/harddisk/autoexec.sh");
system("/bin/stupid-ftpd2 &");
return 0;
}
компилируем программу с помощью
/opt/toolchains/uclibc-crosstools/bin/mips-linux-gcc, и сохраняем полученный результат под оригинальным именем
/opt/bcm963xx/userapps/broadcom/stupid-ftpdmips/stupid-ftpd_96348GW_save
Пересобираем прошивку, устанавливаем.. скрипт /var/harddisk/autoexec.sh запускается, всё работает.
Я выложил получившуюся прошивку вот сюда:
http://slil.ru/26548216 . Если будут какие-то вопросы, обращайтесь, постараюсь ответить