От точки А до точки Б... или что такое РРР 1

От точки А до точки Б... или что такое РРР

Abstract

В этой статье рассказывается, как подключить компьютер под управлением ОС Linux к PPP-серверу, как использовать PPP для того, чтобы связать вместе две локальные сети, а также один из методов настройки Linux-станции для работы в качестве РРР-сервера.

Введение

РРР (Point to Point Protocol) - это механизм для создания и передачи пакетов данных IP (интернет протокола) и других сетевых протоколов через последовательный порт - будь то прямое соединение с использованием нуль-модемного кабеля, или канал через модем и телефонные линии (или цифровой канал, например ISDN).

Используя РРР, можно установить сетевое соединение между Вашим компьютером и РРР-сервером и получить доступ к его ресурсам, или к ресурсам всей сети, к которой подключен этот сервер.

Так же можно превратить Ваш компьютер под управлением ОС Linux в РРР-сервер и дать возможность другим компьютерам соединяться с ним и использовать его ресурсы или ресурсы Вашей локальной сети.

При помощи РРР можно объединить две локальные сети, или подключить локальную сеть к Интернет, создать глобальную сеть (WAN - Wide Area Network).

Главное отличие между РРР и подключением с использованием Ethernet, это, конечно же, скорость - стандартный Ethernet работает со скоростью 10 Mbs, или даже 100 Mbs (миллионы бит в секунду) передачи данных, тогда как аналоговые модемы работают со скоростью до 54 kbs (тысячи бит в секунду).

Также, в зависимости от вида РРР-соединения могут накладываться некоторые ограничения на использование отдельных приложений и сервисов.

Клиенты и серверы

РРР - это протокол, который устанавливает соединение между двумя компьютерами и, с технической точки зрения, не существует различия между машиной, которая инициирует соединение и машиной, которая отвечает на ее запрос. Но, для ясности, будет полезно ввести понятия "клиент" и "сервер". Когда Вы при помощи модема дозваниваетесь до другого компьютера, чтобы установить РРР соединение, Вы являетесь клиентом. Компьютер, с которым Вы соединяетесь, называется сервером. Когда Вы настраиваете Linux - компьютер на прием и обслуживание РРР соединений, Вы настраиваете РРР сервер. Каждая машина под управлением Linux может быть РРР сервером или клиентом, даже одновременно, если в компьютере есть несколько последовательных портов (и модемов).

В этой статье компьютер, который инициирует связь (дозванивается) будет называться КЛИЕНТОМ, а компьютер, который отвечает на телефонный звонок, производит распознавание запроса (используя пользовательские имена и пароли, а также другие механизмы) - СЕРВЕРОМ.

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

В этой статье также приведена процедура настройки РРР сервера и объединение двух локальных сетей вместе (с полной маршрутизацией) с использованием РРР. Часто это называется созданием WAN - глобальной компьютерной сети.

IP адреса

Каждое устройство, подключенное к Интернет, должно иметь свой собственный, уникальный IP адрес. Они распределяются централизованно, определенными службами для каждой страны.

Если Вы подключаете локальную сеть (LAN) к Интернет, Вы должны использовать определенное адресное пространство для всех компьютеров и устройств локальной сети. Невозможно выбирать произвольно эти адреса и использовать их для соединения с другой локальной сетью (даже неподключенной к Интернет). В худшем случае это просто не будет работать и вызовет хаос в сети, так как "украденные" IP адреса будут влиять на работу тех компьютеров, которые уже использовали эти же адреса.

Следует отметить, что IP адреса, используемые в этой статье (за некоторым исключением), взяты из "адресного пространства, неиспользуемого в сети Интернет", зарезервированного для внутрикорпоративных сетей. Эти адреса специально выделены для локальных сетей, не подключенных к Интернет. Вот они:

- одна сеть класса А 10.0.0.0 (маска 255.0.0.0)

- одна сеть класса В 172.16.0.0 - 172.31.0.0 (маска 255.255.0.0)

- одна сеть класса С 192.168.0.0 - 192.168.255.0 (маска 255.255.255.0)

Если у Вас есть локальная сеть, но Вы не получили для нее соответствующее адресное пространство, можно использовать любую сеть из описанных выше для компьютеров своей сети. Эти адреса никогда не будут использоваться в сети Интернет! Но они могут присваиваться сетевому адаптеру компьютера, который подключен к сети Интернет через другой сетевой адаптер, либо модем. Объясняется это тем, что сетевые адреса присваиваются не компьютерам, а их сетевым интерфейсам. Например, если сетевая плата компьютера имеет адрес 10.0.0.1, то при подключении к сети Интернет с использованием РРР, РРР-интерфейс (модем) получит свой IP адрес от сервера, через который установлено соединение. Этот компьютер сможет работать в сети Интернет, а другие ПК из этой же локальной сети - нет.

