Настройка подключения к Internet через ррр(3G-модем)

Итак, единственный доступный мне способ подключения к internet — это usb-модем от Мегафона. С момента написания этой статьи многое было понято заново, переосмысленно и думаю тут я углублюсь в техническую сторону его настройки.

Установка

Для начала нам необходим пакет ppp, ну и make, если ещё не стоит

# apt-get install ppp make

Затем, закачиваем вот этот файлик huawei.tar.bz2 распаковываем, и выполняем

# make install_ubuntu

Ubuntu и Debian — генетически очень близки и ничего удивительного, что пакеты от одного подходят и другому.

В процессе «установки» из этого пакета достаётся несколько файлов и размещается где надо. Что это за файлы

/etc/udev/rules.d/99-huawei.rules

Это правило для udev, благодаря которрому и удаётся использовать huawei-e220 как модем, а не как CD-диск, которым он вначале прикидывается. Вот его содержимое. Знатоки udev наверняка найдут в нём много интересного, я же просто приведу его как есть.

##
#
# udev rule for HUAWEI E220 3G HSDPA Modem
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# (c)opyleft    OOZIE < oozie@poczta.fm >
#
# This file prevents the pseudo scsi cdrom device from enabling,
# thus providing a workaround for kernel versions < 2.6.20
#
##

SUBSYSTEM=="block", \
ACTION=="add", \
SYSFS{idVendor}=="12d1", \
SYSFS{idProduct}=="1003", \
IMPORT{program}="huawei-mobile.sh", \
OPTIONS="ignore_device"

/etc/ppp/peers/huawei-e220

Это pppd — конфиг для соединения с провайдером. Содержит основные настройки ppp-соединения. D него я наставил камментов для пояснения, так как с этим файлом у меня возникли некоторые сложности, заставившие прибегнуть к паре грязных хаков.

# /etc/ppp/peers/huawei-e220 pppd script
# pppd call huawei-e220

/dev/ttyUSB0    # Устройство модема
3600000         # Скорость соединения
noipdefault     # Использовать локальный IP и IP-шлюза выдаваемые провайдером
defaultroute    # Создать при соединении маршрут по уполчанию на IP шлюза провайдера
persist
noauth
nodetach
userpeerdns     # Использовать IP DNS серверов, выдаваемых провайдером
connect "/usr/sbin/chat -vf /etc/chatscripts/huawei-e220.chat" #Использовать этот скрипт соединения

/etc/chatscripts/huawei-e220.chat

Скрипт дозвона. Его тоже приведу без камментов. С мегафоном он прекрасно работает. Не исключено, что его надо поправить, если у других операторов, например, отличается номер дозвона или требуется логин и пароль.

TIMEOUT 3
ABORT BUSY
ABORT 'NO CARRIER'
ABORT VOICE
ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE'
ABORT 'NO ANSWER'
ABORT DELAYED
"" ATZ
OK ATQ0V1E1S0=0&C1&D2
OK ATDT*99#
CONNECT ""

Запуск

Собственно всё, что нужно — запустить pppd, передав ему в качестве параметра имя провайдера huawei-e220

#pppd call huawei-e220&

Читерство

А теперь о грустном, несмотря на присутствие в /etc/ppp/peers/huawei-e220 строчки

defaultroute

И отсутствию(я её убрал, так как собирался использовать свой DNS)

usepeerdns

Я поимел 2 проблемы

  1. После установки соединения, маршрут по умолчанию так и не появлялся
  2. Несмотря на заверения документации, после соединения DNS-серверы в /etc/ppp/resolv.conf прописывались те, которые присылал провайдер, а не те, которые мне были необходимы, и лежали в /etc/resolv.conf.

Зная, что в качестве шлюза ppp-соединения свегда получается 10.64.64.64, я пошел на то, чтобы прописать в /etc/rc.local(этот скрипт всегда исполняется после загрузки системы), следующее

pppd call huawei-e220 &            # Поднимаем ppp-соединение
route add default gw 10.64.64.64   # Прокидываем маршрут по умолчанию
cp /etc/resolv.conf /etc/ppp       # Подсовываем свои DNS-серверы

После перезагрузки получаем машинку, подключенную к Internet


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