[an error occurred while processing this directive]

В начало

Введение в Linux

Настройка Linux

Linux Mandrake 5.3

КDЕ

Рабочая среда GNOME

Сетевая поддержка

Сетевая поддержка

Общая информация о сетевых средствах Linux

Краткая история разработки сетевой подсистемы Linux

Разработка совершенно новой реализации стека tcp/ip, сравнимого по возможностям и производительности с существующими реализациями была нелегкой задачей. Отказ от переноса существующей реализации был сделан в тот момент, когда существовала некоторая неясность, не станут ли существующие реализации отягощены ограничениями авторских прав в связи с судебным делом, начатым U.S.L. Кроме того, существовал значительный энтузиазм сделать все по-своему и лучше, чем делалось ранее.

Первым добровольцем, возглавившим разработку сетевой подсистемы, был Росс Биро. Росс написал простую и неполную, но уже пригодную к использованию систему, дополненную драйвером для сетевой карты ethernet WD-8003. Этого было достаточно, чтобы многие могли экспериментировать и тестировать новую систему, а некоторые даже смогли с ее помощью подключить свои машины к Internet.

Давление, которое сообщество разработчиков Linuxa оказало на разработчиков сетевой подсистемы было весьма большим, и в определенный момент вынудило Росса отказаться от руководства проектом. Но его усилия по начальной организации проекта и взятая ответственность за создание чего-либо работоспособного в сложных условиях стали катализатором для всех дальнейших работ и заложили основы современного успеха.

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

Примерно в это же время Лоуренс Калхейн разработал первый драйвер поддержки протокола SLIP. Это позволило многим, не имеющим доступа к локальным ethernet-сетям, экспериментировать с новым программным обеспечением. И снова, некоторым удалось с помощью этого драйвера подключить свои машины к Internet. Это дало многим ощущение возможностей, которые будет иметь Linux с полной сетевой поддержкой и увеличило число людей, экспериментирующих с сетевой подсистемой.

Еще одним из активных разработчиков был Фред ван Кемпен. После краткого периода неопределенности, последовавшего за уходом Росса, Фред принял на себя руководство проектом, без особой конкуренции. У Фреда были свои планы развития сетевой подсистемы Linux, и он направил основную работу именно в этих направлениях.

Под его руководством были написаны программы, названные NET-2 (в отличие от NET-программ, написанных Россом), которые многие смогли продуктивно использовать. Кроме того, Фред внес много предложений по новым разработкам, таким как динамический интерфейс устройства, поддержка протокола Amateur Radio AX.25 и модульная структура сетевой подсистемы. NET-2 использовался большим количеством людей, которое постоянно увеличивалось, по мере того, как распространялась информация о работоспособности этой системы.

В тот момент новая реализация все еще выпускалась как набор исправлений к обычному ядру, и не включалось в основное выпускаемое ядро. NET-FAQ и NET-2-HOWTO описывали достаточно сложную процедуру, которая требовалась, чтобы заставить сетевую подсистему работать. Фред уделял основное внимание новым разработкам, что отнимало основную часть времени. В то же время, пользователям требовалась надежная система, которая устроила бы, по крайней мере, 80% пользователей. Так же, как и в случае с Россом, пользователи стали оказывать на разработчиков давление.

Алан Кокс предложил решить возникшие проблемы следующим образом. Он предложил взять на себя отладку кода NET-2 до состояния стабильной и надежной работы, которая бы устроила большинство пользователей. При этом, давление на Фреда уменьшилось бы и позволило бы ему продолжить свою работу. Алан взялся за работу и через некоторое время выпустил первую версию сетевой подсистемы NET-2D (от NET-2-Debugged). Она устойчиво работала на большинстве машин, и удовлетворяла большинство пользователей. У Алана были свои взгляды на то, как должен развиваться проект и это привело к большому количеству дискуссий о том, как развивать NET-2. В результате сложилось два подхода среди разработчиков сетевой подсистемы: первый — «сперва работоспособность, затем доводка» и второй — «доводка в процессе разработки».

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

