Главная
Главная Руководства FreeBSD › FreeBSD - подключаемся к Мегафон



Автор:

Статья опубликована: 2015-03-13 15:00:41
Последние правки: 2023-07-14 23:55:57

Нет ничего проще! Подключение доступно даже на только что установленной FreeBSD. Подключаемся при помощи 3G или 4G-модема.

  • Исходные данные
    # uname -sr
    FreeBSD 10.0-RELEASE-p18
    
    Проверено на модемах: HUAWEI E1550, HUAWEI E3372. Устройства нужно перевести в режим "только модем", иначе работать не будет.


  • Настройка FreeBSD для работы с модемом
    # ee /boot/loader.conf
    
    Добавляем строки:
    umodem_load="YES"
    u3g_load="YES"
    

  • Перезагружаемся
    Втыкаем модем в USB порт

  • Настраиваем:
    /etc/ppp/ppp.conf
    default:
     set log Phase Chat LCP IPCP CCP tun command
     ident user-ppp VERSION
     enable dns
     add default HISADDR
    
    megafon:
     set device /dev/cuaU0.0
     set speed 460800
     set dial "\"\" \ AT OK \ AT OK \ ATS0=0 OK \ AT OK \ AT&FE0V1X1&D2&C1s0=0 OK \ AT OK \ AT+CGDCONT=1,\\\"IP\\\",\\\"internet\\\" OK \ ATDT*99***1# CONNECT"
     set login
     set authname "megafon"
     set authkey "megafon"
     disable pap
     disable chap
     set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
    
    /dev/cuaU0.0 - это адрес устройства, он может отличаться от моего, так что смотрите по месту сами.


  • Подключаемся:
    # ppp -ddial megafon
    

  • Отключение
    Под root
    # killall ppp
    
  • Если у вас FreeBSD собрана с поддержкой ipv6, то могут выскочить подводные камни в виде ошибки "Warning: Add! route failed: ff02::: errno: Value too large to be stored in data type". При этом даже ipv4 маршрут по умолчанию на провайдера не пропишется. Как это побороть штатными средствами я не нашел, поэтому взял скрипт из статьи про подключение к домру.
    #!/bin/sh
    # ppp интерфейс
    drif='tun0'
    # провайдер как метка в /etc/ppp/ppp.conf
    provider='megafon'
    gate=''
    iface=`ifconfig $drif | grep 'Opened by'`
    
    # смотрим, поднят ли ppp интерфейс, если поднят, то грохаем
    while [ "$iface" ]
    do
        iface=`ifconfig $drif | grep 'Opened by'`
        if [ "$iface" ]
        then
            killall ppp
            sleep 5
        fi
    done
    
    ppp -ddial $provider
    
    # ждем пока поднимется интерфейс, вытаскиваем gateway и прописываем
    # по умолчанию
    until [ "$gate" ]
    do
        gate=`ifconfig $drif | grep inet | awk '{print $4}'`
        if [ "$gate" ]
        then
            route change default $gate
            exit 0
        fi
    done