Олаф Кирч. Руководство администратора сети в ОС Linux Origin: http://www.linux.org.ru/books/ ║ 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 для последоват