Опубликован: 24.07.2006 | Доступ: свободный | Студентов: 8870 / 1199 | Оценка: 3.95 / 3.75 | Длительность: 41:47:00
ISBN: 978-5-94157-183-3
Лекция 15:

Интернет и электронная почта

Проблемы с настройкой соединения

Если вам не удается установить соединение с провайдером, то надо, естественно, искать причину. Попробую дать несколько советов, как действовать в такой ситуации.

Первый совет, который на этот случай дают "классики": смотрите протоколы (лог-файлы)!

Во-первых, при запуске kppp установите во включенное состояние переключатель Монитор подключения в главном окне kppp. В окне монитора можно увидеть, что ожидает получить провайдер, и какую информацию посылает ваш компьютер. Зачастую можно подправить сценарий соединения, пользуясь только информацией, отображаемой в этом окне.

Во-вторых, надо запустить kppp так, чтобы он как можно подробнее протоколировал свои действия. Для этого снова войдите в окно настроек соединения kppp и задайте опцию запуска "debug" на вкладке Дозвон.

Кроме того, впишите следующие две строки в файл /etc/syslog.conf:

daemon.*     /dev/console
daemon.*     /var/log/kppp.log

(обратите внимание на то, что между двумя частями записи в каждой строке должен быть хотя бы один символ табуляции). После внесения изменений в файл /etc/syslog.conf выполните команду kill -HUP <pid>, где <pid> - идентификатор запущенного в это время процесса syslogd. По этой команде syslogd перечитает свой конфигурационный файл. Следствием выполненных вами действий будет то, что pppd будет выдавать сообщения о своих действиях на консоль и записывать эти же сообщения в файл /var/log/kppp.log. Его и смотрите!

Искать в этом файле надо сообщения, начинающиеся на:

  • "pppd[NNN]: Connected..." - означает, что скрипт соединения завершился успешно.
  • "pppd[NNN]: sent [LCP ConfReq"...- сообщение о том, что pppd пытался начать диалог с удаленным сервером.
  • "pppd[NNN]: rcvd [LCP ConfReq"... - сообщение о том, что pppd получил ответ (negotiation frame) от удаленного сервера.
  • "pppd[NNN]: ipcp up" - означает, что pppd дошел до той точки, где, по его мнению, соединение готово для передачи по нему IP-трафика.

Если вы не находите строки с сообщением "rcvd", то у вас серьезные проблемы с установлением соединения (например, по каналу не передаются все 8 бит). В этом случае может оказаться полезным записывать в файл протокола весь поток байтов, передаваемых между Вашим компьютером и удаленным сервером. Для этого измените две упоминавшиеся выше строки в файле syslog.conf следующим образом:

daemon.*,kern.*     /dev/console
daemon.*,kern.*     /var/log/kppp.log

и снова перезагрузите демон syslog, как это было сказано выше. Затем запустите pppd с опцией "kdebug 25". Теперь все символы, передаваемые по каналу PPP-соединения, будут записываться в файл протокола.

Просмотрите этот файл в поисках сообщений, похожих на следующее:

ppp_toss: tossing frame, reason = 4

Оно означает, что программа PPP не успевает обрабатывать пакеты от удаленной машины. Это может быть потому, что ваш центральный процессор не способен принимать символы с последовательного порта с той скоростью, с которой они поступают. Если в приведенной выше строке указана причина (Reason), отличная от 4, это может свидетельствовать о других сбоях в работе последовательного порта.

На начальном этапе установления соединения вы можете увидеть одно или несколько сообщений, содержащих строку "bad fcs". Это говорит об ошибках в контрольной сумме получаемых PPP-пакетов, и обычно случается в начале сессии, когда удаленная система посылает сообщения типа "hello this is the XYZ company". Если такие сообщения продолжают появляться тогда, когда соединение уже установлено, это говорит о шуме в телефонной линии и сбоях в передаче пакетов.

Может оказаться, что на сервере провайдера установлен Remout Access Server (RAS), который настроен на использование алгоритма аутентификации MS CHAP 80. Вы можете определить, запрашивает ли сервер установление подлинности, используя этот алгоритм, при анализе файла протокола pppd. Если сервер запрашивает установление подлинности по MS CHAP, то вы увидите строки типа:

rcvd [LCP ConfReq id=0x2 <asyncmap 0x0> <auth chap 80> <magic 0x46a3>]
Если все равно не работает (куда обратиться за помощью)

Если, несмотря на все ваши усилия, настроить соединение с провайдером и выйти в Интернет все равно не удается, то необходимо обратиться за помощью к администратору сервера у интернет-провайдера. Кроме того, вы можете обратиться за помощью в один из форумов или списков рассылки, например, на www.linux.ru. Но, прежде чем посылать мольбу о помощи, соберите (и сообщите в своем письме) следующую информацию:

  • версию используемого вами ядра;
  • версию используемого вами пакета PPP;
  • какими командами вы запускаете PPP-сессию;
  • файл протокола сессии, запускавшейся с опцией "debug";
  • тип ПО PPP, установленного на сервере провайдера.

и вообще любую информацию, которая, по вашему мнению, может оказаться полезной для решения вашей проблемы.

Теперь еще пара советов в стиле "вопрос-ответ", заимствованных в списке рассылки blackcat-list@geon.donetsk.ua:

  • Вопрос:

    При подъеме ppp в /var/log/messages появляются такие строчки:

    modprobe: Can't locate module ppp-compress-21
    modprobe: Can't locate module ppp-compress-24
    modprobe: Can't locate module ppp-compress-26
  • Ответ:

    Добавьте в /etc/conf.modules:

    alias ppp-compress-21 bsd_comp
    alias ppp-compress-24 ppp_deflate
    alias ppp-compress-26 ppp_deflate
  • Вопрос:

    кррр звонит, отдает имя, пароль и сразу отваливается, в протоколах пишет следующее:

    Sep 12 18:10:34 dimon pppd[1410]: By default the remote system is required to authenticate itself
    Sep 12 18:10:34 dimon pppd[1410]: (because this system has a default route to the internet)
    Sep 12 18:10:34 dimon pppd[1410]: but I couldn't find any suitable secret (password) for it to use to do so.
    Sep 12 18:10:34 dimon pppd[1410]: (None of the available passwords would let it use an IP address.)

    Кто виноват и что делать?

  • Ответ:

    Проверьте правильность заполнения имени и пароля.

    Попробуйте в /etc/ppp/options добавить параметр noauth.

На этом закончим рассмотрение программы kppp. Ей было уделено очень много места в этой лекции, но я считаю, что это оправдано, поскольку эта программа составляет основу вашего соединения с Интернетом. Только в том случае, когда вам удалось такое соединение установить, вы можете пользоваться браузерами, электронной почтой и другими благами Интернета, о которых я кратко и расскажу в следующих разделах.

Владислав Гермак
Владислав Гермак

Приглашения оболочки

Одна из очень важных переменных имеет имя PS1. Эта переменная задает вид приглашения, которое bash выводит, когда ожидает ввода очередной команды пользователем. По умолчанию этой переменной присвоено значение "\s-\v\$ ".

"\s-\v\$ ". -значиние /v замените /u