Origin: http://www.linux.org.ru/books/
 From: Ultracom 
====================================================================
                                                           1992-1994

   Олаф Кирч (Olaf Kirch)





.
                                - 2 -



     1. Предисловие

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

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

     Разговор  о  компьютерных  сетях  очень часто означает разговор о
UNIX.  Конечно,  UNIX - не единственная сетевая операционная система и
не  всегда  она  будет  лидером,  но умрет она очень не скоро. Поэтому
особенно  интересным  для пользователя становится появление бесплатных
UNIXоидных  операционных  систем  для  PC  (386BSD,  FreeBSD и Linux).
Однако, Linux - не UNIX. Unix - зарегистрированная торговая марка, кто
бы  в  настоящее время не держал права на него, в то время как Linux -
oперационная  система, которая стремится предложить все функциональные
возможности,  требующие POSIX-стандарты для UNIX-подобных операционных
систем.

     Ядро  Linux  было написано в значительной степени Linus Torvalds,
человеком,  который  начал это проект, чтобы понять как работает Intel
i386  и  MINIX. MINIX -- другая, популярная тогда операционная система

                                - 3 -

для   PC,   предлагающая  многие  функциональные  возможности  Unix, и
написанная профессором A.С.Танненбаумом.

     Linux  попадает  под  GNU  Лицензию,  которая  позволяет свободно