Конечно же, операционная система Linux позволяет использовать возможности IP Masquerade (также известный как NAT - Network address Translation, перевод сетевых адресов) и программу ipfadm для подключения локальной сети к Интернет (с ограниченным количеством сервисов) при наличии всего лишь одного реального IP адреса.

Для большинства пользователей, которые подключают свой ПК к ISP - Интернет Сервис Провайдеру через РРР канал связи, получение персонального IP (или сетевого) адреса не обязятельно.

В случае подключения к Интернет небольшой локальной сети, провайдер предоставит адресное пространство (группа сетевых адресов) из своего собственного адресного пространства. Или можно использовать IP Masquerade и один сетевой адрес.

Для пользователей, подключающих отдельный ПК к Интернет, большинство провайдеров использует динамическое распределение адресов. В процессе соединения РРР сервер сообщает машине-клиенту сетевой адрес его РРР-интерфейса, который будет использоваться на протяжении всего сеанса связи. При следующем соединении пользователь может получить уже другой IPадрес, но на его работе в сети это никак не скажется.

При динамическом распределении адресов Вы не получите один и тот же сетевой адрес при каждом соединении с сервером провайдера услуг Интернет. Это может сказаться на работе серверных приложений, выполняющихся на Вашем компьютере, например sendmail - почтовый сервер, ftpd сервер FTP, httpd - WWW сервер и так далее. Функционирование этих служб предполагает использование постоянного IP адреса (или, по крайней мере, зарегистрированного в системе DNS доменного имени).

Что нужно сделать для настройки клиентской части РРР

Поиск и установка программного обеспечения

Если Ваш дистрибутив Linux не включает программы РРР daemon - pppd, можно поискать его на FTP серверах в сети Интернет, например:

ftp://sunsite.unc.edu/pub/Linux/system/Network/seri-al/ppp/ppp-2.2.0f.tar.gz

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

Получение информации от провайдера Интернет

Существует множество способов настройки РРР-сервера. При подключении к провайдеру Интернет или к корпоративному серверу (Интранет вариант), Вам необходимо узнать, как работает РРР-сервер.

Перед тем, как установить РРР-соединение с сервером, получите следующую информацию от своего провайдера сетевых услуг:

- номер телефона, через который устанавливается соединение (или несколько номеров). Следует учесть, что если Ваша телефонная линия находится внутри корпоративной телефонной сети, следует набирать соответствующую комбинацию цифр ("0", а чаще всего "9") для выхода за пределы этой АТС.

- как сервер выделяет сетевые адреса - статически или динамически? Если сервер выделяет постоянный адрес для Вашего соединения, Вам нужно знать этот адрес. Если провайдер выделяет Вам не один адрес, а адресное пространство (подсеть), нужно знать адрес и маску этой подсети. Большинство провайдеров используют динамическое распределение сетевых адресов; как упоминалось выше, это влияет на набор сервисов и сетевых протоколов, которые Вы можете использовать. Но даже те провайдеры, которые выделяют постоянные сетевые адреса для своих клиентов, запрещают (из соображений безопасности своей сети) свободное использование этих адресов. Но даже в этом случае Вам необходимо знать эти адреса!

- какой адрес у DNS-сервера Вашего провайдера? Их должно быть, по крайней мере, два, но Вам достаточно знать один из них. На этом этапе можно столкнуться с небольшими трудностями. Дело в том, что операционная система MS Windows 95, настроенная на РРР - канал связи, способна автоматически получать эту информацию от сервера провайдера во время процесса инициализации соединения. Так что Ваш провайдер прежде всего попытается заверить Вас в том, что эта информация Вам не понадобится. Если Вы используете компьютер с операционной системой Linux для сетевого соединения, Вам необходим хотя бы один адрес сервера DNS.

- какая система идентификации пользователя (PAP или CHAP) используется сервером? В этом случае Вы должны узнать свое пользовательское имя и пароль для подключения к серверу провайдера.

- устанавливает ли сервер автоматически РРР-режим соединения, или Вам нужно выполнить какие-либо дополнительные команды? Если для запуска РРР нужно выполнить команду, то что это за команда?

- какая операционная система установлена на сервере (MS Windows NT, UNIX...)? Многие корпоративные сервера используют MS Windows NT.

Вся эта информация пригодится Вам в будущем при конфигурации Вашего компьютера.

Конфигурация модемаи последовательного порта

Для того, чтобы установить соединение с РРР-сервером с оптимальной скоростью, необходимо правильно настроить модем и последовательный порт компьютера, к которому он присоединен. Названия последовательных портов в Linux:

DOS com1: = Linux /dev/cua0 (и /dev/ttyS0)

