Новые книги

C# 2008 Programmers Reference provides a concise and thorough reference on all aspects of the language. Each chapter contains detailed code samples that provide a quick and easy way to understand the key concepts covered.
Новое издание книги, посвященной созданию веб-серверов, клиент-серверных приложений или любого другого сетевого программного обеспечения в операционной системе UNIX, — классическое руководство по сетевым программным интерфейсам, в частности сокетам. Оно основано на трудах Уильяма Стивенса и полностью переработано и обновлено двумя ведущими экспертами по сетевому программированию. В книгу включено описание ключевых современных стандартов, реализаций и методов, она содержит большое количество иллюстрирующих примеров и может использоваться как учебник по программированию в сетях, так и в качестве справочника для опытных программистов.

Running pppd

Запуск pppd

Когда Вы хотите соединитьcя с Internet через PPP-связь, Вы должны установить базисные возможности работы с сетями: loopback-интерфейс и поддержку сервера имен. Обе задачи были описаны в предыдущих главах. Имеются некоторые особенности, которые нужно помнить относительно использования DNS с последовательной связью, пожалуйста, обратитесь к главам 5 и 6 за подробностями. Вы можете просто настроиться на сервер имен провайдера, указав его в файле /etc/resolv.conf, но это будет означать, что каждый запрос к DNS пойдет по последовательной связи. Эта ситуация не оптимальна: чем ближе сервер имен, тем быстрее происходит преобразование. Альтернативное решение состоит в том, чтобы конфигурировать только кэширующий сервер имен в Вашей сети. Это означает, что первый раз, когда Вы делаете запрос к DNS для конкретного компьютера, он будет послан по последовательной связи, но на все следующие запросы для этого же компьютера будет отвечать непосредственно локальный сервер имен, что будет намного быстрее. Эта конфигурация описана в главе 6.

Как вводный пример того, как устанавливать PPP-связь с помощью pppd, представьте, что Вы работаете на машине vlager. Вы уже соединились с сервером c3po по телефону и зарегистрировались под именем ppp. Машина c3po уже запустила свой PPP-драйвер. После выхода из коммуникационных программ, которые Вы используете для соединения по телефону, Вам необходимо выполнить следующую команду:

# pppd /dev/ttyS3 38400 crtscts defaultroute

Эта команда переведет последовательную линию ttyS3 в PPP-режим и установит IP-связь с c3po. Скорость передачи, используемая на последовательном порте будет 38400bps. Опция crtscts включает аппаратное соединение (hardware handshake) на порт, который должен работать на скорости более, чем 9600 bps.

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

В настоящее время, мы также предполагаем, что c3po не требует какой-либо авторизации, так что период конфигурации завершен успешно.

pppd будет договариваться о IP-параметрах с сервером, используя IPCP (IP control protocol). Так как мы не определяли точно IP-адрес в pppd выше, то он попробует использовать адрес, полученный при просмотре локального hostname. Затем машины объявят этот адрес друг другу.

Обычно, с этими значениями по умолчанию ничего не делается. Даже если Ваша машина находится в Ethernet, Вы можете использовать тот же самый IP-адрес для Ethernet и для PPP-интерфейса. Но тем не менее pppd позволяет Вам использовать различные адреса или даже спрашивать сервер для того, чтобы использовать некоторый специфический адрес. Эти опции будут рассмотрены чуть позже в разделе Опции настройки IP (IPCP).

После прохождения периода установки IPCP, pppd подготовит Ваш сетевой интерфейс для того, чтобы использовать PPP-связь. Сначала будет сконфигурирован сетевой интерфейс PPP как связь point-to-point, используя ppp0 для первой PPP-cвязи, которая является активной, ppp1 для второй и так далее. Затем, он установит маршрутную таблицу, которая указывает на хост в другом конце связи (сервер). В примере, показанном выше, pppd создаст сетевой маршрут по умолчанию к c3po опцией defaultroute. Он заставляет все пакеты к хостам не в локальной сети идти через c3po. Есть ряд различных маршрутов, которые поддерживает pppd, их мы обсудим позже в этой главе.