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: 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, требуемые для работы оборудования в режиме модема и подставить их в конфигурацию.

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

    Подробнее
    Реклама
    Комментарии 2
    • +1
      Поддержите redmine.pfsense.org/issues/1388 Било б очень кстати при падении основного канала чтоби автоматически поднимался 3G канал. Или ктото такоє уже делал?
      • 0
        Вам нужно использовать Gateway Groups. Найти эту настройку можно через System->Routing->Groups.
        Вы объединяете интерфейсы, и назначаете им метод срабатывания.

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