Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 13. Подключение к сети Вперед

Пакет PPP-2.4.5

Знакомимся с пакетом PPP

В пакете PPP находится демон pppd и программа chat. Пакет используется для подключения к другим машинам; часто для подключения к сети интернет через коммутируемое соединение или предоставляемое провайдером соединение PPPoE.

Известно, что пакет правильно собирается и работает на платформе LFS-7.0.

Информация о пакете

Зависимости пакета PPP

Необязательные

libpcap-1.1.1> (необходим для фильтрации PPP) и Linux-PAM-1.1.5 (для аутентификации с помощью PAM поступающих вызовов).

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/PPP

Установка пакета PPP

Замечание

Поддержка PPP (CONFIG_PPP), дисциплина работы с асинхронной линией (CONFIG_PPP_ASYNC), драйвер устройства серийного порта и/или драйвер протокола PPP (CONGIG_PPPOE) для Ethernet (PPPoE) должны быть откомпилированы в ядре или должны загружаться как модули ядра. Udev не загружает автоматически модули ppp_generic и pppoe, так что их следует упомянуть в файле /etc/sysconfig/modules.

Создайте (с правами пользователя root) группу пользователей, которые могут запускать PPP:

groupadd -g 52 pppusers

Установите пакет PPP с помощью следующих команд:

./configure --prefix=/usr &&
make

В этом пакете набор тестов отсутствует.

Теперь в роли пользователя root выполните:

make install &&
make install-etcppp &&
install -d /etc/ppp/peers &&
install -m755 scripts/{pon,poff,plog} /usr/bin &&
install -m644 scripts/pon.1 /usr/share/man/man1

Пояснение команд

rm include/linux/if_pppol2tp.h: В пакете ppp-2.4.5 находится устаревшая копия заголовков ядра linux/if_pppol2tp.h. Их нужно удалить с тем, чтобы можно было использовать файл, установленный в /usr. Если вы его не удалите, то сборка пройдет успешно (из-за плохо написанного файла Makefile), но возникнут проблемы с компиляцией плагинов openl2tp.so, pppol2tp.so и rp-pppoe.so.

install -d /etc/ppp/peers: Эта команда создает директорий для файлов peer с описаниями PPP.

USE_PAM=y: Добавьте этот аргумент к команде make для того, чтобы откомпилировать поддержку PAM, что обычно требуется для аутентификации по единой базе данных входящих звонков.

HAVE_INET6=y: Добавьте этот аргумент к команде make для того, чтобы откомпилировать поддержку IPv6.

CBCP=y: Добавьте этот аргумент к команде make для того, чтобы откомпилировать проприетарный протокол Callback Control Protocol фирмы Microsoft.

Конфигурирование пакета PPP

Конфигурационные файлы

