Как соединятся с провайдером для выхода в Internet через модем, по протоколу PPP?
Для начала, если ядро у вас собрано без поддержки протоколов PPP и SLIP вам нужно собрать его заново с поддержкой этих протоколов. Как собирать ядро описано в этом же FAQ. См. список вопросов.
Еще недавно я бы сказал, что готовой программы нет, но теперь готовая программа есть прямо в дистрибутиве Debian . Она называется pppconfig(8). Все что вам нужно сделать - это честно и правдиво ответить на все вопросы, которые задаст вам эта программа.
Соединение осуществляется командой pon, а завершение соединения с провайдером осуществляется вызовом команды poff, которая убивает демон, отвечающий за связь и заставляет его положить ``трубку'' модема.
Как вы уже поняли - это решение далеко не самое красивое. Например, можно воспользоваться diald - о чем ниже. Однако это очень простое решение, Установление соединения при помощи демона diald
Прежде всего хочу заметить, что данные здесь конфигурационные файлы могут для вас не подойти, хотя у меня они работают. Все описанное ниже дает скорее понятие о том как все это настраивать, чем конкретное готовое решение. В любом случае очень рекомендую тщательно изучить страницы руководства man по pppd(8) и diald, а также PPP-HOWTO.
Пакет diald входит в состав дистрибутива Debian , да и по моему в другие дистрибутивы тоже. Ну а если у вас все-таки его не оказалось, вы всегда можете выкачать его из Internet.
После того как вы установите пакет, например, командой
dpkg -i diald-0.16.4-1.deb
или
apt-get install diald
В каталоге /etc/diald у вас появятся его конфигурационные файлы. Вам понадбится править только два из них. В файле с именем diald.options хранится конфигурация diald, а в файле с именем connect находится сценарий, который устанавливает модемное соединение, набирая номер и выполняя функции идентификации пользователя.
Начнем с файла diald.options. Ниже дан в качестве примера мой:
mode ppp connect "chat -f /etc/ppp/pppscript" device /dev/ttyS1 speed 19200 modem lock crtscts local 192.168.0.1 remote 192.168.0.2 netmask 255.255.255.0 impulse 120,60 dynamic defaultroute pppd-options noipdefault name "victor_v" asyncmap 0 include /etc/diald/standard.filter
Данная конфигурация расчитана на использование diald с протоколом PPP с аутентификацией пользователя по протоколу PAP. Адреса local и remote даны ``от балды''. Так как далее используется ключ dynamic, а в параметре ppp-options задано значение noipdefault, то при установлении связи адреса удаленной машины-сервера и адреса вашей машины будут изменены на те, которые сообщит удаленная машина.
Параметр device установлен в значение /dev/ttyS1, что соотвествует второму последовательному порту COM2. Вы же можете изменить это значение, если ваш модем использует другой порт. (Для COM1 будет /dev/ttyS0 и т.п.). Параметр speed установлен в значение 19200 и означает портовую скорость. Скорость вы также должны задать ориентируясь на модем, которым вы пользуетесь. Возможные значения: 2400, 9600, 19200, 34800, 57600 и т.д.
Параметр impulse установлен в значение 120,60. Это говорит о том, что diald будет проверять простаивает ли линия через каждые 2 минуты (120 сек) и будет разрывать соединение (класть ``трубку'' модема), если в течении 1 минуты (60 сек) линия будет продолжать простаивать. Простой линии выражается в отсутствии приема или передачи пакетов через модем. Таким образом вы экономите деньги на повременной оплате за телефон и за Internet. Излишне говорить, что вы можете настроить эти параметры под себя.
Особо нужно отметить параметр connect. В данном примере он установлен в значение chat -f /etc/ppp/pppscript. Ниже приводится содержимое файла pppscript
ABORT ERROR ABORT BUSY ABORT "NO CARRIER" ABORT "NO DIALTONE" REPORT "CARRIER" REPORT "CONNECT" TIMEOUT 90 "" AT&F1 "OK" ATDT900020 "CONNECT"
Мне было удобнее пользоваться таким файлом, чем поставляемым с пакетом diald файлом connect. Это потому, что мой провайдер использует аутентификацию пользователей по протоколу PAP. Если же сервер у вашего провайдера настроен на ввод имени и пароля по приглашениям Login: и Password:, то вам лучше воспользоваться файлом connect. Тогда строчка с параметром connect в файле diald.options будет выглядеть так:
connect "/etc/diald/connect"
Файл connect хорошо задокументирован внутри и проблем с его использованием быть не должно. Вам нужно будет только поменять параметры MODEM_INIT на строку инициализации вашего модема, PHONE_NUMBER на номер телефона вашего провайдера, USER_CHAT_SEQ на строку-приглашение, которую вы получаете для ввода имени, USER_NAME на ваше регистрационное имя у провайдера, PASSWD_CHAT_SEQ на строку-приглашение, которую вы получаете для ввода пароля, PASSWORD на ваш пароль у провайдера и наконец PROMPT на строку, которую вы получаете в случае успешного ввода имени и пароля.
Возможно вам придется поэкспериментировать пока у вас все получится. Для этой цели могу рекомендовать терминальную программу minicom, где вы всегда сможете установить соединение в ручную и посмотреть все строки приглашения.
Следующий этап - это файл /etc/ppp/options. Ниже дан в качестве примера мой:
lock defaultroute crtscts noipdefault modem asyncmap 0 debug 19200 /dev/ttyS1 name "victor_v"
Здесь вроде все должно быть понятно, тем более, что часть параметров перекрывается конфигурационным файлом для diald. Замечу только, что строка name ``victor_v'' нужна только в случае использования протокола PAP.
Для тех, у кого провайдер использует как и у меня аутентификацию пользователей по протоколу PAP будет нужен еще файл /etc/ppp/pap-secrets. Вот пример моего:
# Secrets for authentication using PAP... # client server secret IP addresses "victor_v" * "password"
Вместо password должен стоять ваш пароль, а вместо victor_v ваше регистрационное имя у провайдера. Кроме того, оно же прописывается как вы можете заметить и в файл /etc/ppp/options и в файл /etc/diald/diald.options. Естественно, что для тех у кого провайдер не поддерживает PAP, эти параметры в данных файлах не нужны.
Далее вам необходимо настроить свою систему для использования DNS провайдера. У вас должен быть адрес DNS-сервера провайдера. Его нужно поместить в файл /etc/resolv.conf. Вот пример моего файла:
nameserver 194.84.131.242 search permonline.ru
где параметр nameserver задает адрес DNS-сервера провайдера, а параметр search имя домена провайдера.
Ну вот теперь кажется все. После окончания всех настроек перезапустите diald командой
/etc/init.d/diald restart
Теперь, когда вы в Netscape или в Lynx или в mc обратитесь на адрес, который неизвестен вашей системе, diald попытается установить соединение с вашим провайдером и если это получится, то вы попадете туда куда обратились.
Если у вас не получилось. Что же мне жаль. Причин может быть множество. Здесь я могу только посоветовать вам подробно изучить документацию.
следующий: 5 Управление пакетами выше: Русский Debian 3.0 FAQ предыдущий: 3 Русификация Оглавление root 2003-01-05