Альтернативная прошивка на ASUS RT-N10U для работы с 3G модемом ZTE-MF667
Invite pending
Расскажу о там, как мне удалось подружить роутер Asus RT-N10U BLACK и 3G модем ZTE-MF667. Решение оказалось не столь очевидным, возможно, кому-нибудь пригодится.
Немного про модем ZTE-MF667.
По характеристикам можно сказать, что это достаточно быстрый модем и уверенно держит соединение. Работает на ОС Windows, Mac OS X, linux (с ядром 2.6 и выше).
Но само подключение к интернет весьма интересно. На windows, после установки драйверов, при подключенном модеме, появляется виртуальный сетевой интерфейс, который смотрит на виртуальный роутер. Этот роутер по dhcp выдает сетевые настройки (ip, DNS и шлюз) новому интерфейсу. Также у виртуального роутера есть web-интерфейс, где можно посмотреть статистику, произвести настройки связанные с конкретным оператором связи и т. д.(для beeline и MTS все настраивается автоматически). В общем, все выглядит как-будто не модем подключен к компьютеру, а компьютер подключен к роутеру по ethernet. Для linux дела обстоят еще проще, т.к. драйвера уже есть в ядре. Так что втыкаем модем, и можно выходить в интернет.
Многие роутеры с USB-портом на стандартных прошивках имеют встроенный функционал для работы с 3G модемами. Но перед ZTE-MF667 стандартные прошивки бессильны. Не исключение и стандартная прошивка от Asus на RT-N10U. Очевидно, прошивку нужно менять. Известно, что Asus хорошо дружит с DD-WRT. Также ZTE-MF667 поддерживается этой прошивкой. А легкость, с которой ZTE-MF667 запускается в linux, отбрасывает все сомнения. Но к моему большому сожалению, с dd-wrt подружиться так и не получилось. По аналогии с linux, должен появиться новый сетевой интерфейс, но его нет! Как оказалось, за подъем интерфейса отвечают три модуля ядра (mii, usbnet и cdc_ether), которых нет в стандартной dd-wrt. Я очень долго пытался найти три заветных файла (mii.ko, usbnet.ko и cdc_ether.ko), но гугл мне не помог, а лишь указал на то, что я должен их собрать сам. Немного почитав, я оценил, что это не столь простое занятие, и нужен другой путь.
Поиск привел меня к TomatoUsb, и задача была решена.
Вот небольшая инструкция:
Ищем нужную версию прошивки с поддержкой USB на сайте или здесь. Там же качаем архив с дополнительными модулями (Optional kernel modules).
Заливаем прошивку на роутер согласно инструкции к прошивке.
Через web-интерфейс (http://192.168.1.1) включаем JFFS. Нужно, чтоб залить на роутер наши три заветных файла из дополнительного архива (mii.ko, usbnet.ko и cdc_ether.ko). Там же включаем SSH.
Теперь можно зайти на роутер по ssh, скажем, через Putty. Пробуем создать каталог:
Если каталог создался, по SCP (WinSCP) закидываем туда файлы модулей. Проверяем: команда
Мы на пол пути к успеху. Далее все настройки делаем через web-интерфейс (http://192.168.1.1):
1. Отключаем WAN.
2. В настройках DHCP указываем default gateway 192.168.1.1 и адрес dns сервера 192.168.0.1 (dns сервер модема).
3. В разделе Scripts на вкладке Init добавляем загрузку наших модулей, подъем нового интерфейса eth2, назначаем адрес 192.168.0.10, прописываем роутинг и NAT:
4. Сохраняемся и перезагружаем настроенный роутер, проверяем работу.
Адрес модема-роутера 192.168.0.1. На eth2 адрес прописываем вручную из сети 192.168.0.0/24, автоматом почему-то не получает. MASQUERADE можно заменить на src-nat, т.к. адрес модема не меняется.
Немного про модем ZTE-MF667.
По характеристикам можно сказать, что это достаточно быстрый модем и уверенно держит соединение. Работает на ОС Windows, Mac OS X, linux (с ядром 2.6 и выше).
Но само подключение к интернет весьма интересно. На windows, после установки драйверов, при подключенном модеме, появляется виртуальный сетевой интерфейс, который смотрит на виртуальный роутер. Этот роутер по dhcp выдает сетевые настройки (ip, DNS и шлюз) новому интерфейсу. Также у виртуального роутера есть web-интерфейс, где можно посмотреть статистику, произвести настройки связанные с конкретным оператором связи и т. д.(для beeline и MTS все настраивается автоматически). В общем, все выглядит как-будто не модем подключен к компьютеру, а компьютер подключен к роутеру по ethernet. Для linux дела обстоят еще проще, т.к. драйвера уже есть в ядре. Так что втыкаем модем, и можно выходить в интернет.
Многие роутеры с USB-портом на стандартных прошивках имеют встроенный функционал для работы с 3G модемами. Но перед ZTE-MF667 стандартные прошивки бессильны. Не исключение и стандартная прошивка от Asus на RT-N10U. Очевидно, прошивку нужно менять. Известно, что Asus хорошо дружит с DD-WRT. Также ZTE-MF667 поддерживается этой прошивкой. А легкость, с которой ZTE-MF667 запускается в linux, отбрасывает все сомнения. Но к моему большому сожалению, с dd-wrt подружиться так и не получилось. По аналогии с linux, должен появиться новый сетевой интерфейс, но его нет! Как оказалось, за подъем интерфейса отвечают три модуля ядра (mii, usbnet и cdc_ether), которых нет в стандартной dd-wrt. Я очень долго пытался найти три заветных файла (mii.ko, usbnet.ko и cdc_ether.ko), но гугл мне не помог, а лишь указал на то, что я должен их собрать сам. Немного почитав, я оценил, что это не столь простое занятие, и нужен другой путь.
Поиск привел меня к TomatoUsb, и задача была решена.
Вот небольшая инструкция:
Ищем нужную версию прошивки с поддержкой USB на сайте или здесь. Там же качаем архив с дополнительными модулями (Optional kernel modules).
Заливаем прошивку на роутер согласно инструкции к прошивке.
Через web-интерфейс (http://192.168.1.1) включаем JFFS. Нужно, чтоб залить на роутер наши три заветных файла из дополнительного архива (mii.ko, usbnet.ko и cdc_ether.ko). Там же включаем SSH.
Теперь можно зайти на роутер по ssh, скажем, через Putty. Пробуем создать каталог:
mkdir /jffs/modules
и проверяем командой что получилось ls /jffs/
.Если каталог создался, по SCP (WinSCP) закидываем туда файлы модулей. Проверяем: команда
ls /jffs/modules
должна показать 3 файла: mii.ko, usbnet.ko и cdc_ether.ko. Мы на пол пути к успеху. Далее все настройки делаем через web-интерфейс (http://192.168.1.1):
1. Отключаем WAN.
2. В настройках DHCP указываем default gateway 192.168.1.1 и адрес dns сервера 192.168.0.1 (dns сервер модема).
3. В разделе Scripts на вкладке Init добавляем загрузку наших модулей, подъем нового интерфейса eth2, назначаем адрес 192.168.0.10, прописываем роутинг и NAT:
insmod /jffs/modules/mii.ko
insmod /jffs/modules/usbnet.ko
insmod /jffs/modules/cdc_ether.ko
ifconfig eth2 up
ifconfig eth2 192.168.0.10 netmask 255.255.255.0 broadcast 192.168.0.255
route add default gw 192.168.0.1 eth2
iptables --table nat --append POSTROUTING --out-interface eth2 -j MASQUERADE
4. Сохраняемся и перезагружаем настроенный роутер, проверяем работу.
Адрес модема-роутера 192.168.0.1. На eth2 адрес прописываем вручную из сети 192.168.0.0/24, автоматом почему-то не получает. MASQUERADE можно заменить на src-nat, т.к. адрес модема не меняется.