24.4. Решение проблем с соединениями PPP
Пред. | Глава 24. PPP и SLIP | След.

## 24.4. Решение проблем с соединениями PPP

Предоставил Tom Rhodes.

Этот раздел охватывает несколько вопросов, которые могут возникнуть при использовании PPP через модемные соединения. Например, предположим, что вам потребовалось узнать, какое именно приглашение отображает система, до которой вы дозваниваетесь. Некоторые провайдеры выдают приглашение `ssword`, другие `password`; если `ppp` скрипт не обрабатывает такие приглашения, попытка входа завершится неудачно. Наиболее общий способ отладки соединений `ppp` это подключение вручную. Ниже дана пошаговая информация по подключению вручную.

### 24.4.1. Проверьте файлы устройств

Если вы пересобирали ядро, проверьте устройство `sio`. Если вы не перенастраивали ядро, нет причин для беспокойства. Просто проверьте вывод `dmesg` для модемного устройства следующей командой:

`#``dmesg | grep sio`

Вы должны получить информацию о устройствах `sio`. Это COM порты, которые нам необходимы. Если ваш модем работает как стандартный последовательный порт, вы увидите его на `sio1`, или `COM2`. Если это так, вам не требуется пересобирать ядро, необходимо лишь создать последовательное устройство. Вы можете сделать это, зайдя в `/dev` и запустив скрипт `MAKEDEV`. Создайте последовательные устройства:

`#` `sh MAKEDEV cuaa0 cuaa1 cuaa2 cuaa3`

Если модем находится на `sio1`, или `COM2` в DOS, модемным устройством будет `/dev/cuaa1`.

### 24.4.2. Подключение вручную

Подключение к интернет с контролированием `ppp` вручную это быстрый, легкий и действенный способ отладки соединения или получения информации о обслуживании провайдером клиентского соединения `ppp`. Запустите PPP из командной строки. В примерах в качестве имени хоста мы будем использовать example. Запустите `ppp`, введя команду `ppp`:

`#` `ppp`

Теперь программа `ppp` запущена.

ppp ON example> `set device `/dev/cuaa1``

Мы указали модемное устройство, в данном случае `cuaa1`.

ppp ON example> `set speed 115200`

Мы установили скорость подключения к модему, в данном случае 115,200 кбит/с.

ppp ON example> `enable dns`

Сообщает `ppp` настроить разрешение имен, добавив строки в `/etc/resolv.conf`. Если `ppp` не может определить имя хоста, его можно настроить позже вручную.

ppp ON example> `term`

Переключение в «терминальный» режим для контроля модема вручную.

deflink: Entering terminal mode on `/dev/cuaa1` type '~h' for help
`at` OK `atdt`123456789``

Использование команды `at` для инициализации модема, а затем `atdt` и номера провайдера для начала дозвона.

CONNECT

Подтверждение соединения, если есть проблемы с соединением, не вызванные проблемами в оборудовании, здесь мы попытаемся решить их.

ISP Login:`myusername`

Здесь вам предлагается ввести имя пользователя в приглашение, выводимое сервером провайдера.

ISP Pass:`mypassword`

Здесь предлагается ввести пароль, предоставленный провайдером. Как и при входе в FreeBSD, пароль не отображается.

Shell or PPP:`ppp`

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

Ppp ON example>

Обратите внимание, что в этом примере первая буква `p` появилась в верхнем регистре. Это означает, что мы успешно подключились к провайдеру.

PPp ON example>

Мы успешно аутентифицировались у провайдера и ожидаем присвоения IP адреса.

PPP ON example>

Мы завершили согласование IP адресов, соединение успешно установлено.

PPP ON example>`add default HISADDR`

Это маршрут по умолчанию, его необходимо настроить, чтобы сделать возможной связь с внешним миром, поскольку на этот момент установлена связь только с удаленной стороной. Если маршрут не устанавливается из-за уже существующего маршрута, добавьте символ `!` перед `add`. Альтернативно вы можете сделать настройку перед установкой соединения.

Если все прошло удачно, на данный момент должно работать соединение с интернет, которое можно поместить в фоновый режим клавишами CTRL+z. Переход строки `PPP` в приглашении в нижний регистр (`ppp`) означает, что соединение было разорвано. Таким образом, символы P в верхнем регистре означают наличие соединения, а в нижнем — потерю соединения.

#### 24.4.2.1. Отладка

Если у вас выделенная линия и нет необходимости устанавливать соединение, выключите контроль передачи данных CTS/RTS командой `set ctsrts off`. Это обычно необходимо при подключении к поддерживающим PPP терминальным серверам, когда PPP прерывается при попытке записать данные в ваше соединение, и ожидает сигнала CTS, или Clear To Send, который не появляется. Если вы используете этот параметр, используйте также параметр `set accmap`, который может быть необходим для устранения зависимости от оборудования путем пропускания определенных символов через соединение, обычно XON/XOFF. Обратитесь к странице справочника ppp(8) за более подробной информацией по этому параметру и его использованию.

Если у вас старый модем, может потребоваться использование `set parity even`. Проверка четности по умолчанию отключена, но она используется для для устранения ошибок (с серьезным увеличением объема трафика) на старых модемах и у некоторых провайдеров.

PPP может не вернуться в командный режим, что обычно вызвано ошибкой согласования, когда провайдер ждет от вас начала процесса согласования. В этот момент использование команды `~p` заставит ppp начать отправку настроечной информации.

Если вы не получаете приглашения на вход, скорее всего вам требуется использование аутентификации PAP или CHAP вместо UNIX® стиля как в примерах выше. Для использования PAP или CHAP просто добавьте следующие параметры PPP перед переходом в терминальный режим:

ppp ON example> `set authname `myusername``

Необходимо заменить `myusername` на имя пользователя, выданное провайдером.

ppp ON example> `set authkey `mypassword``

Где `mypassword` должен быть заменен на пароль, выданный провайдером.

Если вы подключаетесь, не можете определить ни одно доменное имя, попробуйте использовать ping(8) с каким-либо IP адресом и просмотрите выводимую информацию. Если 100 процентов (100%) пакетов теряются, скорее всего не назначен маршрут по умолчанию. Дважды проверьте, что параметр `add default HISADDR` установлен во время соединения. Если вы можете подключиться к удаленному IP адресу, возможно, что адрес сервера имен не был добавлен в `/etc/resolv.conf`. Этот файл должен выглядеть примерно так:

domain `example.com` nameserver `x.x.x.x` nameserver `y.y.y.y`

Где `x.x.x.x` и `y.y.y.y` должны быть заменены на IP адреса DNS серверов провайдера. Эта информация может предоставляться провайдером, вы можете выяснить это в службе поддержки.

Вы можете также настроить syslog(3) для протоколирования PPP соединения. Просто добавьте:

!ppp *.* /var/log/ppp.log

в файл `/etc/syslog.conf`. В большинстве случаев эти строки уже присутствуют.

Пред. | Наверх | След.
24.3. PPP уровня ядра | Начало | 24.5. Использование PPP через Ethernet (PPPoE)

Этот, и другие документы, могут быть скачаны с http://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам, связанным с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам, связанным с этой документацией, пишите в рассылку <doc@FreeBSD.org>.