Протокол РРР реализован в системе Linux в виде демона РРР (pppd), созданного на основе бесплатной реализации РРР для систем BSD. pppd может работать во всех режимах: в качестве клиента, в качестве сервера, по коммутируемым и выделенным каналам. (Понятия клиента и сервера должны быть знакомы читателям из главы 3.)

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

Простейший вариант настройки pppd связан с выделенными линиями. Выделенная линия или прямое подключение не требует создания сценария дозвона. Нет смысла динамически назначать адреса, поскольку выделенная линия всегда соединяет две конкретные системы. Проверка подлинности не особо востребована, поскольку выделенная линия физически соединяет две точки. Злоумышленник не может получить доступа к каналу, не считая вариантов «взлома и проникновения» или электронного прослушивания. В системе Linux настройка выделенного РРР-канала выполняется единственной командой в загрузочном сценарии:

  • pppd /dev/сиаЗ 56000 crtscts default route

Аргумент /dev/сиаЗ указывает устройство, с которым работает РРР. Разумеется, это именно тот порт, который подключен к выделенной линии. Скорость линии определяется в битах за секунду (56000). Оставшаяся часть строки команды содержит последовательность ключевых слов параметров. Параметр crtscts включает аппаратный контроль передачи. Последний параметр, default route, создает маршрут по умолчанию через удаленный сервер, используя его в качестве шлюза.

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


Адреса могут быть указаны в командной строке в формате «локальный:удаленный». Пример:

  • pppd /dev/сиаЗ 56000 crtscts defaultroute 172.16.24.1:

Здесь указан локальный адрес 172.16.24.1 и пустой адрес второй стороны. В этом случае pppd передает адрес, указанный в командной строке, и ожидает, что удаленный сервер пришлет свой адрес. Локальный адрес указывается в командной строке, если он отличается от адреса, связанного с именем локального узла в таблице узлов либо на сервере DNS. Например, система может использовать интерфейс Ethernet, которому уже назначен адрес. Чтобы воспользоваться другим адресом для соединения РРР, мы должны указать его в командной строке pppd; в противном случае каналу РРР будет назначен существующий адрес интерфейса Ethernet.

Команда pppd предоставляет гораздо больше параметров, чем мы увидим в примерах этой главы (полный перечень параметров содержится в приложении А). В действительности параметров командной строки pppd существует столько, что иногда проще сохранить их в файле, чем набирать в командной строке, pppd читает параметры прежде всего из файла /etc/ррр/options, затем из файла -/.ррргс, затем из файла /etc/ррр/options.device (где device - имя устройства, скажем, сиаЗ) и, наконец, из командной строки. Порядок обработки параметров создает определенную иерархию: параметры командной строки имеют более высокий приоритет, чем параметры файла -/.ррргс. Параметры файла -/.ррргс, в свою очередь, имеют приоритет более высокий, чем параметры файла /etc/ррр/options. Такая система позволяет системному администратору задать общесистемные умолчания параметров в файле /etc/ ppp/options, но оставить пользователям возможность дополнительно настраивать РРР. Файл /etc/ррр/options является удобным и гибким способом передачи параметров демону pppd.

Единственная команда pppd позволяет настроить РРР для работы по выделенному каналу. Коммутируемые соединения требуют больших усилий.