Родерик Смит - Сетевые средства Linux
Чтобы программа diald могла работать, необходимо установить в ядре Linux средства поддержки SLIP (вопросы настройки и компиляции ядра рассматривались в главе 1). Протокол SLIP необходим для связывания компьютера с программой diald. Эта программа поддерживает постоянно активный сетевой интерфейс, поэтому она имеет возможность выявлять сетевой трафик и устанавливать при необходимости PPP-соединение.
К сожалению, diald не входит в состав большинства дистрибутивных пакетов Linux, поэтому этот инструмент необходимо устанавливать отдельно. Исходный код программы можно найти на сервере http://diald.sourceforge.net, а для того, чтобы получить двоичные коды diald для RPM и Debian, надо обратиться соответственно по адресам http://www.rpmfind.net и http://www.debian.org/distrib.packages.
Для настройки программы diald используются три конфигурационных файла, описанных ниже.
• /etc/diald.conf. В этом файле содержатся опции, подобные тем, которые используются сценарием ppp-on, например, имя устройства, посредством которого подключен модем (device), и скорость соединения (speed). Посредством опций local и remote задаются IP-адреса для внутреннего использования в программе diald. Эти адреса должны принадлежать одному сегменту, но следует следить за тем, чтобы они не совпадали с адресами узлов вашей локальной сети. Вы можете использовать для этой цели IP-адреса, специально выделенные для внутренних сетей, например адреса, принадлежащие диапазону
• /etc/ppp/diald-dialer. Этот файл практически идентичен рассмотренному ранее сценарию ppp-on-dialer. При настройке его содержимое необходимо изменить так же, как и ppp-on-dialer.
• /usr/lib/diald/standard.filter. В этом файле задается значение тайм-аута. Если в течение указанного интервала времени сетевая активность отсутствует, программа diald должна разорвать соединение. Если в процессе работы вы обнаружите, что соединение прекращается слишком быстро, имеет смысл вернуться к значению тайм-аута по умолчанию, первоначально заданному в файле /usr/lib/diald/standard.filter.
Если ваш провайдер использует PAP или CHAP, то кроме перечисленных выше конфигурационных файлов, вам надо также отредактировать файл /etc/ррр/pap-secrets или /etc/ppp/chap-secrets. В соответствующем файле указываются те же данные, что и при настройке PPP-соединения, устанавливаемого с помощью обычных сценариев. Вам также придется включить в файл /etc/resolv.conf адреса серверов DNS, которые сообщит провайдер. Для того чтобы запустить diald, надо задать команду /usr/sbin/diald. Сделать это может только пользователь root. После этого diald будет распознавать трафик, направленный извне, и устанавливать PPP-соединения. Первая попытка обращения к серверу Internet закончится неудачей, так как для установления соединения требуется время, превышающее время тайм-аута большинства служб Internet. Вторая попытка будет успешной.
Если вы хотите, чтобы программа diald автоматически запускалась при загрузке системы, вам надо создать сценарий запуска SysV или включить дополнительные записи в локальный сценарий (/etc/rc.d/rc.local или /etc/rc.d/boot.local). Программа diald будет нормально работать и в том случае, если ваш компьютер выполняет функции NAT-маршрутизатора.
Резюме
Для того чтобы работа в сети стала возможной, необходимо реализовать тот или иной тип сетевого соединения. В настоящее время для создания подавляющего большинства локальных сетей используется технология Ethernet. В системе Linux присутствуют надежные средства поддержки сети Ethernet. IP-адреса в сети распределяются либо вручную, либо для этой цели используются клиенты и сервер DHCP. Linux поддерживает оба способа распределения адресов. Настройка большинства локальных сетей выполняется приблизительно так же, как и настройка сетей Ethernet. Единственным исключением являются PPP-соединения. Протокол PPP обычно применяется для обеспечения сетевого взаимодействия по коммутируемым линиям. Для поддержки PPP-соединения используется программа pppd, выполняющаяся в системе Linux в режиме демона. Обращение к pppd осуществляется с помощью специальных программ с графическим интерфейсом, сценариев либо посредством программы diald. В любом случае после активизации PPP-соединения формируется интерфейс, который с программной точки зрения аналогичен Ethernet или другому сетевому интерфейсу.
Глава 3
Альтернативные стеки протоколов
Компьютерная программа — идеальный инструмент для решения тех задач, которые предполагают скрупулезное следование предписаниям. В ситуациях, не предусмотренных инструкциями, компьютер становится практически беспомощным. Поэтому для обеспечения работы сетей тщательно разработаны протоколы — подробное описание действий узлов сети при выполнении транзакций. Как было сказано в главе 1, протоколы объединяются в иерархическую систему, называемую стеком сетевых протоколов, или стеком протоколов. Наиболее часто в настоящее время используется стек протоколов TCP/IP. На базе протоколов семейства TCP/IP построена вся сеть Internet, кроме того, протоколы данного семейства широко используются при работе различных операционных систем, в частности Linux. В главе 2 была описана конфигурация системы для поддержки TCP/IP. Помимо TCP/IP, существует ряд альтернативных стеков протоколов, которые также поддерживаются в Linux.
В начале данной главы представлены обзор стеков протоколов и краткое описание TCP/IP. Далее обсуждаются три наиболее часто используемых стека: AppleTalk, IPX и NetBEUI. Эти стеки протоколов применяются в основном в локальных сетях, содержащих компьютеры Macintosh и PC под управлением Windows. С их помощью обеспечивается разделение файлов и принтеров.
Общие сведения о стеках протоколов
Для того чтобы вести предметный разговор о стеках протоколов и обсуждать их достоинства и недостатки, необходимо иметь хотя бы общее представление о том, как организован стек, какие функции выполняют протоколы, входящие в его состав, и как они реализованы. Большинство стеков протоколов действует по единому принципу и отличается лишь в деталях. Однако именно эти детали и являются основным аргументом в пользу выбора тех или иных протоколов.
Модель сетевого взаимодействия OSI
В основу работы стека протоколов положена модель OSI (Open System Interconnection — взаимодействие открытых систем). Данная модель предусматривает семь уровней сетевого взаимодействия, на каждом из которых решаются конкретные задачи. Источником данных, предназначенных для передачи, является программа, находящаяся на верхнем уровне модели OSI, который называется прикладным уровнем. Программа передает данные нижележащему представительскому уровню, и далее информация перемещается вниз по стеку. На каждом уровне выполняется определенная обработка данных. Нижним уровнем OSI является физический уровень, на котором решаются вопросы передачи электрических сигналов, использования кабелей, концентраторов, коммутаторов и т.д. Именно на физическом уровне осуществляется реальная передача данных от передающего компьютера к принимающему. (Если оба компьютера принадлежат одному сегменту сети, данные передаются достаточно просто. В противном случае передача осуществляется поэтапно, и на каждом этапе выполняется дополнительная обработка информации.) На принимающем компьютере данные перемещаются вверх по стеку протоколов и в конечном итоге достигают программы на прикладном уровне. Получив информацию, программа может передать ответ. Данные, составляющие ответ, также движутся вниз по стеку, передаются через сетевые соединения, а затем на компьютере, которому они предназначены, перемещаются вверх по стеку протоколов. На рис. 3.1. проиллюстрирован описанный выше процесс.
Рис. 3.1. Компоненты стека протоколов выполняют обработку данных для передачи их на другой компьютер
На заметкуНесмотря на то что OSI является универсальной моделью, описывающей сетевое взаимодействие, в реальных стеках протоколов редко поддерживаются все семь уровней. Наиболее часто используемые стеки — TCP/IP, AppleTalk и NetBEUI — могут быть описаны в терминах OSI. При этом стек TCP/IP насчитывает лишь четыре уровня, однако общие принципы обработки передаваемых данных остаются неизменными.
Каждый уровень модели OSI взаимодействует только с двумя уровнями; один из них расположен непосредственно над ним, а другой — под ним. (Исключениями являются прикладной и физический уровни. Прикладная программа взаимодействует непосредственно с пользователем, а на физическом уровне решаются вопросы соединения двух компьютеров.) Для программных средств, реализующих различные уровни стека протоколов на конкретном компьютере, должен быть четко определен интерфейс межуровневого взаимодействия. Компоненты, соответствующие определенным уровням, должны допускать замену. Так, например, на прикладном уровне могут работать Web-броузеры и Web-серверы. Если вы замените один броузер или сервер другим, работа всего стека протоколов не нарушится. (В некоторых броузерах и серверах могут отсутствовать определенные возможности, например, броузер может не поддерживать средства SSL, однако на самом деле такие вопросы скорее относятся к интеграции сетевых средств.) Аналогично вы можете на физическом уровне заменять сетевые кабели, концентраторы и даже сетевые карты с драйверами. При этом средства поддержки более высоких уровней не нуждаются в модификации.