How-To: Подключение Pfsense с модемом Huawei E392 к провайдеру Yota

от автора

Введение

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

[2.0.3-RELEASE][admin@pfsense.office]/root(1): uname -a FreeBSD pfsense.office 8.1-RELEASE-p13 FreeBSD 8.1-RELEASE-p13 #0: Fri Apr 12 10:47:01 EDT 2013     root@snapshots-8_1-i386.builders.pfsense.org:/usr/obj.pfSense/usr/pfSensesrc/src/sys/pfSense_SMP.8  i386 

Почему Huawey E392?

Данный модем был выбран из-за наличия устойчивого приема в местах, где не ловят обычные модемы. Так же, к нему можно подключить внешнюю антенну и вынести ее на внешнюю стену здания.
Роутер уже был в наличии, давно и успешно работал, и не хотелось из-за смены провайдера менять еще и дополнительное оборудование. Покупка нового роутера от Yota нежелательно, ибо всяческие плюшки, типа блокировки сайтов и шейпинг канала в нем недоступны.

Перевод модема в режим модема

По умолчанию модем находится в режиме usbdisk + CD-ROM для установки драйверов под Windows. Драйвера находятся прямо на нем. Нам этот режим малоинтересен, нужно перевести его в режим модема.
Проверяем, что модем увиделся в системе командой dmesg. Должны быть вот такие строчки:

da3: Attempt to query device size failed: NOT READY, Medium not present Root mount waiting for: usbus4 ugen4.3: <Huawei Technologies> at usbus4 umass1: <Huawei Technologies HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 3> on usbus4 umass1: SCSI over Bulk-Only; quirks = 0x0000 Root mount waiting for: usbus4 umass1:1:1:-1: Attached to scbus1 Trying to mount root from ufs:/dev/ad6s1a WARNING: / was not properly dismounted (probe0:umass-sim1:1:0:0): TEST UNIT READY. CDB: 0 0 0 0 0 0 (probe0:umass-sim1:1:0:0): CAM status: SCSI Status Error (probe0:umass-sim1:1:0:0): SCSI status: Check Condition (probe0:umass-sim1:1:0:0): SCSI sense: NOT READY asc:3a,0 (Medium not present) cd0 at umass-sim1 bus 1 scbus1 target 0 lun 0 cd0: <HUAWEI Mass Storage 2.31> Removable CD-ROM SCSI-0 device cd0: 40.000MB/s transfers cd0: Attempt to query device size failed: NOT READY, Medium not present 

Проверяем, какие idVendor и idProduct установлены по-умолчанию командой usbconfig -d 4.3 dump_device_desc, значение параметра -d смотрим из вывода dmesg (ugen4.3: <Huawei Technologies> at usbus4):

ugen4.3: <HUAWEI Mobile Huawei Technologies> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON bLength = 0x0012 bDescriptorType = 0x0001 bcdUSB = 0x0200 bDeviceClass = 0x0000 bDeviceSubClass = 0x0000 bDeviceProtocol = 0x0000 bMaxPacketSize0 = 0x0040 idVendor = 0x12d1 idProduct = 0x1505 bcdDevice = 0x0000 iManufacturer = 0x0003 <Huawei Technologies> iProduct = 0x0002 <HUAWEI Mobile> iSerialNumber = 0x0000 <no string> bNumConfigurations = 0x0001 

Поскольку в редакции FreeBSD pfSence отсутствуют /usr/ports, то ставить пакет для изменения конфигурации модема будем напрямую из официального репозитория по прямой ссылке
Нам нужен скомпилированный пакет usb_modeswitch.

pkg_add -r ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-8-stable/Latest/usb_modeswitch.tbz 

Данный пакет хранит конфигурацию в файле /usr/local/etc/usb_modeswitch.conf и скрипт запуска /usr/local/sbin/usb_modeswitch
После установки правим конфигурационный файл, внося в него idVendorи idProduct:

DisableSwitching=0 EnableLogging=1 DefaultVendor= 0x12d1 DefaultProduct= 0x1505 TargetVendor= 0x12d1 TargetProduct= 0x140c TargetClass= 01 DetachStorageOnly=0 HuaweiMode=0 MessageEndpoint= not set MessageContent="55534243000000000000000000000011060000000000000000000000000000" NeedResponse=0 ResponseEndpoint= not set 

В результате мы получаем замену DefaultProduct 0x1505 на TargetProduct 0x140c.
Для этого исполняем скрипт, подставляя ему конфиг:

/usr/local/sbin/usb_modeswitch -H -c /usr/local/etc/usb_modeswitch.conf 

Проверяем usbconfig -d 4.3 dump_device_desc, нас устраивают значения idProduct 0x1506 и 0x140c.
Проверяем dmesg, должны получить следующие строчки на выходе:

ugen4.3: <Huawei Technologies> at usbus4 u3g0: <Huawei Technologies HUAWEI Mobile, class 0/0, rev 2.00/0.00, addr 3> on usbus4 u3g0: Found 4 ports. 

Но этого недостаточно, при перезагрузке наш модем снова вернется к своим настройкам, и подключение сбросится. Чтобы этого не произошло, добавим в файл /etc/devd.conf проверку при запуске, в нужной ли конфигурации находится наше устройство, и запуск скрипта, если оно в режиме USBmass

attach 10 { device-name "ugen[0-9]+"; match "vendor" "0x12d1"; match "product" "0x1505"; action "/usr/local/sbin/3G.sh"; }; 

Создаем файл /usr/local/sbin/3G.sh и делаем его исполняемым. Содержимое файла:

#!/bin/sh sleep 3 /usr/local/sbin/usb_modeswitch -H -c /usr/local/etc/usb_modeswitch.conf sleep 12 /usr/local/sbin/usb_modeswitch -H -c /usr/local/etc/usb_modeswitch.conf 
Настройка подключения к провайдеру

Для создания подключения к Yota заходим в верхнем меню Interfaces -> (assign) и выбираем вкладку PPPs.

Добавляем новое подключение, тип PPP, указываем Link (/dev/cauU0.3) телефонный номер*99#, адрес точки доступа yota.ru.

В дополнительных опциях необходимо указать, что подключение будем поднимать по запросу – Включить опцию Dial on Demand.

После этого новый интерфейс появится на вкладке Interface assignments.

Включаем его через верхнее меню Interfaces -> OPT1 и включаем его, выбирая в типе интерфейса PPP, в телефонном номере *99# и APN yota.ru.

Добавляем оборудование в личный кабинет

Под занавес, вам нужно зарегистрировать оборудование в личном кабинете на сайте Yota.ru и привязать устройство к вашему личному кабинету. Это можно сделать с любой машины, в качестве ID оборудования указывайте ID номер на sim-карте из 10 цифр (010100xxxx). Без этого ходить вы сможете только до сайта yota.ru

Заключение

На этом настройка завершена, можем пользоваться. Для других модемов данная конфигурация так же справедлива, вам необходимо всего лишь уточнить параметры idVendor и idProduct, требуемые для работы оборудования в режиме модема и подставить их в конфигурацию.

Автор: Дмитрий Барсуков, будет благодарен за инвайт, если статья этого достойна, а так же за указания на возможные недочеты и ошибки. Спасибо!

ссылка на оригинал статьи http://habrahabr.ru/post/187702/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *