Настраиваем GPRS соединение в Gentoo Linux

Статья посвящена настройке GPRS-соедения в Gentoo Linux. Многое из сказанного справеливо также в отношении других дистрибутивов

[Артем Носов aka ChiP (chip-set@mail.ru)]

Настраиваем GPRS соединение в Gentoo

К слову сказать, на этот шаг меня сподвигла акция Beeline, проводимая в городе Калуга, Россия: любому абоненту их компании предоставляется БЕСПЛАТНАЯ (до 15 ноября) возможность воспользоваться услугами GPRS internet'a. Не купиться на это - было трудно :) Прихватив паспорт, я направился прямиком к ним в офис для заключения договора на подключение. Именно на подключение!, т.к. по своей натуре я являюсь абонентом МТС. Хотя через пять минут я разместил свою кандидатуру и в Билайновском сообществе. В качестве тарифа был выбран Би+Тайм и начальный взнос в 5 вечнозеленых (минимально возможный). На следующий день (договора направляются в Москву) я успешно активировал услуги GPRS-internet и GPRS-Wap, набрав указанные в распечатке номера телефонов. Этим же днем был арендован :) у друга COMовский (в плане подключения к COM порту, а не наименование фирмы) шнурок (кабель) и уже вечером я наслаждался халявным GPRS интернетом. Днем позже мною был приобрел USB кабель с "болтающейся" по середине коробочкой и микросхемкой внутри ее. Как позже, при подключении к компьютеру, выяснилось это Prolific PL-2303 USB to serial adaptor driver, для которого требуется отдельный модуль (драйвер в windows транскрипции).

Кратко остановлюсь на содержании самой статьи. Как можно понять из названия заметки, акцент будет сделан на дистрибутиве Gentoo, но многое из сказанного (сколько вы раз встречали эту фразу ? :) будет справедливо и для других дистрибутивов, в том числе и FreeBSD. На этом вводная часть, как мне кажется, подходит к концу и наступает самая захватывающая часть описываемого процесса:

"Ядрёное" конфигурирование