/etc/ppp/*

Подробнее о конфигурировании

Добавьте в группу pppusers пользователей, которые могут запускать PPP:

usermod -a -G pppusers <имя_пользователя>

В зависимости от того, каким методом аутентификации пользуется интернет-провайдер, пароли могут храниться в файле /etc/ppp/pap-secrets или в файле /etc/ppp/chap-secrets. Если есть сомнения, то в оба файла одно и то же содержимое.

Если у вас более более одного аккаунта интернет-провайдера, то добавьте второй столбец для того, чтобы отличать различные имена пользователоей/пароли, необходимые для различных провайдеров. Если у вас только один провайдер, то во второй столбец поместите символ звездочки.

Например, если имя пользователя, заданное провайдером, будет "jdoe", пароль - "guessit", провайдер использует PAP и пользователь хочет, чтобы имя этого пользователя было "коммутируемым" с тем, чтобы отличать его от других учетных записей PPP, необходимо создать следующий файл:

cat >>/etc/ppp/pap-secrets <<"EOF"
# username      remotename    password
jdoe            dialup        guessit
EOF
chmod 600 /etc/ppp/pap-secrets

Конфигурирование сервера DNS

Если у вас нет своего собственного кэширующего сервера DNS (например, BIND-9.8.1-P1), pppd может запросить у вашего провайдера сервера доменных имен и поместить их в файл /etc/resolv.conf. Если вы хотите использовать эти сервера доменных имен:

mv /etc/resolv.conf{,.orig}
ln -s ppp/resolv.conf /etc

Соединения PPPoE

Чтобы сконфигурировать соединение PPPoE, необходимо создать один файл peer:

cat >/etc/ppp/peers/peername <<"EOF"
plugin rp-pppoe.so eth0

# Ваше имя пользователя у провайдера. То не самое, что в первом 
# столбце в файле /etc/ppp/*-secrets:
user "jdoe"

# remotename не нужно, если у вас только один аккаунт провайдера и,
# следовательно, указана звездочка во втором столбце в файле pap или chap-secrets:
# remotename "adsl"

# Если соединение не работает и вы хотите получить от pppd больше 
# информации, которая будет в файле /var/log/sys.log, то добавьте команду debug:
# debug

# Если у вас статический адрес IP (например, 12.34.56.78) вы можете
# указать его следующим образом с использованием точек:
# 12.34.56.78:

# В противном случае используйте адрес IP, полученный от провайдера:
noipdefault

# Следующие настройки, как правило, изменять не требуется
noauth
hide-password
updetach
defaultroute
# создайте файл /etc/ppp/resolv.conf:
usepeerdns

### Пожробности (и другие параметры)
### смотрите в man pppd
EOF
chmod 600 /etc/ppp/peers/peername

Коммутируемое модемное соединение

Коммутируемые соединения устанавливаются с помощью модема, подключенного к компьютеру и к телефонной линии. Модем набирает телефонный номер модема провайдера, и модемы с помощью сигналов частотой 300-4000 Гц обмениваются данными. Типичная скорость передачи данных составляет 40-50 Кбит в секунду, а время пингования шлюза (задержка) доходит до 300-400 мс. Чтобы настроить коммутируемое соединение, необходимо знать номер телефона модемного пула провайдера, имя пользователя и пароль.

Чтобы настроить коммутируемое соединение, нужно создать два файла: скрипт обмена данными, с помощью которого автоматизируется процедура подключения (общий для всех учетных записей коммутируемого соединения), и специальный файл peer, в котором находится конфигурационная информация о конкретном подключении pppd:

cat >/etc/ppp/dialup.chat <<"EOF"
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
ABORT ERROR ABORT BLACKLISTED

TIMEOUT 5
'' AT
# \T телефонный номер, получаемый из /etc/ppp/peers/dialup
OK-+++\dATH0-OK ATD\T
TIMEOUT 75
CONNECT \d\c
EOF

cat >/etc/ppp/peers/dialup <"EOF"
# Ваше имя пользователя, выданное провайдером
user "jdoe"
# То, что должно быть во втором столбце в /etc/ppp/*-secrets
remotename "dialup"
# Замените TTTTTTT телефонным номером провайдера
connect "/usr/sbin/chat -T TTTTTTT -f /etc/ppp/dialup.chat"

# Ниже указывается последовательный порт и скорость вашего модема
/dev/ttyS0
115200

# Настройки, приведенные ниже, обычно изменять не требуется
updetach
noauth
hide-password
debug
lock
defaultroute
noipdefault
usepeerdns
EOF

В первых трех строках файла /etc/ppp/dialup.chat происходит прерывание работы скрипта в случае, когда он получает от модема уведомление об ошибке. Затем устанавливается тайм-аут на 5 секунд и скрипт проверяет, отвечает ли модем на фиктивную команду AT. Если нет, то принимаются соответствующие меры (передача потока данных прерывается и "вешается трубка"). Если все в порядке, набирается номер телефона и скрипт в течение 75 секунд ожидает ответа. Последовательное соединение считается установленным, когда модем посылает строку CONNECT.

Соединения GPRS и EDGE

Соединения GPRS и EDGE устанавливаются с помощью сотового телефона, подключенного к компьютеру через последовательный порт, через USB или через Bluetooth. Телефон обменивается пакетами данных с ближайшей базовой станции, которая может находиться на расстоянии до 35 километров. Максимально возможная скорость передачи данных составляет для соединения GPRS - 170 килобит в секунду и для соединения EDGE - 474 килобит в секунду, но многие операторы сотовой связи принудительно устанавливают более низкие пределы, например, 64 килобит в секунду. Время пингования шлюза составляет 900 мс для GPRS, и из-за этого становится невозможным играть во многие онлайн-игры, а соединения с ICQ становятся ненадежными. Чтобы настроить соединения GPRS или EDGE, необходимо знать имя точки доступа (APN) и, что случается реже, имя пользователя и пароль. В большинстве случаев, учет вызовов осуществляется по номеру телефона и, как видно из приведенного ниже примера, пара "имя пользователя / пароль" не нужна.

Чтобы настроить соединение GPRS, следует создать два файла: скрипт обмена данными, с помощью которого автоматизируется процедура подключения (общий для всех учетных записей соединения GPRS), и специальный файл peer, в котором находится конфигурационная информация о конкретном подключении pppd:

cat >/etc/ppp/gprs.chat <<"EOF"
ABORT BUSY ABORT 'NO CARRIER' ABORT VOICE ABORT 'NO DIALTONE'
ABORT 'NO DIAL TONE' ABORT 'NO ANSWER' ABORT DELAYED
ABORT ERROR ABORT BLACKLISTED

TIMEOUT 5
'' AT
OK-+++\dATH0-OK ATZ
# \T является именем точки доступа APN, получаемой из /etc/ppp/peers/gprs
# В этом примере APN запоминается в телефоне как профиль #1.
# The "телефонный номер", *99***<номер_профиля>#, всегда одни и те же.
# Если вы хотите запомнить имя точки доступа как профиль #2,
# то в везде в следующих строках замените 1 на 2.
OK AT+CGDCONT=1,"IP","\T"
OK "ATD*99***1#"
CONNECT \d\c
EOF

cat >/etc/ppp/peers/gprs <"EOF"
# замените inet.example.com на имя точки доступа APN вашего провайдера
connect "/usr/sbin/chat -T inet.example.com -f /etc/ppp/gprs.chat"

# Укажите ниже последовательный порт и скорость вашего телефона
# Замечание: для того, чтобы в некоторых старых сотовых телефонах
# (например, Sony-Ericsson T200) получить скорость соединения, большую
# 9600 битов в секунду, вы должны вручную послать в телефон некоторые
# команды  AT, которые зависят от разработчика телефона.
/dev/ttyS1
115200

# Настройки, приведенные ниже, обычно изменять не требуется
noccp
noauth
updetach
debug
lock
defaultroute
noipdefault
usepeerdns
EOF

Установка соединения вручную

Чтобы установить соединение PPP, описанное в файле /etc/ppp/peers/peerимя, запустите (с правами root или как член группы pppusers):

pon peername

Чтобы разорвать соединение, выполните команду:

poff peername

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

Описание пакета

Установленные программы: chat, pppd, pppdump, pppoe-discovery и pppstats

Установленные библиотеки: несколько модулей плагинов, установленные в /usr/lib/pppd/2.4.5

Установленные директории: /etc/ppp, /usr/include/pppd и /usr/lib/pppd

Краткое описание

chat

осуществляет обмен данными между компьютером и модемом. Его основной задачей является установка соединения меду демоном протокола передачи данных типа "Точка — точка" (PPPD) и удаленно работающим процессом pppd

pppd

является демоном протокола передачи данных типа "Точка — точка"

pppdump

используется для преобразования файлов с записями PPP в удобочитаемый вид

pppoe-discovery

выполняет все то же, что и плагин pppoe, но не инициализирует сессию PPP.

pppstats

используется для выдачи статистики PPP

Перевод сделан с варианта оригинала, датированного 2011-11-17 17:27:16 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Содержание главы 13   Пакет dhcpcd-5.2.12