3G интернет набирает обороты. Сегодня с его помощью реально качественно интернетизировать объекты, к которым суждено быть без кабельного интернета еще не один год.

3G модемы (технологии EV-DO, UMTS, операторы Интертелеком, Utel, CDMA-Украина, МТС-Коннект), в основном, имеют USB интерфейс. Это очень удобно, когда нужно подключить к всемирной сети один комьпютер, и совсем неудобно, если нужно подкючить их несколько. В таком случае лучше всего организовать локальную сеть и раздавать интернет по этой сети через один модем, подключенный к роутеру. Но роутеры, позволяющие осуществить такой план, стоят минимум в два раза дороже обычных и это совсем некстати, если мы говорим о малобюджетной домашней сети. К тому же, в это кризисное время дорогие роутеры многие фирмы поставляют неохотно - лучше берут дешевые модели.

Выход есть - бюджетный роутер D-Link Dir-320. В нем есть четыре сетевых порта, функции беспроводной сети Wi-Fi и куча дополнительных возможностей. А главное - USB порт. Официально поддержка 3G модемов не заявлена, порт предназначен для подключения принтера или флешки. Но в этот роутер можно залить прошивку от более дорогой модели - Asus WL500gPremiumV2, которая отлично работает с большинством 3G и GPRS модемов и телефонов.


Процесс перепрогаммирования роутера подходящей прошивкой описан на специализированных форумах. Привожу краткие упрощенные инструкции. Синим выделено то, что нужно печатать на клавиатуре. Можно не печатать, а копировать на этой странице (Ctrl+C) и встравлять в окне с командной строкой (Shift+Ins).

1. Загружаем нужную прошивку.
2. Cохраняем файл прошивки в любой папке, например новой папке c:\bin
3. Создаем файл flashing.cmd в любом текстовом редакторе и сохраняем этот файл в папку c:\bin

Содержимое файла flashing.cmd:

@Echo Off
:BEGIN
ping -n 1 -w 1 192.168.0.1
If errorlevel 1 Goto BEGIN
If errorlevel 0 Goto FLASH
Goto END

:FLASH
Echo *** Start Flashing ****
tftp -i 192.168.0.1 put firmware.bin

:END

4. Устанавливаем адрес сетевой карты компьютера 192.168.0.2, маска 255.255.255.0, шлюз и DNS прописывать не надо. Подключаем к сетевой карте компьютера сетевой кабель, а второй конец сетевого кабеля вставляем в любой порт LAN роутера, питание роутера не включаем.
5. Запускаем командную строку ПУСК->Выполнить-> cmd, переходим в папку cd c:\bin и запускаем командный файл flashing.cmd

C:\bin>flashing.cmd

6. Нажимаем и удерживаем кнопку Reset нажатой ну например спичкой, включаем питание роутера, и как только замигает индикатор Lan, кнопку Reset отпускаем.
7. Наблюдаем процесс прошивки

Обмен пакетами с 192.168.0.1 по 32 байт:

Превышен интервал ожидания для запроса.

Статистика Ping для 192.168.0.1:
Пакетов: отправлено = 1, получено = 0, потеряно = 1 (100% потерь),
<<< SKIP >>> <<< SKIP >>> <<< SKIP >>> <<< SKIP >>>
Обмен пакетами с 192.168.0.1 по 32 байт:

Ответ от 192.168.0.1: число байт=32 время=4мс TTL=100

Статистика Ping для 192.168.0.1:
Пакетов: отправлено = 1, получено = 1, потеряно = 0 (0% потерь),
Приблизительное время приема-передачи в мс:
Минимальное = 4мсек, Максимальное = 4 мсек, Среднее = 4 мсек
*** Start Flashing ****
Успешная передача: 3592480 байт за 11 сs, 281134 байт/с
C:\bin>

8. После того, как загорится индикатор статуса (~1-2 мин) производим сброс настроек роутера по умолчанию. Для этого нажимаем и удерживаем кнопку Reset нажатой, пока не замигает индикатор статуса. Отпускаем Reset. Роутер перезагрузится. После этого необходимо изменить IP адрес сетевой карты компьютера(по кабелю или WiFi) на получение адреса автоматически по DHCP (получать IP-адрес автоматически).