распространять  код  (пожалуйста  читайте  GPL  в  приложении 20.3,где
написано,    что    значит    "свободнораспространяемое    программное
обеспечение").  Понемногу оставляющая трудности, связанные с маленьким
возрастом,   и   привлекающая  большой  и  все  возрастастающей  базой
бесплатных  прикладных  программ,  эта операционная система становится
все более распространенной. Ядро и C библиотека становятся так хороши,
что  большинство стандартного программного обеспечения компилируется с
тем  же  успехом,  что  и  на  любой  другой  Unix  системe, а широкий
ассортимент различных Linux позволяет Вам просто переписать его на ваш
жесткий диск и начинать работать.


     1.1. Документация о Linux

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

     Так  в  1992,  Lars  Wirzenius  и  Michael  K. Johnson предложили
организовать   проект   документации   для   Linux,   или  LDP  (Linux
Documentation  Project),  который стремится к обеспечению пользователя
полным набором документации. Коротко останавливаясь на вопросах типа "
Как?  ",  "Почему?",  или  "Что  -  значит  жизнь,  вселенная,  и  все
остальное?",   эти   руководства   пытаются   охватить   все   аспекты
управления  и  использования  Linux  пользователем,  не требуя от него
предварительного  знания  Unix.  Среди достижений LDP - Руководство по
установке, написанное Matt Welsh, Руководство по взлому ядера, Michael
K.  Johnson,  и  проект  создания  man-страниц,  скоординированный Rik
Faith,  который  пока  снабдил  Linux  450  страницами руководства для
большого  количества системных вызовов и Cи библиотек. Руководство для

                                - 4 -

администраторов  системы, написанное Lars Wirzenius, находится все еще
на стадии разработки. Руководство пользователя уже подготовлено.

     Однако,  книги LDP - не единственный источник информации о Linux.
В   настоящее   время,  имеются  больше  чем  дюжина  HOWTOs,  которые
отправлены  по почте к comp.os.linux.announce и регулярно архивируются
на различных FTP серверах.

     HOWTOs  -  короткие  документы,  состоящие из нескольких страниц,
которые  дают  Вам  краткое  представление  по  темам  типа  поддержки
Ethernet  под Linux, или конфигурации Usenet программного обеспечения,
а  также  ответы  на часто задаваемые вопросы. Они обычно обеспечивают
наиболее  точную  и современную информацию, доступную по даннной теме.
Список  доступных  HOWTO  приводится  в  "Аннотируемой Библиографии" в
конце этой книги.

     1.2. Об этой книге

     Когда я присоединился к LDP в 1992, я написал две маленькие главы
об  UUCP  и  smail,  которые  я  хотел  добавить  к  "Руководству  для
администратора  системы".  Разработка TCP/IP сети только начиналась, и
когда  те  "маленькие главы" начали расти, я решил, что было бы хорошо
иметь  Руководство  для  администратора  сети,  пошел и написал первую
версию Руководства Сети, которую и выпустил в сентябре 1993.

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

     Книга  организована  как  последовательность  шагов,  которые  Вы
должны  сделать,  чтобы  отконфигурировать  вашу  систему для работы в
сети.  Все  начинается с обсуждения основных концепции сетей вообще, и
сетей,  основанных на TCP/IP, в частности. Мы медленно пройдем путь от
конфигурирования  TCP/IP  на  уровне устройств к установке стандартных
приложений   типа  rlogin  и  подобных,  сетевой  файловой  системы, и
информационной  системы  сети.  К  этому  прилагается глава о том, как
сделать  вашу  машину  UUCP-узлом. Остаток книги посвящен двум главным
приложениям,  которые  запускаются  как  над  TCP/IP,  так и над UUCP:

                                - 5 -

электронная почта и новости.

     Email  часть  более  широко описывает механизмы транспортировки и
маршрутизации  почты, и множество схем адресации, с которыми вы можете
столкнутся.  Там  же  описывается конфигурирование и управление smail,
агента транспортировки почты, обычно используемого на меньших почтовых
центрах,  и  sendmail, который преддлагается для людей, которые должны
заниматся  сложной  маршрутизацией  или работать с большим количеством
почты. Глава Sendmail была написана Vince Skahan.

     Часть   News  пытается  дать  Вам  краткий  обзор  работы  Usenet
новостей,  наиболее  широко используемое в настоящее время программное
обеспечение  для  транспортировки  новостей  и  использование NNTP для
обеспечения  доступа  newsreader  к  местной сети. Книга заканчивается
короткой главой о наиболее популярных newsreaders для Linux.


     1.3. Официально Напечатанная Версия

     Осенью 1993, Andy Oram, человек который был в списке рассылки LDP
почти с самого начала, спросил меня относительно публикации моей книги
в  фирме O'Reilly и Партнеры. Я был воодушевлен этим; Я никогда не мог
вообразить,  что  моя  книга  пользуется  успехом.  Мы согласились что
O'Reilly  будет  печатать "Официальную печатную версию руководства для
администратора  сети",  в  то  время  как  Я  сохранил  первоначальные
авторские  права  так,  чтобы  книга  свободно  распространялась.  Это
означает    что    Вы    можете    выбрать:   получить   LaTeX   текст
распространяемый  по  сети ( DVI или PostScript версии), и распечатать
их.  Или  Вы  можете купить официально напечатанную версию у O'Reilly,
которая будет доступна несколько позже в этом году.

     Непонятно,  почему  Вам захочется заплатить деньги за что-то, что
Вы  можете  достать  бесплатно?  Не  сошел  ли Tim O'Reilly с ума, раз
пытается  продавать  то  что каждый может напечатать и даже продавать?
Или есть некое различие между этими версиями?

     Ответ  --  "это  зависит",  "нет,  определенно не," и "да и нет."
O'Reilly  и  Партнеры  рискует, публикуя это руководство, но Я надеюсь

                                - 6 -

что  это  окупится.  Если  это  произойдет, Я полагаю, что этот проект
сможет  послужить  как  пример  того  как мир бесплатного программного
обеспечения и компании могут сотрудничать, чтобы произвести что-нибудь
полезное и тем и другим. На мой взгляд, O'Reilly делает большую услугу
Linux  сообществу  (кроме  книге  доступной  в  вашем  местном книжном
магазине)  и тем, что это может помочь всем посмотреть на Linux как на
что-то  серьезное,  как  на  жизнеспособную  и  полезную  альтернативу
коммерческим UNIX операционным системам для PC.

     Так  что  же  относительно  различай между напечатанной версией и
электронной?  Andy  Oram  провел большую работу по преобразованию моей
ранней  версии  в  то, что можно печать. (Он просмотрел также и другие
книги  созданные  под  эгидой  LDP, и повышал как мог профессиональный
уровень нашей документации).

     С   тех   пор   Andy   начал   просматривать   это  Руководство и
редактировать  копии,  которые  Я  послал ему, книга стала значительно
лучше,  чем  еще  пол  года  назад.  И  если бы не он то книга была бы
гораздо  хуже  чем  есть сейчас Все его изменения тут же вставлялись в
электронную версию, и все последующие изменения, которые будут сделаны
к  Руководству  для  администратора  сети  во  время редактирования их
O'Reilly  так  же  будут  вставлены.  Таким  образом  не будет никаких
различай   между   этими  версиями.  Все  же,  версия  O'Reilly  будет
несколько  отличатся: С одной стороны, люди O'Reilly проделывают массу
работы  над  внешним видом книги на таком уровне который вы никогда не
получите  от  стандартного  TEXа  С  другой  стороны, там будет больше
картинок, и улучшенный алфавитный указатель.

     1.4. Дополнительная Информация

     Если  Вы  следуете  инструкциями  этой  книги,  и  что-нибудь  не
работает,  пожалуйста  будьте  терпеливы.  Некоторые  из ваших проблем
могут возникнуть из-за моих глупых ошибок, но могут также быть вызваны
изменениями  в  программном  обеспечении.  Лучше спросить относительно
своих  проблем  на comp.os.linux.help. Есть большая вероятность что Вы
не  единственный  кто  столкнулся  с  подобными вашим проблемами, и ее
решение   известно.  Если  Вы  имеете  возможность,  Вы  должны  также
попробовать   получить   самую   последнюю   версию  ядра  и  сетевого

                                - 7 -

программного  обеспечения  на  одном  из  Linux  FTP  серверах, или на
ближайшей от вас BBS.

     Много  проблем  связаны с программным обеспечением находящихся на
различных  стадиях  разработки,  которые  оказываются  не  в состоянии
работать вместе должным образом.

     Другое  хорошее  место,  где  можно узнать о процессе разработки
организация   сети   HOWTO.  Ее  поддерживается  Terry  Dawson  HOWTOs
отсылаются  по  почте  на  comp.os.linux.announce  один раз в месяц, и
содержат  наиболее  современную  информацию. Текущая версия может быть
также получена на tsx-11.mit.edu, в /pub/linux/doc. Если свои проблемы
Вы  не  можете  решить другим путем, Вы можете также войти в контакт с
автором  этой  книги  по  адресу  данному  в  ведении. Но, пожалуйста,
воздержитесь  от  обращения  за  помощью  к  разработчикам.  Они и так
посвящают основную часть свободного времени Linux.

     1.5. Об Авторах

     1.  Olaf  был  UNIX пользователем и администратором пару лет пока
изучал  математику. В настоящее время он работает UNIX программистом и
пишет  книгу.  Одно  из его любимых спортивных состязаний делать такие
вещи  с  помощью  sed для которых другие люди использовали бы perl. Он
получает  от этого такое же удовольствие как другие люди от лазанья по
горам с палаткой и рюкзаком.

      2.
с  1987  и  в настоящее время управляет sendmail+IDA на приблизительно
300  UNIX  машинах для более чем 2000 пользователей. Он признался, что
провел  много бессонных ночей за редактированием sendmail.cf файлов до
открытия  sendmail+IDA  в  1990.  Он  также  признает,  что с тревогой
ожидает  поставки  первой perl версии sendmail, для неясных пока забав
(см. 4).

      3.     Terry    Dawson    может    быть    найден    по    адресу
terryd@extro.ucc.su.oz.au.

      4. Вы думаете что Вы могли бы сделать это в sed, Vince?

                                - 8 -


     Olaf может быть найден по следующему адресу:

     Olaf Kirch
     Kattreinstr. 38 64295 Darmstadt Германия
     okir@monad.swb.de

     Vince может быть найден на:

     Vince Skahan
     vince@victrola.wa.com

     Мы  открыты  для  ваших вопросов, комментариев, открыток, и т.д..
Однако, мы просим Вас писать нам только если это действительно важно.

     1.6. Благодарности

     Olaf благодарит всех людей, которые профессионально прочитали эту
книгу, и потратили свое время на исправление ошибок как грамматических
так и технических. Наиболее энергичный среди них был Andy Oram.

     Я  очень признателен Andres Seplveda, Wolfgang Michaelis, Michael
K.  Johnson,  и  всем  разработчикам  кто  потратил  свое  время чтобы
проверить  информацию,  находящуюся в данном Руководстве. Я также хочу
поблагодарить   всех  тех  кто  читал  первую  версию  Руководства  за
посланные  меня  исправления  и  предложения.  Вы  можете найти полный
список помощников в файле Thanks. И Наконец, эта книга не появилась бы
без поддержки Holger Grothe.

     Я  также  хотел  бы  поблагодарить  следующие  группы и компании,
которые  напечатали  первое  издание Руководства и пожертвовали деньги
или мне, или LDP в целом.

        + Linux Бригада Поддержки, Erlangen, Германия

        + S.u. S.E. GmbH, Fuerth, Германия

        + Linux Лаборатории Системы, Компания, Соединенные Штаты

                                - 9 -


     Vince благодарит Neil Rickert и Paul Pomes за большую помощь во время
работы с sendmail+IDA и Rich Braun за перевод sendmail+IDA на Linux.
Самая большая благодарность моей жене Susan за  всю поддержку в этом и других
проектах.

     1.7. Условные Обозначения

     Условные   обозначения   были   введены  чтобы  отметить  команды
оболочки, переменные аргументы, и т.д.. Ниже приводится их описания.

     Жирный  шрифт  используется  чтобы  отметить  имя  хоста и адреса
почты, а также новые концепции и предупреждения.

     Italics  шрифт  используется  чтобы  отметить  имена  файла, UNIX
команды и ключевые слова в файлах конфигурации. Также используется для
расстановки акцентов в тексте.

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

     Typewriter    Slanted    шрифт    используется   чтобы   отметить
meta-переменные  в  тексте, особенно в представление командной строки.
Например:

               $ Ls -l foo

               Где foo -- имя файла, типа /tmp.

'клавиша'  Представляет  клавишу,  которую надо нажать. Вы будете
часто видеть это в этой форме:

                Press 'return' to continue.

     <>  -  алмаз  с  краю, подобно черному алмазу на a лыжном склоне,
отмечает   "опасность"   или   "предостережение."   Читайте  параграфы

                                - 10 -

отмеченные этим значком более тщательно.


     $  И  # предшествует команде оболочки которую нужно выполнит. "$"
символ   используется  когда  команда  может  быть  выполнена  простым
пользователем;   "#"   означает  что  команда  требует  пользователя с
привилегией root.


     1.8. Проект linux документации

     Проект  linux  документации, или LDP, является свободной бригадой
авторов  и  редакторов,  которые  работают  вместе,  чтобы  обеспечить
завершенную  документацию  для  Linux  операционной  системы.  Главный
координатор  проекта  -  Matt  Welsh,  ему  помогает  Lars Wirzenius и
Michael K. Johnson.

     Это  руководство распространяется как часть LDP, который включает
в себя "Linux Руководство Пользователей", "Руководство Администраторов
Системы",  "Руководство  Администраторов Сети", и "Руководство хакеров
ядра".  Эти руководства доступны в формате LaTeX, .dvi и Postscript на
анонимном FTP ic.funet.fi, в каталоге /pub/OS/Linux/doc/doc-project, и
на tsx-11.mit.edu, в каталоге /pub/linux/docs/guides.

     Мы  поощряем  любого  кто  пожелает  помогать  нам улучшать Linux
документацию.  Если  Вы  имеете  доступ к электронной почте, Вы можете
присоединяться  к  DOC каналу списка рассылки linux-активистов посылая
почту на linux-activists-request@niksula.hut.fi

Со строкой:
  X-Mn-Admin:  join DOC

     в  заголовке  или как первая строка тела сообщения. Пустая почта,
без  дополнительной  строки, заставит mail-server отослать сообщение с
помощью.  Чтобы  оставить  канал,  пошлите  сообщение  тому  же самому
адресу, включив строку

   X-Mn-Admin: leave DOC

                                - 11 -


     1.9. Стандартная организация файлов системы

     В  прошлом,  одна  из  проблем  которые  сокрушили  Linux а также
отдельные  пакеты  было  то,  что  в нем не был принят единый стандарт
расположения  системных  файлов. Это приводило к несовместимости между
различными  пакетами и ставило перед пользователями и администраторами
задачу расположения различных файлов и программ в нужном порядке.

     Чтобы  улучшить  эту  ситуацию,  в  августе  1993 несколько людей
сформировали  Группу  Стандартов  Системы  Файлов в Linux, или коротко
FSSTND  После  шести  месяцев  обсуждения,  группа представила проект,
который   представляет   структуру   системных   файлов  и  определяет
местоположение наиболее необходимых программ и файлов конфигурации.

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

     Стандарт  системы  файлов  в  Linux  может  быть  получен на всех
основных  Linux  FTP серверах и их зеркалах; например, Вы можете найти
его  на sunsite.unc.edu в /pub/linux/docs. Daniel Quinlan, координатор
группы FSSTND, может быть найден по адресу quinlan@bucknell.edu.lex
.
                                - 12 -



     2. Общие сведения о сетях.

     2.1. Введение.

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

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

     Здесь  будет  описано  два  типа сетей: те что базируются на UUCP
протоколе,  и  те  что базируются на TCP/IP. Это комплект протоколов и
программ,  которые предоставляют различные способы передачи информации
между  компьютерами.  В  этой  главе  мы  рассмотрим  оба типа сетей и
обсудим их основополагающие принципы.

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

     Хост  --  это  чаще всего компьютер, но не обязательно, это может
быть и Х-терминал, и сетевой интеллектуальный принтер. Небольшой набор
хостов можно называть участок(site).

     Связь  невозможна  без какого либо языка или кода. В компьютерных

                                - 13 -

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

     2.2. UUCP сети.

     UUCP   (Unix-to-Unix  copy)  начинался  как  пакет  программ  для
пересылки   файлов   через  последовательные  линии,  управления  этой
пересылкой  и  выполнения  программ  на удаленной машине. Он претерпел
большие  изменения  с  тех  пор  как  был  впервые  предложен  в конце
семидесятых,  но  до  сих  пор  по спартански простой по. Его основные
приложения до сих пор базируются на телефонных линиях.

     UUCP  впервые  был  предложен  Bell лабораториями в 1977 году для
связи  между их Unix участками. В середине 1978 г. эта сеть объединяла
уже 80 машин. Она позволяла использовать электронную почту и удаленную
печать. Сегодня UUCP не ограничивается только Unix средами. Существует
масса как коммерческих так и бесплатных переносов данного протокола на
другие платформы, включая AmigoOS, DOS, Atari's TOS, и другие.

     Один  из  главных  недостатков UUCP сетей -- их низкая пропускная
способность.  С  одной  стороны, телефонное оборудование устанавливает
жесткий  предел  на  максимальную скорость передачи. С другой стороны,
UUCP  соединение -- редко постоянная связь; где хосты соединяются друг
с   другом  через  определенный  интервал.  Следовательно,  наибольшее
количество  времени  при передаче почты через UUCP она просто лежит на
диске  некоторого  хоста,  обживающего  установления следующего сеанса
связи.

     Несмотря  на  эти  ограничения,  имеется  большое количество UUCP
сетей,  работающих  во  всем  мире  главным  образом  под  управлением
энтузиастов,  которые  предлагают  частный  доступ  к сети за разумные
цены. Главная причина популярности UUCP в том, что это очень дешево по
сравнению  с наличием компьютера, связанного кабелем с Intеrnet. Чтобы

                                - 14 -

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


     2.2.1. Как Использовать UUCP

     Идея  UUCP  довольно  проста:  как и указывает его название, он в
основном  копирует  файлы с одного хоста на другой, но также позволяли
определенным действиям выполняться на удаленном хосте.

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

     $ Uux -r swim! Lpr! Netguide.dvi

     Uux,  команда  из  UUCP  набора, передает работу swim. Эта работа
состоит  из входного файла, netguide.dvi, и запроса передать этот файл
команде  lpr.  -r  флаг  просит  uux  не  вызывать  отдаленную систему
немедленно,  а  сохранить  работу  до  установления  связи  с ней. Это
названо spooling (спулинг).

     Другое  свойство  UUCP, позволяет передавать задачи и файлы через
несколько  хостов.  Предположим swim, упомянутый в предыдущем примере,
связан  UUCP  с  groucho,  который  поддерживает  большой  архив  Unix
приложений.  Чтобы  загрузить файл tripwire-1.0.tar.gz на вашу машину,
Вы могли бы ввести

   $  uucp  -mr  swim!groucho!~/security/tripwire-1.0.tar.gz trip.tgz

     Эта  команда  попросит swim скачать файл с groucho, и послать его
вашей машине, где UUCP сохранит его в trip.tgz и уведомит Вас по почте
о получение этого файла. Все выполняется в три шага. Сначала, ваш хост
посылает  задачу  swim.  Когда  swim устанавливает контакт с groucho в
следующий  раз, он загружает файл. Заключительный шаг - передача файла
от swim вашему хосту.

                                - 15 -


     Наиболее  важная  услуга, предоставляемая UUCP сетями в наши дни,
--  электронная  почта  и  новости. Мы вернемся к этому позже, так что
здесь мы дадим только краткое описание.

     Электронная  почта (email) позволяет Вам обмениваться сообщениями
с  пользователями  на отдаленных хостах без необходимости иметь доступ
на  эти  хосты.  Задача  направления  сообщения  от  вашего участка до
участка  места  назначения  полностью  выполняется  системой обработки
почты.  В  UUCP среде, почта обычно транспортируется с помощью команды
rmail,   передовая   ей  адрес  получателя  и  само  сообщение.  Rmail
отправляет  сообщение  соседнему  хосту,  и  так  далее,  пока  оно не
достигнет  места  назначения.  Мы  будем  рассматривать это подробно в
главе 14 ..

     Новости(News)  могут  лучше всего быть описаны как распределенная
система информационного табло. Наиболее часто, этот термин относится к
Usenet  Новостям,  которые  являются  наиболее  широко известной сетью
обмена   новостями  с  приблизительно  120,000  участвующими  хостами.
Появление Usenet относятся к 1979 г, когда, после выпуска UUCP с новым
Unix  V7,  три  студента предложили идею всеобщего обмена информации в
пределах  Unix  сообщества.  Они  создали  несколько скриптов, которые
стали  первой  news  системой.  В 1980, эта сеть связывала duke, unc и
phs,  в  двух  Университетах  на  Севере Каролины. И Usenet в конечном
счете  рос  и рос. Хотя она появилась как uucp-основанная сеть, она не
могла ограничиваться только одним типом сети.

     Основная  единица  информации  -  статья (article), которая может
быть   отправлена  по  почте  к  иерархии  newsgroup(группе  новостей)
посвященных  определенным  темам. Большинство участков получают только
некий  набор  newsgroup,  чей  общий объем статей за день составляет в
среднем 60 МБ.

     В  мире UUCP, новости вообще посылаются через UUCP связь, собирая
все  статьи  от  требуемых  групп  и упаковывая их в несколько партий,
которые  посылаются  требуемому  участку,  где  они передаются команде
rnews для распаковки и дальнейшей обработки.


                                - 16 -

     Наконец,   UUCP   предоставляет   доступ  к  большому  количеству
участков,  которые  предлагают  свободный доступ. Вы можете попасть на
них  дозвонившись  до  них  и  соединившись с ними с помощью UUCP, как
гость,  и  скачивать с них файлы расположенные в общедоступной области
архива.  Пользователь  с  правами  гостя часто имеет имя и пароль типа
uucp/nuucp.

     2.3. TCP/IP Сети

     Хотя  UUCP может быть и разумный выбор для дешевых сетей связи по
телефону,  но существует большое количество ситуаций в которых техника
сохранил-передал  оказывается  слишком  негибкой, например в локальных
сетях   (LANs).   Они   обычно   состоят  из  маленького  числа  машин
расположенных  в одном здании или даже на одном этаже, которые связаны
для создания однородной рабочей среды. И Вы хотели бы разбросать файлы
между  этими  хостами,  или  запускать  одно  приложение  на различных
машинах.

     Эти задачи требуют совершенно другого подхода к организации сети.
Вместо отправления полных файлов наряду с описанием работы, все данные
разбиваются  на  маленькие  пакеты,  которые  немедленно  отправляются
нужному  хосту,  где они повторно собираются. Этот тип сети называется
packet-switched(пакетной)   сетью.   Среди   прочего,   это  позволяет
запускать  по  сети  диалоговые  приложения. Стоимость этого, конечно,
резкое увеличение сложности программного обеспечения.

     Решение,  которое  Unix  системы  и  большинство не-Unix участков
приняли известно как TCP/IP. В этой секции, мы будем рассматривать его
основные концепции.

     2.3.1. Введение в TCP/IP-сети.

     TCP/IP происходит от проекта, финансируемого американским DARPA (
Оборонное   Агентство  Продвинутых  Исследований)  в  1969.  Это  была
экспериментальная   сеть,   ARPANET,   которая   была  преобразована в
эксплуатационную в 1975, после того, как была доказана ее полезность.

     В  1983,  новый  протокол TCP/IP был принят как стандарт и от все

                                - 17 -

хостов  в  сети  требовалось  его использование. Когда ARPANET наконец
вырос в Inetrnet (ARPANET непосредственно окончил свое существования в
1990),  использование  TCP/IP распространилось и на сети вне Inetrnet.
Наиболее известные -- Unix локальные сети, но из-за появлении быстрого
цифрового  телефонного оборудования, типа ISDN, он также имеет большой
шанс стать протоколом транспортировки для телефонных сетей.

     Для  более  конкретного  рассмотрения  TCP/IP повсюду в следующих
секциях, мы будем пользоваться как примером Groucho Marx Университетом
(GMU),который   расположен  где-нибудь  в  Fredland,  большинство  его
отделов  используют  собственную  локальную  сеть, а другие используют
несколько  из  них.  Они  все  связаны,  и подключены к Inetrnet через
единственную быстродействующую линию.

     Предположите  что ваш Linux связан с сетью из Unix машин в Отделе
Математики,  и  имя  вашей  машины erdos. Для доступа к хосту в Отделе
Физики, называемого quark, вводите следующую команду:

     $ rlogin quark.physics
     Welcome to the Physics Department at GMU
     (ttyq2) login:

     В  приглашении  Вы вводите ваше имя, скажем andres, и ваш пароль.
Вам  дают shell(оболочку) на quark, к которой Вы можете обращаться как
будто  Вы  сидите  за  системной  консолью  quark.  После  того как Вы
покинете  оболочку,  Вы  возвращаетесь к приглашению вашей собственной
машины.  Сейчас  Вы использовали только одно из диалоговых приложение,
которые предлагает TCP/IP: remote login.

     Пока  вы  находитесь  на  quark, Вы можете захотеть управлять Х11
приложением.  Чтобы сказать этому приложению что Вы хотите видеть окна
на экране вашего хоста, Вы должны отрегулировать среду:

     $ export DISPLAY=erdos.maths: 0.0

     Если  Вы  теперь  запускаете ваше приложение, оно будет входить в
контакт  с  вашим  X-сервером  вместо  quark, и отображать все окна на
вашем экране. Конечно, это требует наличия у вас X11. TCP/IP позволяет

                                - 18 -

quark  и  erdos  послать  X11  пакеты  туда  и  обратно создавая у вас
иллюзию,  что  вы  находитесь  на  удаленной системе. Сеть здесь почти
прозрачна.

     Другое   очень   важное   приложение   в   TCP/IP  сетях  -  NFS,
расшифровывается  как сетевая операционная система. Это - другая форма
создания  прозрачной  сети, она позволяет Вам установить директории от
других  хостов,  так,  чтобы  они  рассматривались  подобно  локальным
файловым  системам.  Например,  домашние директории всех пользователей
могут  быть  на  центральной  машине,  от  которой  все другие хосты в
локальной   сети  устанавливают  требуемые  директории.  В  результате
пользователи  могут  войти  в любую машину и находиться в той же самой
домашней директории.

     Так,  можно  устанавливать  приложения  которые  требуют большого
количества  места  на  диске  (  типа  TeX ) только на одной машине, а
остальные  будут  лишь  экспортировать директории. Мы вернемся к NFS в
главе 12 ..

     Конечно,  это  не единственные примеры того, что Вы можете делать
по TCP/IP сетям. Ваши возможности почти безграничны.

     Теперь  мы  поближе  познакомимся  с  работой  TCP/IP.  Вы будете
нуждаться  в  этом чтобы понять как и почему Вы должны конфигурировать
вашу  машину.  Мы начнем с исследования аппаратных средств, и медленно
пойдем дальше.

     2.3.2. Ethernet

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

     Присоединяемый  к  нему  через  connector,  tap или transceivers.
Простой  Ethernet  весьма  недорог,  хотя,  вместе  с сетью предлагает
скорость в 10 Мегабитов в секунду.

     Ethernet  бывает  трех видов: толстый и тонкий, соответственно, и

                                - 19 -

витая  пара. Тонкий и толстый Ethernet использует коаксиальный кабель,
отличающейся  по  ширине и способу подключения машины к кабелю. Тонкий
Ethernet  использует  "BNC"  connector  в  форме буквы Т, в который Вы
вставляете  кабель  и  вкручиваете  сзади  вашего  компьютера в гнездо
сетевой  платы. Толстый Ethernet требует, чтобы ВЫ проделали маленькую
дырку  в  кабеле,  и  воткнули transceiver "методом вампира". Один или
больше  хостов  может быть присоединено к одному transceiver. Тонкий и
толстый  кабель  Ethernet  может  иметь  длину  не  больше  200  и 500
метров,  соответственно,  и поэтому также названы 10base-2 и 10base-5.
Витая пара использует кабель сделанный из двух медных проводов которые
используются  в телефонии, но обычно требует дополнительных аппаратных
средств. Он также известен как 10base-T.

     Добавление  хоста к толстому Ethernet не слишком сложно, оно даже
не  вырубает  сеть. Чтобы добавлять машину к сети с тонким Ethernet Вы
должны  прервать работу сети по крайней мере на несколько минут потому
что Вы должны разрезать кабель чтобы вставить Т-connector.

     Большинство  людей  предпочитают  тонкой Ethernet, потому что это
очень дешево: карты PC стоят всего $50, а кабель находится в диапазоне
нескольких  центов  за  метр.  Однако, для больших сооружений, толстый
Ethernet  подходит  лучше  Например,  в  отделе  математики используют
толстый Ethernet, так что у них работа сети не будет прерваться каждый
раз, когда к сети добавляется новый хост.

     Один  из  недостатков  Ethernet технологии -- ограниченная длинна
кабеля, который позволяет использовать его только для локальных сетей.
Однако, несколько Ethernet сегментов могут быть связан друг с другом с
помощью   repeaters   (повторителей),  bridges  (мостов)  или  routers
(маршрутизаторов).  Repeaters  просто копируют сигналы между двумя или
больше сегментами так, что все сегменты вместе действуют как будто это
один  Ethernet.  Но  между  двумя  любыми  машинами сети не может быть
больше  четырех  repeaters.  Bridges  и  Routers  более  сложные.  Они
анализируют  поступающие  данные  и  отправляют их только тогда, когда
хоста получателя нет на местном Ethernet.

     Ethernet  работает подобно системной шине, где хост может послать
пакеты  до  1500  байтов  другому хосту на том же самом Ethernet. Хост

                                - 20 -

идентифицируется  адресом, состоящем из шести байт зашитыми в Ethernet
плату   при   ее   создании.   Эти   адреса  обычно  записываются  как
последовательность шестнадцатиричных чисел с двумя цифрами отделяемыми
двоеточиями, на пример aa: bb: cc: dd: ee: ff.

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

     2.3.3. Другие типы аппаратных средств

     В  больших  сооружениях,  типа Groucho Marx Университет, Ethernet
обычно  не единственный тип используемого оборудования. В Groucho Marx
Университет,  локальная  сеть каждого отдела связана с университетской
магистралью, которая является оптическим кабелем FDDI. FDDI использует
совершенно  другой  подход  к передаче данных, который основывается на
рассылке  определенных  символов,  и только если станция получает этот
символ, она может послать некий кусок информации. Главное преимущество
FDDI  - скорость, достигающая 100 Mbps, и максимальная длина кабеля до
200 км.

     Для дальней связи часто используются различные типы оборудования,
которые   основаны   на  стандарте  названном  X.25.  Большинство  так
называемых  "Общественных  Сетей  Данных",  подобно  Tymnet в США, или
Datex-P в Германии, предлагают свои услуги, основываясь именно на нем.
X.25   требует   специальных   аппаратных   средств,  а  именно  пакет
Assembler/Disassembler  или  PAD.  X.25  определяет  собственный набор
протоколов,  но часто используется чтобы соединить сети работающие под
TCP/IP  и  другими  протоколами. Так как IP пакеты не могут быть прямо
отображены  на  X.25  (  и  наоборот  ), они просто вставляются в X.25
пакеты и посылаются по сети.

     Часто,  радио  любители используют свое оборудование для создания
сети  из  своих  компьютеров;  это  называется  пакетное радио или ham
радио.  Протокол  используемый  ham  радио назван AX.25 (он получен из
X.25).

                                - 21 -


     Есть  методы,  которые  используют  специально  для медленных, но
дешевых  телефонных  линий. Они требуют других протоколов для передачи
пакетов, типа SLIP или PPP, которые будут описаны ниже.

     2.3.4. Internet Протокол(IP)

     Конечно,  Вы  не  хотели бы чтобы ваша сеть ограничивалась только
Ethernet. Идеально, Вы хотели бы использовать сеть независимо от того,
какими аппаратными средствами это достигается.

     На  Пример,  в больших сооружениях типа Groucho Marx Университет,
Вы обычно имеете набор отдельных Ethernet, которые должны быть связаны
некоторым  образом.  В  GMU,  в математическом отделе используются два
Ethernets:  одна  сеть  быстрых  машин  для  профессоров  и  студентов
последних  курсов,  и  другая с медленными машинами для студентов (обе
связаны с FDDI).

     Эта связь управляется специальным хостом, так называемым gateway,
который  направляет  поступающие  и  уходящие  пакеты копируя их между
двумя Ethernets и FDDI. Например, если Вы - в математическом отделе, и
хотите  получить  доступ  к quark в локальной сети физического отдела,
сетевое   программное   обеспечение  не  может  послать  пакеты  quark
непосредственно, потому что он находится на другом Ethernet.

     Поэтому,  этим  занимается  gateway. Gateway (назовем его sophus)
посылает  эти пакеты другому gateway (niels) в Отделе Физики, niels же
отправляет  их  на  требуемую машину. Поток Данных между erdos и quark
показывается на картинке 2.3.4 (с извинениями парню L. Steele).

     Эта   схема   направления  данных  отдаленному  хосту  называется
routing(маршрутизация),  а пакеты часто называют datagram(дэйтограмы).
Для   простоты,   обмен   дэйтаграмами  управляется  в  соответствии c
отдельным  протоколом,  который  является  независимым от используемых
аппаратных  средств:  IP,  или  Internet Протокол. В главе 3. мы будем
рассматривать IP и routing более подробно.

     Основная  польза IP в том, что он преобразует физически несходные

                                - 22 -

сети  в одну с виду однородную сеть. Это называется internetworking, в
результате получаем "мета-сеть" называемую intеrnet. Обратите Внимание
на   различие  между  inetrnet  и  Inetrnet  здесь.  Последнее  -  это
официальное название одного специфического глобального inetrnet.

     Конечно,  IP  также  требует машинонезависимой схемы адресования.
Это  достигается  с  помощью  назначая каждому хост уникального номера
размером в 32 бита, названного IP адресом. IP адрес обычно пишется как
четыре  десятичных  номера,  для  каждой  8-битовой части, разделенных
точками.  Например,  quark  мог  бы иметь IP адрес 0x954C0C04, который
будет  записан  как  149.76.12.4. Этот формат также назван dotted quad
notation.

     Теперь  мы  имеем  три  различных  типа  адресов: имя хоста, типа
quark,  IP  адрес,  и наконец, имеются адреса аппаратных средств, типа
адреса  Ethernet с 6 байтами. Все они так или иначе соответствуют друг
другу,  так,  когда  Вы  пишете  rlogin quark, программное обеспечение
находит  его  IP адрес; И когда IP пересылает данные в Ethernet Отдела
Физики, так или иначе по IP адресу выясняется Ethernet адрес.

     Мы  не  будем  здесь  вдаваться  в  подробности этого процесса, а
сделаем это в главе 3. Пока достаточно помнить что эти шаги называются
hostname  resolution,  поиск  IP  адреса  по  имени  хоста,  и address
resolution, поиск физического адреса по IP.

     2.3.5. IP на последовательных линий

     Для  последовательных  линий, стандартом "de facto" является SLIP
или IP для последовательных линий. Есть модификация SLIP -- CSLIP, или
сжимаемый   SLIP,   который  использует  сжатие  IP  заголовков  чтобы
оптимизировать  IP  для  относительно  низкой  пропускной  способности
последовательной  связи.  PPP, или Point-to-Point протокол -- еще один
протокол  для  последовательных  линий.  PPP  имеет  еще большее число
особенностей  чем SLIP, включая стадии переговоров о начале связи. Его
главное  преимущество  по  сравнению SLIP, то что он не ограничивается
только  транспортировкой  IP  дэйтаграм,  а  предназначен для передачи
любого типа дэйтаграм.


                                - 23 -

     2.3.6. Протокол Контроля Передачи (TCP)

     Но  конечно,  посылка  дэйтаграм от одного хоста к другому это не
все если Вы вошли на quark, Вы хотите иметь надежную связь между вашим
процессом rlogin на erdos и процессе оболочки на quark. Таким образом,
информация  посылаемая  туда  и  обратно должна быть разбита на пакеты
отправителем,  и  повторно  собираться  в  поток  приемником. Хотя это
кажется  тривиальным,  здесь  появляется  несколько достаточно сложных
задач.

     Очень  важно  знать  об  IP,  что  он не надежен. Предположим что
десять людей на вашем Ethernet начали загружать самый последний выпуск
XFree86  с  GMU  FTP сервера. Такая активность может оказаться слишком
большой  для  того  чтобы  gateway переварил ее, потому что он слишком
медленен, и ограничен количеством памяти. Теперь если Вы пошлете пакет
от  quark,  у  sophus  может не хватить места в буфере и поэтому он не
сможет отправить этот пакет. IP решает эту проблему просто забывая про
данный    пакет.    Пакет    безвозвратно   потерян.   Таким   образом
ответственность    за    целостность    данных    перекладывается   на
поддерживающие связь хосты.

     Это  происходит  в  соответствии  c  другим  протоколом, TCP, или
Протоколом  Контроля  Передачи,  который  надстраивается  над  IP  для
создания  связи  с проверкой целостности данных. Существенный плюс TCP
то,  что  он  использует  IP,  что создает иллюзию простой связи между
двумя  процессами  на  вашем хосте и отдаленной машине, так, что Вы не
заботитесь  о  том  как  и  по которому маршрут ваши данные фактически
путешествуют. A TCP создает дуплексную связь, позволяющую одновременно
как посылать так и получать информацию. Представте телефонную беседу.

     В  TCP  точки  связи определяются IP адресами хостов , и номерами
так   называемых   портов  на  каждом  из  хостов.  Порты  служат  для
определения  процесса  с  которым  устанавливается  связь.  Если опять
обратится  к  примеру  с  телефоном,  то  IP адрес соответствует кодам
городов,  а  номер порта местному номеру телефона. В примере с rlogin,
приложение-клиент  (rlogin)  открывает  порт на erdos, и соединяется с
портом  513  на  quark,  который  прослушивает  rlogind  сервер. Таким
образом  и  устанавливает  TCP  связь.  Используя  эту  связь, rlogind

                                - 24 -

выполняет  процедуру  определения  прав доступа, и запускает оболочку.
Стандартный  ввод/вывод  этой  оболочки перенаправляются на TCP связь,
таким  образом  все,  набранное  вами  в  rlogin на вашей машине будет
передано через TCP поток на стандартный ввод оболочки.

     2.3.7. Пользовательский протокол дэйтаграм(UDP)

     Конечно,  TCP  не  единственный  протокол  пользователя  в TCP/IP
сетях.  Хоть  он  и  подходит  для  приложений  подобных rlogin, но он
излишне надежен и не нужен для приложений типа NFS. Вместо, него в них
использует  UDP, или протокол пользовательских дэйтаграм. Подобно TCP,
UDP   также  позволяет  приложению  войти  в  контакт  с  приложением,
обслуживающим  определенный  порт  на  отдаленной  машине,  но  он  не
устанавливает  связь  для  этого. Вместо этого, Вы можете использовать
его чтобы посылать отдельные пакеты к месту назначения.

     Предположим,  что Вы установили директорию TeX с центрального NFS
сервера,  galois,  и  Вы  хотите просмотреть документ, описывающий как
использовать LaTeX. Вы запускаете ваш редактор, который сначала читает
указанный   файл.   Однако,  требуется  слишком  много  времени  чтобы
установить  TCP  связь с galois, послать файл , и повторять это снова.
Вместо  этого,  на запрос посланный к galois, тот посылает файл в паре
UDP   пакетов,   что   происходит  гораздо  быстрее.  Однако,  UDP  не
приспособлен  для борьбы с потерей пакетов. Этим приходится заниматься
NFS.

     2.3.8. Дополнительно о портах

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

     Важная  особенность  портов  то,  что пока существует связь между
клиентом  и сервером, другая копия сервера может присоединиться к тому
же порту и ждать подключения других клиентов. Это разрешает, например,

                                - 25 -

несколько параллельных отдаленных входов на один и тот же хост, причем
все  используют  один самый 513 порт. TCP способен отличать этим связи
друг  от  друга,  потому что они все прибывают от различных портов или
хостов.  Например,  если  Вы  дважды  войдете на quark от erdos, тогда
первый  rlogin  клиент  будет использовать местный порт 1023, а второй
будет использовать порт 1022. Однако, будут соединяться с тем же самым
портом 513 на quark.

     Этот  пример  показывает  использование  портов  как  пункты, где
клиент   входит   в  контакт  с  определенным  портом  чтобы  получить
определенное  обслуживание.  Клиенту необходимо знать надлежащий номер
порта,  соглашение  о  назначении  этих номеров должно быть достигнуто
между   администраторами   обеих  систем.  Для  услуг  которые  широко
используются,   типа   rlogin,   эти   номера  должны  устанавливаться
централизованно.   Этим  занимается  IETF  (или  Проектирующая  задачи
Internet сила), которая регулярно выпускает RFC статьи. Которые, среди
прочего,  назначают  номера  портов  для  общеизвестных  услуг.  Linux
использует  файл,  в  котором  регистрируют названия доступного другим
сервеса  и  номера  портов,  к которым определенный сервес прикреплен,
называется он /etc/services. Он описан в секции 10.3.

     Стоит  заметить,  что  хотя  и TCP и UDP полагаются на порты, эти
номера  не  находятся  в  противоречии. Это означает что TCP порт 513,
например,  отличается  от  UDP порта 513. Фактически, эти порты служат
как  точки  доступа  для двух различных услуг, а именно rlogin (TCP) и
rwho (UDP).

     2.3.9. Библиотека гнезд(socket)

     В   Unixоидных  операционных  системах  программное  обеспечение,
выполняющее  все  задачи  и  протоколы описанные выше, обычно является
частью ядра, аналогично и в Linux. Интерфейс программирования наиболее
общий  для  мира  Unix  - Библиотека Гнезд Berkeley. Свое название она
получила  из-за  популярной  аналогии  которая рассматривает порты как
гнезда(розетки). Она обеспечивает (bind(2)) запрос, который определяет
отдаленный хост, транспортный протокол, и сервис, к которому программа
может  присоединится или слушать (используя connect(2), listen(2), and
accept(2)).

                                - 26 -


     Библиотека  гнезд  од