DOS com2: = Linux /dev/cua1 (и /dev/ttyS1)

и так далее...

Если у Вас 4 последовательных порта, то нужно учесть, что порты com1 и com3 совместно используют прерывание IRQ4, а порты com2 и com4 делят друг с другом прерывание IRQ3. Если какое-либо устройство в Вашем компьютере подключено к последовательному порту, использующему то же прерывание, что и модем, это вызовет проблемы. Вы должны быть уверены, что последовательный порт Вашего модема использует свой собственный, уникальный номер прерывания. Многие модемы, а также материнские платы компьютеров позволяют настраивать эти параметры на нужные значения.

Если у Вас установлен Linux с кернелом версии 2 и выше, Вы можете проверить, какие прерывания используются системой при помощи команды:

cat /proc/interrupts,

которая выдаст похожий результат:

0:6766283timer

1:91545keyboard

2:0cascade

4:156944+srerial

7:101764WD8013

10:134365+BusLogic BT-958

13:1math error

15:3671702+serial

В этом примере один последовательный порт использует прерывание IRQ4 (мышь), а другой - IRQ15 (модем для РРР-соединения с Интернет). Порты com2, IRQ3 и com4, IRQ14 не показаны, так как они не используются системой.

При изменении параметров прерываний устройств Вашего компьютера будьте очень внимательны! Их настройка не сводится к простому вытряхиванию всех плат из компьютера и переносу перемычек с одного места на другое. Необходимо знать, какие IRQ можно использовать для каких устройств. В моем компьютере, конфигурация которого используется в этом примере, установлен SCSI жесткий диск, а контроллер IDE, обычно использующий прерывания IRQ14 и IRQ15, отключен, и я могу использовать эти прерывания для последовательного порта, к которому подключен модем! Также следует учесть, что если Вы установили несколько операционных систем на своем компьютере, переназначение прерываний устройств скажется на работоспособности каждой из них.

Если Вы изменили стандартные номера прерываний последовательных портов на нестандартные, следует сообщить об этом операционной системе. Это делается командой setserial, и лучше всего выполнять эти команды при загрузке ОС Linux, а для этого поместите вызов этих команд в файл rc.local или rc.serial. Для моей машины эти команды выглядят так:

/bin/setserial -b /dev/ttyS2 IRQ 11

/bin/setserial -b /dev/ttyS IRQ 15

Скорость передачи последовательного порта

Если Вы используете внешний модем (который работает со скоростью 14400 бит/сек и выше), последовательный порт, к которому он подключен, обязан обеспечить еще большую скорость передачи данных, так как модем может использовать протоколы сжатия данных при их передаче. Последовательный порт должен использовать микросхему UART (Universal Asynchronous Receiver Transmitter) как минимум 16550А. Если у Вас старый компьютер, в котором установлены UART 8250, Вы сможете работать только с медленными модемами. Чтобы узнать тип этой микросхемы, можно заглянуть под крышку своего компьютера, или выполнить команду:

/bin/setserial -a /dev/ttySx

Учтите: первые партии чипа UART 16550 были выпущены с ошибкой в своей конструкции, которая была исправлена в следующей версии микросхемы - UART 16550A. Сравнительно небольшое количество этих микросхем до сих пор распространено среди пользователей старых компьютеров.

Названия последовательных портов

Исторически Linux использует имена cuaX для передающих устройств и ttySX - для принимающих. В версиях кернела начиная с 2.0.x устройство ttySX уже способно выполнять обе эти функции, так что старое доброе название cuaXможет скоро исчезнуть.

Конфигурация модема

Перед тем, как настраивать модем, следует ознакомиться с документацией на него, так как очень часто параметры, которые были настроены при его изготовлении, полностью соответствуют требованиям РРР. Прежде всего обратите внимание на:

- Аппаратный контроль за потоком данных (RTS/CTS) - &K3 для всех Hayes-совместимых модемов.

Остальные параметры (в стандарте команд Hayes), которые должны быть определены:

E1 - включение ЭХО сигнала (Echo ON)

Q0 - разрешение выдачи на экран результирующих кодов

S0=0 - отключение автоответа

С1 - включение сигнала CD только после соединения

&S0 - Data Set Ready (DSR) всегда активен

(разные команды для разных типов модемов) - Data Terminal Ready (DTR)

Следует также уделить внимание взаимодействию модема и последовательного порта (для внешних модемов). Современные модемы позволяют настроить последовательный порт на фиксированную скорость передачи данных, в то же время модем может автоматически подстраивать свою скорость передачи данных по телефонной линии в зависимости от ее качества и максимальной скорости, которую поддерживает модем на другим конце этой линии. Это называется разделением скорости. Для последовательного порта компьютера можно установить максимально возможную скорость передачи данных (обычно 115,200 бод, но для медленных модемов на 14,400 можно установить скорость в 38,400 бод).