На этом месте у меня в первый раз все не заработало. Заработало на второй или третий (то есть, пришлось два или три раза заливать прошивку). Не знаю, с чем это связано, но два-три раза повторить заливку можно, это не сложно.

Очень важно: после перепрошивки адрес роутера меняется на 192.168.1.1. Логин и пароль - admin/admin.

Теперь, когда нужная прошивка залита, настраиваем роутер на взаимодействие с модемом.

9. Заходим телнетом на роутер (ПУСК->Выполнить->telnet):

c:/> telnet 192.168.1.1
Login: admin
Password: admin

10. Создаём недостающий каталог

mkdir /tmp/ppp/peers

11. Запускаем редактор и используем “копипаст”

vi

12. Веделяем весь фрагмент (желательно заблаговременно перенести в блокнот и сделать необходимые изменения, касательно логина и пароля (ААА,ВВВ))
В редакторе vi переходим в режим редактирования, нажав “i” и всталяем скрипт, начиная с верхнего левого угла

debug
/dev/usb/tts/0
921600
crtscts
noipdefault
ipcp-accept-local
lcp-echo-interval 60
lcp-echo-failure 5
usepeerdns
noauth
nodetach
user ‘AAA’
password ‘BBB’
connect “/usr/sbin/chat -s -S -V -t 60 -f /tmp/ppp/dialup.chat 2>/tmp/chat.log”

13. Жмём “Esc” и сохраняем в файл командой

:w /tmp/ppp/peers/dialup

14. Выходим из редактора

:q

15. Просматриваем результат

cat /tmp/ppp/peers/dialup

16. Аналогично со вторым скриптом

vi (копипастом)

A) для CDMA

” ”
” ‘ATZ’
‘OK’ ‘ATD #777′
‘CONNECT’ ”

B) для GSM (правим точку доступа APNAPN под себя)

” ”
” ‘ATZ’
” ‘AT+CGDCONT=1,”IP”,”APNAPN”‘
‘OK’ ‘ATD *99#’
‘CONNECT’ ”

:w /tmp/ppp/dialup.chat

:q

cat /tmp/ppp/dialup.chat

17. Добавляем ссылки на созданные файлы

echo /tmp/ppp/peers/dialup > /tmp/local/.files
echo /tmp/ppp/dialup.chat >> /tmp/local/.files

18. Сохраняемся

flashfs save && flashfs commit && flashfs enable

19. Перезагружаемся

reboot

20. Нам нужно определить параметры vendor=????? product=????? для нашего модема. Для каждого устройства они уникальны.
Делаем следующее. В открытой сессии telnet даём команду:

tail -f /usr/tmp/syslog.log - получаем логи ядра системы.

Теперь вставляем модем в роутер и наблюдаем за происходящим. На экран выдаст нечто подобное:

Jan 1 02:02:09 kernel: hub.c: new USB device 00:03.0-1, assigned address 2
Jan 1 02:02:09 kernel: usb.c: USB device 2 (vend/prod 0×106с/0×3711) is not claimed by any active driver.

Переписываем нужные нам параметры. Выход по Ctrl-C.

21. Пробуем запустить порт (используем свои параметры естественно)

insmod usbserial vendor=0×106c product=0×3711

22. Проверяем

ls -l /dev/usb/*

23. Пробуем соединиться (параметр nodetach нужен чтобы видеть процесс)

pppd call dialup

24. Если всё прошло успешно - выходим по Ctrl-C
Теперь можно создать автоподключение при запуске роутера (аналогично с первым скриптом)

mkdir /tmp/local/sbin

vi (копипастом, не забываем указывать свои конкретные параметры)

#!/bin/sh
insmod usbserial vendor=0×106c product=0×3711
sleep 5
pppd call dialup

:w /tmp/local/sbin/post-boot
:q

cat /tmp/local/sbin/post-boot

25. Делаем скрипт post-boot исполняемым

chmod +x /tmp/local/sbin/post-boot

26. сохраняем последние изменения

flashfs save && flashfs commit && flashfs enable

reboot

27. Теперь при включении роутера автоматом всё должно подключаться и работать.