Дональд Беккер занялся программированием нижнего уровня сетевой подсистемы и написал огромное количество драйверов ethernet-карт. Почти все драйвера, включенные в текущие версии ядра написаны Дональдом. В написании драйверов участвовали и другие, но работа Дональда была столь продуктивной, что заслуживает особого упоминания.

Алан продолжал улучшать NET-2D, параллельно занимаясь проблемами, не указанными явно в списке первоочередных. К тому моменту, когда версии основного ядра 1.3.* достигли состояния зрелости, сетевая подсистема переросла в версию 3 — NET-3, на базе которой основана текущая реализация сетевой поддержки в Linux.

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

Поддержка РРР была написана Майклом Коллахэном и Элом Лонгйиаром. Это также имело огромное значение, так как значительно увеличило число пользователей Linux.

Джонатан Нейлор значительно улучшил поддержку АХ.25, добавив поддержку протоколов NetRom и Rose. Поддержка AX.25/NetRom/Rose имела очень большое значение, поскольку ни одна операционная система, кроме Linux не имела встроенной поддержки этих протоколов.

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

Общая информация по настройке сети

Для компиляции и настройки сетевой подсистемы вам нужны несколько вещей. Самые важные из них:

Исходный код текущего ядра

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

Исходный код ядра обычно распаковывают в каталог /usr/src/linux. За информацией о том, как внести в ядро исправления и скомпилировать его, обращайтесь в файл README и каталог Documentation, входящие в состав исходных текстов ядра.

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

С другой стороны, некоторые из описываемых возможностей были введены в ядрах версий 2.1, поэтому у вас есть выбор: либо пользоваться версиями 2.0 и ждать версий 2.2 со всеми программами поддержки новых возможностей, либо пользоваться версиями 2.1 и искать эти программы самостоятельно.

Сетевые утилиты

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

Большинство современных дистрибутивов Linux включают эти программы, поэтому, если вы не установили их из вашего дистрибутива, самое время сделать это.

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

Убедитесь, что версия полученного вами пакета совместима с вашим ядром. После этого следуйте содержащимся в пакете инструкциям по установке.

Если вы используете версии 2.2 или поздние версии 2.1, настройка файрволла выполняется без программы ipfwadm.

Сетевые приложения

К сетевым приложениям относятся, такие программы как telnet и ftp и их демоны.

Пакет сетевых приложений был разбит на несколько небольших пакетов, а затем основные программы были объединены в пакете netkit-base-0.10. Вам может понадобится этот базовый пакет и некоторые из дополнительных.

Для установки и настройки этих программ выполните следующие команды:

user% tar xvfz netkit-base-0.10

user% cd netkit-base-0.10

user% more README

user% vi MCONFIG

user% make

root# make install

Адреса

Адреса в протоколе IP состоят из четырех байт. Их принято записывать в так называемой dotted decimal notation (десятичной нотации). В ней каждый байт представляется десятичным числом (0-255), байты разделены знаками '.' Каждому сетевому интерфейсу на компьютере или маршрутизаторе присваивается IP-адрес. Возможно использование одного адреса несколькими интерфейсами на одной машине, но как правило этого не делают.

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

Применяя к адресу и маске операцию побитовое И, получаем адрес сети. Таким образом, адрес сети всегда является наименьшим в последовательности и имеет нулевую машинную часть.

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

По административным причинам на ранних стадиях разработки протокола IP, некоторые группы адресов были сгруппированы в сети и разбиты на классы, Каждый класс состоит из сетей одинакового объема.

Используемые вами адреса зависят от контекста, в котором вы их используете. Вам может потребоваться произвести следующие действия:

  • Установить компьютер в уже существующую сеть; Если вы собираетесь устанавливать машину с Linux в уже существующую сеть, узнайте у вашего сетевого администратора следующие адреса:
    • IP-адрес машины;
    • IP-адрес сети;
    • широковещательный IP-адрес;
    • маску;
    • IP-адрес маршрутизатора;
    • IP-адрес сервера имен (DNS-server). После этого вы должны сконфигурировать сетевое устройство на вашей машине в на использование этих адресов.
  • Создать новую сеть, которая не будет подключена к Internet.

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

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

[an error occurred while processing this directive]