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

в 11:14, , рубрики: how-to, huawei, pfsense, 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.
How To: Подключение Pfsense с модемом Huawei E392 к провайдеру Yota

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

В дополнительных опциях необходимо указать, что подключение будем поднимать по запросу – Включить опцию Dial on Demand.
How To: Подключение Pfsense с модемом Huawei E392 к провайдеру Yota

После этого новый интерфейс появится на вкладке Interface assignments.
How To: Подключение Pfsense с модемом Huawei E392 к провайдеру Yota

Включаем его через верхнее меню Interfaces -> OPT1 и включаем его, выбирая в типе интерфейса PPP, в телефонном номере *99# и APN yota.ru.
How To: Подключение Pfsense с модемом Huawei E392 к провайдеру Yota

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

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

Заключение

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

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

Автор: Arheus

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js