Чтобы проверить текущие параметры модема, можно использовать любое коммуникационное программное обеспечение (например minicom или seyon). Многие модемы сообщают свои настройки после ввода команды AT&V. Знакомство с инструкцией по эксплуатации модема никогда не повредит.

Если Вы окончательно запутались в настройках, то всегда существует возможность возвращения к заводским параметрам, установленным при его изготовлении, вводом команды AT&F. Для большинства модемов, с которыми я встречался, их заводские установки полностью удовлетворяли требованиям протокола РРР.

Когда Вы, наконец-то определили вид строки инициализации модема (со всеми необходимыми настройками), запишите ее. Теперь у Вас есть выбор - сохранить эти настройки в памяти модема или передавать их модему при его инициализации в момент установки РРР - соединения. Если модем используется только для связи с провайдером Интернет, целесообразно сохранить настройки в памяти модема. Если же модем может периодически использоваться другой операционной системой на этом же компьютере, но с другими требованиями к его настройкам, то его параметры лучше поместить в строке инициализации.

Контроль за потоком данных

Когда данные передаются по последовательным каналам связи, может случиться так, что данные будут поступать быстрее, чем компьютер сможет их обработать (компьютер может быть занят чем-нибудь другим, не забывайте, что Linux - это многозадачная и многопользовательская операционная система). Чтобы данные не были потеряны (те данные, которые не могут попасть во входной буфер), существует несколько методов контроля за потоком данных.

Два способа для последовательных каналов связи:

- Использование аппаратных сигналов модема (Clear To Send/Request To Send - CTS/RTS)

- Использование программных сигналов ( и , также известных как XON/XOFF).

Если последний способ полностью устроит передачу данных на текстовый терминал, то данные, передаваемые по РРР-каналу связи, используют все 8 бит и некоторые передаваемые символы могут быть интерпретированы как Ctrl-S и Ctrl-Q. Поэтому РРР требует использования аппаратных сигналов для контроля за потоком данных (CTS/RTS).

Тестирование модема

После настройки последовательного порта и модема пришло время проверить их работоспособность и попробовать соединиться со своим провайдером Интернет. Используя коммуникационное программное обеспечение (например, minicom), выполним команду модема "набор номера" (ATDP****/ATDT****) и попытаемся соединиться с РРР-сервером.

Примечание: на этом этапе мы не устанавливаем РРР-соединение, а только проверяем, как работает наше оборудование.

Во время этого процесса рекомендуется вести детальный протокол и сохранять всю информацию, которая будет появляться на вашем экране в файле или хотя бы на листе бумаги. Особенно это касается запросов сервера на ввод пользовательского имени и пароля (login: и password:) и всех других команд, необходимых для РРР-соединения.

Если Ваш сервер для идентификации пользователя использует протокол РАР (Password Authentication Protocol), Вы не увидите нормального текста приглашения для ввода имени и пароля пользователя. Вместо этого перед Вашими глазами побегут строки, созданные LCP (Link Control Protocol), которые выглядят, как мусор на экране.

Несколько предостережений:

- некоторые сервера позволяют подключение или с использованием стандартного текстового приглашения или через РАР.

- некоторые сервера ждут ввода определенного кода до запуска процедуры подключения.

- некоторые сервера находятся в пассивном режиме ожидания до тех пор, пока соединяющийся с ними компьютер не пошлет нужный LCP пакет. Если сервер, с которым Вы соединяетесь, находится в пассивном режиме, Вы никогда не увидите "мусора" на своем экране!

- некоторые сервера не запускают РРР до тех пор, пока Вы не нажмете клавишу <Enter> ; это тоже следует попробовать сделать, если на Вашем экране ничего не появляется.

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

- запрос на ввод Вашего пользовательского имени (login);

- запрос на ввод пароля (password).

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

Это будет выглядеть примерно так:

~y}#.!}!}!} }8}!$}%U}"}&} } } } }%}& ...}'}"} (}"} .~~y}

(и так далее...)

Такой же мусор появляется на Вашем экране и при закрытии РРР-соединения.

Теперь Вы можете отключить свой модем (обычно вводом +++ и набором команды ATH0 после того, как модем ответит ОК). Если Вам не удалось заставить свой модем работать, еще раз внимательно прочитайте руководство по его использованию, а также документацию на свое коммуникационное программное обеспечение и последовательные порты своего компьютера.

Игорь Грень, gren@isir.minsk.by

(продолжение следует)
- титульная страница


Компьютерная газета. Статья была опубликована в номере 35 за 1998 год в рубрике soft :: unix

©1997-2024 Компьютерная газета