Превращаем D-Link DIR-825 в 3G-роутер с помощью Huawei E1750 и OpenWRT

Имея в наличии роутер D-Link под управление с usb-портом на борту и -модем , почему бы не попробовать их объединить? Тем более, прекрасно работает в Linux. Таким образом можно получить очень функциональный 3G-роутер или резервный канал доступа в интернет.

Итак, что нам для этого понадобится:

 [email protected]:~$ opkg update [email protected]:~$ opkg install kmod-usb-acm kmod-usb-core kmod-usb-ohci kmod-usb-serial \ kmod-usb-serial-option kmod-usb-storage kmod-usb-uhci kmod-usb2 usb-modeswitch comgt 

После этого — подключаем модем, должны увидеть примерно следующее:

 [email protected]:~$ dmesg ... sb 2-1: new full speed USB device using ar71xx-ohci and address 2 usb 2-1: configuration #1 chosen from 1 choice scsi0 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning scsi1 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 2 usb-storage: waiting for device to settle before scanning scsi 0:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2 usb-storage: device scan complete scsi 1:0:0:0: Direct-Access HUAWEI SD Storage 2.31 PQ: 0 ANSI: 2 usb-storage: device scan complete sd 1:0:0:0: [sda] Attached SCSI removable disk 

Настроим usb-modeswitch, чтобы получить, собственно, модем. Для этого создаем файл /etc/usb-modeswitch.conf:

 ######################################################## # Мegafon 3G Modem E1750 # Use device /dev/ttyUSB0 for connecting DefaultVendor=0x12d1 DefaultProduct=0x1446 MessageContent="55534243000000000000000000000011060000000000000000000000000000" 

Инициализируем модем:

 [email protected]t:~$ usb_modeswitch -c /etc/usb-modeswitch.conf Warning: TargetProductList overrides TargetProduct! Looking for target devices ... No devices in target mode or class found Looking for default devices ... Found devices in default mode or class (1) Accessing device 006 on bus 002 ... Using endpoints 0x01 (out) and 0x81 (in) Using endpoints 0x01 (out) and 0x81 (in) Inquiring device details; driver will be detached ... Looking for active driver ... OK, driver found ("usb-storage") OK, driver "usb-storage" detached SCSI inquiry data (for identification) ------------------------- Vendor String: HUAWEI Model String: Mass Storage Revision String: 2.31 ------------------------- USB description data (for identification) ------------------------- Manufacturer: HUAWEI Technology Product: HUAWEI Mobile Serial No.: not provided ------------------------- Setting up communication with interface 0 ... Using endpoint 0x01 for message sending ... Trying to send message 1 to endpoint 0x01 ... Device seems to have vanished right after sending. Good. Device is gone, skipping any further commands Checking for mode switch (max. 20 times, once per second) ... Original device is gone already, not checking Searching for target devices ... Searching for target devices ... Searching for target devices ... Searching for target devices ... Searching for target devices ... Found correct target device Mode switch succeeded. Bye. 

После этого получаем заветные девайсы:

 [email protected]:~$ dmesg ... usb 2-1: new full speed USB device using ar71xx-ohci and address 2 usbcore: registered new interface driver usbserial USB Serial support registered for generic usb 2-1: configuration #1 chosen from 1 choice usbserial_generic 2-1:1.0: generic converter detected usb 2-1: generic converter now attached to ttyUSB0 usbserial_generic 2-1:1.1: generic converter detected usb 2-1: generic converter now attached to ttyUSB1 usbcore: registered new interface driver usbserial_generic usbserial: USB Serial Driver core ... 

Выполнять такие манипуляции каждый раз при перезагрузке или подключении модема не очень то хочется, от этого нас избавит udev:

 [email protected]:~$ opkg update [email protected]:~$ opkg install udev 

Создаем файл /etc/udev/rules.d/40-usb_modeswitch.rules:

 ACTION!="add", GOTO="modeswitch_rules_end" SUBSYSTEM!="usb", GOTO="modeswitch_rules_end" # Most known install partitions are on interface 0, one on 5, one on 9 ATTRS{bInterfaceNumber}!="0[059]", GOTO="modeswitch_rules_end" # only storage class devices are handled; negative # filtering here would exclude some quirky devices ATTRS{bDeviceClass}=="08", GOTO="modeswitch_rules_begin" ATTRS{bInterfaceClass}=="08", GOTO="modeswitch_rules_begin" GOTO="modeswitch_rules_end" LABEL="modeswitch_rules_begin" # Huawei, newer modems ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1446", RUN+="usb_modeswitch '%b/%k'" LABEL="modeswitch_rules_end" 

Приступим к конфигурации интерфейса, добавим в /etc/config/network (APN указана для МегаФона, у других операторов может отличаться):

 config 'interface' 'wan2' option 'ifname' 'ppp0' option 'peerdns' '1' option 'defaultroute' '1' option 'proto' '3g' option 'device' '/dev/ttyUSB0' option 'apn' 'internet' option 'pincode' '1234' 

И подключаемся:

 [email protected]:~$ ifup wan2 SIM ready PIN set successfully [email protected]:~$ ifconfig 3g-wan2 3g-wan2 Link encap:Point-to-Point Protocol inet addr:10.237.xxx.xxx P-t-P:10.64.xxx.xxx Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1492 Metric:1 RX packets:5 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 RX bytes:56 (56.0 B) TX bytes:44 (44.0 B) 

Переходим к настройкам межсетевого экрана. В /etc/config/firewall добавляем:

 config 'zone' option 'output' 'ACCEPT' option 'name' 'wan2' option 'network' 'wan2' option 'input' 'REJECT' option 'forward' 'REJECT' option 'masq' '1' option 'mtu_fix' '1' config 'forwarding' option 'dest' 'wan2' option 'src' 'lan' 

Перезачитываем конфиг:

 [email protected]:~$ /etc/init.d/firewall relad 

Устройство полностью готово к работе!