Создание РРР-соединения
Итак, какова же следующая пара "ожидать-ответить"? После соединения пользователь представляется с помощью подсказки Username:, в ответ на которую вводится имя пользователя (пусть имя пользователя будет "testuser"). Пара "ожидать-ответить" для такого взаимодействия будет Username: testuser.
Когда имя пользователя определено, выводится подсказка Password:, в ответ на которую надо ввести пароль (предположим, "testpas sword"). Получается пара "ожидать-ответить": Password: testpassword.
Для большинства провайдеров Internet этого достаточно: РРР запускается на системе провайде-ра после корректного ввода пароля. Существует незначительное количество разновидностей систем ISP, которые при представлении пользователя выводят на экран подсказку, в которой следует напечатать команду для запуска РРР. В таком случае в сценарии необходимо создать дополнительную пару.
Для этого примера полный сценарий chat выглядит следующим образом:
"" ATDT1234567 CONNECT " " Username: testuser Password: testpassword
Для использования этого сценария с программой chat (которая обычно находится в /usr/ sbin) достаточно задать сценарий как параметр chat.
/usr/sbin/chat ' " ATDT1234567 CONNECT " " Username: testuser Password: tes tpassword
При отсутствии интеграции с программой pppd и доступа к модему chat пытается устано вить диалог посредством консоли. Это можно использовать для проверки сценария. Просто введите команду в командной строке. Когда на экране появится ATDT1234567, напечатайте CONNECT и введите Username:.
В ответ на экран должно быть выведено testuser. Затем напечатайте Password: и в ответ должно появиться testpassword.
Примечание
Если необходимо исправить ошибки в сценарии chat, добавьте ключ – v к команде chat. Результат выполнения сценария записывается в системный файл протокола, который позже можно проанализировать для выявления ошибок.
После того, как сценарий написан, необходимо соединить его с pppd. Для этого можно исполь-зовать некоторые параметры pppd (приложение pppd имеет много дополнительных параметров, о которых можно узнать в руководстве по pppd). Мы будем использовать следующие параметры:
- connect. Применяется для определения программы или команды, при помощи которой устанавливается соединение по обычной линии связи. Данная опция определяет программу chat и ее сценарий.
- noipdefault. Работа pppd го-умолчанию – это определение IP-адреса локального компьютера на основании его имени. Но если ISP выделяет IP-адрес динамически, то noipdefault используется для сообщения pppd о том, что надо получить IP-адрес от удаленного компьютера, с которым осуществлено соединение.
- defaultroute. Эта опция сообщает pppd о необходимости добавить маршрут по умолчанию в системную маршрутную таблицу, используя удаленную систему как шлюз по умолчанию. Запись удаляется при разрыве соединения.
Команда pppd имеет следующую структуру:
$ pppd device-name device-speed options
Если модем имеет максимальную скорость передачи сжатой информации 115200bps (модем 56Kbps), то при соединении с устройством /dev/modem для соединения с использованием chat сценария используется следующая команда:
$ pppd /dev/modem 115200 connect '/usr/sbin/chat "" ATDT1234567 CONNECT " Username: testuser Password: testpassword' noipdefault defaultroute
При вводе данной команды модем начнет звонить, а после установления связи пользователь будет аутентифицирован и установится РРР-соединение. Если этот процесс пройдет успешно, будет выполнено следующее:
Во-первых, вызов команды /sbin/if config без ключей и параметров вернет список интерфейсов, в том числе РРР интерфейс. Этот список выглядит примерно так:
ррр0 Link encap:Point-to-Point Protocol inet addr:194.209.60.101 P-t-P:194.209.60.97 Mask:255.255.255 UP POINTOPOINT RUNNING MTU:1500 Metric:! RX packets:10 errors:0 dropped:0 overruns:0 TX packets:11 errors:0 dropped:0 overruns:0
Во-вторых, в таблицу маршрутизации будут добавлены элементы для создания стандартного маршрута через удаленную машину (проверьте результат, использовав команду /sbin/route без ключей и параметров).
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface dul.paus.ch * 255-. 255.255.255 UH 0 00 ppp0 default dul.paus.ch 0 UG 0 0 0 ppp0
В этом примере dul.paus.ch – удаленный компьютер в РРР-соединении, назначенный шлюзом по умолчанию.