Библиотека сайта rus-linux.net
Beyond Linux From Scratch. Version 2011-12-30 | ||
Назад | 13. Подключение к сети | Вперед |
Пакет PPP-2.4.5
Знакомимся с пакетом PPP
В пакете PPP находится демон pppd и программа chat. Пакет используется для подключения к другим машинам; часто для подключения к сети интернет через коммутируемое соединение или предоставляемое провайдером соединение PPPoE.
Известно, что пакет правильно собирается и работает на платформе LFS-7.0.
Информация о пакете
- Загрузка (HTTP): http://samba.org/ftp/ppp/ppp-2.4.5.tar.gz
- Загрузка (FTP): ftp://mirror.ovh.net/gentoo-distfiles/distfiles/ppp-2.4.5.tar.gz
- Контрольная сумма MD5: 4621bc56167b6953ec4071043fe0ec57
- Размер загружаемого пакета: 920 KB
- Оценочный размер требуемого дискового пространства: 6,4 MB
- Оценочное время сборки: 0,1 SBU
Зависимости пакета 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, так что их следует упомянуть в файле |
Создайте (с правами пользователя 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 |