Эта процедура потребует от Вас установленных исходных текстов ядра. В большинстве случаев они остаются после установки дистрибутива. Eсли же по какой-то причине вы их удалали, выберете любое Вам понравившееся ядро из :

    ls -d /usr/portage/sys-kernel/*-sources
и установите его командой:
    emerge sys-kernel/<NAME>-sources
, где <NAME> - выбранное Вами имя. От себя осмелюсь порекомендовать xfs-sources или gentoo-sources, поклонникам же т.н. pure sources идеально подойдут vanilla-sources.

Да и вот еще что, этот этап в Вашем случае может оказаться вовсе необязательным. Например, у Вас присутсвуют все ниже перечисленные "обязательные" компоненты в виде модулей. Мне потребовалась пересборка из-за отсутствия модуля для USB to RS-232 Adaptor'a, располагающегося на USB-кабеле. Итак, следующие опции подлежат обязательному включению (в качестве модуля или "монолитом"):

    В секции Networking options->
      TCP/IP networking
    В секции Network device->
      PPP (point-to-point protocol) support
Для моего USB кабеля также потребовались нижеперечисленные опции:
    В секции USB support->
      Support for USB
      В секции USB Serial Converter support->
        USB Serial Converter support
        USB Generic Serial Driver
        USB Prolific 2303 Single Port Serial Driver

На пересборке ядра останавливаться не буду, т.к. для пользователей gentoo это уже пройденный этап и они с легкостью могут освежить его в памяти, воспользовавшиcь документацией по установке Gentoo. Пользователям других дистрибутивов могу порекомендовать KERNEL-HOWTO, а также заметки доступные в N-ых количествах почти на всех сайтах, посвященных линуксу.

Настройка GPRS-соединения

Перед тем как приступить непосредственно к настройке необходимо установить пакет net-dialup/ppp:

    emerge net-dialup/ppp
Не возбраняется воспользоваться уже собранным бинарным пакетом, для этого необходимо указать emerge ключ --usepkg (-k):
    emerge -k net-dialup/ppp
Установка позади. На этапе конфигурирования основным средством будет выступать "любимый" редактор. Для меня эту роль послушно исполняет vim, но каждый вправе выбрать любой другой. Если же Ваш выбор еще не "устаканился", можете воспользоваться nano, идущим в базовой поставке Gentoo (только, пожалуйста, не забываете при редактировании добавлять ключ -w - для отключения переноса длинных строк).

Итак, создадим файл /etc/ppp/peers/beeline следующего содержания:

    /dev/usb/tts/0 57600 noauth defaultroute usepeerdns updetach persist
    noipdefault lock connect '/usr/sbin/chat -v -f /etc/ppp/chat/beeline'
    novjccomp nopcomp noaccomp noipdefault nodeflate novj nobsdcomp
Для COM-кабеля потребуется заменить /dev/usb/tts/0 на :
    /dev/tts/0  - при подключении телефонного кабеля к COM1
    /dev/tts/1  - для COM2

Немного поясню назначение опций:

  • defaultroute - установить маршрутом "по умолчанию"
  • noipdefault - не использовать IP адресс, назначенный для данного hostname
  • persist - восстанавливать соединение при разрыве (помните, мы платим только за трафик)
  • updetach - `возвратить управление` процессу, вызвавшему pppd, при успешно установленном соединение
  • usepeerdns - получить DNS адресса от сервера (потребуется при настройке pdnsd)

Еще одним файлом необходимым для корректного функционирования предложенной схемы является /etc/ppp/chat/beeline. Создадим его, "вложив" в него:

    TIMEOUT         45
    ABORT           BUSY
    ABORT           "NO CARRIER"
    ABORT           ERROR
    ""              'ATE1'
    OK              AT+CGDCONT=1,"IP","internet.beeline.ru"
    OK              ATD*99***1#
    CONNECT         c

"internet.beeline.ru", скорее всего, потребуется измеменить в соответсвии с вашими реалиями, например, на "internet.mts.ru".

Единственное, что здесь могу порекомендовать, обратиться к документации, полученной Вами от Оператора Сотовой Связи. Также может подвергнуться изменению строка ATD*99***1#, которая характерна для телефонов компании Siemens. Насколько я знаю, для телефонов Nokia используется в данном случае 99#. Владельцам телефонов других компаний стоит обратиться в представительство Вашего Сотового Оператора.

Все! На этом вся настройка связанная с GPRS соединением завершена. Вплотную мы приблизились к испытательной стадии. Для этого наберем в консоли :

    pppd call beeline
Думаю, не стоит напоминать, что выполнять эту команду необходимо из под root (в общем случае). В следующей заметке я приведу несколько способов, позволяющих выполнять ее и "рядовому" пользователю. Итак, если все прошло успешно через несколько секунд на экране должны появиться строчки, приблизительно, следующего содержания:
    feel root # pppd call beeline
    Serial connection established.
    Using interface ppp0
    Connect: ppp0 <--> /dev/usb/tts/0
    local  IP address 172.19.234.117
    remote IP address 192.168.254.254
    primary   DNS address 217.118.66.243
    secondary DNS address 217.118.66.244
    feel root #
Если по каким-то причинам соединение не устанавливается, попробуйте к строчке запуска добавить опции debug и nodetach, т.е:
    pppd debug nodetach call beeline
и на основании полученной информации, попытаться найти ошибку. Одной из возможных причин может быть т.н. неполноценный кабель. Для более детального ознакомления по вопросам выбора кабеля, а также многим другим аспектам установки GPRS соединения, рекомендую обратиться к замечательному ресурсу http://forum.siemens-club.ru. Если же соединение успешно установилось, но на попытку обращения к любому ресурсу по его IP адрессу (помните DNS сервера еще не прописаны) выдается no route to host, попробуйте воспользоваться командой:
    route add default gw 192.168.254.254
, где 192.168.254.254 - remote IP address - и его необходимо заменить на адресс, "полученный" Вами от pppd. Для того чтобы не вводить эту строчку при каждом соединении, достаточно довавить ее в /etc/ppp/ip-up. Если же ничего из вышесказанного не помогло, то, вероятно, Ваш случай требует более пристального изучения :).

Для некоторых завершающим этапом станет добавление primary и secondary адресов DNS сервера в файл /etc/resolv.conf, т.е. для рассматриваемого случая он примет вид:

    nameserver 217.118.66.243
    nameserver 217.118.66.244
Тем самым они получат полностью рабочее GPRS соединение с Интернетом.

Я же пойду дальше и в следующей заметке опишу процедуру настройки кеширующего DNS сервера pdnsd. Что позволит сохранить 2-4% трафика, который как ранее упоминалось оплачивается помегабайтно, расходуемого на "пустые" dns запросы. А также возвращусь к ранее упомянутому способу запуска демона pppd обычным пользователем. На последок добавлю лишь немаловажный факт:

Завершение соединения

Для этого достаточно выполнить :

    killall pppd
либо
    pkill pppd
или более эстетичный способ :
    kill `cat /var/run/ppp0.pid`

Документация:

Статья взята с сайта OpenNet. Оригинал: http://www.linuxshop.ru/unix4all/?cid=&id=382

[ опубликовано 29/12/2003 ]

Артем Носов aka ChiP (chip-set@mail.ru) - Настраиваем GPRS соединение в Gentoo Linux   Версия для печати