From a48d4977fcb60bdd3d217a334611b08eeb6ba696 Mon Sep 17 00:00:00 2001 From: Andrey Zakhvatov Date: Sun, 18 Jan 2004 05:50:47 +0000 Subject: MFen 1.266 --- .../handbook/advanced-networking/chapter.sgml | 8113 ++++++++++++++++---- 1 file changed, 6499 insertions(+), 1614 deletions(-) diff --git a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml index 2db6d7903f..04413fe6c8 100644 --- a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml @@ -2,1320 +2,3206 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml,v 1.7 2000/11/17 15:46:38 andy Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml,v 1.84 2004/01/11 18:41:27 andy Exp $ - Original revision: 1.32 + Original revision: 1.266 --> -Сложные вопросы работы в сети + Сложные вопросы работы в сети - - Краткий обзор + + Краткий обзор - Последующая глава посвящена некоторым более часто используемым - сетевым службам UNIX-систем. Это, конечно же, будет касаться настройки - указанных служб в Вашей системе FreeBSD. - - - - Сетевые шлюзы и маршруты - - Предоставил &a.gryphon;, 6 октября 1995. - - Чтобы некоторая машина могла найти другую, должен иметься механизм - описания того, как добраться от одной машине к другой. Такой механизм - называется маршрутизацией. Маршрут задается парой - адресов: адресом назначения (destination) и - сетевым шлюзом (gateway). Эта пара означает, что, если - Вы пытаетесь соединиться с адресом назначения, то - вам нужно будет пройти через сетевой шлюз. Существует - три типа адресов назначения: отдельные хосты, подсети и - маршрут по умолчанию (default). Маршрут по - умолчанию (default route) используется, если не подходит ни один - из других маршрутов. Мы поговорим немного подробнее о маршрутах по - умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные - хосты, интерфейсы (также называемые подключениями - (links)) и аппаратные адреса ethernet. + Эта глава посвящена некоторым наиболее часто используемым сетевым + службам систем &unix;. Мы опишем, как запустить, настроить, + протестировать и поддерживать работу всех сетевых служб, используемых во + FreeBSD. Кроме того, для облегчения вашей работы в главу включены + примеры конфигурационных файлов. - - Пример + После чтения этой главы вы будете знать: - Для иллюстрации различных аспектов маршрутизации мы будем - использовать следующий пример, который является результатом работы - команды netstat -r: + + + Основные понятия о маршрутизации и маршрутах. + - -Destination Gateway Flags Refs Use Netif Expire + + Как заставить FreeBSD работать в качестве сетевого + моста. + -default outside-gw UGSc 37 418 ppp0 -localhost localhost UH 0 181 lo0 -test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 -10.20.30.255 link#1 UHLW 1 2421 -foobar.com link#1 UC 0 0 -host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 -host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => -host2.foobar.com link#1 UC 0 0 -224 link#1 UC 0 0 - - - В первых двух строках фигурируют маршрут по умолчанию (который - будет описан в следующем разделе) и маршрут на - localhost. - - Интерфейс (колонка Netif), который будет - использоваться для localhost, и который назван - lo0, имеет также второе название, устройство - loopback. Это значит сохранение всего трафика для указанного адреса - назначения внутри, без посылки его по сети, так как он все равно - будет направлен туда, откуда был создан. - - Следующими выделяющимися адресами являются строчки 0:e0:.... Это аппаратные адреса ethernet. - FreeBSD будет автоматически распознавать любой хост (в нашем - примере это test0) в локальной сети ethernet и - добавит маршрут для этого хоста, указывающий непосредственно на - интерфейс ethernet, ed0. С этим типом - маршрута также связан параметр таймаута (колонка - Expire), используемый в случае неудачной попытки - услышать этот хост в течении некоторого периода времени. В таком - случае маршрут будет автоматически удален. Такие хосты поддерживаются - при помощи механизма, известного как RIP (Routing Information - Protocol), который вычисляет маршруты к хостам локальной сети при - помощи определения кратчайшего расстояния. - - FreeBSD добавит также все маршруты к подсетям для локальных - подсетей (10.20.30.255 является - широковещательным адресом для подсети 10.20.30, а имя foobar.com является именем домена, связанным - с этой подсетью). Назначение link#1 соответствует - первому сетевому адаптеру в машине. Отметьте отсутствие - дополнительного интерфейса для этих строк. - - В обеих этих группах (хосты и подсети локальной сети) маршруты - конфигурируются автоматически даемоном, который называется - routed. Если он не запущен, то будут существовать - только статически заданные (то есть введенные явно) маршруты. - - Строка host1 относится к нашему хосту, который - известен по адресу ethernet. Так как мы являемся посылающим хостом, - FreeBSD знает, что нужно использовать loopback-интерфейс - (lo0) вместо того, чтобы осуществлять - посылку в интерфейс ethernet. - - Две строки host2 являются примером того, что - происходит при использовании алиасов в команде ifconfig (обратитесь - к разделу об ethernet для объяснения того, почему мы это делаем). - Символ => после интерфейса - lo0 указывает на то, что мы используем не - просто интерфейс loopback (так как это адрес, обозначающий локальный - хост), но к тому же это алиас. Такие маршруты появляются только - на хосте, поддерживающем алиасы; для всех остальных хостов в локальной - сети в таких случаях будут показаны просто строчки - link#1. - - Последняя строчка (подсеть назначения 224) - имеет отношение к многоадресной посылке, которая будет рассмотрена в - другом разделе. - - Другим столбцом, о котором стоит сказать, является - Flags. Каждый маршрут имеет различные атрибуты, - которые перечислены в этой колонке. Ниже приведена краткая таблица - значений некоторых этих флагов и их значений: - - - - - - U - Up: Маршрут актуален. - - - - H - Host: Адресом назначения является отдельный хост. - - - - G - Gateway: Посылать все для этого адреса назначения на указанную - удаленную систему, которая будет сама определять дальнейший путь - прохождения информации. - - - - S - Static: Маршрут был настроен вручную, а не автоматически - сгенерирован системой. - - - - C - Clone: Новый маршрут сгенерирован на основе указанного для - машин, к которым мы подключены. Такой тип маршрута обычно - используется для локальных сетей. - - - - W - WasCloned: Указывает на то, что маршрут был автоматически - сконфигурирован на основе маршрута в локальной - сети (Clone). - - - - L - Link: Маршрут включает ссылку на аппаратный адрес - ethernet. - - - - - + + Как настроить сетевую файловую систему. + - - Маршруты по умолчанию - - Когда локальной системе нужно установить соединение с удаленным - хостом, она обращается к таблице маршрутов для того, чтобы определить, - существует ли такой маршрут. Если удаленный хост попадает в подсеть, - для которой известен способ ее достижения (маршруты типа Cloned), то - система определяет возможность подключиться к ней по этому - интерфейсу. - - Если все известные маршруты не подходят, у системы имеется - последняя возможность: маршрут default. Это маршрут - с особым типом сетевого шлюза (обычно единственным, присутствующим - в системе), и в поле флагов он всегда помечен как c. - Для хостов в локальной сети этот сетевой шлюз указывает на машину, - имеющую прямое подключение к внешнему миру (неважно, используется ли - связь по протоколу PPP или устройство, подключенное к выделенной - линии). - - Если вы настраиваете маршрут по умолчанию на машине, которая сама - является сетевым шлюзом во внешний мир, то маршрутом по умолчанию - будет являться сетевой шлюз у Вашего провайдера Интернет (ISP). - - Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная - конфигурация: - - -[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] - - - Хосты Local1 и Local2 находятся в - нашей сети, первый хост служит для подключения по протоколу PPP к - серверу доступа вашего ISP. У Вашего провайдера имеется локальная - сеть, в которой, кроме всего прочего, находится сервер, к которому вы - подключены, и аппаратура (T1-GW) обеспечивающая собственное подключение - провайдера к Интернет. - - Маршруты по умолчанию для каждой из ваших машин будут - следующими: - - - - - - хост - маршрут по умолчанию - интерфейс - - - - - - Local2 - Local1 - ethernet - - - - Local1 - T1-GW - PPP - - - - - - Часто задается вопрос Почему (или каким образом) в качестве - шлюза по умолчанию для машины Local1 мы указываем T1-GW, а не сервер - провайдера, к которому подключаемся?. - - Запомните, что из-за использования PPP-интерфейсом адреса в сети - провайдера Интернет с вашей стороны соединения, маршруты для всех - других машин в локальной сети провайдера будут сгенерированы - автоматически. Таким образом, вы уже будете знать, как достичь машины - T1-GW, так что нет нужды в промежуточной точке при посылке трафика к - серверу ISP. - - И напоследок отметим, что в локальной сети адрес ...1 часто используется в качестве адреса - сетевого шлюза. Тогда (при использовании того же самого примера) - если пространство адресов класса C вашей локальной сети было задано - как 10.20.30, а ваш провайдер использует - 10.9.9, то маршруты по умолчанию будут - такие: - - -Local2 (10.20.30.2) --> Local1 (10.20.30.1) -Local1 (10.20.30.1, 10.9.9.30) --> T1-GW (10.9.9.1) - - + + Как настроить загрузку по сети для бездисковой машины. + - - Хосты с двойным подключением - - Есть еще один тип подключения, который мы должны рассмотреть, и - это случай, когда хост находится в двух различных сетях. Технически, - любая машина, работающая как сетевой шлюз (в примере выше - использовалось PPP-соединение), считается хостом с двойным - подключением. Однако этот термин реально используется для описания - машины, находящейся в двух локальных сетях. - - В одном случае у машины имеется два адаптера ethernet, каждый - имеющий адрес в разделенных подсетях. Как альтернативу можно - рассмотреть вариант с одним ethernet-адаптером и использованием - алиасов в команде ifconfig. В первом случае используются два физически - разделенных сети ethernet, в последнем имеется один физический сегмент - сети, но две логически разделенных подсети. - - В любом случае таблицы маршрутизации настраиваются так, что для - каждой подсети эта машина определена как шлюз (входной маршрут) в - другую подсеть. Такая конфигурация, при которой машина выступает в - роли моста между двумя подсетями, часто используется, если нужно - реализовать систему безопасности на основе фильтрации пакетов или - функций межсетевого экрана в одном или обоих направлениях. - + + Как настроить сетевой сервер информации для совместного + использования учётных записей пользователей. + - - Распространение маршрутов - - Мы уже говорили о том, как мы задаем наши маршруты во внешний мир, - но не упоминали о том, как внешний мир находит нас. - - Мы уже знаем, что таблицы маршрутизации могут быть настроены так, - что весь трафик для некоторого диапазона адресов (в нашем примере это - подсеть класса C) может быть направлен заданному хосту в той сети, - которая будет перенаправлять входящие пакеты дальше. - - При получении адресного пространства, выделенного Вашей сети, - Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик - для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети. - Но как серверы по всей стране узнают, что Ваш трафик нужно посылать - Вашему ISP? - - Существует система (подобная распределению информации DNS), которая - отслеживает все назначенные пространства адресов и определяет точку - подключения к магистрали Интернет. Магистралью называют - главные каналы, по которым идет трафик Интернет внутри страны и по - всему миру. Каждая магистральная машина имеет копию основного набора - таблиц, согласно которой трафик для конкретной сети направляется по - конкретному магистральному каналу, и затем, передаваясь по цепочке - провайдеров, он достигает вашей сети. - - Задачей вашего провайдера является объявить на магистрали о том, - что он отвечает за подключение (и поэтому на него указывает маршрут) - вашей сети. Этот процесс называется распространением маршрута. - + + Как настроить автоматическое конфигурирование сетевых параметров + при помощи DHCP. + - - Устранение неполадок - - Иногда с распространением маршрута возникают проблемы, и некоторые - сайты не могут к вам подключиться. Наверное, самой полезной командой - для определения точки неверной работы маршрутизации является - &man.traceroute.8;. Она также полезна и когда вы сами не можете - подключиться к удаленной машине (то есть команда &man.ping.8; не - срабатывает). - - Команда &man.traceroute.8; запускается с именем удаленного хоста, с - которым вы хотите установить соединение, в качестве параметра. Она - показывает промежуточные сетевые шлюзы по пути следования, в конце - концов достигая адрес назначения или прерывая свою работу из-за - отсутствия соединения. - - За дополнительной информацией обратитесь к странице Справочника по - &man.traceroute.8;. - - + + Как настроить сервер имён. + - - Мосты + + Как синхронизировать дату и время, а также настроить сервер + времени с протоколом NTP. + - Написано Стивом Питерсоном (Steve Peterson) - steve@zpfe.com. + + Как настроить трансляцию сетевых адресов. + - - Введение - - Иногда полезно разделить одну физическую сеть (другими словами, - сегмент Ethernet) на два отдельных сегмента сети без необходимости - создания подсетей IP и использования маршрутизатора для соединения - сегментов. Устройство, которое соединяет две сети на такой манер, - называется мостом, а система FreeBSD с двумя сетевыми адаптерами - может выступать в роли моста. - - Мост работает на основе изучения адресов уровня MAC (то есть - адресов Ethernet) устройств на каждом своем сетевом интерфейсе. - Он перенаправляет трафик между двумя сетями, только когда адреса - отправителя и получателя находятся в разных сетях. - - По многим параметрам мост работает также, как коммутатор Ethernet - с малым количеством портов. - + + Как управлять даемоном inetd. + - - Ситуации, когда можно использовать мосты + + Как соединить два компьютера посредством PLIP. + - На сегодняшний день есть две ситуации, когда можно использовать - мост. + + Как настроить IPv6 на машине FreeBSD. + + - - Большой трафик в сегменте - - Первая ситуация возникает, когда ваша физическая сеть перегружена - трафиком, но по каким-то соображениям вы не хотите разделять сеть - на подсети и соединять их с помощью маршрутизатора. - - Давайте рассмотрим в качестве примера газету, в которой - редакторский и производственный отделы находятся в одной и той же - подсети. Пользователи в редакторском отделе все используют сервер A - для служб доступа к файлам, а пользователи производственного отдела - используют сервер B. Для объединения всех пользователей используется - Ethernet, а высокая нагрузка на сеть замедляет работу. - - Если пользователи редакторского отдела могут быть собраны в - одном сегменте сети, а пользователи производственного отдела в - другом, то два сетевых сегмента можно объединить мостом. Только - сетевой трафик, предназначенный для интерфейсов с "другой" стороны - моста, будет посылаться в другую сеть, тем самым снижая уровень - нагрузки на каждый сегмент сети. - + Перед чтением этой главы вы должны: - - Межсетевой экран с возможностями фильтрации/ограничения - пропускной способности трафика - - Второй распространенной ситуацией является необходимость в - обеспечении функций межсетевого экрана без трансляции - IP-адресов (NAT). - - Для примера можно взять маленькую компанию, которая подключена - к своему провайдеру по каналу DSL или ISDN. Для нее провайдер - выделил 13 IP-адресов для имеющихся в сети 10 персональных - компьютеров. В такой ситуации использование межсетевого экрана - на основе маршрутизатора затруднено из=а проблем с разделением на - подсети. - - Межсетевой экран на основе моста может быть настроен и включен - между маршрутизаторами DSL/ISDN без каких-либо проблем с - IP-адресацией. - - + + + Понимать основы работы скриптов + /etc/rc. + - - Настройка моста + + Свободно владеть основными сетевыми терминами. + + + - - Выбор сетевого адаптера + + + + + Coranth + Gryphon + Текст предоставил + + + + + Сетевые шлюзы и маршруты + + маршрутизация + шлюз + подсеть + Чтобы некоторая машина могла найти в сети другую, должен иметься + механизм описания того, как добраться от одной машине к другой. Такой + механизм называется маршрутизацией. + Маршрут задаётся + парой адресов: адресом назначения (destination) и + сетевым шлюзом (gateway). Эта пара указывает на то, что + если Вы пытаетесь соединиться с адресом назначения, + то вам нужно устанавливать связь через сетевой шлюз. + Существует три типа адресов назначения: отдельные хосты, подсети и + маршрут по умолчанию (default). Маршрут по + умолчанию (default route) используется, если не подходит ни один + из других маршрутов. Мы поговорим немного подробнее о маршрутах по + умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные + хосты, интерфейсы (также называемые подключениями + (links)) и аппаратные адреса Ethernet (MAC-адреса). + + + Пример + + Для иллюстрации различных аспектов маршрутизации мы будем + использовать следующий пример использования команды + netstat: + + &prompt.user; netstat -r +Routing tables + +Destination Gateway Flags Refs Use Netif Expire - Для работы моста требуются по крайней мере два сетевых адаптера. - К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают - функции моста. Прочтите страницу Справочника по &man.bridge.4; для - выяснения подробностей о поддерживаемых адаптерах. +default outside-gw UGSc 37 418 ppp0 +localhost localhost UH 0 181 lo0 +test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77 +10.20.30.255 link#1 UHLW 1 2421 +example.com link#1 UC 0 0 +host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0 +host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 => +host2.example.com link#1 UC 0 0 +224 link#1 UC 0 0 + + маршрут по умолчанию + + В первых двух строках задаются маршрут по умолчанию (который + будет описан в следующем + разделе) и маршрут на localhost. + + устройство loopback + Интерфейс (колонка Netif), который указан в + этой таблице маршрутов для использования с + localhost и который назван + lo0, имеет также второе название, устройство + loopback. Это значит сохранение всего трафика для указанного адреса + назначения внутри, без посылки его по сети, так как он все равно + будет направлен туда, где был создан. + + + Ethernet + MAC адрес + + Следующими выделяющимися адресами являются адреса, начинающиеся с + 0:e0:.... Это аппаратные адреса Ethernet, + или MAC-адреса. FreeBSD будет автоматически распознавать любой хост + (в нашем примере это test0) в локальной сети Ethernet + и добавит маршрут для этого хоста, указывающий непосредственно на + интерфейс Ethernet, ed0. С этим типом + маршрута также связан параметр таймаута (колонка + Expire), используемый в случае неудачной попытки + услышать этот хост в течении некоторого периода времени. Если такое + происходит, то маршрут до этого хоста будет автоматически удалён. + Такие хосты поддерживаются + при помощи механизма, известного как RIP (Routing Information + Protocol), который вычисляет маршруты к хостам локальной сети при + помощи определения кратчайшего расстояния. + + подсеть + FreeBSD добавит также все маршруты к подсетям для локальных + подсетей (10.20.30.255 является + широковещательным адресом для подсети 10.20.30, а имя example.com является именем домена, связанным + с этой подсетью). Назначение link#1 соответствует + первому адаптеру Ethernet в машине. Отметьте отсутствие + дополнительного интерфейса для этих строк. + + В обеих этих группах (хосты и подсети локальной сети) маршруты + конфигурируются автоматически даемоном, который называется + routed. Если он не запущен, то будут + существовать только статически заданные (то есть введенные явно) + маршруты. + + Строка host1 относится к нашему хосту, который + известен по адресу Ethernet. Так как мы являемся посылающим хостом, + FreeBSD знает, что нужно использовать loopback-интерфейс + (lo0) вместо того, чтобы осуществлять + посылку в интерфейс Ethernet. + + Две строки host2 являются примером того, что + происходит при использовании алиасов в команде &man.ifconfig.8; + (обратитесь к разделу об Ethernet для объяснения того, почему мы это + делаем). Символ => после интерфейса + lo0 указывает на то, что мы используем не + просто интерфейс loopback (так как это адрес, обозначающий локальный + хост), но к тому же это алиас. Такие маршруты появляются только + на хосте, поддерживающем алиасы; для всех остальных хостов в локальной + сети для таких маршрутов будут показаны просто строчки + link#1. + + Последняя строчка (подсеть назначения 224) имеет отношение к многоадресной посылке, + которая будет рассмотрена в другом разделе. + + И наконец, различные атрибуты каждого маршрута перечисляются в + колонке Flags. Ниже приводится краткая таблица + некоторых из этих флагов и их значений: + + + + + + U + Up: Маршрут актуален. + + + + H + Host: Адресом назначения является отдельный хост. + + + + G + Gateway: Посылать все для этого адреса назначения на + указанную удаленную систему, которая будет сама определять + дальнейший путь прохождения информации. + + + + S + Static: Маршрут был настроен вручную, а не автоматически + сгенерирован системой. + + + + C + Clone: Новый маршрут сгенерирован на основе указанного для + машин, к которым мы подключены. Такой тип маршрута обычно + используется для локальных сетей. + + + + W + WasCloned: Указывает на то, что маршрут был автоматически + сконфигурирован на основе маршрута в локальной + сети (Clone). + + + + L + Link: Маршрут включает ссылку на аппаратный адрес + Ethernet. + + + + + - Перед тем, как продолжить, сначала установите и протестируйте - два сетевых адаптера. - + + Маршруты по умолчанию + + маршрут по умолчанию + Когда локальной системе нужно установить соединение с удаленным + хостом, она обращается к таблице маршрутов для того, чтобы определить, + существует ли такой маршрут. Если удаленный хост попадает в подсеть, + для которой известен способ ее достижения (маршруты типа Cloned), то + система определяет возможность подключиться к ней по этому + интерфейсу. + + Если все известные маршруты не подходят, у системы имеется + последняя возможность: маршрут default. Это маршрут + с особым типом сетевого шлюза (обычно единственным, присутствующим + в системе), и в поле флагов он всегда помечен как c. + Для хостов в локальной сети этот сетевой шлюз указывает на машину, + имеющую прямое подключение к внешнему миру (неважно, используется ли + связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то + другой сетевой интерфейс). + + Если вы настраиваете маршрут по умолчанию на машине, которая сама + является сетевым шлюзом во внешний мир, то маршрутом по умолчанию + будет являться сетевой шлюз у Вашего провайдера Интернет (ISP). + + Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная + конфигурация: + + + + + + + + +[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW] + + + + + Хосты Local1 и Local2 находятся в + нашей сети. Local1 подключён к ISP через + коммутируемое соединение по протоколу PPP. Этот компьютер с сервером + PPP подключён посредством локальной сети к другому шлюзовому компьютеру + через внешний интерфейс самого ISP к Интернет. + + Маршруты по умолчанию для каждой из ваших машин будут + следующими: + + + + + + Хост + Маршрут по умолчанию + Интерфейс + + + + + + Local2 + Local1 + Ethernet + + + + Local1 + T1-GW + PPP + + + + - - Изменения в конфигурации ядра + Часто задаётся вопрос Почему (или каким образом) в качестве + шлюза по умолчанию для машины Local1 мы указываем + T1-GW, а не сервер провайдера, к которому + подключаемся?. + + Запомните, что из-за использования PPP-интерфейсом адреса в сети + провайдера Интернет с вашей стороны соединения, маршруты для всех + других машин в локальной сети провайдера будут сгенерированы + автоматически. Таким образом, вы уже будете знать, как достичь машины + T1-GW, так что нет нужды в промежуточной точке при + посылке трафика к серверу ISP. + + В локальных сетях адрес X.X.X.1 часто используется в качестве адреса + сетевого шлюза. Тогда (при использовании того же самого примера) + если пространство адресов класса C вашей локальной сети было задано + как 10.20.30, а ваш провайдер использует + 10.9.9, то маршруты по умолчанию будут + такие: + + + + + + Хост + Маршрут по умолчанию + + + + + + Local2 (10.20.30.2) + Local1 (10.20.30.1) + + + + Local1 (10.20.30.1, 10.9.9.30) + T1-GW (10.9.9.1) + + + + - Для включения поддержки функций моста в ядре, добавьте - строчку + Вы можете легко задать используемый по умолчанию маршрутизатор + посредством файла /etc/rc.conf. В нашем примере + на машине Local2 мы добавили такую строку в файл + /etc/rc.conf: - options BRIDGE + defaultrouter="10.20.30.1" - в файл конфигурации вашего ядра, и перестройте ядро. - + Это также возможно сделать и непосредственно из командной строки + при помощи команды &man.route.8;: - - Поддержка функций межсетевого экрана - - Если вы планируете использовать мост в качестве межсетевого - экрана, вам нужно также добавить опцию IPFIREWALL. Прочтите раздел - , содержащий общую информацию о настройке - моста в качестве межсетевого экрана. - - Если вам необходимо обеспечить прохождение не-IP пакетов (таких, - как ARP) через мост, то имеется недокументированная опция межсетевого - экрана, которую можно задать. Это опция - IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при - этом правило, используемое межсетевым экраном по умолчанию, меняется - на разрешительное для всех пакетов. Перед тем, как задавать эту - опцию, убедитесь, что вы понимаете работу вашего набора - правил. - + &prompt.root; route add default 10.20.30.1 - - Поддержка функций ограничения пропускной способности + Для получения дополнительной информации об управлении таблицами + маршрутизации, обратитесь к справочной странице по команде + &man.route.8;. + - Если вы хотите использовать мост в качестве машины, - ограничивающей пропускную способность, то добавьте в файл - конфигурации ядра опцию DUMMYNET. Дополнительную - информацию можно почерпнуть из страницы Справочника по - &man.dummynet.4;. - - + + Хосты с двойным подключением + + хосты с двойным подключением + Есть еще один тип подключения, который мы должны рассмотреть, и это + случай, когда хост находится в двух различных сетях. Технически, + любая машина, работающая как сетевой шлюз (в примере выше + использовалось PPP-соединение), считается хостом с двойным + подключением. Однако этот термин реально используется для описания + машины, находящейся в двух локальных сетях. + + В одном случае у машины имеется два адаптера Ethernet, каждый + имеющий адрес в разделенных подсетях. Как альтернативу можно + рассмотреть вариант с одним Ethernet-адаптером и использованием + алиасов в команде &man.ifconfig.8;. В первом случае используются два + физически разделённые сети Ethernet, в последнем имеется один + физический сегмент сети, но две логически разделённые подсети. + + В любом случае таблицы маршрутизации настраиваются так, что для + каждой подсети эта машина определена как шлюз (входной маршрут) в + другую подсеть. Такая конфигурация, при которой машина выступает в + роли маршрутизатора между двумя подсетями, часто используется, если + нужно реализовать систему безопасности на основе фильтрации пакетов или + функций межсетевого экрана в одном или обоих направлениях. + + Если вы хотите, чтобы эта машина действительно перемещала пакеты + между двумя интерфейсами, то вам нужно указать FreeBSD на включение + этой функции. Обратитесь к следующей главе, чтобы узнать, как это + сделать. + - - Включение функций моста + + Построение маршрутизатора - Добавьте строку + маршрутизатор - net.link.ether.bridge=1 + Сетевой маршрутизатор является обычной системой, которая + пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и + хорошая инженерная практика не позволяют Проекту FreeBSD включать эту + функцию по умолчанию во FreeBSD. Вы можете включить эту возможность, + изменив значение следующей переменной в YES в файле + &man.rc.conf.5;: - в файл /etc/sysctl.conf для включения функций - моста во время работы системы. Если вы хотите, чтобы пакеты, - проходящие через мост, фильтровались через ipfw, вы должны также туда - добавить строчку + gateway_enable=YES # Set to YES if this host will be a gateway - net.link.ether.bridge_ipfw=1 - + Этот параметр изменит значение &man.sysctl.8;-переменной + net.inet.ip.forwarding в + 1. Если вам временно нужно выключить маршрутизацию, + вы можете на время сбросить это значение в 0. - - Производительность - - Я использую в качестве моста/межсетевого экрана машину Pentium 90 с - двумя сетевыми адаптерами: 3Com 3C900B и 3C905B. Защищенная часть сети - работает в полудуплексном режиме на скорости 10Мбит/сек, а связь между - мостом и моим маршрутизатором (Cisco 675) осуществляется на скорости - 100Мбит/сек в полнодуплексном режиме. Без функций фильтрации пакетов - дополнительная задержка составляет около 0.4 миллисекунды для пакета - утилиты ping между защищенной сетью, работающей на скорости 10 Мбит, - и маршрутизатором Cisco 675. - + Вашему новому маршрутизатору нужна информация о маршрутах для того, + чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста, + то вы можете использовать статические маршруты. С FreeBSD также + поставляется стандартный даемон BSD для маршрутизации &man.routed.8;, + который умеет работать с RIP (как версии 1, так и версии 2) и IRDP. + Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации + имеется в пакете net/zebra. Также + существуют и коммерческие продукты, применяемые как более комплексное + решение проблемы маршрутизации в сети, такие как + &gated;. - - Дополнительные замечания + BGP - Если вы хотите осуществлять удаленный доступ на мост по протоколу - telnet из сети, то нет проблем в назначении одному из сетевых адаптеров - IP-адреса. Общепринято, что назначение адреса обоим сетевым адаптерам - является не самой хорошей идеей. + RIP - Если в вашей сети присутствует несколько мостов, не должно быть - более одного маршрута между любыми двумя рабочими станциями. С - технической точки зрения это означает отсутствие поддержки протокола - spanning tree. - - + OSPF - - NFS + Даже когда FreeBSD настроена таким образом, она не полностью + соответствует стандартным требованиям Интернет для маршрутизаторов. + Однако для обычного использования такое неполное соответствие + достаточно. + - Этот раздел написал &a.unfurl;, 4 марта - 2000. + + Распространение маршрутов + + распространение маршрутов + Мы уже говорили о том, как мы задаем наши маршруты во внешний мир, + но не упоминали о том, как внешний мир находит нас. + + Мы уже знаем, что таблицы маршрутизации могут быть настроены так, + что весь трафик для некоторого диапазона адресов (в нашем примере это + подсеть класса C) может быть направлен заданному хосту в той сети, + которая будет перенаправлять входящие пакеты дальше. + + При получении адресного пространства, выделенного Вашей сети, + Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик + для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети. + Но как серверы по всей стране узнают, что Ваш трафик нужно посылать + Вашему ISP? + + Существует система (подобная распределению информации DNS), которая + отслеживает все назначенные пространства адресов и определяет точку + подключения к магистрали Интернет. Магистралью называют + главные каналы, по которым идет трафик Интернет внутри страны и по + всему миру. Каждая магистральная машина имеет копию основного набора + таблиц, согласно которой трафик для конкретной сети направляется по + конкретному магистральному каналу, и затем, передаваясь по цепочке + провайдеров, он достигает вашей сети. + + Задачей вашего провайдера является объявить на магистрали о том, + что он отвечает за подключение (и поэтому на него указывает маршрут) + вашей сети. Этот процесс называется распространением маршрута. + - Среди многих типов файловых систем, которые поддерживаются во - FreeBSD, особое место занимает система Network File System, или NFS. NFS - позволяет вам использовать каталоги и файлы, находящиеся на одной машине, - совместно с еще одной или несколькими машинами по сети, к которой они - подключены. При помощи NFS пользователи и программы могут получать доступ - к файлам на удаленных системах точно так же, как если бы это были - файлы на собственных дисках. + + Устранение неполадок + + + traceroute + + Иногда с распространением маршрута возникают проблемы, и некоторые + сайты не могут к вам подключиться. Наверное, самой полезной командой + для определения точки неверной работы маршрутизации является + &man.traceroute.8;. Она также полезна и когда вы сами не можете + подключиться к удаленной машине (то есть команда &man.ping.8; не + срабатывает). + + Команда &man.traceroute.8; запускается с именем удаленного хоста, с + которым вы хотите установить соединение, в качестве параметра. Она + показывает промежуточные сетевые шлюзы по пути следования, в конце + концов достигая адрес назначения или прерывая свою работу из-за + отсутствия соединения. + + За дополнительной информацией обратитесь к странице Справочника по + &man.traceroute.8;. + - Использование NFS имеет несколько преимуществ: + + Маршрутизация многоадресного трафика - - - Отдельно взятым рабочим станциям не нужно иметь столь много - дискового пространства, так как совместно используемые данные могут - храниться на одной отдельной машине и быть доступными для всех машин - в сети. - + + multicast - - Пользователям не нужно иметь уникальные для каждой машины - домашние каталоги. Если у них есть каталог, доступный по NFS, он - может использоваться отовсюду. - + options MROUTING + - - Устройства хранения информации, такие, как дискеты и приводы - компакт-дисков, могут использоваться другими машинами в сети, - что избавляет от необходимости в приобретении дополнительного - оборудования. - - + FreeBSD изначально поддерживает как приложения, работающие с + многоадресным трафиком, так и его маршрутизацию. Такие приложения не + требуют особой настройки FreeBSD; обычно они работают сразу. + Для маршрутизации многоадресного трафика требуется, чтобы поддержка + этого была включена в ядро: - - Как это работает + options MROUTING - NFS строится их двух компонент – клиент и сервер. - Представляйте их в связке хочу/имею. Клиент хочет - данные, которые сервер имеет. Сервер делится - своими данными с клиентом. Для того, чтобы эта система нормально - функционировала, нужно правильно настроить и запустить несколько - процессов. + Кроме того, даемон многоадресной маршрутизации, &man.mrouted.8;, + должен быть настроен посредством файла + /etc/mrouted.conf на использование туннелей и + DVMRP. Дополнительную информацию о настройки многоадресного трафика + можно найти на страницах справочной системы, посвящённых даемону + &man.mrouted.8;. + + - На сервере работают следующие даемоны: + + + + + Eric + Anderson + Текст предоставил + + + + Андрей + Захватов + Перевёл на русский язык + + + + + Беспроводные сети + + + беспроводные сети + + + + 802.11 + беспроводные сети + + + + Введение + + Было бы весьма полезным иметь возможность использовать компьютер + без хлопот, связанных с постоянно подключенным сетевым кабелем. + FreeBSD может использоваться как клиент беспроводной сети, и даже + в качестве точки доступа к ней. + - - - nfsd - NFS Daemon, обслуживающий запросы от - клиентов NFS. - + + Режимы работы беспроводной связи + + Существуют два варианта конфигурации устройств беспроводного + доступа 802.11: BSS и IBSS. + + + Режим BSS + + Режим BSS является наиболее часто используемым. Режим BSS также + называют режимом инфраструктуры. В этом редиме несколько точек + доступа беспроводной сети подключаются к проводной сети передачи + данных. Каждое беспроводная сеть имеет собственное имя. Это имя + является идентификатором SSID сети. + + Клиенты беспроводной сети подключаются к этим точкам доступа + беспроводной сети. Стандарт IEEE 802.11 определяет протокол, + используемый для связи в беспроводных сетях. Клиент сети + беспроводного доступа может подключаться к некоторой сети, если + задан её SSID. Клиент может также подключаться к любой сети, если + SSID не задан. + + + + Режим IBSS + + Режим IBSS, также называемый ad-hoc, предназначен для соединений + точка-точка. На самом деле существуют два типа режима ad-hoc. Один + из них является режимом IBSS, называемый также режимом ad-hoc или + IEEE ad-hoc. Этот режим определён стандартами IEEE 802.11. Второй + режим называется демонстрационным режимом ad-hoc, или Lucent ad-hoc + (или, иногда неправильно, режимом ad-hoc). Это старый, + существовавший до появления 802.11, режим ad-hoc, и он должен + использоваться только для старых сетей. В дальнейшем мы не будем + рассматривть ни один из режимов ad-hoc. + + - - mountd - NFS Mount Daemon, который выполняет - запросы, передаваемые ему от nfsd. - - + + Режим инфраструктуры + + + Точки доступа + + Точки доступа представляют собой беспроводные сетевые устройства, + позволяющие одному или большему количеству клиентов беспроводной сети + использовать эти устройства в качестве центрального сетевого + концентратора. При использовании точки доступа все клиенты работают + через неё. Зачастую используются несколько точек доступа для полного + покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или + парк. + + Точки доступа обычно имеют несколько подключений к сети: адаптер + беспроводной связи и один или большее количество сетевых + ethernet-адаптеров для подключения к остальной части сети. + + Точки доступа могут быть либо приобретены уже настроенными, либо + вы можете создать собственную при помощи FreeBSD и поддерживаемого + адаптера беспроводной связи. Несколько производителей выпускают + точки беспроводного доступа и адаптеры беспроводной связи с + различными возможностями. + + + + Построение точки доступа с FreeBSD + + + беспроводные сети + точка доступа + + + + Требования + + Для того, чтобы создать беспроводную точку доступа на FreeBSD, + вам нужно иметь совместимый адаптер беспроводной связи. На данный + момент поддерживаются адаптеры толко на основе набора микросхем + Prism. Вам также потребуется поддерживаемый FreeBSD адаптер + проводной сети (найти такой будет нетрудно, FreeBSD поддерживает + множество различных устройств). В этом руководстве мы будем + полагать, что вы будете строить сетевой мост (&man.bridge.4;) для + пропуска всего трафика между устройством беспроводной связи и + сетью, подключенной к обычному Ethernet-адаптеру. + + Функциональность hostap, которая используется FreeBSD для + организации точки доступа, работает лучше всего с некоторыми + версиями микрокода. Адаптеры Prism 2 должны использовать микрокод + версии 1.3.4 или более новый. Адаптеры Prism 2.5 и Prism 3 должны + использовать микрокод версии 1.4.9. Более старые версии микрокода + могут работать нормально, а могут и некорректно. В настоящее время + единственным способом обновления адаптеров является использование + утилит обновления для &windows;, которые можно получить у + производителя ваших адаптеров. + + + + Настройка + + Первым делом убедитесь, что ваша система распознаёт адаптер + беспроводной связи: + + &prompt.root; ifconfig -a +wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 + inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 + ether 00:09:2d:2d:c9:50 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) + status: no carrier + ssid "" + stationname "FreeBSD Wireless node" + channel 10 authmode OPEN powersavemode OFF powersavesleep 100 + wepmode OFF weptxkey 1 + + На данном этапе не беспокойтесь о деталях, просто убедитесь, + что выдаётся нечто, указывающее на установленный адаптер + беспроводной связи. Если при этом у вас есть проблемы с + недоступностью интерфейса беспроводной связи, и вы используете + PC Card, то обратитесь к страницам справочной системы, описывающим + &man.pccardc.8; и &man.pccardd.8; для получения более полной + информации. + + Теперь вам нужно загрузить модуль для подготовки той части + FreeBSD, что отвечает за организацию сетевых мостов, для работы + с точкой доступа. Для загрузки модуля &man.bridge.4; просто + выполните следующую команду: + + &prompt.root; kldload bridge + + При загрузке модуля никаких сообщений об ошибках быть не + должно. Если это всё же произошло, вам может потребоваться + вкомпилировать код для модуля &man.bridge.4; в ядро. В этом вам + должен помочь раздел Руководства об организации сетевых + мостов. + + Теперь, когда вы завершили с той частью, что касается + организации сетевого моста, нам нужно указать ядру FreeBSD, какие + интерфейсы должны объединяться в сеетвом мосте. Это мы делаем + при помощи &man.sysctl.8;: + + &prompt.root; sysctl net.link.ether.bridge=1 +&prompt.root; sysctl net.link.ether.bridge_cfg="wi0 xl0" +&prompt.root; sysctl net.inet.ip.forwarding=1 + + Во &os; 5.2-RELEASE и последующих версиях нужно + использовать вместо указанных следующие параметры: + + &prompt.root; sysctl net.link.ether.bridge.enable=1 +&prompt.root; sysctl net.link.ether.bridge.config="wi0 xl0" +&prompt.root; sysctl net.inet.ip.forwarding=1 + + Теперь необходимо настроить адаптер беспроводной сети. + + Следующая команда заставит адаптер работать в режиме точки + доступа: + + &prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP" + + Строчка &man.ifconfig.8; активизирует интерфейс + wi0, конфигурирует его SSID как + my_net, а имя станции как FreeBSD + AP. переводит адаптер в + режим 11Mbps и нужен только для того, чтобы сработал параметр + . Параметр переводит интерфейс в режим точки доступа. + Параметр задаёт использование канала + 802.11b. Страница справки по команде &man.wicontrol.8; перечисляет + корректные значения каналов для ваших нужд. + + Теперь у вас должна получиться полнофункциональная работающая + точка доступа. Настоятельно советуем прочесть страницы справочной + по &man.wicontrol.8;, &man.ifconfig.8;, и &man.wi.4; для + получения дополнительной информации. + + Также полагаем, что вы прочтёте следующий раздел о + шифровании. + + + + Информация о состоянии + + После того, как точка доступа сконфигурирована и начала свою + работу, операторам может понадобиться видеть клиентов, связанных + с этой точкой. В любой момент оператор может набрать: + + &prompt.root; wicontrol -l +1 station: +00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15 + + Это показывает, что имеется одна связанная станция с + перечислеными характеристиками. Выдаваемое значение сигнала должно + использоваться только как сравнительный индикатор его силы. Его + перевод в dBm или другие единицы измерения различаются в разных + версиях микрокода. + + + + + Клиенты + + Клиент в беспроводной сети представляет собой систему, которая + обращается к точке доступа или непосредственно к другому + клиенту. + + Как правило, клиенты беспроводной сети имеют только один сетевой + адаптер, а именно адаптер беспроводной сети. + + Существует несколько различных способов конфигурации клиента + беспроводной сети. Они основаны на различных режимах работы в + беспроводной сети, обычно BSS (режим инфраструктуры, который требует + точки доступа) или IBSS (ad-hoc или режим одноранговой сети). В + нашем примере мы будем использовать самый популярный их них, режим + BSS, для связи с точкой доступа. + + + Требования + + Существует только одно жёсткое условие для настройки FreeBSD в + качестве клиента беспроводной сети. Вам нужен адаптер беспроводной + связи, поддерживаемый FreeBSD. + + + + Конфигурация FreeBSD как клиента беспроводной сети + + Перед тем, как подключиться к беспроводной сети, вам нужно + будет узнать о ней несколько вещей. В этом примере мы подключаемся + к сети, которая называется my_net, и шифрование + в ней отключено. + + Замечание: В этом примере мы не используем шифрование, но + это небезопасно. В следующем разделе вы узнаете, как её включить, + почему это так важно, и почему некоторые технологии шифрования всё + же не могут полностью обеспечить вашу информационную + безопасность. + + Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD: + + &prompt.root; ifconfig -a +wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7 + inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255 + ether 00:09:2d:2d:c9:50 + media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps) + status: no carrier + ssid "" + stationname "FreeBSD Wireless node" + channel 10 authmode OPEN powersavemode OFF powersavesleep 100 + wepmode OFF weptxkey 1 + + Теперь мы изменим настройки адаптера на те, что соответствуют + нашей сети: + + &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net + + Замените 192.168.0.20 и 255.255.255.0 на правильные IP-адрес и + сетевую маску в вашей проводной сети. Запомните, что наша точка + доступа выступает в роли моста для данных между беспроводной и + проводной сетями, так что они будут доступны для других устройств, + находящихся в сети, как будто они тоже находятся в проводной + сети. + + Как только вы это выполнили, то сможете получить ping от хостов + в проводной сети, как будто вы подключены посредством обычных + проводов. + + Если вы столкнулись с проблемами при работе в беспроводной + сети, удостоверьтесь, что вы ассоциированы (подключены) с точкой + доступа: + + &prompt.root; ifconfig wi0 + + должна выдать некоторую информацию, и вы должны увидеть: + + status: associated + + Если статус не будет соответствовать ассоциированному, то это + может значить, что вы оказались вне зоны досягаемости точки + доступа, не включили шифрование или, возможно, имеются проблемы с + конфигурацией. + + + + + Шифрование + + + беспроводные сети + шифрование + + + Шифрование в беспроводной сети имеет важное значение, потому что + у вас нет больше возможности ограничить сеть хорошо защищённой + областью. Данные вашей беспроводной сети вещаются по всей + окрестности, так что любой заинтересовавшийся может их считать. Вот + здесь используется шифрование. Шифруя данные, посылаемые в + эфир, вы делаете их прямой перехват гораздо более сложным для всех + любопытных. + + Двумя наиболее широко применяемыми способами шифрации данных + между вашим клиентом и точкой доступа являются WEP + и &man.ipsec.4;. + + + WEP + + + WEP + + + WEP является сокращением от Wired Equivalency Protocol + (Протокол Соответствия Проводной сети). WEP является попыткой + сделать беспроводные сети такими же надёжными и безопасными, как + проводные. К сожалению, он был взломан и сравнительно легко + поддаётся вскрытию. Это означает также, что он не тот протокол, + на который следует опираться, когда речь идёт о шифровании + критически важных данных. + + Он лучше, чем ничего, так что используйте следующую команду для + включения WEP в вашей новой точке доступа FreeBSD: + + &prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostap + + Вы можете включить WEP на клиенте следующей командой: + + &prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890 + + Отметьте, что вы должны заменить + 0x1234567890 на более уникальный ключ. + + + + IPsec + + &man.ipsec.4; является гораздо более надёжным и мощным + средством шифрования данных в сети. Этот метод определённо + является предпочтительным для шифрования данных в беспроводной + сети. Более детально ознакомиться с безопасностью и применением + &man.ipsec.4; вы можете в разделе об IPsec Руководства. + + + + + Утилиты + + Имеется несколько утилит, которые можно использовать для + настройки и отладки вашей беспроводной сети, и здесь мы попытаемся + описать некоторые из них и что они могут делать. + + + Пакет <application>bsd-airtools</application> + + Пакет bsd-airtools представляет + собой полный набор инструментов, включая инструменты для проверки + беспроводной сети на предмет взлома WEP-ключа, + обнаружения точки доступа и тому подобное. + + Утилиты bsd-airtools можно + установить из порта net/bsd-airtools. Информацию + об установке портов можно найти в Главе + Руководства. + + Программа dstumbler является инструментом, + предназначенным для обнаружения точки доступа и выдачи отношения + уровня сигнала к шуму. Если у вас с трудом получается запустить + точку доступа, dstumbler может помочь вам + начать. + + Для тестирования информационной безопасности вашей беспроводной + сети, вы можете воспользоваться набором dweputils + (dwepcrack, dwepdump и + dwepkeygen), который может помочь + понять, является ли WEP подходящим решением для обеспечения ваших + потребностей в информационной безопасности. + + + + Утилиты <application>wicontrol</application>, + <application>ancontrol</application> и + <application>raycontrol</application> + + Это инструменты, которые используются для управления поведением + адаптера беспроводной связи в сети. В примере выше мы выбирали + &man.wicontrol.8;, так как нашим адаптером беспроводной сети был + интерфейс wi0. Если у вас установлено + устройство беспроводного доступа от Cisco, этим интерфейсом будет + an0, и тогда вы будете + использовать &man.ancontrol.8;. + + + + Команда <application>ifconfig</application> + + + ifconfig + + + Утилита &man.ifconfig.8; может использоваться для установки + многих из тех параметров, что задаёт &man.wicontrol.8;, однако + работа с некоторыми параметрами в ней отсутствует. Обратитесь к + &man.ifconfig.8; для выяснения параметров и опций командной + строки. + + + + + Поддерживаемые адаптеры + + + Точки доступа + + Единственными адаптерами, которые на данный момент + поддерживаются в режиме BSS (как точка доступа), являются те + устройства, что сделаны на основе набора микросхем Prism 2, 2.5 + или 3). Полный список можно увидеть в &man.wi.4;. + + + + Клиенты + + Практически все адаптеры беспроводной связи 802.11b на данный + момент во FreeBSD поддерживаются. Большинство адаптеров, + построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink, + будут работать в качестве адаптера беспроводной сети в режиме + IBSS (ad-hoc, одноранговая сеть и BSS). + + + + - На стороне клиента должен быть запущен только один-единственный - даемон: + + + + + Pav + + Lucistnik + + Текст предоставил + + +
pav@oook.cz
+
+
+
+
+ + Bluetooth + + Bluetooth + + + Введение + + Bluetooth является беспроводной технологией для создания + персональных сетей на расстоянии не более 10 метров, работающей на + частоте 2.4 ГГц, которая не подлежащит лицензированию. Обычно такие + сети формируются из портативных устройств, таких, как сотовые телефоны, + КПК и лаптопы. В отличие от Wi-Fi, другой популярной беспроводной + технологии, Bluetooth предоставляет более высокий уровень сервиса, + например, файловые серверы типа FTP, передачу файлов, голоса, эмуляцию + последовательного порта и другие. + + Стек протоколов Bluetooth во &os; реализован на основе технологии + Netgraph (обратитесь к &man.netgraph.4;). Широкий спектр USB-устройств + Bluetooth поддерживается драйвером &man.ng.ubt.4;. Устройства + Bluetooth на основе набора микросхем Broadcom BCM2033 поддерживается + драйвером &man.ng.bt3c.4;. Устройства Bluetooth, работающие через + последовательные и UART-порты, поддерживаются драйверами &man.sio.4;, + &man.ng.h4.4; и &man.hcseriald.8;. В этой главе описывается + использование Bluetooth-устройств, подключаемых через USB. Поддержка + Bluetooth имеется во &os; 5.0 и более новых версиях системы. + - - - nfsiod - NFS async I/O Daemon (даемон - асинхронного ввода/вывода), обслуживающий запросы от своего - NFS-сервера. - - - + + Подключение устройства + + По умолчанию драйверы устройств Bluetooth поставляются в виде + модулей ядра. Перед подключением устройства вам необходимо подгрузить + драйвер в ядро. + + &prompt.root; kldload ng_ubt + + Если Bluetooth-устройство в момент запуска системы подключено, то + загружайте модуль из файла + /boot/loader.conf. + + ng_ubt_load="YES" + + Подключите ваше USB-устройство. На консоли (или в журнале + syslog) появится примерно такое сообщение. + + ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2 +ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2 +ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3, + wMaxPacketSize=49, nframes=6, buffer size=294 + + Скопируйте файл + /usr/share/examples/netgraph/bluetooth/rc.bluetooth + в какое-нибудь подходящее место, например, в файл + /etc/rc.bluetooth. Этот скрипт используется для + запуска и остановки работы Bluetooth-стека. Перед отключением + устройства рекомендуется остановить его работы, хотя (обычно) это не + фатально. При запуске стека вы получите сообщения, подобные + следующим: + + &prompt.root; /etc/rc.bluetooth start ubt0 +BD_ADDR: 00:02:72:00:d4:1a +Features: 0xff 0xff 0xf 00 00 00 00 00 +<3-Slot> <5-Slot> <Encryption> <Slot offset> +<Timing accuracy> <Switch> <Hold mode> <Sniff mode> +<Park mode> <RSSI> <Channel quality> <SCO link> +<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD> +<Paging scheme> <Power control> <Transparent SCO data> +Max. ACL packet size: 192 bytes +Number of ACL packets: 8 +Max. SCO packet size: 64 bytes +Number of SCO packets: 8 + - - Настройка NFS + HCI + + + Host Controller Interface (HCI) + + Host Controller Interface (HCI) предоставляет интерфейс для + управления контроллером передатчика и менеджером соединений, а также + доступ к данным о состоянии оборудования и его управляющим регистрам. + Этот интерфейс предоставляет унифицированный метод доступа к + передающим возможностям Bluetooth. Уровень HCI на управляющей машине + обменивается данными и командами с микрокодом HCI в оборудовании + Bluetooth. Драйвер для Host Controller Transport Layer (то есть + физической шины) предоставляет обоим слоям HCI возможность обмениваться + данными друг с другом. + + Для одного Bluetooth-устройства создаётся один узел Netgraph типа + hci. HCI-узел обычно подключается к узлу драйвера + устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток). + Все операции с HCI должны выполняться на узле HCI, но не на узле + драйвера устройства. В качестве имени по умолчанию для узла HCI + используется devicehci. Дополнительные подробности + можно найти на справочной странице &man.ng.hci.4;. + + Одной из самой часто выполняемой задач является обнаружение + Bluetooth-устройств в радиусе RF-доступности. Эта операция называется + опросом (inquiry). Опрос и другие операции, + связанные с HCI, выполняются при помощи утилиты &man.hccontrol.8;. + Пример ниже показывает, как найти доступные устройства Bluetooth. + Список таких устройств должен быть получен в течение нескольких секунд. + Заметьте, что удалённые устройства будут отвечать на опрос, если только + они находятся в режиме обнаруживаемости + (discoverable). + + &prompt.user; hccontrol -n ubt0hci inquiry +Inquiry result, num_responses=1 +Inquiry result #0 + BD_ADDR: 00:80:37:29:19:a4 + Page Scan Rep. Mode: 0x1 + Page Scan Period Mode: 00 + Page Scan Mode: 00 + Class: 52:02:04 + Clock offset: 0x78ef +Inquiry complete. Status: No error [00] + + BD_ADDR является уникальным адресом устройства + Bluetooth, вроде MAC-адресов сетевых адаптеров. Этот адрес необходим + для дальнейшей работы с устройством. Адресу BD_ADDR можно присвоить + удобное для чтения имя. Файл /etc/bluetooth/hosts + содержит информацию об известных хостах Bluetooth. В следующем примере + показано, как получить имя, назначенное удалённому устройству. + + &prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4 +BD_ADDR: 00:80:37:29:19:a4 +Name: Pav's T39 + + Если вы выполните опрос на другом Bluetooth-устройстве, но ваш + компьютер будет опознан как your.host.name (ubt0). + Имя, назначаемое локальному устройству, может быть в любой момент + изменено. + + Система Bluetooth предоставляет услуги по соединениям типа + точка-точка (при этом задействованы только два устройства Bluetooth) + или точка-ко-многим-точкам. В последнем случае соединение используется + совместно несколькими устройствам Bluetooth. В следующем примере + показывается, как получить список активных для локального устройства + соединений. + + &prompt.user; hccontrol -n ubt0hci read_connection_list +Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State +00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPEN + + Идентификатор соединения (connection handle) + полезен, когда необходимо прекратить соединение. Заметьте, что обычно + нет нужды делать это вручную. Стек будет автоматически разрывать + неактивные соединения. + + &prompt.root; hccontrol -n ubt0hci disconnect 41 +Connection handle: 41 +Reason: Connection terminated by local host [0x16] + + Обратитесь к помощи посредством hccontrol help + для получения полного списка доступных HCI-команд. Большинство команд + HCI для выполнения не требуют прав администратора системы. + - К счастью для нас, на системах FreeBSD эта настройка проста. - Процессы, которые должны быть запущены, все могут быть запущены - во время загрузки ценой нескольких модификаций в вашем файле - /etc/rc.conf. + L2CAP + + + Logical Link Control and Adaptation Protocol (L2CAP) + + Протокол L2CAP (Logical Link Control and Adaptation Protocol) + предоставляет услуги по работе с данными, как ориентированные на + соединения, так и без ориентации на них, протоколам более высокого + уровня с возможностями мультиплексирования и обеспечением операций по + сегментации и обратной сборке. L2CAP позволяет протоколам более + высокого уровня и приложениям передавать и получать пакеты данных + L2CAP длиной до 64 Кбайт. + + L2CAP основан на концепции каналов. Каналом + является логическое соединение поверх соединения по радиоканалу. + Каждый канал привязан к некоторому протоколу по принципу + многие-к-одному. Несколько каналов могут быть привязаны к одному и + тому же протоколу, но канал не может быть привязан к нескольким + протоколам. Каждый пакет L2CAP, получаемый каналом, перенаправляется + к соответствующему протоколу более высокого уровня. Несколько каналов + могут совместно использовать одно и то же радиосоединение. + + Для одного Bluetooth-устройства содается один узел Netgraph типа + l2cap. Узел L2CAP обычно подключается к узлу + Bluetooth HCI (нижестоящий) и узлам Bluetooth-сокетов (вышестоящие). + По умолчанию для узла L2CAP используется имя + devicel2cap. Для получения дополнительной информации + обратитесь к справочной странице по &man.ng.l2cap.4;. + + Полезной является программа &man.l2ping.8;, которая может + использоваться для проверки связи с другими устройствами. Некоторые + реализации Bluetooth могут не возвращать все данные, посылаемые им, + так что 0 bytes в следующем примере - это + нормально. + + &prompt.root; l2ping -a 00:80:37:29:19:a4 +0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0 +0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0 + + Утилита &man.l2control.8; используется для выполнения различных + операций с узлами L2CAP. В этом примере показано, как получить список + логических соединений (каналов) и перечень радиосоединений локального + устройства. + + &prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list +L2CAP channels: +Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State +00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN +&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list +L2CAP connections: +Remote BD_ADDR Handle Flags Pending State +00:07:e0:00:0b:ca 41 O 0 OPEN + + Ещё одним диагностическим инструментом является &man.btsockstat.1;. + Она выполняет действия, подобные тем, что обычно выполняет + &man.netstat.1;, но со структурами данных, связанных с работой в сети + Bluetooth. В примере ниже описывается то же самое логическое + соединение, что и с &man.l2control.8; выше. + + &prompt.user; btsockstat +Active L2CAP sockets +PCB Recv-Q Send-Q Local address/PSM Foreign address CID State +c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN +Active RFCOMM sessions +L2PCB PCB Flag MTU Out-Q DLCs State +c2afe900 c2b53380 1 127 0 Yes OPEN +Active RFCOMM sockets +PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State +c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPEN + - Проверьте, что на NFS-сервере у вас есть такие строки: + RFCOMM + + + Протокол RFCOMM + + Протокол RFCOMM эмулирует последовательные порты поверх протокола + L2CAP. Он основан на ETSI-стандарте TS 07.10. RFCOMM представляет + собой простой транспортный протокол, с дополнительными возможностями по + эмуляции 9 цепей последовательных портов RS-232 (EIATIA-232-E). + Протокол RFCOMM поддерживает одновременно до 60 соединений (каналов + RFCOMM) между двумя устройствами Bluetooth. + + В рамках RFCOMM полный коммуникационный маршрут включает два + приложения, работающие на разных устройствах (конечные коммуникационные + точки) с коммуникационным сегментом между ними. RFCOMM предназначен + для сокрытия приложений, использующих последовательные порты устройств, + в которых они расположены. Коммуникационный сегмент по сути является + Bluetooth-связью от одного устройства к другому (прямое + соединение). + + RFCOMM имеет дело с соединением между устройствами в случае прямого + соединения, или между устройством и модемом в сетевом случае. RFCOMM + может поддерживать и другие конфигурации, такие, как модули, работающие + через беспроводную технологию Bluetooth с одной стороны и + предоставляющие проводное соединение с другой стороны. + + Во &os; протокол RFCOMM реализован на уровне сокетов + Bluetooth. + - -nfs_server_enable="YES" -nfs_server_flags="-u -t -n 4" -mountd_flags="-r" - - - mountd запускается автоматически, если включен - сервер NFS. Флаги и в команде - nfsd указывают на обслуживание клиентов, работающих - по протоколам UDP и TCP. Параметр указывает - команде nfsd на запуск 4 своих копий. - - На клиентской строне убедитесь в наличии таких строк: - - -nfs_client_enable="YES" -nfs_client_flags="-n 4" - - - Как и в случае nfsd, параметр - указывает nfsiod на запуск - 4 своих копий. - - Последний этап настройки требует создания файла с именем - /etc/exports. Файл экспортирования перечисляет, - какие файловые системы на вашем сервере будут использоваться совместно - с другими машинами (или экспортироваться), и с какими - именно. Каждая строка в файле описывает файловую систему, которая - будет предоставляться на доступ. Имеется полный набор параметров, - который можно использовать, но я коснусь только некоторых. Описания - остальных параметров можно найти в Справочнике - по &man.exports.5;. - - Вот несколько примерных строк из файла - /etc/exports: - - В следующей строке экспортируется /cdrom для - для трех машинок, находящихся в том же самом домене, что и сервер - (из-за отсутствия доменного имени для каждой машины) или которые - имеют описания в файле /etc/hosts. Флаг - указывает на использование экспортируемой файловой - системы в режиме только для чтения. С этим флагом удаленная система не - сможет никоим образом изменить экспортируемую файловую систему. - - /cdrom -ro moe larry curly - - В следующей строке экспортируется файловая система - /home, которая становится доступной трем хостам, - указанным по их IP-адресам. Это полезно, если у вас есть собственная - сеть, но сервис DNS не используется. Флаг - позволяет также экспортировать все каталоги, находящиеся ниже в - указанной файловой системе. - - /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 - - В строке, приведенной ниже, файловая система - /a экспортируется для двух машин, которые - находятся в различных, не совпадающих с серверным, доменах. Флаг - позволяет пользователю root удаленной - системы осуществлять запись на совместно используемую файловую систему - как пользователь root. Без флага -maproot=0 даже если кто-то имеет - права доступа root на удаленной системе, он не сможет модифицировать - файлы на совместно используемой файловой системе. - - - /a -maproot=0 host.domain.com box.example.com - - - Для того, чтобы клиент смог использовать экспортированную файловую - систему, он должен иметь права сделать это. Проверьте, что клиент - указан в вашем файле /etc/exports. - - Теперь, после того, как вы сделали все эти изменения, вы можете - просто перезагрузиться, а FreeBSD запустит все во время загрузки, - либо последовательно запустить следующие команды, работая как - пользователь root: - - На сервере NFS: - - -&prompt.root; nfsd -u -t -n 4 -&prompt.root; mountd -r - - - На клиенте NFS: - - -&prompt.root; nfsiod -n 4 - - - Теперь вы готовы к реальному монтированию удаленной файловой - системы. Это может быть сделано двумя способами. В приводимых - примерах сервер будет носить имя server, а клиент - будет носить имя client. Если вы просто хотите - временно смонтировать удаленную файловую систему, или всего лишь - протестировать ваши настройки, то вы можете запустить команды, подобные - приводимым здесь, работая как пользователь root на клиентской - машине: - - -&prompt.root; mount server:/home /mnt - - - По этой команде файловая система /home на - сервере будет смонтирована в каталог /mnt на - клиенте. Если все настроено правильно, вы сможете перейти в каталог - /mnt на клиенте и увидеть файлы, находящиеся на сервере. - - Если вы хотите иметь удаленную файловую систему смонтированной - постоянно (каждый раз при загрузке), то добавьте ее в ваш файл - /etc/fstab. Вот примерная строка: - - -server:/home /mnt nfs rw 0 0 - - - Read the &man.fstab.5; man page for more options. - + pairing + + + Pairing of Devices + + По умолчанию связь Bluetooth не аутентифицируется, поэтому любое + устройство может обзаться с любым другим. Устройство Bluetooth + (например, сотовый телефон) может задать обязательность аутентификации + для предоставления определённого сервиса (в частности, услугу доступа + по коммутируемой линии). Bluetooth-аутентификация обычно выполняется + через PIN-коды. PIN-код представляет из себя + ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и + тот же PIN-код на обоих устройствах. Как только он введёт PIN-код, + оба устройства сгенерируют ключ связи. После + этого ключ может быть сохранён либо в самом устройстве, либо на + постоянном носителе. В следующий раз оба устройства будут использовать + ранее сгенерированный ключ соединения. Процедура, описанная выше, + носит название подгонки пары (pairing). Заметьте, + что если ключ связи потерян любой из сторон, то подбор пары должен быть + повторен. + + За обработку всех запросов на Bluetooth-аутентификацию отвечает + даемон &man.hcsecd.8;. По умолчанию файл конфигурации называется + /etc/bluetooth/hcsecd.conf. Пример раздела, + содержащего информацию о сотовом телефоне с явно заданным PIN-кодом + 1234 приведен ниже. + + device { + bdaddr 00:80:37:29:19:a4; + name "Pav's T39"; + key nokey; + pin "1234"; + } + + Кроме длины, на PIN-коды не накладывается никаких ограничений. + Некоторые устройства (например, Bluetooth-гарнитуры) могут иметь + фиксированный встроенный PIN-код. Параметр + позволяет запустить &man.hcsecd.8; как нефоновый процесс, что облегчает + просмотр происходящих событий. Задайте получение парного ключа на + удалённом устройстве и инициируйте Bluetooth-соединение с этим + устройством. Удалённое устройство должно подтвердить получение пары и + запросить PIN-код. Введите тот же самый код, что находится в + hcsecd.conf. Теперь ваш ПК и удалённое устройство + спарены. Альтернативным способом является инициация процесса создания + пары на удалённом устройстве. Ниже даётся пример выдачи протокола + команды hcsecd. + +hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist +hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4 +hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists +hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4 + - - Практическое использование - - Имеется много способов использовать NFS в работе. Я достаточно - часто использую ее в локальной сети, которую администрирую. Вот - несколько способов ее полезного применения. - - В моей сети имеется несколько машин, но всего лишь на одной из них - имеется привод компакт-дисков. Почему? Потому что этот единственный - привод используется совместно всеми другими машинами через NFS. То же - самое может быть сделано с приводами НГМД. - - С таким большим количеством машин ваши личные файлы приходят в - беспорядок и распределяются по всем машинам. У меня сделан центральный - сервер NFS, на котором размещены все домашние каталоги пользователей - и они экспортируются на все другие машины в локальной сети, так что - вне зависимости от того, с какой машины я вошел в сеть, я получаю один - и тот же домашний каталог. - - Когда вы переустанавливаете FreeBSD на одной из ваших машин, это - можно делать через NFS. Просто поместите компакт-диск с дистрибутивом - на файловый сервер. - - Каталог /usr/ports/distfiles у меня является - общим для всех машин. Таким образом, когда я устанавливаю порт, - который уже устанавливался ранее на другой машине, мне не нужно - снова скачивать архив с исходным кодом. - + SDP + + + Service Discovery Protocol (SDP) + + Протокол обнаружения сервисов SDP даёт возможность клиентским + приложениям осуществлять поиск услуг, предоставляемых серверными + приложениями, а также характеристик этих услуг. В перечень атрибутов + сервиса включается тип класса предлагаемого сервиса и информация о + механизме или протоколе, требуемом для использования сервиса. + + SDP подразумевает коммуникации между SDP-сервером и SDP-клиентом. + Сервер поддерживает список сервисов, в котором описываются параметры + сервисов, связанных с сервером. Каждая запись об услуге содержит + информацию об одном сервисе. Клиент может запросить информацию об + опеределённом сервисе, обслуживаемом SDP-сервером, выдавая SDP-запрос. + Если клиент или приложение, связанное с клиентом, решат воспользоваться + сервисом, то для его использования необходимо открыть отдельное + соединение к устройству, предоставляющему сервис. SDP предоставляет + механизм обнаружения услуг и их параметров, но не даёт механизма + использования этих сервисов. + + Обычно SDP-клиент выполняет поиск услуг на основе некоторых + желаемых характеристик услуг. Однако иногда возникает необходимость + выяснить полный перечень типов услуг, предоставляемых SDP-сервером, + не имея никакой информации об имеющихся сервисах. Такой процесс + всех предлагаемых сервисов называется обзором + (browsing). + + Существующие на данный момент серверы и клиенты SDP реализованы в + пакете стороннего разработчика sdp-1.5, + который можно сгрузить здесь. Утилита + sdptool является SDP-клиентом, управляемым + из командной строки. В следующем примере показано, как выполнять + запрос на SDP-обзор. + + &prompt.root; sdptool browse 00:80:37:29:19:a4 +Browsing 00:80:37:29:19:A4 ... +Service Name: Dial-up Networking +Protocol Descriptor List: + "L2CAP" (0x0100) + "RFCOMM" (0x0003) + Channel: 1 + +Service Name: Fax +Protocol Descriptor List: + "L2CAP" (0x0100) + "RFCOMM" (0x0003) + Channel: 2 + +Service Name: Voice gateway +Service Class ID List: + "Headset Audio Gateway" (0x1112) + "Generic Audio" (0x1203) +Protocol Descriptor List: + "L2CAP" (0x0100) + "RFCOMM" (0x0003) + Channel: 3 + + ... и так далее. Заметьте, что каждый сервис имеет перечень + атрибутов (например, канал RFCOMM). В зависимости от сервиса вам может + потребоваться где-то сохранить эти атрибуты. Некоторые реализации + Bluetooth не поддерживают просмотр сервисов и могут возвращать пустой + список. В этом случае возможен поиск конкретной услуги. В примере + ниже показано, как выполнить поиск службы OBEX Object Push + (OPUSH). + + &prompt.root; sdptool search --bdaddr 00:07:e0:00:0b:ca OPUSH + + Во &os; предоставление сервисов клиентам Bluetooth осуществляется + сервером sdpd. + + &prompt.root; sdpd + + Для регистрации сервиса в лкальном SDP-сервере также применяется + утилита sdptool. В примере ниже + показывается, как зарегистрировать Network Access с услугой PPP (LAN). + Заметьте, что некоторые сервисы требуют указания их атрибутов + (например, канала RFCOMM). + + &prompt.root; sdptool add --channel=7 LAN + + Перечень сервисов, зарегистрированных в локальном SDP-сервере, + может быть получен посылкой SDP-запроса на просмотр + специального адреса BD_ADDR. + + &prompt.root; sdptool browse ff:ff:ff:00:00:00 + - - Проблемы взаимодействия с другими системами - - Предоставил &a.jlind;. - - Некоторые сетевые адаптеры для систем PC с шиной ISA имеют - ограничения, которые могут привести к серьезным проблемам в сети, в - частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако - эту систему они затрагивают. - - Проблема, которая возникает практически всегда при работе по сети - систем PC (FreeBSD) с высокопроизводительными рабочими станциями, - выпущенными такими производителями, как Silicon Graphics, Inc. и Sun - Microsystems, Inc. Монтирование по протоколу NFS будет работать - нормально, и некоторые операции также будут выполняться успешно, но - неожиданно сервер окажется недоступным для клиент, хотя запросы к и - от других систем будут продолжаться обрабатываться. Такое встречается - с клиентскими системами, не зависимо от того, является ли клиент - машиной с FreeBSD или рабочей станцией. Во многих системах при - возникновении этой проблемы нет способа корректно завершить работу - клиента. Единственным выходом зачастую является холодная перезагрузка - клиента, потому что ситуация с NFS не может быть разрешена. - - Хотя правильным решением является установка более - производительного и скоростного сетевого адаптера на систему FreeBSD, - имеется простое решение, приводящее к удовлетворительным результатам. - Если система FreeBSD является сервером, укажите - параметр на клиенте при монтировании. Если - система FreeBSD является клиентом, то смонтируйте - файловую систему NFS с параметром . Эти - параметры могут быть заданы в четвертом поле записи в файле - fstab клиента при автоматическом монтировании, - или при помощи параметра в команде mount при - монтировании вручную. - - Нужно отметить, что имеется также другая проблема, ошибочно - принимаемая за приведенную выше, когда серверы и клиенты NFS находятся - в разных сетях. Если это тот самый случай, - проверьте, что ваши маршрутизаторы пропускают - нужную информацию UDP, в противном случае вы ничего не получите, что - бы вы ни предпринимали. - - В следующих примерах fastws является именем хоста - (интерфейса) высокопроизводительной рабочей станции, а - freebox является именем хоста (интерфейса) системы - FreeBSD со слабым сетевым адаптером. Кроме того, - /sharedfs будет являться экспортируемой через NFS - файловой системой (смотри команду man exports), а - /project будет точкой монтирования экспортируемой - файловой системы на клиенте. В любом случае, отметьте, что для - вашего приложения могут понадобиться дополнительные параметры, такие, - как , или - . - - Примеры для системы FreeBSD (freebox) является - клиентом: в файле /etc/fstab на машине - freebox: - - -fastws:/sharedfs /project nfs rw,-r=1024 0 0 - - - Команда, выдаваемая вручную на машине - freebox: - - -&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project - - - Примеры для системы FreeBSD в качестве сервера: в файле - /etc/fstab на машине - fastws: - - -freebox:/sharedfs /project nfs rw,-w=1024 0 0 - - - Команда, выдаваемая вручную на машине - fastws: - - -&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project - - - Практически все 16-разрядные сетевые адаптеры позволят работать - без указанных выше ограничений на размер блоков при чтении и - записи. - - Для тех, кто интересуется, ниже описывается, что же происходит в - при появлении этой ошибки, и объясняется, почему ее невозможно - устранить. Как правило, NFS работает с блоками размером - 8 килобайт (хотя отдельные фрагменты могут иметь меньшие размеры). Так - пакет Ethernet имеет максимальный размер около 1500 байт, то - блок NFS разбивается на несколько пакетов Ethernet, хотя - на более высоком уровне это все тот же единый блок, который должен быть - принят, собран и подтвержден как один блок. - Высокопроизводительные рабочие станции могут посылать пакеты, которые - соответствуют одному блоку NFS, сразу друг за другом, насколько это - позволяет делать стандарт. На слабых, низкопроизводительных адаптерах - пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов - того же самого блока до того, как они могут быть переданы хосту и - блок как единое целое не может быть собран или подтвержден. В - результате рабочая станция входит в ситуацию таймаута и пытается - повторить передачу, но уже с полным блоком в 8КБ, и процесс будет - повторяться снова, до бесконечности. - - Задав размер блока меньше размера пакета Ethernet, мы достигаем - того, что любой полностью полученный пакет Ethernet может быть - подтвержден индивидуально, и избежим тупиковую ситуацию. - - Наложение пакетов может все еще проявляться, когда - высокопроизводительные рабочие станции сбрасывают данные на PC-систему, - однако повторение этой ситуации не обязательно с более скоростными - адаптерами с блоками NFS. Когда происходит наложение, - затронутые блоки будут переданы снова, и скорее всего, они будут - получены, собраны и подтверждены. - -
+ + Доступ к сети по коммутируемой линии связи (DUN) и по протоколу + PPP (LAN) - - Работа с бездисковыми станциями + Модуль работы с коммутируемым доступом к сети (DUN - Dial-Up + Networking) в большинстве случаев используется с модемами и сотовыми + телефонами. Этот модуль покрывает следующие случаи: - Текст предоставил &a.martin;. + + + сотовый телефон или модем используется вместе с компьютером + в качестве беспроводного модема для подключения к серверу + коммутируемого доступа в Интернет, или другой коммутируемой + услуге; + + + + сотовый телефон или модем используется компьютером для приёма + входящих соединений. + + - netboot.com/netboot.rom - позволяют вам загрузить вашу машину с FreeBSD по сети и работать с - FreeBSD даже без наличия диска на клиентской машине. В версии 2.0 - возможно даже иметь локальный раздел подкачки. Поддерживается также - подкачка поверх NFS. + Модуль доступа к сети по протоколу PPP (Network Access with + PPP - LAN) может использоваться в следующих ситуациях: - Список поддерживаемых адаптеров Ethernet включает: Western - Digital/SMC 8003, 8013, 8216 и совместимые с ними; NE1000/NE2000 и - совместимые с ними (требуется перекомпиляция) + + + доступ к ЛВС для одного Bluetooth-устройства; + + + + доступ к ЛВС для нескольких Bluetooth-устройств; + + + + связь между двумя ПК (при помощи протокола PPP поверх + эмулируемого последовательного канала связи). + + - - Инструкции по настройке + Во &os; оба случая реализуются при помощи сервисных программ + &man.ppp.8; и &man.rfcomm.pppd.8; - это обработчик, преобразующий + RFCOMM-соединения Bluetooth в нечто, с чем может работать PPP. Перед + тем, как использовать любой модуль, в файле + /etc/ppp/ppp.conf должна быть создана новая + PPP-метка. Примеры использования можно найти в справочной странице к + &man.rfcomm.pppd.8;. + + В следующем примере &man.rfcomm.pppd.8; будет использоваться для + открытия RFCOMM-соединения к удалённому устройству с BD_ADDR + 00:80:37:29:19:a4 на DUN RFCOMM-канале. Реальный номер RFCOMM-канала + будет получаться с удалённого устройства через SDP. Возможно указать + RFCOMM-канал вручную, и в этом случае &man.rfcomm.pppd.8; не будет + выполнять SDP-запрос. Для нахождения RFCOMM-канала на удалённом + устройстве используйте утилиту + sdptool. + + &prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialup + + Для того, чтобы организовать сервис Network Access with PPP (LAN), + необходимо запустить сервер sdpd. Также + необходимо зарегистрировать сервис LAN на локальном SDP-сервере. + Заметьте, что сервис LAN требует наличия RFCONN-канала. В файле + /etc/ppp/ppp.conf должна быть создана новая запись + для клиентов LAN. Примеры можно найти в справке по + &man.rfcomm.pppd.8;. Наконец, должен быть запущен сервер RFCOMM PPP, + который работает и прослушивает на том же самом RFCOMM-канале, что + зарегистрирован на локальном SDP-сервере. В примере ниже показано, как + запустить сервер RFCOMM PPP. + + &prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-server + - - - Найдите машину, которая будет вашим сервером. Эта машина должна - иметь достаточное количество дискового пространства для того, чтобы - на ней поместились бинарные файлы FreeBSD 2.0, и на ней должны - быть запущены сервисы bootp, tftp и NFS. Протестированные - машины: + OBEX + + + OBEX Push (OPUSH) Profile + + OBEX является широкоиспользуемым протоколом для простой передачи + файлов между мобильными устройствами. В основном он используется в + коммуникациях через инфракрасный порт для передачи файлов между + ноутбуками или КПК компании Palm, а также для пересылки визитных + карточек или календарных планов между сотовыми телефонами и + другими устройствами с персональными информационными + менеджерами. + + Сервер и клиент OBEX реализованы в виде пакета стороннего + разработчика obexapp-1.0, который можно + сгрузить отсюда. Пакет + требует наличия библиотеки openobex (она + включена в пакет) и порта devel/glib12. Заметьте, что для работы + obexapp привилегий администратора системы + не требуются. + + Клиент OBEX используется для посылки или приёма объектов с сервера + OBEX. Объектом, к примеру, может быть визитная карточка или + указание. Клиент OBEX может получить номер RFCOMM-канала, указав + вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC, + FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся + пример сеанса OBEX, где с сотового телефона забирается объект с + информацией об устройстве, а новый объект (визитная карточка) + передаётся в каталог сотового телефона. + + &prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC +obex> get +get: remote file> telecom/devinfo.txt +get: local file> devinfo-t39.txt +Success, response: OK, Success (0x20) +obex> put +put: local file> new.vcf +put: remote file> new.vcf +Success, response: OK, Success (0x20) +obex> di +Success, response: OK, Success (0x20) + + Для того, чтобы предоставить сервис OBEX Push, должен быть запущен + сервер sdpd. Он также требуется и для + регистрации услуги OPUSH на локальном SDP-сервере. Заметьте, что + сервис OPUSH требует для своей работы RFCOMM-канал. Должен быть создан + корневой каталог, в котором будут сохраняться все поступающие объекты. + По умолчанию корневым каталогом является + /var/spool/obex. Наконец, сервер OBEX должен + работать и прослушивать тот же самый RFCOMM-канал, что зарегистрирован + на локальном SDP-сервере. В примере ниже показано, как запустить + OBEX-сервер. + + &prompt.root; obexapp -s -C 10 + - - - HP9000/8xx под управлением HP-UX 9.04 и выше (версии до - 9.04 не работают) - + + Модуль последовательного порта (SP) - - Sun/Solaris 2.3. (вам может потребоваться найти - bootp) - - - + Модуль последовательного порта (SP - Serial Port) позволяет + Bluetooth-устройству осуществлять эмуляцию последовательного порта + RS232 (или подобного). Этот модуль покрывает случаи, касающиеся + работы унаследованных приложений с Bluetooth в качестве замены + кабельному соединению, при это используется абстракция виртуального + последовательного порта. - - Настройте сервер bootp, чтобы он сообщал клиенту его IP, - сетевой шлюз и маску подсети. + Утилита &man.rfcomm.sppd.1; является модулем, реализующим + последовательный порт. В качестве виртуального последовательного порта + используется всевдотерминал. В примере ниже показано, как подключиться + к сервису Serial Port удалённого устройства. Заметьте, что вы не + указываете RFCOMM-канал - &man.rfcomm.sppd.1; может получить его с + удалённого устройства через SDP. Если вы хотите переопределить это, + укажите RFCOMM-канал явно в командной строке. - -diskless:\ - :ht=ether:\ - :ha=0000c01f848a:\ - :sm=255.255.255.0:\ - :hn:\ - :ds=192.1.2.3:\ - :ip=192.1.2.4:\ - :gw=192.1.2.5:\ - :vm=rfc1048: - - - - - Настройте сервер TFTP (на той же самой машине, что и сервер - bootp) для того, чтобы он сообщал клиенту загрузочную информацию. - Имя этого файла - cfg.X.X.X.X (или - /tftpboot/cfg.X.X.X.X, - будут пробоваться оба), где X.X.X.X - - это IP-адрес клиента. Этот файл может содержать любые корректные - команды netboot. В версии 2.0 netboot воспринимает следующие - команды: - - - - - - help - вывод справочной информации - - - - ip - - вывод/задание IP-адреса клиента - - - - server - - вывод/задание адреса сервера bootp/tftp - - - - netmask - - вывод/задание маски подсети - - - - hostname name - вывод/задание имени хоста - - - - kernel - - вывод/задание имени ядра - - - - rootfs - - вывод/задание корневой файловой системы - - - - swapfs - - вывод/задание файловой системы для подкачки - - - - swapsize - - задание размера файла подкачки в КБайтах для бездисковой - работы - - - - diskboot - загрузка с диска - - - - autoboot - продолжить процесс загрузки - - - - trans - | - включить/выключить передатчик - - - - flags - - задать параметры загрузки - - - - + &prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6 +rfcomm_sppd[94692]: Starting on /dev/ttyp6... - Типичный полный cfg-файл для бездисковой работы может - содержать следующее: + После подключения псевдотерминал можно использовать как + последовательный порт. - -rootfs 192.1.2.3:/rootfs/myclient -swapfs 192.1.2.3:/swapfs -swapsize 20000 -hostname myclient.mydomain - + &prompt.root; cu -l ttyp6 + - cfg-файл для машины с локальным разделом подкачки может - содержать следующее: + + Решение проблем + + + Удалённое устройство не подключается + + Некоторые старые Bluetooth-устройства не поддерживают + переключение ролей. По умолчанию, когда &os; подтверждает новое + соединение, она пытается выполнить переключение роли и стать ведущим + устройством. Устройства, которые это не поддерживают, не смогут + подключиться. Заметьте, что переключение ролей выполняется при + установлении нового соединения, поэтому невозможно выяснить, + поддерживает ли удалённое устройство переключение ролей. На + локальной машине имеется возможность отключить переключение ролей при + помощи HCI-параметра. + + &prompt.root; hccontrol -n ubt0hci write_node_role_switch 0 + + + + Что-то идёт не так, можно ли посмотреть, что в точности + происходит? + + Да, можно. Воспользуйтесь пакетом + hcidump-1.5 стороннего разработчика, + который доступен для сгрузки здесь. Утилита + hcidump похожа на &man.tcpdump.1;. Она + может использоваться для вывода на терминал содержимого + Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл. + + + - -rootfs 192.1.2.3:/rootfs/myclient -hostname myclient.mydomain - - + + + + + Steve + Peterson + Текст создал + + + + + Мосты + + + Введение + + подсеть IP + сетевой мост + Иногда полезно разделить одну физическую сеть (такую, как + сегмент Ethernet) на два отдельных сегмента сети без необходимости + создания подсетей IP и использования маршрутизатора для соединения + сегментов. Устройство, которое соединяет две сети на такой манер, + называется сетевым мостом (bridge). + Система FreeBSD с двумя сетевыми адаптерами может выступать в роли + моста. + + Мост работает на основе изучения адресов уровня MAC (адресов + Ethernet) устройств на каждом из своих сетевых интерфейсах. + Он перенаправляет трафик между двумя сетями, только когда адреса + отправителя и получателя находятся в разных сетях. + + По многим параметрам мост работает также, как коммутатор Ethernet + с малым количеством портов. + - - Проверьте, что ваш сервер NFS экспортирует корневую файловую - систему (и, если нужно, подкачку) для вашего клиента, а клиент - имеет доступ с правами администратора к этим файловым системам. - Типичный файл /etc/exports на системе - FreeBSD может иметь такой вид: + + Ситуации, когда можно использовать мосты + + На сегодняшний день есть две ситуации, когда можно использовать + мост. + + + Большой трафик в сегменте + + Первая ситуация возникает, когда ваша физическая сеть перегружена + трафиком, но по каким-то соображениям вы не хотите разделять сеть + на подсети и соединять их с помощью маршрутизатора. + + Давайте рассмотрим в качестве примера газету, в которой + редакторский и производственный отделы находятся в одной и той же + подсети. Пользователи в редакторском отделе все используют сервер + A для служб доступа к файлам, а пользователи + производственного отдела используют сервер B. Для + объединения всех пользователей используется сеть Ethernet, а высокая + нагрузка на сеть замедляет работу. + + Если пользователи редакторского отдела могут быть собраны в + одном сегменте сети, а пользователи производственного отдела в + другом, то два сетевых сегмента можно объединить мостом. Только + сетевой трафик, предназначенный для интерфейсов с + другой стороны моста, будет посылаться в другую сеть, + тем самым снижая уровень нагрузки на каждый сегмент сети. + + + + Межсетевой экран с возможностями фильтрации/ограничения + пропускной способности трафика + + межсетевой экран + + трансляция сетевых адресов + + Второй распространенной ситуацией является необходимость в + обеспечении функций межсетевого экрана без трансляции + сетевых адресов (NAT). + + Для примера можно взять маленькую компанию, которая подключена + к своему провайдеру по каналу DSL или ISDN. Для неё провайдер выделил + 13 глобально доступных IP-адресов для имеющихся в сети 10 персональных + компьютеров. В такой ситуации использование межсетевого экрана + на основе маршрутизатора затруднено из-за проблем с разделением на + подсети. + + маршрутизатор + DSL + ISDN + Межсетевой экран на основе моста может быть настроен и включен + между маршрутизаторами DSL/ISDN без каких-либо проблем с + IP-адресацией. + + - -/rootfs/myclient -maproot=0:0 myclient.mydomain -/swapfs -maproot=0:0 myclient.mydomain - + + Настройка моста - А на системе HP-UX: + + Выбор сетевого адаптера - -/rootfs/myclient -root=myclient.mydomain -/swapfs -root=myclient.mydomain - - - - - Если вы осуществляете подкачку поверх NFS (полностью - бездисковая конфигурация), то создайте файл подкачки для вашего - клиента при помощи команды dd. Если команде - swapfs задан параметр - /swapfs и указан размер 20000, как в примере - выше, то файл подкачки для машины myclient будет называться - /swapfs/swap.X.X.X.X, - где X.X.X.X является IP-адресом клиента, - например: + Для работы моста требуются по крайней мере два сетевых адаптера. + К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают + функции моста. Прочтите страницу Справочника по &man.bridge.4; для + выяснения подробностей о поддерживаемых адаптерах. - -&prompt.root; dd if=/dev/zero of=/swapfs/swap.192.1.2.4 bs=1k count=20000 - + Перед тем, как продолжить, сначала установите и протестируйте + два сетевых адаптера. + - Кроме того, дисковое пространство подкачки после начала его - использования может содержать важную информацию, так что - постарайтесь ограничить доступ к этому файлу для предотвращения - несанкционированного доступа: + + Изменения в конфигурации ядра - -&prompt.root; chmod 0600 /swapfs/swap.192.1.2.4 - - + + параметры ядра + options BRIDGE + - - Распакуйте корневую файловую систему в каталоге, который будет - использоваться клиентом для своей корневой файловой системы - (/rootfs/myclient в примере выше). + Для включения поддержки функций моста в ядре, добавьте + строчку - - - На системах HP-UX: Сервер должен работать под управлением - HP-UX версии 9.04 или выше для машин серий HP9000/800. Более - ранние версии не допускают создания файлов устройств - поверх NFS. - + options BRIDGE - - При распаковке каталога /dev в - /rootfs/myclient обратите внимание то - то, что некоторые системы (HPUX) не создадут файлы устройств, - которые нужны FreeBSD. Вам может потребоваться при первой - загрузке перейти в однопользовательский режим (нажав control-c - во время процесса загрузки), перейти в каталог - /dev и выполнить команду - sh ./MAKEDEV all с клиента для того, чтобы - все исправить. - - - - - - Запустите на клиентской машине программу - netboot.com или прошейте ПЗУ файлом - netboot.rom - - - + в файл конфигурации вашего ядра, и перестройте ядро. + - - Совместное использование файловых систем <filename>/</filename> и - <filename>/usr</filename> - - В настоящее время нет официально одобренного способа сделать это, - хотя для каждого клиента я использую общую файловую систему - /usr и индивидуальную /. - Если у кого-либо появятся соображения о том, как сделать это корректно, - пожалуйста, дайте знать мне и/или &a.core;. - + + Поддержка функций межсетевого экрана - - Компиляция netboot для специфичных ситуаций + межсетевой экран - Netboot может быть перекомпилирован для поддержки адаптеров - NE1000/2000 изменением настроек в файле - /sys/i386/boot/netboot/Makefile. Посмотрите - комментарии в самом начале этого файла. - - + Если вы планируете использовать мост в качестве межсетевого + экрана, вам нужно также добавить опцию IPFIREWALL. + Прочтите раздел , содержащий общую + информацию о настройке моста в качестве межсетевого экрана. - - ISDN + Если вам необходимо обеспечить прохождение не-IP пакетов (таких, + как ARP) через мост, то имеется опция межсетевого + экрана, которую можно задать. Это опция + IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при + этом правило, используемое межсетевым экраном по умолчанию, меняется + на разрешительное для всех пакетов. Перед тем, как задавать эту + опцию, убедитесь, что вы понимаете работу вашего набора + правил. + - Последний раз внес изменения &a.wlloyd;. + + Поддержка функций ограничения пропускной способности - Полезным источником информации о технологии ISDN и его аппаратном - обеспечении является - Страница Дэна Кегела (Dan Kegel) об ISDN. + Если вы хотите использовать мост в качестве машины, + ограничивающей пропускную способность, то добавьте в файл + конфигурации ядра опцию DUMMYNET. Дополнительную + информацию можно почерпнуть из страницы Справочника по + &man.dummynet.4;. + + - Быстрое введение в ISDN: + + Включение функций моста - - - Если вы живете в Европе, то рекомендую вам изучить раздел об - ISDN-адаптерах. - + Добавьте строку - - Если вы планируете использовать ISDN в основном для соединений - с Интернет через провайдера по коммутируемому, невыделенному - соединению, я рекомендую посмотреть информацию о терминальных - адаптерах. Это даст вам самую большую гибкость и наименьшее - количество проблем при смене провайдера. - + net.link.ether.bridge=1 - - Если вы объединяете две локальные сети или подключаетесь к - Интернет через постоянное ISDN-соединение, я рекомендую остановиться - на отдельном мосте/маршрутизаторе. - - + в файл /etc/sysctl.conf для включения функций + моста во время работы системы, и строку: - Стоимость является важным фактором при выборе вашего решения. - Далее перечислены все возможности от самого дешевого до самого дорогого - варианта. + net.link.ether.bridge_cfg=if1,if2 - - Адаптеры ISDN - - Текст предоставил &a.hm;. - - Этот раздел на самом деле имеет отношение только к пользователям - ISDN в странах, где поддерживается стандарт DSS1/Q.931. - - Некоторое все увеличивающееся количество ISDN-адаптеров для PC - поддерживается во FreeBSD 2.2.x и выше пакетом isdn4bsd. Он находится - в разработке, но сообщения говорят о том, что он успешно используется - по всей Европе. - - Самая последняя версия isdn4bsd доступна по адресу - ftp://isdn4bsd@ftp.consol.de/pub/, на главном ftp-сервере - isdn4bsd (войдите как пользователь isdn4bsd, - указав свой адрес электронной почты в качестве пароля, и перейдите в - каталог pub. Вход на общедоступный ftp - как пользователь ftp или - anonymous не даст желаемого - результата). - - Isdn4bsd позволяет вам подключаться к другим маршрутизаторам ISDN - с использованием как IP поверх HDLC, так и PPP на синхронном канале. - Имеется также программа-автоответчик. - - Поддерживаются многие ISDN-адаптеры для PC, в основном с набором - ISDN-микросхем Siemens (ISAC/HSCX), поддержка других наборов (фирм - Motorola, Cologne Chip Designs) находится в разработке. Актуальный - список поддерживаемых адаптеров находится в файле README. - - Если вы заинтересованы в добавлении поддержки другого протокола - ISDN, неподдерживаемого в данный момент адаптера или каком-то другом - усовершенствовании isdn4bsd, то обратитесь по адресу - hm@kts.org. - - Имеется список рассылки, управляемый пакетом majordomo. Чтобы к - нему присоединиться, пошлите письмо на адрес &a.majordomo; и - укажите: - - -subscribe freebsd-isdn - - - в тексте вашего сообщения. - + для включения функций моста для указанных интерфейсов (замените + if1 и if2 на + имена двух ваших сетевых интерфейсов). Если вы хотите, чтобы + проходящие через мост пакеты фильтровались посредством &man.ipfw.8;, + вы должны добавить строчку: - - Терминальные адаптеры ISDN + net.link.ether.bridge_ipfw=1 - Терминальные адаптеры(TA) для ISDN выполняют ту же роль, что и - модемы для обычных телефонных линий. + Во &os; 5.2-RELEASE и последующих версиях нужно использовать + вместо указанных следующие строки: - Большинство TA используют стандартный набор модемных AT-команд, - и могут использоваться в качестве простой замены для модемов. + net.link.ether.bridge.enable=1 +net.link.ether.bridge.config=if1,if2 +net.link.ether.bridge.ipfw=1 + - TA будут работать точно так же, как и модемы, за исключением - скорости соединения и пропускной способности, которые будут гораздо - выше, чем у вашего старого модема. Вам потребуется настроить PPP точно также, как и в случае использования - модема. Проверьте, что вы задали скорость работы последовательного - порта максимально высокой. + + Дополнительные замечания - Главным преимуществом использования TA для подключения к провайдеру - Интернет является возможность использования динамического PPP. Так - как пространство адресов IP истощается все больше, большинство - провайдеров не хочет больше выдавать вам статический IP-адрес. - Большинство же маршрутизаторов не может использовать динамическое - выделение IP-адресов. + Если вы хотите осуществлять удалённый доступ на мост через + &man.telnet.1; из сети, то корректно назначить одному из сетевых + адаптеров IP-адрес. Общепринято, что назначение адреса обоим сетевым + адаптерам является не самой хорошей идеей. - TA полностью полагаются на даемон PPP, который используете из-за - его возможностей и стабильности соединения. Это позволяет вам при - использовании FreeBSD легко заменить модем на ISDN, если у вас уже - настроено соединение PPP. Однако, в тоже время любые проблемы, которые - возникают с программой PPP, отражаются и здесь. + Если в вашей сети присутствует несколько мостов, не должно быть + более одного маршрута между любыми двумя рабочими станциями. С + технической точки зрения это означает отсутствие поддержки протокола + spanning tree. - Если вы хотите максимальной надежности, используйте параметр ядра - PPP, а не пользовательский iijPPP. + Сетевой мост может увеличить задержки в замерах командой + &man.ping.8;, особенно для трафика между двумя разными + сегментами. + + - Известно, что следующие TA работают с FreeBSD. + + + + + Tom + Rhodes + Реорганизация и улучшения + + + + + + Bill + Swingle + Текст создал + + + + + NFS + + NFS + Кроме поддержки многих прочих типов файловых систем, во FreeBSD + встроена поддержка сетевой файловой системы (Network File System), + известной как NFS. NFS позволяет + системе использовать каталоги и файлы совместно с другими машинами, + посредством сети. Посредством NFS пользователи и + программы могут получать доступ к файлам на удалённых системах точно так + же, как если бы это были файлы на собственных дисках. + + Вот некоторые из наиболее заметных преимуществ, которые даёт + использование NFS: - Motorola BitSurfer и Bitsurfer Pro + Отдельно взятые рабочие станции используют меньше собственного + дискового пространства, так как совместно используемые данные могут + храниться на одной отдельной машине и быть доступными для других + машин в сети. - Adtran + Пользователям не нужно иметь домашние каталоги, отдельные + для каждой машины в вашей сети. Домашние каталоги могут + располагаться на сервере NFS и их можно сделать + доступными отовсюду в сети. + + + + Устройства хранения информации, такие, как дискеты, приводы + CD-ROM и устройства ZIP, могут использоваться другими машинами в + сети. Это может привести к уменьшению переносимых устройств хранения + информации в сети. - Большинство остальных TA, скорее всего, тоже будут работать, - производители TA прилагают все усилия для обеспечения поддержки - практически всего набора стандартных AT-команд модема. + + Как работает <acronym>NFS</acronym> - Как и в случае модемов проблемой использования внешнего TA является - потребность в хорошем последовательном адаптере на вашем - компьютере. + NFS строится по крайней мере из двух основных + частей: сервера и одного или большего количества клиентов. Клиент + обращается к данным, находящимся на сервере, в режиме удалённого + доступа. Для того, чтобы это нормально функционировало, нужно + настроить и запустить несколько процессов: - Вы должны прочесть раздел о последовательных - портах Руководства для того, чтобы в деталях понять работу - последовательных устройств, и осознать различие асинхронными и - синхронными последовательными портами. + + В &os; 5.X, утилита portmap была + заменена на rpcbind. Таким образом, при + использовании &os; 5.X пользователю необходимо заменить в + последующих примерах все команды portmap + на rpcbind. + - TA, работающий со стандартным последовательным (асинхронным) портом - PC, ограничивает вас скоростью 115.2Кбс, хотя реально у вас соединение - на скорости 128Кбс. Чтобы использовать 128Кбс, которые обеспечивает - ISDN, полностью, вы должны подключить TA к синхронному - последовательному адаптеру. + На сервере работают следующие даемоны: + + + NFS + сервер + + + + portmap + + + + mountd + + + + nfsd + + + + + + + Даемон + Описание + + + + + nfsd + Даемон NFS, обслуживающий запросы от + клиентов NFS. + + + + mountd + Даемон монтирования NFS, который + выполняет запросы, передаваемые ему от &man.nfsd.8;. + + + + portmap + Даемон отображения портов позволяет клиентам + NFS определить порт, используемый сервером + NFS. + + + + - Не обманывайте себя, думая, что покупка встроенного TA поможет - избежать проблемы синхронности/асинхронности. Встроенные TA просто - уже имеют внутри стандартный последовательный порт PC. Все, что при - этом достигается - это экономия дополнительных последовательного - кабеля и электрической розетки. + Клиент может запустить также даемон, называемый + nfsiod. nfsiod + обслуживает запросы, поступающие от сервера от сервера + NFS. Он необязателен, увеличивает + производительность, однако для нормальной и правильной работы не + требуется. Для получения дополнительной информации обратитесь к + разделу справочной системы о &man.nfsiod.8;. + - Синхронный адаптер с TA по крайней мере так же быстр, как и - отдельный маршрутизатор, а если он работает под управлением машины - класса 386 с FreeBSD, то это гораздо более гибкое решение. + + Настройка <acronym>NFS</acronym> - Выбор sync/TA по сравнению с отдельным маршрутизатором в большей - степени вопрос религиозный. По этому поводу в списках рассылки была - некоторая дискуссия. Рекомендую поискать в архивах обсуждение - полностью. - + + NFS + настройка + - - Отдельные мосты/маршрутизаторы ISDN + Настройка NFS является достаточно незамысловатым + процессом. Все процессы, которые должны быть запущены, могут быть + стартованы во время загрузки посредством нескольких модификаций в + вашем файле /etc/rc.conf. - Мосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD - или для любой другой операционной системы. Для более подробного - описания технологий маршрутизации и работы мостов, пожалуйста, - обратитесь к книге по сетевым технологиям. + Проверьте, что на NFS-сервере в файле + /etc/rc.conf имеются такие строки: - В контексте этой страницы я буду использовать термины маршрутизатор - и мост как взаимозаменяемые. + portmap_enable="YES" +nfs_server_enable="YES" +nfs_server_flags="-u -t -n 4" +mountd_flags="-r" + + mountd запускается автоматически, если включена + функция сервера NFS. + + На клиенте убедитесь, что в файле /etc/rc.conf + присутствует такой параметр: + + nfs_client_enable="YES" + + Файл /etc/exports определяет, какие + файловые системы на вашем сервере NFS будут + экспортироваться (иногда их называют совместно + используемыми). Каждая строка в + /etc/exports задаёт файловую систему, которая + будет экспортироваться и какие машины будут иметь к ней доступ. Кроме + машин, имеющих доступ, могут задаваться другие параметры, влияющие на + характеристики доступа. Имеется полный набор параметров, + которые можно использовать, но здесь пойдёт речь лишь о некоторых из + них. Описания остальных параметров можно найти на страницах справочной + системы по &man.exports.5;. + + Вот несколько примерных строк из файла + /etc/exports: + + + NFS + примеры экспортирования + + + В следующих примерах даётся общая идея того, как экспортировать + файловые системы, хотя конкретные параметры могут отличаться в + зависимости от ваших условий и конфигурации сети. К примеру, чтобы + экспортировать каталог /cdrom для трёх машин, + находящихся в том же самом домене, что и сервер (поэтому отсутствует + доменное имя для каждой машины) или для которых имеются записи в + файле /etc/hosts. Флаг + указывает на использование экспортируемой файловой + системы в режиме только чтения. С этим флагом удалённая система не + сможет никоим образом изменить экспортируемую файловую систему. + + /cdrom -ro host1 host2 host3 + + В следующей строке экспортируется файловая система + /home, которая становится доступной трем хостам, + указанным по их IP-адресам. Это полезно, если у вас есть собственная + сеть без настроенного сервера DNS. Как вариант, + файл /etc/hosts может содержать внутренние имена + хостов; пожалуйста, обратитесь к справочную систему по &man.hosts.5; + для получения дополнительной информации. Флаг + позволяет рассматривать подкаталоги в + качестве точек монтирования. Другими словами, это не монтирование + подкаталогов, но разрешение клиентам монтировать только каталоги, + которые им требуются или нужны. + + /home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4 + + В строке, приведённой ниже, файловая система + /a экспортируется таким образом, что она доступна + двум клиентам из других доменов. Параметр + позволяет пользователю + root удалённой системы осуществлять запись на + экспортируемую файловую систему как пользователь + root. Если параметр + -maproot=root не задан, + то даже если пользователь имеет права доступа root + на удалённой системе, он не сможет модифицировать + файлы на экспортированной файловой системе. + + /a -maproot=root host.example.com box.example.org + + Для того, чтобы клиент смог обратиться к экспортированной файловой + системе, он должен иметь права сделать это. Проверьте, что клиент + указан в вашем файле /etc/exports. + + В файле /etc/exports каждая строка содержит + информацию об экспортировании для отдельной файловой системы для + отдельно взятого хоста. Удалённый хост может быть задан только + один раз для каждой файловой системы, и может иметь + только одну запись, используемую по умолчанию, для каждой локальной + файловой системы. К примеру, предположим, что + /usr является отдельной файловой системой. + Следующий /etc/exports будет некорректен: + + /usr/src client +/usr/ports client + + Одна файловая система, /usr, имеет две + строки, задающие экспортирование для одного и того же хоста, + client. Правильный формат в этом случае таков: + + /usr/src /usr/ports client + + Свойства отдельной файловой системы, экспортируемой некоторому + хосту, должны задаваться в одной строке. Строки без указания клиента + воспринимаются как отдельный хост. Это ограничивает то, как вы можете + экспортировать файловые системы, но для большинства это не + проблема. + + Ниже приведён пример правильного списка экспортирования, где + /usr и /exports являются + локальными файловыми системами: + + # Экспортируем src и ports для client01 и client02, но +# только client01 имеет права пользователя root на них +/usr/src /usr/ports -maproot=root client01 +/usr/src /usr/ports client02 +# Клиентские машины имеют пользователя root и могут монтировать всё в +# каталоге /exports. Кто угодно может монтировать /exports/obj в режиме чтения +/exports -alldirs -maproot=root client01 client02 +/exports/obj -ro + + Вы должны перезапустить mountd после того, как + изменили /etc/exports, чтобы изменения вступили в + силу. Это может быть достигнуто посылкой сигнала HUP процессу + mountd: + + &prompt.root; kill -HUP `cat /var/run/mountd.pid` + + Как вариант, при перезагрузке FreeBSD всё настроится правильно. + Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих + команд пользователем root запустит всё, что + нужно. + + На сервере NFS: + + &prompt.root; portmap +&prompt.root; nfsd -u -t -n 4 +&prompt.root; mountd -r + + На клиенте NFS: + + &prompt.root; nfsiod -n 4 + + Теперь всё должно быть готово к реальному монтированию удалённой + файловой системы. В приводимых примерах сервер будет носить имя + server, а клиент будет носить имя + client. Если вы только хотите + временно смонтировать удалённую файловую систему, или всего лишь + протестировать ваши настройки, то просто запустите команды, подобные + приводимым здесь, работая как пользователь root на + клиентской машине: + + + NFS + монтирование + + + &prompt.root; mount server:/home /mnt + + По этой команде файловая система /home на + сервере будет смонтирована в каталог /mnt на + клиенте. Если всё настроено правильно, вы сможете войти в каталог + /mnt на клиенте и увидеть файлы, находящиеся на + сервере. + + Если вы хотите автоматически монтировать удалённую файловую + систему при каждой загрузке компьютера, добавьте файловую систему в + /etc/fstab. Вот пример: + + server:/home /mnt nfs rw 0 0 + + На страницах справочной системы по &man.fstab.5; перечислены все + доступные параметры. + + + + Практическое использование + + У NFS есть много вариантов практического + применения. Ниже приводится несколько наиболее широко распространённых + способов её использования: + + + NFS + использование + + + + + Настройка несколько машин для совместного использования CDROM + или других носителей. Это более дешёвый и зачастую более удобный + способ установки программного обеспечения на несколько машин. + + + + В больших сетях может оказаться более удобным настроить + центральный сервер NFS, на котором размещаются + все домашние каталоги пользователей. Эти домашние каталоги могут + затем экспортироваться в сеть так, что пользователи всегда будут + иметь один и тот же домашний каталог вне зависимости от того, на + какой рабочей станции они работают. + + + + Несколько машин могут иметь общий каталог + /usr/ports/distfiles. Таким образом, когда + вам нужно будет устанить порт на несколько машин, вы сможете быстро + получить доступ к исходным текстам без их сгрузки на каждой + машине. + + + + + + + + + Wylie + Stilwell + Текст предоставил + + + + + + Chern + Lee + Текст переписал + + + + + Автоматическое монтирование с + <application>amd</application> + + + amd + + + + даемон автоматического монтирования + + + &man.amd.8; (даемон автоматического монтирования) автоматически + монтирует удалённую файловую систему, + как только происходит обращение к файлу или каталогу в этой файловой + системе. Кроме того, файловые системы, которые были неактивны + некоторое время, будут автоматически размонтированы даемоном + amd. Использование + amd является простой альтернативой + статическому монтированию, так как в последнем случае обычно всё должно + быть описано в файле /etc/fstab. + + amd работает, сам выступая как сервер + NFS для каталогов /host и + /net. Когда происходит обращение к файлу в одном + из этих каталогов, amd ищет соответствующий + удаленный ресурс для монтирования и автоматически его монтирует. + /net используется для монтирования экспортируемой + файловой системы по адресу IP, когда как каталог + /host используется для монтирования ресурса по + удаленному имени хоста. + + Обращение к файлу в каталоге + /host/foobar/usr укажет + amd на выполнение попытки монтирования + ресурса /usr, который находится на хосте + foobar. + + + Монтирование ресурса при помощи + <application>amd</application> + + Вы можете посмотреть доступные для монтирования ресурсы + отдалённого хоста командой showmount. К примеру, + чтобы посмотреть ресурсы хоста с именем foobar, вы + можете использовать: + + &prompt.user; showmount -e foobar +Exports list on foobar: +/usr 10.10.10.0 +/a 10.10.10.0 +&prompt.user; cd /host/foobar/usr + + + Как видно из примера, showmount показывает + /usr как экспортируемый ресурс. При перехоже в + каталог /host/foobar/usr даемон + amd пытается разрешить имя хоста + foobar и автоматически смонтировать требуемый + ресурс. + + amd может быть запущен из скриптов + начальной загрузки, если поместить такую строку в файл + /etc/rc.conf: + + amd_enable="YES" + + Кроме того, даемону amd могут быть + переданы настроечные флаги через параметр + amd_flags. По умолчанию + amd_flags настроен следующим образом: + + amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map" + + Файл /etc/amd.map задает опции, используемые + по умолчанию при монтировании экспортируемых ресурсов. В файле + /etc/amd.conf заданы настройки некоторых более + сложных возможностей amd. + + Обратитесь к справочным страницам по &man.amd.8; и &man.amd.conf.5; + для получения более полной информации. + + + + + + + John + Lind + Текст предоставил + + + + + Проблемы взаимодействия с другими системами + + Некоторые сетевые адаптеры для систем PC с шиной ISA имеют + ограничения, которые могут привести к серьезным проблемам в сети, в + частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако + эту систему они затрагивают. + + Проблема, которая возникает практически всегда при работе по сети + систем PC (FreeBSD) с высокопроизводительными рабочими станциями, + выпущенными такими производителями, как Silicon Graphics, Inc. и Sun + Microsystems, Inc. Монтирование по протоколу NFS будет работать + нормально, и некоторые операции также будут выполняться успешно, но + неожиданно сервер окажется недоступным для клиент, хотя запросы к и + от других систем будут продолжаться обрабатываться. Такое встречается + с клиентскими системами, не зависимо от того, является ли клиент + машиной с FreeBSD или рабочей станцией. Во многих системах при + возникновении этой проблемы нет способа корректно завершить работу + клиента. Единственным выходом зачастую является холодная перезагрузка + клиента, потому что ситуация с NFS не может быть разрешена. + + Хотя правильным решением является установка более + производительного и скоростного сетевого адаптера на систему FreeBSD, + имеется простое решение, приводящее к удовлетворительным результатам. + Если система FreeBSD является сервером, укажите + параметр на клиенте при монтировании. Если + система FreeBSD является клиентом, то смонтируйте + файловую систему NFS с параметром . Эти + параметры могут быть заданы в четвертом поле записи в файле + fstab клиента при автоматическом монтировании, + или при помощи параметра в команде mount при + монтировании вручную. + + Нужно отметить, что имеется также другая проблема, ошибочно + принимаемая за приведенную выше, когда серверы и клиенты NFS находятся + в разных сетях. Если это тот самый случай, + проверьте, что ваши маршрутизаторы пропускают + нужную информацию UDP, в противном случае вы ничего не получите, что + бы вы ни предпринимали. + + В следующих примерах fastws является именем хоста + (интерфейса) высокопроизводительной рабочей станции, а + freebox является именем хоста (интерфейса) системы + FreeBSD со слабым сетевым адаптером. Кроме того, + /sharedfs будет являться экспортируемой через NFS + файловой системой (обратитесь к страницам справочной системы по команде + &man.exports.5;), а /project будет точкой + монтирования экспортируемой файловой системы на клиенте. В любом + случае, отметьте, что для вашего приложения могут понадобиться + дополнительные параметры, такие, как , + или . + + Пример системы FreeBSD (freebox) как клиента + в файле /etc/fstab на машине freebox: + + fastws:/sharedfs /project nfs rw,-r=1024 0 0 + + Команда, выдаваемая вручную на машине + freebox: + + &prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /project + + Пример системы FreeBSD в качестве сервера в файле + /etc/fstab на машине + fastws: + + freebox:/sharedfs /project nfs rw,-w=1024 0 0 + + Команда, выдаваемая вручную на машине + fastws: + + &prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /project + + Практически все 16-разрядные сетевые адаптеры позволят работать + без указанных выше ограничений на размер блоков при чтении и + записи. + + Для тех, кто интересуется, ниже описывается, что же происходит в + при появлении этой ошибки, и объясняется, почему ее невозможно + устранить. Как правило, NFS работает с блоками размером + 8 килобайт (хотя отдельные фрагменты могут иметь меньшие + размеры). Так, пакет Ethernet имеет максимальный размер около + 1500 байт, то + блок NFS разбивается на несколько пакетов Ethernet, хотя + на более высоком уровне это все тот же единый блок, который должен быть + принят, собран и подтвержден как один блок. + Высокопроизводительные рабочие станции могут посылать пакеты, которые + соответствуют одному блоку NFS, сразу друг за другом, насколько это + позволяет делать стандарт. На слабых, низкопроизводительных адаптерах + пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов + того же самого блока до того, как они могут быть переданы хосту и + блок как единое целое не может быть собран или подтвержден. В + результате рабочая станция входит в ситуацию таймаута и пытается + повторить передачу, но уже с полным блоком в 8 КБ, и процесс будет + повторяться снова, до бесконечности. + + Задав размер блока меньше размера пакета Ethernet, мы достигаем + того, что любой полностью полученный пакет Ethernet может быть + подтвержден индивидуально, и избежим тупиковую ситуацию. + + Наложение пакетов может все еще проявляться, когда + высокопроизводительные рабочие станции сбрасывают данные на PC-систему, + однако повторение этой ситуации не обязательно с более скоростными + адаптерами с блоками NFS. Когда происходит наложение, + затронутые блоки будут переданы снова, и скорее всего, они будут + получены, собраны и подтверждены. + + + + + + + + Jean-François + Dockès + Текст обновил + + + + + Работа с бездисковыми станциями + + работа без диска + + Машина с FreeBSD может загружаться по сети и работать без наличия + локального диска, используя файловые системы, монтируемые с сервера NFS. + Кроме стандартных конфигурационных файлов, не нужны никакие модификации + в системе. Такую систему легко настроить, потому что все необходимые + элементы уже готовы: + + + + Имеется по крайней мере два возможных способа загрузки ядра по + сети: + + + + PXE: Система &intel; Preboot Execution + Environment является формой загрузочного ПЗУ, встроенного в + некоторые сетевые адаптеры или материнские платы. Обратитесь к + справочной странице по &man.pxeboot.8; для получения более полной + информации. + + + + + Порт + etherboot (net/etherboot) генерирует код, + который может применяться в ПЗУ для загрузки ядра по сети. Код + может быть либо прошит в загрузочный PROM на сетевом адаптере, + либо загружен с локальной дискеты (или винчестера), или с + работающей системы &ms-dos;. Поддерживаются многие сетевые + адаптеры. + + + + + + Примерный скрипт + (/usr/share/examples/diskless/clone_root) + облегчает создание и поддержку корневой файловой системы рабочей + станции на сервере. Скрипт, скорее всего, потребует некоторых + настроек, но он позволит вам быстро начать работу. + + + + Стандартные файлы начального запуска системы, располагающиеся в + /etc, распознают и поддерживают загрузку системы + в бездисковом варианте. + + + + Подкачка, если она нужна, может выполняться через файл NFS либо + на локальный диск. + + + + Существует много способов начтройки бездисковой рабочей станции. При + этом задействованы многие компоненты, и большинство из них могут быть + настроены для удовлетворения ваших вкусов. Далее будет описана полная + настройка системы, при этом упор будет делаться на простоту и + совместимость с стандартной системой скриптов начальной загрузки FreeBSD. + Описываемая система имеет такие характеристики: + + + + Бездисковые рабочие станции совместно используют + корневую файловую систему в режиме только + чтения, а также используют /usr совместно тоже + в режиме только чтения. + + Корневая файловая система является копией + стандартной корневой системы FreeBSD (обычно сервера), с некоторыми + настроечными файлами, измененными кем-то специально для бездисковых + операций или, возможно, для рабочей станции, которой она + предназначена. + + Части корневой файловой системы, которые + должны быть доступны для записи, перекрываются файловыми системами + &man.mfs.8;. Любые изменения будут потеряны при перезагрузках + системы. + + + + Ядро загружается посредством + etherboot, при помощи DHCP (или BOOTP) и + TFTP. + + + + + Как описано, эта система незащищена. Она должна располагаться в + защищенной части сети, а другие хосты не должны на нее + полагаться. + + + + Инструкции по настройке + + + Настройка DHCP/BOOTP + + + бездисковые конфигурации + загрузка + + + Есть два протокола, часто используемых для загрузки рабочих + станций, которые запрашивают свою конфигурацию по сети: BOOTP и DHCP. + При начальной загрузке рабочей станции они используются в нескольких + местах: + + + + etherboot использует (по + умолчанию) DHCP или BOOTP (требуется опция при настройке) для + поиска ядра. (PXE использует DHCP). + + + + Ядро использует BOOTP для поиска корневой файловой системы в + NFS. + + + + Возможна настройка системы на использование исключительно BOOTP. + Программа сервера &man.bootpd.8; включена в базовую систему + FreeBSD. + + Однако DHCP имеет некоторый набор преимуществ перед BOOTP (лучше + настроечные файлы, возможность использования PXE, плюс множество + других, напрямую не связанных к работе без диска), и мы опишем как + конфигурацию с чистым BOOTP, так и BOOTP+DHCP, с упором на последнее, + в котором используется пакет DHCP от ISC. + + + Конфигурация с использованием ISC DHCP + + + DHCP + бездисковые конфигурации + + + Сервер isc-dhcp может обрабатывать + как запросы BOOTP, так и запросы DHCP. + + Начиная с релиза 4.4, isc-dhcp 3.0 + не включается в поставку системы. Сначала вам нужно будет + установить порт net/isc-dhcp3 + или соответствующий пакадж. Пожалуйста, обратитесь к для получения общего представления о портах и + пакаджах. + + После установки isc-dhcp ему для + работы требуется конфигурационный файл (обычно называемый + /usr/local/etc/dhcpd.conf). Вот + прокомментированный пример: + + + default-lease-time 600; + max-lease-time 7200; + authoritative; + + option domain-name "example.com"; + option domain-name-servers 192.168.4.1; + option routers 192.168.4.1; + + subnet 192.168.4.0 netmask 255.255.255.0 { + use-host-decl-names on; + option subnet-mask 255.255.255.0; + option broadcast-address 192.168.4.255; + + host margaux { + hardware ethernet 01:23:45:67:89:ab; + fixed-address margaux.example.com; + next-server 192.168.4.4; + filename "/tftpboot/kernel.diskless"; + option root-path "192.168.4.4:/data/misc/diskless"; + } + } + + + + + Этот параметр указывает dhcpd посылать + значения деклараций host как имя хоста для + бездисковой машины. Альтернативным способом было бы добавление + option host-name + margaux внутри объявлений + хоста. + + + + + Директива next-server определяет сервер + TFTP (по умолчанию используется тот же самый хост, на котором + расположен сервер DHCP). + + + + Директива filename определяет файл, + который будет загружать etherboot в + качестве ядра. + + Похоже, что PXE предпочитает относительное имя файла, + и он загружает pxeboot, а не ядро + (option filename "pxeboot"). + + + + + + Параметр root-path определяет путь к + корневой файловой системе, в обычной нотации NFS. + + + + + + Настройка с использованием BOOTP + + + BOOTP + бездисковые конфигурации + + + Далее описана эквивалентная конфигурация с использованием + bootpd. Она будет располагаться в + /etc/bootptab. + + Пожалуйста, отметьте, что etherboot + должен быть откомпилирован с нестандартной опцией + NO_DHCP_SUPPORT для того, чтобы можно было + использовать BOOTP, и что для работы PXE + необходим DHCP. Единственным очевидным + преимуществом bootpd является его + наличие в поставке системы. + + + + .def100:\ + :hn:ht=1:sa=192.168.4.4:vm=rfc1048:\ + :sm=255.255.255.0:\ + :ds=192.168.4.1:\ + :gw=192.168.4.1:\ + :hd="/tftpboot":\ + :bf="/kernel.diskless":\ + :rp="192.168.4.4:/data/misc/diskless": + + margaux:ha=0123456789ab:tc=.def100 + + + + + + Подготовка программы загрузки при помощи + <application>Etherboot</application> + + + Etherboot + + + Сайт + Etherboot содержит + подробную документацию, в основном предназначенную для систем + Linux, но несомненно, она полезна. Далее будет просто кратко + описано, как вы должны использовать + etherboot в системе FreeBSD. + + Сначала вы должны установить пакадж или порт net/etherboot. Порт + etherboot обычно расположен в + /usr/ports/net/etherboot. Если в вашей системе + установлено дерево портов, просто наберите make в + этом каталоге, все остальное быдет сделано за вас. Либо обратитесь к + для получения информации о портах и + пакаджах. + + В нашей ситуации мы будем использовать загрузочную дискету. Для + других методов (PROM или программа DOS) пожалуйста, обратитесь к + документации по etherboot. + + Для создания загрузочной дискеты, вставьте дискету в дисковод на + машине, где установлен etherboot, затем + перейдите в каталог src в дереве + etherboot и наберите: + + + &prompt.root; gmake bin32/devicetype.fd0 + + + devicetype зависит от типа адаптера + Ethernet на бездисковой рабочей станции. Обратитесь к файлу + NIC в том же самом каталоге для определения + правильного значения для + devicetype. + + + + Настройка серверов TFTP и NFS + + + TFTP + бездисковые конфигурации + + + + NFS + бездисковые конфигурации + + + Вам нужно включить tftpd на сервере + TFTP: + + + + Создайте каталог, файлы которого будет обслуживать + tftpd, например, + /tftpboot. + + + + Добавьте в ваш /etc/inetd.conf такую + строчку: + + tftp dgram udp wait root /usr/libexec/tftpd tftpd -s /tftpboot + + + Бывает, что некоторым версиям PXE требуется TCP-вариант + TFTP. В таком случае добавьте вторую строчку, заменяющую + dgram udp на stream + tcp. + + + + + Укажите inetd на повторное чтение своего + конфигурационного файла: + + &prompt.root; kill -HUP `cat /var/run/inetd.pid` + + + + Вы можете поместить каталог tftpboot в любом + месте на сервере. Проверьте, что это местоположение указано как в + inetd.conf, так и в + dhcpd.conf. + + Вам также нужно включить NFS и экспортировать + соответствующую файловую систему на сервере NFS. + + + + Добавьте следующее в + /etc/rc.conf: + + nfs_server_enable="YES" + + + + Проэкспортируйте файловую систему, в которой расположен + корневой каталог для бездисковой рабочей станции, добавив + следующую строку в /etc/exports (подправьте + точку монтирования и замените margaux + на имя бездисковой рабочей станции): + + /data/misc -alldirs -ro margaux + + + + Укажите mountd на повторное чтение + настроечного файла. На самом деле если вам потребовалось на + первом шаге включить NFS в /etc/rc.conf, то + вам нужно будет выполнить перезагрузку. + + &prompt.root; kill -HUP `cat /var/run/mountd.pid` + + + + + + Построение ядра для бездисковой рабочей станции + + + бездисковые конфигурации + настройка ядра + + + Создайте конфигурационный файл ядра для бездискового клиента со + следующими параметрами (вдобавок к обычным): + + + options BOOTP # Use BOOTP to obtain IP address/hostname + options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info + options BOOTP_COMPAT # Workaround for broken bootp daemons. + + + Вам может потребоваться использовать + BOOTP_NFSV3 и BOOTP_WIRED_TO + (посмотрите LINT). + + Постройте ядро (обратитесь к ) и + скопируйте его в каталог tftp под именем, указанным в + dhcpd.conf. + + + + Подготовка корневой файловой системы + + + корневая файловая система + бездисковые конфигурации + + + Вам нужно создать корневую файловую систему для бездисковых + рабочих станций, в месоположении, заданном как + root-path в + dhcpd.conf. + + Самым простым способом сделать это является использование скрипта + /usr/share/examples/diskless/clone_root. Этот + скрипт требуется настроить, по крайней мере, подправив место, где + будет создана файловая система (переменная + DEST). + + Прочтите комментарии в начале скрипта для получения указаний. + Там описано, как строится основная файловая система, и как файлы + могут быть выборочно заменены версиями, предназначенными для работы + без диска, для подсети или для отдельной рабочей станции. Также + здесь даются примеры бездисковых файлов + /etc/fstab и + /etc/rc.conf. + + Файлы README в + /usr/share/examples/diskless много интересной + информации, но вместе с другими примерами из каталога + diskless они на самом деле описывают метод + настройки, который отличается от того, что используется в + clone_root и + /etc/rc.diskless[12], этим несколько запутывая + дело. Используйте их только для справки, за исключением того случая, + когда вы выберете метод, ими описываемый, и тогда вам нужны + исправленные скрипты rc. + + + + Настройка области подкачки + + Если это нужно, то файл подкачки, расположенный на сервере, можно + использовать посредством NFS. Точные параметры + bootptab или dhcpd.conf + пока плохо документированы. Сообщается, что работает следующая + конфигурация с использованием isc-dhcp 3.0rc11. + + + + Добавьте следующие строки в + dhcpd.conf: + + + # Global section + option swap-path code 128 = string; + option swap-size code 129 = integer 32; + + host margaux { + ... # Стандартные строки, смотрите выше + option swap-path "192.168.4.4:/netswapvolume/netswap"; + option swap-size 64000; + } + + + Идея заключается в том, что, по крайней мере для клиента + FreeBSD, дополнительный параметр DHCP/BOOTP под кодом 128 + является маршрутом к файлу подкачки NFS, а параметр с кодом 129 + задает размер области подкачки в килобайтах. Более старые версии + dhcpd разрешали использовать синтаксис типа + option option-128 "..., который больше не + работает. + + Во /etc/bootptab будет использоваться + такой синтаксис: + + T128="192.168.4.4:/netswapvolume/netswap":T129=64000 + + + + На файловом сервере NFS создайте файл (или файлы) + подкачки + + + &prompt.root; mkdir /netswapvolume/netswap + &prompt.root; cd /netswapvolume/netswap + &prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6 + &prompt.root; chmod 0600 swap.192.168.4.6 + + + 192.168.4.6 является IP-адресом + бездискового клиента. + + + + На файловом сервере NFS, в /etc/exports + добавьте такую строку: + + + /netswapvolume -maproot=0:10 -alldirs margaux + + + Затем укажите mountd на повторное + чтение файла exports, как описано ранее. + + + + + + Различные проблемы + + + Работа с <filename>/usr</filename>, доступной только для + чтения + + + бездисковые конфигурации + /usr только для чтения + + + Если бездисковая рабочая станция настроена на запуск X, вам + нужно подправить настроечный файл для xdm, который по умолчанию + помещает протокол ошибок в /usr. + + + + Использование не-FreeBSD сервера + + Если сервер с корневой файловой системой работает не под + управлением FreeBSD, вам потребуется создать корневую файловую + систему на машине FreeBSD, а затем скопировать ее в нужно место, + при помощи tar или + cpio. + + В такой ситуации иногда возникают проблемы со + специальными файлами в /dev из-за различной + разрядности целых чисел для старшего/младшего чисел. Решением + этой проблемы является экспортирование каталога с не-FreeBSD + сервера, монтирование его на машине с FreeBSD и запуск + скрипта MAKEDEV на машине с FreeBSD для создания + правильных файлов устройств (во FreeBSD 5.0 и более поздних версиях + используется &man.devfs.5; для создания файлов устройств прозрачно + для пользователя, запуск MAKEDEV в этих версиях + бесполезен). + + + + + + + ISDN + + + ISDN + + + Полезным источником информации о технологии ISDN и его аппаратном + обеспечении является + Страница Дэна Кегела (Dan Kegel) об ISDN. + + Быстрое введение в ISDN: + + + + Если вы живёте в Европе, то вам может понадобиться изучить раздел + об ISDN-адаптерах. + + + + Если вы планируете использовать ISDN в основном для соединений + с Интернет через провайдера по коммутируемому, невыделенному + соединению, рекомендутся посмотреть информацию о терминальных + адаптерах. Это даст вам самую большую гибкость и наименьшее + количество проблем при смене провайдера. + + + + Если вы объединяете две локальные сети или подключаетесь к + Интернет через постоянное ISDN-соединение, рекомендуем остановить свой + выбор на отдельном мосте/маршрутизаторе. + + + + Стоимость является важным фактором при выборе вашего решения. + Далее перечислены все возможности от самого дешевого до самого дорогого + варианта. + + + + + + Hellmuth + Michaelis + Текст предоставил + + + + + Адаптеры ISDN + + + ISDN + адаптеры + + + Реализация ISDN во FreeBSD поддерживает только стандарт DSS1/Q.931 + (или Евро-ISDN) при помощи пассивных адаптеров. Начиная с + FreeBSD 4.4 поддерживаются некоторые активные адаптеры, прошивки + которых поддерживают также другие сигнальные протоколы; также сюда + впервые включена поддержка адаптеров ISDN Primary Rate (PRI). + + Пакет программ isdn4bsd позволяет вам + поключаться к другим маршрутизаторам ISDN при помощи IP поверх DHLC, + либо при помощи синхронного PPP; лиюо при помощи PPP на уровне ядра с + isppp, модифицированного драйвера &man.sppp.4;, или + при помощи пользовательского + &man.ppp.8;. При использовании пользовательского &man.ppp.8; возможно + использование двух и большего числа B-каналов ISDN. Также имеется + приложение, работающее как автоответчик, и много утилит, таких, как + программный модем на 300 Бод. + + Во FreeBSD поддерживается все возрастающее число адаптеров ISDN для + ПК, и сообщения показывабт, что они успешно используются по всей Европе + и других частях света. + + Из пассивных адаптеров ISDN поддерживаются в основном те, которые + сделаны на основе микросхем Infineon (бывший Siemens) ISAC/HSCX/IPAC + ISDN, а также адаптеры ISDN с микросхемами от Cologne Chip (только для + шины ISA), адаптеры PCI с микросхемами Winbond W6692, некоторые + адаптеры с набором микросхем Tiger300/320/ISAC и несколько адаптеров, + посроенных на фирменных наборах микросхем, такие, как AVM Fritz!Card + PCI V.1.0 и AVM Fritz!Card PnP. + + На данный момент из активных адаптеров ISDN поддерживаются AVM B1 + (ISA и PCI) адаптеры BRI и AVM T1 PCI адаптеры PRI. + + Документацию по isdn4bsd можно найти в + каталоге /usr/share/examples/isdn/ вашей системы + FreeBSD или на домашней + странице isdn4bsd, на которой также размещены ссылки на советы, + замечания по ошибкам и более подробную информацию, например, на руководство по + isdn4bsd. + + Если вы заинтересованы в добавлении поддержки для различных + протоколов ISDN, неподдерживаемых на данный момент адаптеров ISDN для + PC или каких-то других усовершенствованиях + isdn4bsd, пожалуйста, свяжитесь с + &a.hm;. + + Для обсуждения вопросов, связанных с установкой, настройкой и + устранением неисправностей isdn4bsd, + имеется список рассылки &a.isdn.name;. + + subscribe freebsd-isdn + + + + Терминальные адаптеры ISDN + + Терминальные адаптеры (TA) для ISDN выполняют ту же роль, что и + модемы для обычных телефонных линий. + + модем + + Большинство TA используют стандартный набор AT-команд Hayes-модемов, + и могут использоваться в качестве простой замены для модемов. + + TA будут работать точно так же, как и модемы, за исключением + скорости соединения и пропускной способности, которые будут гораздо + выше, чем у вашего старого модема. Вам потребуется настроить PPP точно также, как и в случае использования + модема. Проверьте, что вы задали скорость работы последовательного + порта максимально высокой. + + PPP + Главным преимуществом использования TA для подключения к провайдеру + Интернет является возможность использования динамического PPP. Так + как пространство адресов IP истощается все больше, большинство + провайдеров не хочет больше выдавать вам статический IP-адрес. + Большинство же маршрутизаторов не может использовать динамическое + выделение IP-адресов. + + TA полностью полагаются на даемон PPP, который используете из-за + его возможностей и стабильности соединения. Это позволяет вам при + использовании FreeBSD легко заменить модем на ISDN, если у вас уже + настроено соединение PPP. Однако, в тоже время любые проблемы, которые + возникают с программой PPP, отражаются и здесь. + + Если вы хотите максимальной надёжности, используйте PPP на уровне параметра ядра, а не пользовательский PPP. + + Известно, что следующие TA работают с FreeBSD: + + + + Motorola BitSurfer и Bitsurfer Pro + + + + Adtran + + + + Большинство остальных TA, скорее всего, тоже будут работать, + производители TA прилагают все усилия для обеспечения поддержки + практически всего набора стандартных AT-команд модема. + + Как и в случае модемов проблемой использования внешнего TA является + потребность в хорошем последовательном адаптере на вашем + компьютере. + + Вы должны прочесть учебник Последовательные устройства + во FreeBSD для того, чтобы в деталях понять работу + последовательных устройств и осознать различие между асинхронными и + синхронными последовательными портами. + + TA, работающий со стандартным последовательным (асинхронным) портом + PC, ограничивает вас скоростью 115.2 Кбит/с, хотя реально у вас + соединение на скорости 128 Кбит/с. Чтобы использовать + 128 Кбит/с, которые обеспечивает ISDN, полностью, вы должны + подключить TA к синхронному последовательному адаптеру. + + Не обманывайте себя, думая, что покупка встроенного TA поможет + избежать проблемы синхронности/асинхронности. Встроенные TA просто + уже имеют внутри стандартный последовательный порт PC. Все, что при + этом достигается - это экономия дополнительных последовательного + кабеля и электрической розетки. + + Синхронный адаптер с TA по крайней мере так же быстр, как и + отдельный маршрутизатор, а если он работает под управлением машины + класса 386 с FreeBSD, то это гораздо более гибкое решение. + + Выбор между использованием синхронного адаптера/TA или отдельного + маршрутизатора в большей степени является религиозным вопросом. По этому + поводу в списках рассылки была некоторая дискуссия. Рекомендуем поискать + в архивах обсуждение + полностью. + + + + Отдельные мосты/маршрутизаторы ISDN + + + ISDN + отдельно стоящие мосты/маршрутизаторы + + + Мосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD + или для любой другой операционной системы. Для более подробного + описания технологий маршрутизации и работы мостов, пожалуйста, + обратитесь к справочникам по сетевым технологиям. + + В контексте этого раздела термины маршрутизатор и сетевой мост будут + использоваться как взаимозаменяемые. Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они становятся все более популярными. Маршрутизатор ISDN представляет собой маленькую коробочку, которая подключается непосредственно в - вашу сеть (или адаптер) Ethernet, и поддерживает связь с другим - мостом/маршрутизатором. Все программное обеспечение для работы по - PPP и другим протоколам, встроено в маршрутизатор. + вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором. + Всё программное обеспечение для работы по PPP и другим протоколам + встроено в маршрутизатор. Маршрутизатор обладает гораздо большей пропускной способностью, чем стандартный TA, так как он использует полное синхронное соединение @@ -1324,9 +3210,9 @@ subscribe freebsd-isdn Основной проблемой с маршрутизаторами и мостами ISDN является то, что их совместная работа с оборудованием других производителей может оказаться под вопросом. Если вы собираетесь подключаться к провайдеру, - я рекомендую обсудить с ним то, что вам нужно. + то вы должны обсудить с ним то, что вам нужно. - Если вы планируете объединить два сегмента локальной сети, то есть + Если вы планируете объединить два сегмента локальной сети, например, домашнюю сеть с сетью офиса, это самое простое решение с минимальными издержками на обслуживание. Так как вы покупаете оборудование для обоих сторон соединения, то можете быть уверены, что связь будет @@ -1334,27 +3220,38 @@ subscribe freebsd-isdn Например, для соединения домашнего компьютера или сети подразделения к сети центрального офиса, может использоваться такая - настройка. + настройка: Офис подразделения или домашняя сеть - Сеть построена на основе 10 Base T Ethernet. Подключите - маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, - если это нужно. + 10 base 2 + Сеть построена в топологии общей шины на основе 10 base 2 Ethernet + (thinnet - тонкий Ethernet). Подключите + маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если + это нужно. + + + + + - - ----Рабочая станция Sun + + ---Рабочая станция Sun | ---Машина с FreeBSD | ----Windows 95 (Do not admit to owning it) +---Windows 95 | Отдельный маршрутизатор | -Канал ISDN BRI - +Канал ISDN BRI + + + + 10 Base 2 Ethernet + + Если ваш домашний или удаленный офис представляет собой один компьютер, то для непосредственного подключения к маршрутизатору вы @@ -1364,11 +3261,17 @@ subscribe freebsd-isdn Центральный офис или другая локальная сеть - Сеть построена на Ethernet с витой парой. + 10 base T + Сеть построена в топологии звезды на основе 10 Base T Ethernet + (витая пара). + + + + + - - - -------Сервер Novell + + -------Сервер Novell | H | | ---Sun | | @@ -1378,15 +3281,20 @@ subscribe freebsd-isdn | B | |___---Отдельно стоящий маршрутизатор | - Канал ISDN BRI - + Канал ISDN BRI + + + + Схема сети с ISDN + + Одним большим преимуществом большинства маршрутизаторов/мостов является то, что они позволяют иметь 2 отдельных независимых соединения PPP к 2 различным сайтам одновременно. Это не поддерживается в большинстве - TA, кроме специальных (дорогих) моделей, имеющих по два + TA, кроме специальных (обычно дорогих) моделей, имеющих по два последовательных порта. Не путайте это с балансировкой нагрузки, MPP и так далее. @@ -1394,121 +3302,183 @@ subscribe freebsd-isdn у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите им воспользоваться, но не хотите задействовать дополнительный канал ISDN на работе. Маршрутизатор, расположенный в офисе, может - использовать выделенное соединение по каналу B (64Кбс) для Интернет, + использовать выделенное соединение по каналу B (64 Кбит/с) для + Интернет, и одновременно другой канал B для отдельного соединения для передачи данных. Второй канал B может использоваться для входящих, исходящих - и динамически распределяемых соединений (MPP и другие) совместно с + и динамически распределяемых соединений (MPP и так далее) совместно с первым каналом B для повышения пропускной способности. + IPX/SPX Мост Ethernet также позволяет вам передавать больше, чем просто - трафик IP, вы можете передавать IPX/SPX и любые другие протоколы, + трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы, которые вы используете. - - NIS/YP - - Текст написал &a.unfurl; 21 января 2000, дополнения и - комментарии частично от Эрика Огрена (Eric Ogren) - eogren@earthlink.net и Удо Эрделхоффа (Udo Erdelhoff) - ue@nathan.ruhr.de сделаны в июне 2000. - - - Что это такое? - - NIS, что является сокращением от Network Information Services - (Сетевые Информационные Службы), которые были разработаны компанией - Sun Microsystems для централизованного администрирования систем Unix - (первоначально SunOS). В настоящее время эти службы практически стали - промышленным стандартом; все основные версии Unix (Solaris, HP-UX, AIX, - Linux, NetBSD, OpenBSD, FreeBSD, и так далее) поддерживают NIS. - - NIS первоначально назывались Yellow Pages (или yp), но из-за - проблем с авторскими правами, Sun была вынуждена изменить это - название. - - Это система клиент/сервер на основе вызовов RPC, которая позволяет - группе машин в одном домене NIS совместно использовать общий набор - конфигурационных файлов. Системный администратор может настроить - клиентскую систему NIS только с минимальной настроечной информацией, а - затем добавлять, удалять и модифицировать настроечную информацию из - одного места. - - Это похоже на систему доменов Windows NT; хотя их внутренние - реализации не так уж и похожи, основные функции сравнимы. - - - - Термины/программы, о которых вы должны знать - - Существует несколько терминов и некоторое количество - пользовательских программ, которые будут нужны, когда вы будете - пытаться сделать NIS во FreeBSD, и в случае создания сервера, и - в случае работы в качестве клиента NIS: - - - - Имя домена NIS. Главный сервер NIS и - все его клиенты (включая вторичные серверы), имеют доменное имя - NIS. Как и в случае с именем домена NT, имя домена NIS не имеет - ничего общего с DNS. - - - - portmap. Для обеспечения работы RPC - (Remote Procedure Call, Удаленного Вызова Процедур, сетевого - протокола, используемого NIS), должен быть запущен даемон - portmap. Если даемон portmap - не запущен, невозможно будет запустить сервер NIS, или работать как - NIS-клиент. - + + + + + Bill + Swingle + Текст создал + + + + + + Eric + Ogren + Внёс добавления + + + Udo + Erdelhoff + + + + + NIS/YP + + + Что это такое? + + NIS + Solaris + HP-UX + AIX + Linux + NetBSD + OpenBSD + + NIS, что является сокращением от Network Information Services + (Сетевые Информационные Службы), которые были разработаны компанией + Sun Microsystems для централизованного администрирования систем &unix; + (изначально &sunos;). В настоящее время эти службы практически стали + промышленным стандартом; все основные &unix;-подобные системы + (&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD и так далее) + поддерживают NIS. + + + yellow pages + NIS + + + NIS первоначально назывались Yellow Pages (или yp), но из-за + проблем с торговым знаком Sun изменила это название. Старое название + (и yp) всё ещё часто употребляется. + + + NIS + домены + + + Это система клиент/сервер на основе вызовов RPC, которая позволяет + группе машин в одном домене NIS совместно использовать общий набор + конфигурационных файлов. Системный администратор может настроить + клиентскую систему NIS только с минимальной настроечной информацией, а + затем добавлять, удалять и модифицировать настроечную информацию из + одного места. + + Windows NT + + Это похоже на систему доменов &windowsnt;; хотя их внутренние + реализации не так уж и похожи, основные функции сравнимы. + - - ypbind. ypbind - “связывает” NIS-клиента с его NIS-сервером. Он - определяет имя NIS-домена системы, и при помощи RPC подключается к - серверу. ypbind является основой - клиент-серверного взаимодействия в среде NIS; если на клиентской - машине программа ypbind перестанет работать, то - эта машина не сможет получить доступ к серверу NIS. - + + Термины/программы, о которых вы должны знать - - ypserv. Программа - ypserv, которая должна запускаться только на - серверах NIS, собственно и является сервером NIS. Если ypserv - перестанет работать, то сервер не сможет отвечать на запросы NIS - (к счастью, на этот случай предусмотрен вторичный сервер). + Существует несколько терминов и некоторое количество + пользовательских программ, которые будут нужны, когда вы будете + пытаться сделать NIS во FreeBSD, и в случае создания сервера, и + в случае работы в качестве клиента NIS: - - Есть несколько реализаций NIS (к FreeBSD это не относится), - в которых не производится попыток подключиться к другому серверу, - если ранее используемый сервер перестал работать. Зачастую - единственным средством, помогающим в этой ситуации, является - перезапуск серверного процесса (или сервера полностью) или - процесса ypbind на клиентской машине. - - + + portmap + - - rpc.yppasswdd. Программа - rpc.yppasswdd, другой процесс, который - запускается только на главных NIS-серверах, является даемоном, - позволяющим клиентам NIS изменять свои пароли NIS. Если этот - даемон не запущен, то пользователи должны будут входить на - основной сервер NIS и там менять свои пароли. - + + + + + Термин + Описание + + + + + + Имя домена NIS + + Главный сервер NIS и все его клиенты (включая вторичные + серверы), имеют доменное имя NIS. Как и в случае с именем + домена &windowsnt;, имя домена NIS не имеет ничего общего с + DNS. + + + + portmap + + Для обеспечения работы RPC (Remote Procedure Call, + Удалённого Вызова Процедур, сетевого протокола, используемого + NIS), должен быть запущен даемон portmap. + Если даемон portmap не запущен, невозможно + будет запустить сервер NIS, или работать как + NIS-клиент. + + + + ypbind + + Связывает + NIS-клиента с его NIS-сервером. Он определяет имя NIS-домена + системы, и при помощи RPC подключается к серверу. + ypbind является основой клиент-серверного + взаимодействия в среде NIS; если на клиентской машине + программа ypbind перестанет работать, то + эта машина не сможет получить доступ к серверу NIS. + + + + ypserv + + Программа ypserv, которая должна + запускаться только на серверах NIS: это и есть + сервер NIS. Если &man.ypserv.8; перестанет работать, то + сервер не сможет отвечать на запросы NIS (к счастью, на этот + случай предусмотрен вторичный сервер). Есть несколько + реализаций NIS (к FreeBSD это не относится), в которых не + производится попыток подключиться к другому серверу, если ранее + используемый сервер перестал работать. Зачастую единственным + средством, помогающим в этой ситуации, является перезапуск + серверного процесса (или сервера полностью) или процесса + ypbind на клиентской машине. + + + + rpc.yppasswdd + + Программа rpc.yppasswdd, другой + процесс, который запускается только на главных NIS-серверах: + это даемон, позволяющий клиентам NIS изменять свои + пароли NIS. Если этот даемон не запущен, то пользователи + должны будут входить на основной сервер NIS и там менять свои + пароли. + + + + - - + Как это работает? - В системе NIS существует три типа хостов; основные (master) + В системе NIS существует три типа хостов: основные (master) серверы, вторичные (slave) серверы и клиентские машины. Серверы выполняют роль централизованного хранилища информации о конфигурации хостов. Основные серверы хранят оригиналы этой информации, когда как @@ -1518,20 +3488,24 @@ subscribe freebsd-isdn Информация во многих файлах может совместно использоваться следующим образом. Файлы master.passwd, - group, и hosts используются + group и hosts используются совместно через NIS. Когда процессу, работающему на клиентской машине, требуется информация, как правило, находящаяся в этих файлах локально, - он делает запрос к серверу, с которым связан, для получения этой - информации. + то он делает запрос к серверу NIS, с которым связан. Типы машин + + NIS + главный сервер + + Основной сервер NIS. - Такой сервер, по аналогии с первичным контроллером домена Windows - NT, хранит файлы, используемые всеми клиентами NIS. Файлы + Такой сервер, по аналогии с первичным контроллером домена + &windowsnt;, хранит файлы, используемые всеми клиентами NIS. Файлы passwd, group и различные другие файлы, используемые клиентами NIS, находятся на основном сервере. @@ -1544,9 +3518,13 @@ subscribe freebsd-isdn + + NIS + вторичный сервер + - Вторичные серверы NIS. - Похожие на вторичные контроллеры доменов NT, вторичные серверы + Вторичные серверы NIS. Похожие на + вторичные контроллеры доменов &windowsnt;, вторичные серверы NIS содержат копии оригинальных файлов данных NIS. Вторичные серверы NIS обеспечивают избыточность, что нужно в критичных приложениях. Они также помогают распределять нагрузку на @@ -1555,11 +3533,16 @@ subscribe freebsd-isdn серверам. + + NIS + клиент + Клиенты NIS. - Клиенты NIS, как и большинство машин NT Workstation, + Клиенты NIS, как и большинство рабочих станций &windowsnt;, аутентифицируются на сервере NIS (или на контроллере домена - в случае NT Workstation) во время входа в систему. + &windowsnt; в случае работы с &windowsnt; Workstation) во время + входа в систему. @@ -1571,8 +3554,8 @@ subscribe freebsd-isdn В этом разделе приводится пример настройки NIS. - В этом разделе предполагается, что вы работаете с FreeBSD версии - 3.3 или выше. Указания, приводимые здесь, скорее всего, + В этом разделе предполагается, что вы работаете с FreeBSD 3.3 + или выше. Указания, приводимые здесь, скорее всего, будут работать с любой версией FreeBSD, выше, чем 3.0, однако нет гарантий, что это на самом деле так. @@ -1646,6 +3629,10 @@ subscribe freebsd-isdn Выбор имени домена NIS + + NIS + имя домена + Это имя не должно быть именем домена, которое вы использовали. Более точно это имя называется именем домена NIS. Когда клиент рассылает запросы на получение @@ -1661,11 +3648,12 @@ subscribe freebsd-isdn быть уникальным в пределах вашей сети и хорошо, если оно будет описывать группу машин, которые представляет. Например, художественный отдел в компании Acme Inc. может находиться в - домене NIS с именем "acme-art". В нашем примере положим, что - мы выбрали имя test-domain. + домене NIS с именем acme-art. В нашем примере + положим, что мы выбрали имя test-domain. + SunOS Несмотря на это, некоторые операционные системы (в частности, - SunOS) используют свое имя домена NIS в качестве имени домена + &sunos;) используют свое имя домена NIS в качестве имени домена Интернет. Если одна или более машин в вашей сети имеют такие ограничения, вы обязаны использовать имя домена Интернет в качестве имени домена NIS. @@ -1708,7 +3696,7 @@ subscribe freebsd-isdn будет иметь свой собственный независимый от других набор карт. Основной и вторичный серверы обслуживают все запросы NIS с - помощью даемона ypserv. Ypserv + помощью даемона ypserv. ypserv отвечает за получение входящих запросов от клиентов NIS, распознавание запрашиваемого домена и отображение имени в путь к соответствующему файлы базы данных, а также передаче информации из @@ -1717,36 +3705,48 @@ subscribe freebsd-isdn Настройка основного сервера NIS + + NIS + настройка сервера + Настройка основного сервера NIS может оказаться сравнительно простой, в зависимости от ваших потребностей. В поставку FreeBSD сразу включена поддержка NIS. Все, что вам нужно, это добавить следующие строки в файл /etc/rc.conf, а - FreeBSD сделает за вас все остальное.. + FreeBSD сделает за вас всё остальное.. - - + + nisdomainname="test-domain" В этой строке задается имя домена NIS, которое будет test-domain, еще до настройки сети (например, после перезагрузки). - + - + nis_server_enable="YES" Здесь указывается FreeBSD на запуск процессов серверов NIS, когда дело доходит до сетевых настроек. - + - + nis_yppasswdd_enable="YES" Здесь указывается на запуск даемона rpc.yppasswdd, который, как это отмечено выше, позволит пользователям менять свой пароль NIS с клиентской машины. - - + + + + + В зависимости от ваших настроек NIS, вам могут понадобиться + дополнительные строки. Обратитесь к разделу о серверах NIS, + которые являются и клиентами NIS ниже для получения + подробной информации. + - А теперь все, что вам нужно сделать, это запустить команду + А теперь всё, что вам нужно сделать, это запустить команду /etc/netstart, работая как администратор. По ней произойдет настройка всего, при этом будут использоваться значения, заданные в файле /etc/rc.conf. @@ -1755,26 +3755,30 @@ subscribe freebsd-isdn Инициализация карт NIS + + NIS + карты + Карты NIS являются файлами баз данных, которые хранятся в каталоге /var/yp. Они генерируются из конфигурационных файлов, находящихся в каталоге /etc основного сервера NIS, за одним исключением: файл /etc/master.passwd. На это есть весомая причина; вам не нужно распространять пароли - пользователя root и других административных пользователей на все - серверы в домене NIS. По этой причине, прежде чем инициализировать - карты NIS, вы должны сделать вот что: + пользователя root и других административных + пользователей на все серверы в домене NIS. По этой причине, прежде + чем инициализировать карты NIS, вы должны сделать вот что: - -&prompt.root; cp /etc/master.passwd /var/yp/master.passwd + &prompt.root; cp /etc/master.passwd /var/yp/master.passwd &prompt.root; cd /var/yp -&prompt.root; vi master.passwd - +&prompt.root; vi master.passwd Вы должны удалить все записи, касающиеся системных - пользователей (bin, tty, kmem, games и так далее), а также записи, - которые вы не хотите распространять клиентам NIS (например, root - и другие пользователи с UID, равным 0 (администраторы)). + пользователей (bin, tty, + kmem, games и так далее), а + также записи, которые вы не хотите распространять клиентам NIS + (например, root и другие пользователи с UID, + равным 0 (администраторы)). Проверьте, чтобы файл @@ -1784,20 +3788,20 @@ subscribe freebsd-isdn если это нужно. + Tru64 UNIX Когда с этим будет покончено, самое время проинициализировать карты NIS! В поставку FreeBSD включен скрипт с именем ypinit, который делает это (обратитесь к его справочной странице за дополнительной информацией). Отметьте, что - этот скрипт имеется на большинстве ОС UNIX, но не во всех. В - системе Digital Unix/Compaq Tru64 Unix он называется + этот скрипт имеется в большинстве операционных систем &unix;, но не + во всех. В системе Digital Unix/Compaq Tru64 UNIX он называется ypsetup. Так как мы генерируем карты для главного сервера NIS, то при вызове программы ypinit мы передаем ей параметр . Для генерации карт NIS в предположении, что вы уже сделали шаги, описанные выше, выполните следующее: - -ellington&prompt.root; ypinit -m test-domain + ellington&prompt.root; ypinit -m test-domain Server Type: MASTER Domain: test-domain Creating an YP server will require that you answer a few questions. Questions will all be asked at the beginning of the procedure. @@ -1819,8 +3823,7 @@ Is this correct? [y/n: y] y [..вывод при генерации карт..] NIS Map update completed. -ellington has been setup as an YP master server without any errors. - +ellington has been setup as an YP master server without any errors. Программа ypinit должна была создать файл /var/yp/Makefile из @@ -1831,18 +3834,24 @@ ellington has been setup as an YP master server without any errors. то вы должны отредактировать файл /var/yp/Makefile: - -ellington&prompt.root; vi /var/yp/Makefile - + ellington&prompt.root; vi /var/yp/Makefile + + Вы должны закомментировать строку, в которой указано - Вы должны закомментировать строку, в которой указано - `NOPUSH = "True"' (она уже не раскомментирована). + NOPUSH = "True" + + (она уже не раскомментирована). Настройка вторичного сервера NIS - Настройка вторичного сервера NIS осуществляется еще проще, + + NIS + вторичный сервер + + + Настройка вторичного сервера NIS осуществляется ещё проще, чем настройка главного сервера. Войдите на вторичный сервер и отредактируйте файл /etc/rc.conf точно также, как вы делали это ранее. Единственным отличием является то, что @@ -1851,8 +3860,7 @@ ellington&prompt.root; vi /var/yp/Makefile требует также указание имени главного сервера NIS, так что наша команда должна выглядеть так: - -coltrane&prompt.root; ypinit -s ellington test-domain + coltrane&prompt.root; ypinit -s ellington test-domain Server Type: SLAVE Domain: test-domain Master: ellington @@ -1907,8 +3915,7 @@ Transferring hosts.byname... ypxfr: Exiting: Map successfully transferred coltrane has been setup as an YP slave server without any errors. -Don't forget to update map ypservers on ellington. - +Don't forget to update map ypservers on ellington. Теперь у вас должен быть каталог с именем /var/yp/test-domain. Копии карт главного @@ -1917,18 +3924,16 @@ Don't forget to update map ypservers on ellington. /etc/crontab вашего вторичного сервера должны это делать: - -20 * * * * root /usr/libexec/ypxfr passwd.byname -21 * * * * root /usr/libexec/ypxfr passwd.byuid - + 20 * * * * root /usr/libexec/ypxfr passwd.byname +21 * * * * root /usr/libexec/ypxfr passwd.byuid Эти две строки заставляют вторичный сервер синхронизировать - свои карты с картами главного сервера. Хотя делать это не - обязательно, потому что главный сервер делает попытки передать - все изменения в своих картах NIS на свои вторичные серверы, - информация для входа в систему настолько жизненно важна для + свои карты с картами главного сервера. Хотя эти строчки не + обязательны, так как главный сервер делает попытки передать все + изменения в своих картах NIS на свои вторичные серверы, но из-за + того, что информация для входа в систему настолько жизненно важна для систем, зависящих от сервера, что выполнение регулярных обновлений - является совсем не плохой идеей. Это еще более важно в загруженных + является совсем не плохой идеей. Это ещё более важно в загруженных сетях, в которых обновления карт могут не всегда завершаться успешно. @@ -1955,8 +3960,8 @@ Don't forget to update map ypservers on ellington. несколько вторичных), то ypbind будет использовать адрес первого ответившего. С этого момента клиентская система будет направлять все свои запросы NIS на этот сервер. Время от времени - ypbind будет обмениваться пакетами - ping с сервером для проверки его работоспособности. + ypbind будет пинать сервер для + проверки его работоспособности. Если на один из тестовых пакетов не удастся получить ответа за разумное время, то ypbind пометит этот домен как домен, с которым связка разорвана, и снова начнет процесс посылки @@ -1965,71 +3970,81 @@ Don't forget to update map ypservers on ellington. Настройка клиента NIS + + NIS + настройка клиента + Настройка машины с FreeBSD в качестве клиента NIS достаточно проста. - - + + Отредактируйте файл /etc/rc.conf, добавив туда следующие строки для того, чтобы задать имя домена NIS и запустить ypbind во время запуска сетевых служб: - -nisdomainname="test-domain" -nis_client_enable="YES" - - + nisdomainname="test-domain" +nis_client_enable="YES" + - - Для получения всех возможных учетных записей от сервера NIS - добавьте при помощи vipw в ваш файл - /etc/master.passwd такую строчку: + + Для импортирования всех возможных учётных записей от сервера + NIS, удалите все записи пользоватлей из вашего файла + /etc/master.passwd и воспользуйтесь + командой vipw для добавления следующей строки + в конец файла: - -+::::::::: - + +::::::::: Эта строчка даст всем пользователям с корректной учетной записью в картах учетных баз пользователей доступ к этой системе. Есть множество способов настроить ваш клиент NIS, изменив эту строку. Посмотрите ниже текст, касающийся сетевых групп, чтобы получить более - подробную информацию. Дополнительная информация для изучения - находится в книге издательства O'Reilly под названием - Managing NFS and NIS. + linkend="network-netgroups">сетевых групп, чтобы + получить более подробную информацию. Дополнительная информация + для изучения находится в книге издательства O'Reilly под + названием Managing NFS and NIS. - - - Для импортирования всех возможных записей о группах с - сервера NIS, добавьте в ваш файл - /etc/group такую строчку: - - -+:*:: - - - - - После завершения выполнения этих шагов у вас должно получиться - запустить команду ypcat passwd и увидеть - карту учетных записей сервера NIS. - - - + + Вы должны оставить хотя бы одну локальную запись (то есть + не импортировать ее через NIS) в вашем + /etc/master.passwd и эта запись должна + быть также членом группы wheel. Если + с NIS что-то случится, эта запись может использоваться для + удаленного входа в систему, перехода в режим администратора и + исправления неисправностей. + + + + + Для импортирования всех возможных записей о группах с + сервера NIS, добавьте в ваш файл + /etc/group такую строчку: + + +:*:: + + + + После завершения выполнения этих шагов у вас должно получиться + запустить команду ypcat passwd и увидеть + карту учетных записей сервера NIS. + + + Безопасность NIS В общем-то любой пользователь, зная имя вашего домена, может - выполнить запрос RPC к ypserv и получить содержимое ваших карт NIS. - Для предотвращения такого неавторизованного обмена ypserv поддерживает - так называемую систему securenets, которая может использоваться для - ограничения доступа к некоторой группе хостов. При запуске ypserv - будет пытаться загрузить информацию, касающуюся securenets, из файла - /var/yp/securenets. + выполнить запрос RPC к &man.ypserv.8; и получить содержимое ваших карт + NIS. Для предотвращения такого неавторизованного обмена &man.ypserv.8; + поддерживает так называемую систему securenets, которая может + использоваться для ограничения доступа к некоторой группе хостов. При + запуске &man.ypserv.8; будет пытаться загрузить информацию, касающуюся + securenets, из файла /var/yp/securenets. Имя каталога зависит от параметра, указанного вместе с опцией @@ -2039,8 +4054,7 @@ nis_client_enable="YES" Примерный файл securenets может иметь примерно такой вид: - -# allow connections from local host -- mandatory + # allow connections from local host -- mandatory 127.0.0.1 255.255.255.255 # allow connections from any host # on the 192.168.128.0 network @@ -2048,21 +4062,21 @@ nis_client_enable="YES" # allow connections from any host # between 10.0.0.0 to 10.0.15.255 # this includes the machines in the testlab -10.0.0.0 255.255.240.0 - +10.0.0.0 255.255.240.0 - Если ypserv получает запрос от адреса, который соответствует одному - из этих правил, он будет отрабатывать запрос обычным образом. Если же - адрес не подпадает ни под одно правило, запрос будет проигнорирован - и в журнал будет записано предупреждающее сообщение. Если файл - /var/yp/securenets не существует, ypserv будет - обслуживать соединения от любого хоста. + Если &man.ypserv.8; получает запрос от адреса, который соответствует + одному из этих правил, он будет отрабатывать запрос обычным образом. + Если же адрес не подпадает ни под одно правило, запрос будет + проигнорирован и в журнал будет записано предупреждающее сообщение. Если + файл /var/yp/securenets не существует, + ypserv будет обслуживать соединения от любого + хоста. - Программа ypserv также поддерживает пакет программ + Программа ypserv также поддерживает пакет программ tcpwrapper от Wietse Venema. Это позволяет администратору для ограничения доступа вместо /var/yp/securenets использовать конфигурационные - файлы tcpwrapper. + файлы tcpwrapper. Хотя оба этих метода управления доступом обеспечивают некоторую @@ -2086,6 +4100,7 @@ nis_client_enable="YES" приведёт к потере работоспособности NIS в большой части вашей сети. + tcpwrapper Использование пакета tcpwrapper увеличит время отклика вашего сервера NIS. Дополнительной задержки может оказаться достаточно для возникновения таймаутов в клиентских @@ -2120,8 +4135,7 @@ nis_client_enable="YES" bill осуществлять вход на машине basie, то мы сделаем следующее: - -basie&prompt.root; vipw + basie&prompt.root; vipw [add -bill to the end, exit] vipw: rebuilding the database... vipw: done @@ -2146,18 +4160,24 @@ nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin +::::::::: -bill -basie&prompt.root; - +basie&prompt.root; - - Использование сетевых групп + + + + + Udo + Erdelhoff + Текст предоставил + + + - Эта часть раздела о сетевых группах была предоставлена - Удо Эрделхоффом (Udo Erdelhoff) ue@nathan.ruhr.de в - июле 2000 года. + Использование сетевых групп + сетевые группы - Способ, описанный в предыдущей главе, работает достаточно хорошо, + Способ, описанный в предыдущем разделе, работает достаточно хорошо, если вам нужны особые правила для очень малой группы пользователей или машин. В более крупных сетях вы забудете о запрете входа определенных пользователей на важные машины или даже @@ -2167,7 +4187,7 @@ basie&prompt.root; Ответом разработчиков NIS на эту проблему являются сетевые группы. Их назначение и смысл можно - сравнить с обычными группами, используемыми в файловых системах Unix. + сравнить с обычными группами, используемыми в файловых системах &unix;. Главное отличие заключается в отсутствии числового идентификатора и возможности задать сетевую группу включением как пользователей, так и других сетевых групп. @@ -2230,14 +4250,14 @@ basie&prompt.root; - war, death, famine, polution + war, death, famine, pollution Ваши самые важные серверы. Только служащим IT позволяется входить на эти машины. - - pride, greed, envy, wraith, lust, sloth + + pride, greed, envy, wrath, lust, sloth Менее важные серверы. Все сотрудники департамента IT могут входить на эти машины. @@ -2259,8 +4279,8 @@ basie&prompt.root; Если вы попытаетесь реализовать эти требования, ограничивая - каждого пользователя по отдельности, то вам придется добавить - на каждой машине в файл с паролями по одной строчке + каждого пользователя по отдельности, то вам придется добавить на каждой + машине в файл passwd по одной строчке -user для каждого пользователя, которому запрещено входить на эту систему. Если вы забудете даже одну строчку, у вас могут начаться проблемы. Гораздо проще делать это правильно во @@ -2282,25 +4302,21 @@ basie&prompt.root; модифицировать единственный конфигурационный файл. Первым шагом является инициализация карты NIS по имени netgroup. - Программа ypinit во FreeBSD по умолчанию этой карты не создает, хотя - реализация NIS будет ее поддерживает, как только она будет создана. - Чтобы создать пустую карту, просто наберите + Программа &man.ypinit.8; во FreeBSD по умолчанию этой карты не + создаёт, хотя реализация NIS будет её поддерживает, как только она + будет создана. Чтобы создать пустую карту, просто наберите - -ellington&prompt.root; vi /var/yp/netgroup - + ellington&prompt.root; vi /var/yp/netgroup и начните добавлять содержимое. Например, нам нужно по крайней мере четыре сетевых группы: сотрудники IT, практиканты IT, обычные сотрудники и интернатура. - -IT_EMP (,alpha,test-domain) (,beta,test-domain) + IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) USERS (,echo,test-domain) (,foxtrott,test-domain) \ (,golf,test-domain) -INTERNS (,able,test-domain) (,baker,test-domain) - +INTERNS (,able,test-domain) (,baker,test-domain) IT_EMP, IT_APP и так далее являются именами сетевых групп. Несколько слов в скобках служат для @@ -2331,6 +4347,7 @@ INTERNS (,able,test-domain) (,baker,test-domain) странице справочника по &man.netgroup.5;. + сетевые группы Не нужно использовать имена сетевых групп длиннее 8 символов, особенно если в вашем домене NIS имеются машины, работающие под управлением других операционных систем. Имена чувствительны к @@ -2340,18 +4357,16 @@ INTERNS (,able,test-domain) (,baker,test-domain) Некоторые клиенты NIS (отличные от FreeBSD) не могут работать с сетевыми группами, включающими большое количество записей. - Например, в некоторых старых версиях SunOS возникают проблемы, если + Например, в некоторых старых версиях &sunos; возникают проблемы, если сетевая группа содержит более 15 записей. Вы можете обойти это ограничение, создав несколько подгрупп с 15 или меньшим количеством пользователей и настоящую сетевую группу, состоящую из подгрупп: - -BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] + BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...] BIGGRP2 (,joe16,domain) (,joe17,domain) [...] -BIGGRP3 (,joe32,domain) (,joe33,domain) -BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 - +BIGGRP3 (,joe31,domain) (,joe32,domain) +BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Вы можете повторить этот процесс, если вам нужно иметь более 225 пользователей в одной сетевой группе. @@ -2359,21 +4374,17 @@ BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3 Активация и распространение вашей карты NIS проста: - -ellington&prompt.root; cd /var/yp -ellington&prompt.root; make - + ellington&prompt.root; cd /var/yp +ellington&prompt.root; make Это приведет к созданию трех карт NIS netgroup, netgroup.byhost и netgroup.byuser. Воспользуйтесь утилитой - &man.ypcat.1; для проверки доступности вашей новой карты NIS: + &man.ypcat.1; для проверки доступности ваших новых карт NIS: - -ellington&prompt.user; ypcat -k netgroup + ellington&prompt.user; ypcat -k netgroup ellington&prompt.user; ypcat -k netgroup.byhost -ellington&prompt.user; ypcat -k netgroup.byuser - +ellington&prompt.user; ypcat -k netgroup.byuser Вывод первой команды должен соответствовать содержимому файла /var/yp/netgroup. Вторая команда не выведет @@ -2385,15 +4396,11 @@ ellington&prompt.user; ypcat -k netgroup.byuser war, вам достаточно запустить &man.vipw.8; и заменить строку - -+::::::::: - + +::::::::: на - -+@IT_EMP::::::::: - + +@IT_EMP::::::::: Теперь только данные, касающиеся пользователей, определенных в сетевой группе IT_EMP, импортируются в @@ -2402,18 +4409,20 @@ ellington&prompt.user; ypcat -k netgroup.byuser К сожалению, это ограичение также касается и функции ~ командного процессора и всех подпрограмм, выполняющих преобразование между - именами пользователей и их численными идентификаторами. Другими - словами, команда cd ~user работать не - будет, команда ls -l будет выдавать числовые - идентификаторы вместо имен пользователей, а find . -user - joe -print работать откажется, выдавая сообщение - No such user. Чтобы это исправить, вам нужно будет - выполнить импорт всех записей о пользователях без - разрешения на вход на ваши серверы. + именами пользователей и их числовыми ID. Другими + словами, команда cd ~user + работать не будет, команда ls -l будет выдавать + числовые идентификаторы вместо имён пользователей, а + find . -user joe -print работать откажется, выдавая + сообщение No such user. Чтобы это исправить, + вам нужно будет выполнить импорт всех записей о пользователях + без разрешения на вход на ваши серверы. Это можно сделать, добавив еще одну строку в файл - /etc/master.passwd. Эта строка должна содержать - +:::::::::/sbin/nologin, что означает + /etc/master.passwd. Эта строка должна + содержать: + + +:::::::::/sbin/nologin, что означает Произвести импортирование всех записей с заменой командного процессора на /sbin/nologin в импортируемых записях. Вы можете заменить любое поле в строке с паролем, @@ -2436,20 +4445,16 @@ ellington&prompt.user; ypcat -k netgroup.byuser /etc/master.passwd на нечто, подобное следующему: - -+@IT_EMP::::::::: + +@IT_EMP::::::::: +@IT_APP::::::::: -+:::::::::/sbin/nologin - ++:::::::::/sbin/nologin Соответствующие строки для обычных рабочих станций могут иметь такой вид: - -+@IT_EMP::::::::: + +@IT_EMP::::::::: +@USERS::::::::: -+:::::::::/sbin/nologin - ++:::::::::/sbin/nologin И все было прекрасно до того момента, когда через несколько недель изменилась политика: Департамент IT начал нанимать интернатуру. @@ -2474,11 +4479,9 @@ ellington&prompt.user; ypcat -k netgroup.byuser для вашей карты NIS сетевой группы должны выглядеть таким образом: - -BIGSRV IT_EMP IT_APP + BIGSRV IT_EMP IT_APP SMALLSRV IT_EMP IT_APP ITINTERN -USERBOX IT_EMP ITINTERN USERS - +USERBOX IT_EMP ITINTERN USERS Этот метод задания ограничений на вход работает весьма хорошо, если вы можете выделить группы машин с одинаковыми ограничениями. К @@ -2490,18 +4493,16 @@ USERBOX IT_EMP ITINTERN USERS возможностью, которой можно воспользоваться при изменении политики, описанной выше. При таком развитии событий файл /etc/master.passwd на каждой машине содержит две - строки, начинающиеся с ``+''. Первая из них добавляет сетевую группу - с учетными записями, которым разрешено входить на эту машину, а вторая - добавляет все оставшиеся учетные записи с + строки, начинающиеся с +. Первая из них добавляет + сетевую группу с учётными записями, которым разрешено входить на эту + машину, а вторая добавляет все оставшиеся учетные записи с /sbin/nologin в качестве командного процессора. Хорошей идеей является использование ИМЕНИ МАШИНЫ заглавными буквами для имени сетевой группы. Другими словами, строки должны иметь такой вид: - -+@BOXNAME::::::::: -+:::::::::/sbin/nologin - + +@BOXNAME::::::::: ++:::::::::/sbin/nologin Как только вы завершите эту работу для всех ваших машин, вам не нужно будет снова модифицировать локальные версии @@ -2510,8 +4511,7 @@ USERBOX IT_EMP ITINTERN USERS сетевой группы для этого случая с некоторыми полезными дополнениями. - -# Сначала определяем группы пользователей + # Сначала определяем группы пользователей IT_EMP (,alpha,test-domain) (,beta,test-domain) IT_APP (,charlie,test-domain) (,delta,test-domain) DEPT1 (,echo,test-domain) (,foxtrott,test-domain) @@ -2535,7 +4535,7 @@ SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain) WAR BIGSRV FAMINE BIGSRV # Пользователю india необходим доступ к этому серверу -POLUTION BIGSRV (,india,test-domain) +POLLUTION BIGSRV (,india,test-domain) # # Этот очень важен и ему требуются большие ограничения доступа DEATH IT_EMP @@ -2545,8 +4545,7 @@ ONE SECURITY # # Ограничить машину единственным пользователем TWO (,hotel,test-domain) -# [...далее следуют другие группы] - +# [...далее следуют другие группы] Если вы используете какие-либо базы данных для управления учетными записями ваших пользователей, вы должны смочь создать первую @@ -2576,13 +4575,11 @@ TWO (,hotel,test-domain) NIS. Если вы забудете сделать это, то новый пользователь не сможет нигде войти, кроме как на главном сервере NIS. Например, если в лаборатории нам нужно добавить нового - пользователя “jsmith”, мы делаем вот что: + пользователя jsmith, мы делаем вот что: - -&prompt.root; pw useradd jsmith + &prompt.root; pw useradd jsmith &prompt.root; cd /var/yp -&prompt.root; make test-domain - +&prompt.root; make test-domain Вместо pw useradd jsmith вы можете также запустить команду adduser jsmith. @@ -2592,7 +4589,7 @@ TWO (,hotel,test-domain) Не помещайте административные учетные записи в карты NIS. Вам не нужно распространять административных пользователей и их пароли на машины, которые не должны иметь доступ - к таким учетным записям. + к таким учётным записям. @@ -2602,9 +4599,9 @@ TWO (,hotel,test-domain) входа в лабораторию с легкостью получат доступ. Это основное уязвимое место в любой централизованно - администрируемой системе, и это очень важный момент. Если вы не + администрируемой системе. Если вы не защищаете ваши серверы NIS, вы будете иметь дело с толпой - разозленных пользователей! + разозлённых пользователей! @@ -2628,79 +4625,121 @@ TWO (,hotel,test-domain) такие серверы практически не используются. - - Серверы NIS, которые также являются клиентами NIS - - Особое внимание следует уделить использованию ypserv в домене со - многими серверами, когда серверные машины являются также клиентами NIS. - Неплохо бы заставить серверы осуществить привязку к самим себе, - запретив рассылку запросов на привязку и возможно, перекрестную - привязку друг к другу. Если один сервер выйдет из строя, а другие - будут зависеть от него, то в результате могут возникнуть странные - ситуации. Постепенно все клиенты попадут в таймаут и попытаются - привязаться к другим серверам, но полученная задержка может быть - значительной, а странности останутся, так как серверы снова могут - привязаться друг к другу. - - Вы можете заставить хост выполнить привязку к конкретному серверу, - запустив команду ypbind с флагом - . - + + Серверы NIS, которые также являются клиентами NIS + + Особое внимание следует уделить использованию ypserv в домене со + многими серверами, когда серверные машины являются также клиентами NIS. + Неплохо бы заставить серверы осуществить привязку к самим себе, + запретив рассылку запросов на привязку и возможно, перекрестную + привязку друг к другу. Если один сервер выйдет из строя, а другие + будут зависеть от него, то в результате могут возникнуть странные + ситуации. Постепенно все клиенты попадут в таймаут и попытаются + привязаться к другим серверам, но полученная задержка может быть + значительной, а странности останутся, так как серверы снова могут + привязаться друг к другу. + + Вы можете заставить хост выполнить привязку к конкретному серверу, + запустив команду ypbind с флагом + . Если вы не хотите делать это вручную каждый + раз при перезагрузке + вашего сервера NIS, то можете добавить в файл + /etc/rc.conf такие строки: + + nis_client_enable="YES" # run client stuff as well +nis_client_flags="-S NIS domain,server" + + Дополнительную информацию можно найти на странице справки по + &man.ypbind.8;. + - - Использование libscrypt или libdescrypt - - Одним из общих вопросов, которые возникают в начале работы с NIS, - является вопрос совместимости криптографической библиотеки crypt. Если - ваш сервер NIS использует криптографические библиотеки DES, он сможет - поддерживать клиентов, которые тоже используют DES. Чтобы определить, - что используют ваши сервер и клиенты, взгляните на символические ссылки - в каталоге /usr/lib. Если машина настроена на - использование библиотек DES, это будет выглядеть примерно так: - - -&prompt.user; ls -l /usr/lib/*crypt* -lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libdescrypt.a -lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libdescrypt.so -lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libdescrypt.so.2 -lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libdescrypt_p.a --r--r--r-- 1 root wheel 13018 Nov 8 14:27 /usr/lib/libdescrypt.a -lrwxr-xr-x 1 root wheel 16 Nov 8 14:27 /usr/lib/libdescrypt.so@ -> libdescrypt.so.2 --r--r--r-- 1 root wheel 12965 Nov 8 14:27 /usr/lib/libdescrypt.so.2 --r--r--r-- 1 root wheel 14750 Nov 8 14:27 /usr/lib/libdescrypt_p.a - - - Если машина настроена на использование стандартных для FreeBSD - криптографических библиотек MD5, то они будут иметь примерно такой - вид: + + Форматы паролей + + + NIS + форматы паролей + + + Одним из общих вопросов, которые возникают в начале работы с NIS, + является вопрос совместимости форматов паролей. Если ваш сервер NIS + использует пароли, зашифрованные алгоритмом DES, то он будет + поддерживать только тех клиентов, что также используют DES. К + примеру, если в вашей сети имеются клиенты NIS, использующие &solaris;, + то вам, скорее всего, необходимо использовать пароли с шифрованием по + алгоритму DES. + + Чтобы понять, какой формат используют ваши серверы и клиенты, + загляните в файл /etc/login.conf. Если хост + настроен на использование паролей, зашифрованных по алгоритму DES, + то класс default будет содержать запись вроде + следующей: + + default:\ + :passwd_format=des:\ + :copyright=/etc/COPYRIGHT:\ + [Последующие строки опущены] + + Другими возможными значениями для passwd_format + являются blf и md5 (для паролей, + шифруемых по стандартам Blowfish и MD5 соответственно). + + Если вы внесли изменения в файл + /etc/login.conf, то вам также нужно перестроить + базу данных параметров входа в систему, что достигается запуском + следующей команды пользователем root: + + &prompt.root; cap_mkdb /etc/login.conf - -&prompt.user; ls -l /usr/lib/*crypt* -lrwxrwxrwx 1 root wheel 13 Jul 15 08:55 /usr/lib/libcrypt.a@ -> libscrypt.a -lrwxrwxrwx 1 root wheel 14 Jul 15 08:55 /usr/lib/libcrypt.so@ -> libscrypt.so -lrwxrwxrwx 1 root wheel 16 Jul 15 08:55 /usr/lib/libcrypt.so.2@ -> libscrypt.so.2 -lrwxrwxrwx 1 root wheel 15 Jul 15 08:55 /usr/lib/libcrypt_p.a@ -> libscrypt_p.a --r--r--r-- 1 root wheel 6194 Nov 8 14:27 /usr/lib/libscrypt.a -lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscrypt.so.2 --r--r--r-- 1 root wheel 7579 Nov 8 14:27 /usr/lib/libscrypt.so.2 --r--r--r-- 1 root wheel 6684 Nov 8 14:27 /usr/lib/libscrypt_p.a - - - Если у вас возникли проблемы с аутентификацией клиента NIS, начать - её решать определённо стоит отсюда. Если вы хотите + + Формат паролей, которые уже находятся в файле + /etc/master.passwd, не будет изменён до тех пор, + пока пользователь не сменит свой пароль после + перестроения базы данных параметров входа в систему. + + + После этого, чтобы удостовериться в том, что пароли зашифрованы + в том формате, который выбран вами, нужно проверить, что строка + crypt_default в /etc/auth.conf + указывает предпочтение выбранного вами формата паролей. Для этого + поместите выбранный формат первым в списке. Например, при + использовании DES-шифрования паролей строка будет выглядеть так: + + crypt_default = des blf md5 + + Выполнив вышеперечисленные шаги на каждом из серверов и клиентов + NIS, работающих на FreeBSD, вы можете обеспечить их согласованность + относительно используемого в вашей сети формата паролей. Если у вас + возникли проблемы с аутентификацией клиента NIS, начать + её решать определённо стоит отсюда. Запомните: если вы хотите использовать сервер NIS в гетерогенной сети, вам, наверное, нужно будет использовать DES на всех системах в силу того, что это минимальный общий стандарт. - - DHCP + + + + + Greg + Sutter + Текст написал + + + - Текст написал &a.gsutter;, март 2000. + DHCP Что такое DHCP? + + Dynamic Host Configuration Protocol + DHCP + + + Internet Software Consortium (ISC) + DHCP, или Dynamic Host Configuration Protocol (Протокол Динамической Конфигурации Хостов), описывает порядок, по которому @@ -2714,25 +4753,30 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp Что описывается в этом разделе - В этом разделе Руководства делается попытка описать только те части - системы DHCP, которые интегрированы с FreeBSD; таким образом, серверная - часть не описывается. Справочные страницы по DHCP, кроме ссылок, - дающихся ниже, будут вам весьма полезны. + В этом разделе описываются компоненты системы ISC DHCP как со стороны + клиента, так и со стороны сервера. Программа, работающая на клиентской + стороне, dhclient, интегрирована в поставку FreeBSD, + а серверная часть доступна в виде порта + net/isc-dhcp3. Кроме ссылок ниже, + много полезной информации находится на страницах справочной системы, + описывающих &man.dhclient.8;, &man.dhcp-options.5; и + &man.dhclient.conf.5;. Как это работает - Когда на клиентской машине выполняется программа dhclient, - являющаяся клиентом DHCP, она начинает широковещательную рассылку - запросов на получение настроечной информации. По умолчанию эти запросы - делаются на 68 порт UDP. Сервер отвечает на UDP 67, выдавая клиенту - адрес IP и другую необходимую информацию, такую, как сетевую маску, - маршрутизатор и серверы DNS. Вся эта информация дается в форме - "аренды" DHCP и верна только определенное время (что настраивается - администратором сервера DHCP). При таком подходе устаревшие адреса IP - тех клиентов, которые больше не подключены к сети, могут быть - автоматически использоваться повторно. + UDP + Когда на клиентской машине выполняется программа + dhclient, являющаяся клиентом DHCP, она начинает + широковещательную рассылку запросов на получение настроечной информации. + По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP + 67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как + сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в + форме аренды DHCP и верна только определенное время (что + настраивается администратором сервера DHCP). При таком подходе + устаревшие адреса IP тех клиентов, которые больше не подключены к сети, + могут автоматически использоваться повторно. Клиенты DHCP могут получить от сервера очень много информации. Подробный список находится в странице Справочника @@ -2749,17 +4793,25 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp DHCP. Утилита dhclient включена во все версии FreeBSD, начиная с 3.2. + + sysinstall + DHCP поддерживается утилитой sysinstall. При настройке сетевого интерфейса из программы sysinstall первый - вопрос, который вам задается, это "Do you want to try dhcp - configuration of this interface?" ("Хотите ли вы попробовать настроить - этот интерфейс через dhcp?"). Утвердительный ответ приведёт к запуску - программы dhclient, и при удачном его выполнении к автоматическому - заданию информации для настройки интерфейса. + вопрос, который вам задается, это Do you want to try DHCP + configuration of this interface? (Хотите ли вы попробовать + настроить этот интерфейс через DHCP?). Утвердительный ответ + приведёт к запуску программы dhclient, и при удачном + его выполнении к автоматическому заданию информации для настройки + интерфейса. Есть две вещи, которые вы должны сделать для того, чтобы ваша система использовала DHCP при загрузке: + + DHCP + требования + Убедитесь, что устройство bpf @@ -2779,11 +4831,12 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp устройство bpf является также тем самым устройством, которое позволяет работать программам-снифферам пакетов (хотя для этого они должны быть запущены пользователем - root). Наличие устройства bpf - необходимо для использования DHCP, но если - вы чересчур беспокоитесь о безопасности, то вам нельзя добавлять - устройство bpf в ядро для того, чтобы - в будущем использовать DHCP. + root). Наличие устройства + bpf необходимо для + использования DHCP, но если вы чересчур беспокоитесь о + безопасности, то вам нельзя добавлять устройство + bpf в ядро только для того, чтобы + в неопределённом будущем использовать DHCP. @@ -2791,15 +4844,14 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp Отредактируйте ваш файл /etc/rc.conf, включив в него следующее: - -ifconfig_fxp0="DHCP" - + ifconfig_fxp0="DHCP" - Обязательно замените fxp0 именем интерфейса, - который вы хотите настроить динамически. + Обязательно замените fxp0 на имя интерфейса, + который вы хотите настраивать динамически, как это описано в . Если dhclient в вашей системе находится в другом @@ -2807,20 +4859,26 @@ ifconfig_fxp0="DHCP" dhclient, то также укажите следующее (изменив так, как вам нужно): - -dhcp_program="/sbin/dhclient" -dhcp_flags="" - - - Сервер DHCP, dhcpd, включен как часть порта - isc-dhcp2 в коллекции портов. Этот порт содержит - полный дистрибутив ISC DHCP, состоящий из клиента, сервера, агент - для перенаправления запросов и документация. + dhcp_program="/sbin/dhclient" +dhcp_flags="" + + + DHCP + сервер + + Сервер DHCP, dhcpd, включён как часть порта + net/isc-dhcp3 в коллекцию портов. + Этот порт содержит полный дистрибутив ISC DHCP, состоящий из клиента, + сервера, агента для перенаправления запросов и документации. Файлы + + DHCP + конфигурационные файлы + /etc/dhclient.conf @@ -2828,8 +4886,8 @@ dhcp_flags="" dhclient требует наличия конфигурационного файла, /etc/dhclient.conf. Как правило, файл содержит только комментарии, а настройки по умолчанию достаточно - хороши. Этот настроечный файл описан в странице Справочника - &man.dhclient.conf.5;. + хороши. Этот настроечный файл описан на страницах справочной + системы по &man.dhclient.conf.5;. @@ -2861,16 +4919,2842 @@ dhcp_flags="" - - Дополнительная литература + + Дополнительная литература + + Полное описание протокола DHCP дается в RFC 2131. Кроме + того, дополнительная информация есть на сервере dhcp.org. + + + + Установка и настройка сервера DHCP + + + Чему посвящён этот раздел + + Этот раздел даёт информацию о том, как настроить систему + FreeBSD для работы в качестве сервера DHCP на основе реализации + пакета DHCP от ISC (Internet Software Consortium). + + Серверная часть пакета не поставляется как часть FreeBSD, так + что вам потребуется установить порт + net/isc-dhcp3 для получения + этого сервиса. Обратитесь к для получения + более полной информации об использовании коллекции портов. + + + + Установка сервера DHCP + + + DHCP + установка + + + Для того, чтобы настроить систему FreeBSD на работу в качестве + сервера DHCP, вам необходимо обеспечить присутствие устройства + &man.bpf.4;, вкомпилированного в ядро. Для этого + добавьте строку pseudo-device bpf в файл + конфигурации вашего ядра. Для получения более полной информации о + построении ядер, обратитесь к . + + Устройство bpf уже входит в состав + ядра GENERIC, поставляемого с FreeBSD, так что + вам не нужно создавать собственное ядро для обеспечения работы + DHCP. + + + Те, кто обращает особое внимание на вопросы безопасности, + должны заметить, что bpf является тем + устройством, что позволяет нормально работать снифферам пакетов + (хотя таким программам требуются привилегированный доступ). + Наличие устройства bpf + обязательно для использования DHCP, но если + вы очень обеспокоены безопасностью, наверное, вам не нужно + включать bpf в ваше ядро только потому, + что в отдалённом будущем вы собираетесь использовать DHCP. + + + Следующим действием, которое вам нужно выполнить, является + редактирование примерного dhcpd.conf, который + устанавливается в составе порта net/isc-dhcp3. По умолчанию это файл + /usr/local/etc/dhcpd.conf.sample, и вы должны + скопировать его в /usr/local/etc/dhcpd.conf + перед тем, как его редактировать. + + + + Настройка сервера DHCP + + + DHCP + dhcpd.conf + + + dhcpd.conf состоит из деклараций + относительно подсетей и хостов, и проще всего описывается на + примере: + + option domain-name "example.com"; +option domain-name-servers 192.168.4.100; +option subnet-mask 255.255.255.0; + +default-lease-time 3600; +max-lease-time 86400; +ddns-update-style none; + +subnet 192.168.4.0 netmask 255.255.255.0 { + range 192.168.4.129 192.168.4.254; + option routers 192.168.4.1; +} + +host mailhost { + hardware ethernet 02:03:04:05:06:07; + fixed-address mailhost.example.com; +} + + + + Этот параметр задаёт домен, который будет выдаваться + клиентам в качестве домена, используемого по умолчанию при + поиске. Обратитесь к страницам справочной системы по + &man.resolv.conf.5; для получения дополнительной информации о + том, что это значит. + + + + Этот параметр задаёт список разделённых запятыми серверов + DNS, которые должен использовать клиент. + + + + Маска сети, которая будет выдаваться клиентам. + + + + Клиент может запросить определённое время, которое будет + действовать выданная информация. В противном случае сервер + выдаст настройки с этим сроком (в секундах). + + + + Это максимальное время, на которое сервер будет выдавать + конфигурацию. Если клиент запросит больший срок, он будет + подтверждён, но будет действовать только + max-lease-time секунд. + + + + Этот параметр задаёт, будет ли сервер DHCP пытаться + обновить DNS при выдаче или освобождении конфигурационной + информации. В реализации ISC этот параметр является + обязательным. + + + + Это определение того, какие IP-адреса должны использоваться + в качестве резерва для выдачи клиентам. IP-адреса между и + включая границы, будут выдаваться клиентам. + + + + Объявление маршрутизатора, используемого по умолчанию, + который будет выдаваться клиентам. + + + + Аппаратный MAC-адрес хоста (чтобы сервер DHCP мог + распознать хост, когда тот делает запрос). + + + + Определение того, что хосту всегда будет выдаваться один и + тот же IP-адрес. Заметьте, что указание здесь имени хоста + корректно, так как сервер DHCP будет разрешать имя хоста + самостоятельно до того, как выдать конфигурационную + информацию. + + + + Как только вы закончите составлять свой + dhcpd.conf, вы можете продолжить работу + запуском сервера при помощи следующей команды: + + &prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh start + + Если в будущем вам понадобится сделать изменения в настройке + вашего сервера, то важно заметить, что посылка сигнала + SIGHUP приложению + dhcpd не приведёт к + перезагрузке настроек, как это бывает для большинства даемонов. + Вам нужно послать сигнал SIGTERM для остановки + процесса, а затем перезапустить его при помощи вышеприведённой + команды. + + + + Файлы + + + DHCP + конфигурационный файлы + + + + + /usr/local/sbin/dhcpd + + dhcpd скомпонован статически и + расположен в каталоге /usr/local/sbin. + Страницы справочной системы &man.dhcpd.8;, + устанавливаемые портом, содержат более полную информацию о + dhcpd. + + + + /usr/local/etc/dhcpd.conf + + dhcpd требует наличия + конфигурационного файла, + /usr/local/etc/dhcpd.conf, до того, как + он будет запущен и начнёт предоставлять сервис клиентам. + Необходимо, чтобы этот файл содержал все данные, которая + будет выдаваться обслуживаемым клиентам, а также информацию о + работе сервера. Этот конфигурационный файл описывается на + страницах справочной системы &man.dhcpd.conf.5;, которые + устанавливаются портом. + + + + /var/db/dhcpd.leases + + Сервер DHCP ведёт базу данных выданной информации в этом + файле, который записывается в виде протокола. Страницы + справочной системы &man.dhcpd.leases.5;, устанавливаемые портом, + дают гораздо более подробное описание. + + + + /usr/local/sbin/dhcrelay + + dhcrelay используется в сложных + ситуациях, когда сервер DHCP пересылает запросы от клиента + другому серверу DHCP в отдельной сети. На страницах + справочной системы &man.dhcrelay.8;, которые устанавливаются + портом, даётся более полное описание. + + + + + + + + + + + Chern + Lee + Текст предоставил + + + + + DNS + + + Обзор + + BIND + По умолчанию во FreeBSD используется одна из версий программы BIND + (Berkeley Internet Name Domain), являющейся самой распространенной + реализацией протокола DNS. DNS - это протокол, при помощи которого + имена преобразуются в IP-адреса и наоборот. Например, в ответ на + запрос о www.FreeBSD.org будет получен IP-адрес + веб-сервера Проекта FreeBSD, а запрос о + ftp.FreeBSD.org возвратит IP-адрес соответствующей + машины с FTP-сервером. Точно также происходит и обратный процесс. + Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для + выполнения запросов к DNS вовсе не обязательно иметь в системе + работающий сервер имён. + + DNS + В сети Интернет DNS управляется через достаточно сложную систему + авторизированных корневых серверов имён, и других менее крупных + серверов имён, которые содержат и кэшируют информацию о конкретных + доменах. + + В этом документа рассматривается BIND 8.x, так как это стабильная + версия, используемая во FreeBSD. BIND 9.x может быть установлен как + порт net/bind9. + + Протокол DNS стандартизован в RFC1034 и RFC1035. + + На данный момент пакет BIND поддерживается Internet Software Consortium + (www.isc.org). + + + + Используемая терминология + + Для понимания этого документа нужно понимать значения некоторых + терминов, связанных с работой DNS. - Полное описание протокола DHCP дается в RFC 2131. Кроме - того, дополнительная информация есть на сервере dhcp.org. + + + + + Термин + Определение + + + + + + Прямой запрос к DNS (forward DNS) + + Преобразование имён хостов в адреса IP + + + + Ориджин (origin) + + Обозначает домен, покрываемый конкретным файлом + зоны + + + + named, bind, сервер + имён + + Общеупотребительные названия для обозначения пакета BIND, + обеспечивающего работу сервера имён во FreeBSD. + + + ресолвер + + + Ресолвер + + Системный процесс, посредством которого машина обращается + к серверу имён для получения информации о зоне + + + обратный DNS + + + Обратный DNS (reverse DNS) + + Операция, обратная прямому запросу к DNS; преобразование + адресов IP в имена хостов + + + корневая зона + + + Корневая зона + + Начало иерархии зон Интернет. Все зоны находятся под + корневой зоной, подобно тому, как все файлы располагаются ниже + корневого каталога. + + + + Зона + + Отдельный домен, поддомен или часть DNS, управляемая + одним сервером. + + + + + + + зоны + примеры + + + Примеры зон: + + + + . является корневой зоной + + + + org. является зоной ниже корневой зоны + + + + example.org является зоной под зоной + org. + + + + foo.example.org. является поддоменом, + зоной под зоной example.org. + + + + 1.2.3.in-addr.arpa является зоной, в которую + включены все IP-адреса, формирующие пространство адресов + 3.2.1.*. + + + + Как можно видеть, уточняющая часть имени хоста появляется слева. + Например, example.org. более точен, чем + org., также, как org. более + точен, чем корневая зона. Расположение каждой части имени хоста сильно + похоже на файловую систему: каталог /dev + расположен в корневой файловой системе, и так далее. + + + + Причины, по которым вам может понадобиться сервер имён + + Сервера имён обычно используются в двух видах: авторитетный сервер + имён и кэширующий сервер имён. + + Авторитетный сервер имён нужен, когда: + + + + нужно предоставлять информацию о DNS остальному миру, отвечая + на запросы авторизированно. + + + + зарегистрирован домен, такой, как + example.org и в этом домене требуется + поставить имена машин в соответствие с их адресами IP. + + + + блоку адресов IP требуется обратные записи DNS (IP в имена + хостов). + + + + резервный (slave) сервер имён должен отвечать на запросы о + домене, когда основной не работает или не доступен. + + + + Кэширующий сервер имён нужен, когда: + + + + локальный сервер DNS может кэшировать информацию и отвечать на + запросы быстрее, чем это происходит при прямом опросе внешнего + сервера имён. + + + + требуется уменьшение общего сетевого трафика (DNS + составляет около 5% всего трафика Интернет, или чуть + больше). + + + + Например, когда кто-нибудь запрашивает информацию о + www.FreeBSD.org, то обычно ресолвер обращается к + серверу имён вашего провайдера, посылает запрос и ожидает ответа. С + локальным кэширующим сервером DNS запрос во внешний мир будет делаться + всего один раз. Каждый дополнительный запрос не будет посылаться за + пределы локальной сети, потому что информация уже имеется в + кэше. + + + + Как это работает + + Во FreeBSD даемон BIND, по очевидным причинам, называется + named. + + + + + + Файл + Описание + + + + + + named + даемон BIND + + + + ndc + программа управления даемоном сервера имён + + + + /etc/namedb + каталог, в котором располагается вся информация о зонах + BIND + + + + /etc/namedb/named.conf + конфигурационный файл для даемона + + + + + + Файлы зон обычно располагаются в каталоге + /etc/namedb и содержат информацию о зоне DNS, + за которую отвечает сервер имён. + + + + Запуск BIND + + + BIND + запуск + + Так как сервер имён BIND устанавливается по умолчанию, его + настройка сравнительно проста. + + Чтобы даемон named запускался во время загрузки, сделайте следующие + изменения в файле /etc/rc.conf + + named_enable="YES" + + Для запуска даемона вручную (после его настройки) + + &prompt.root; ndc start + + + + Конфигурационные файлы + + + BIND + конфигурационные файлы + + + + Использование <command>make-localhost</command> + + Обязательно выполните следующие команды: + + &prompt.root; cd /etc/namedb +&prompt.root; sh make-localhost + + для того, чтобы правильно создать файл + /etc/namedb/localhost.rev локальной обратной + зоны для loopback-интерфейса. + + + + <filename>/etc/namedb/named.conf</filename> + + // $FreeBSD$ +// +// Refer to the named(8) manual page for details. If you are ever going +// to setup a primary server, make sure you've understood the hairy +// details of how DNS is working. Even with simple mistakes, you can +// break connectivity for affected parties, or cause huge amount of +// useless Internet traffic. + +options { + directory "/etc/namedb"; + +// In addition to the "forwarders" clause, you can force your name +// server to never initiate queries of its own, but always ask its +// forwarders only, by enabling the following line: +// +// forward only; + +// If you've got a DNS server around at your upstream provider, enter +// its IP address here, and enable the line below. This will make you +// benefit from its cache, thus reduce overall DNS traffic in the +Internet. +/* + forwarders { + 127.0.0.1; + }; +*/ + + Как и говорится в комментариях, если вы хотите получить эффект от + использования кэша провайдера, то можно включить раздел + forwarders. В обычном случае сервер имён будет + рекурсивно опрашивать определённые серверы имён Интернет до тех пор, + пока не получит ответ на свой запрос. При включении этого раздела + он будет автоматически опрашивать сервер имён вашего провайдера (или + тот, который здесь указан), используя преимущества его кэша. + наличия нужной информации. Если соответствующий сервер имён провайдера + работает быстро и имеет хороший канал связи, то в результате такой + настройки вы можете получить хороший результат. + + + 127.0.0.1 здесь + работать не будет. Измените + его на IP-адрес сервера имён провайдера. + + + /* + * If there is a firewall between you and name servers you want + * to talk to, you might need to uncomment the query-source + * directive below. Previous versions of BIND always asked + * questions using port 53, but BIND 8.1 uses an unprivileged + * port by default. + */ + // query-source address * port 53; + + /* + * If running in a sandbox, you may have to specify a different + * location for the dumpfile. + */ + // dump-file "s/named_dump.db"; +}; + +// Note: the following will be supported in a future release. +/* +host { any; } { + topology { + 127.0.0.0/8; + }; +}; +*/ + +// Setting up secondaries is way easier and the rough picture for this +// is explained below. +// +// If you enable a local name server, don't forget to enter 127.0.0.1 +// into your /etc/resolv.conf so this server will be queried first. +// Also, make sure to enable it in /etc/rc.conf. + +zone "." { + type hint; + file "named.root"; +}; + +zone "0.0.127.IN-ADDR.ARPA" { + type master; + file "localhost.rev"; +}; + +zone +"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" { + type master; + file "localhost.rev"; +}; + +// NB: Do not use the IP addresses below, they are faked, and only +// serve demonstration/documentation purposes! +// +// Example secondary config entries. It can be convenient to become +// a secondary at least for the zone where your own domain is in. Ask +// your network administrator for the IP address of the responsible +// primary. +// +// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone! +// (This is the first bytes of the respective IP address, in reverse +// order, with ".IN-ADDR.ARPA" appended.) +// +// Before starting to setup a primary zone, better make sure you fully +// understand how DNS and BIND works, however. There are sometimes +// unobvious pitfalls. Setting up a secondary is comparably simpler. +// +// NB: Don't blindly enable the examples below. :-) Use actual names +// and addresses instead. +// +// NOTE!!! FreeBSD runs bind in a sandbox (see named_flags in rc.conf). +// The directory containing the secondary zones must be write accessible +// to bind. The following sequence is suggested: +// +// mkdir /etc/namedb/s +// chown bind:bind /etc/namedb/s +// chmod 750 /etc/namedb/s + + Дополнительная информация о запуске BIND в ограниченном окружении + находится в соответствующем + разделе. + + /* +zone "example.com" { + type slave; + file "s/example.com.bak"; + masters { + 192.168.1.1; + }; +}; + +zone "0.168.192.in-addr.arpa" { + type slave; + file "s/0.168.192.in-addr.arpa.bak"; + masters { + 192.168.1.1; + }; +}; +*/ + + Это примеры описаний прямой и обратной зон из файла + named.conf для вторичных серверов. + + Для каждого новой зоны, которую будет обслуживать сервер имён, + в файл named.conf должна быть добавлена + запись + + К примеру, самая простая запись для домена example.org может выглядеть вот так: + + zone "example.org" { + type master; + file "example.org"; +}; + + Зона является первичной, что отражается в поле + , и информация о зоне хранится в файле + /etc/namedb/example.org, что указывается в + поле . + + zone "example.org" { + type slave; + file "example.org"; +}; + + В случае вторичной зоны информация о ней передается с основного + сервера имён для заданной зоны и сохраняется в указанном файле. Если + и когда основной сервер имён выходит и строя или недосягаем, то + скачанная информация о зоне будет находиться на вторичных серверах и + они смогут обслуживать эту зону. + + + + Файлы зон + + Пример файла зоны example.org для основного + сервера (располагающийся в файле + /etc/namedb/example.org) имеет такой + вид: + + $TTL 3600 + +example.org. IN SOA ns1.example.org. admin.example.org. ( + 5 ; Serial + 10800 ; Refresh + 3600 ; Retry + 604800 ; Expire + 86400 ) ; Minimum TTL + +; DNS Servers +@ IN NS ns1.example.org. +@ IN NS ns2.example.org. + +; Machine Names +localhost IN A 127.0.0.1 +ns1 IN A 3.2.1.2 +ns2 IN A 3.2.1.3 +mail IN A 3.2.1.10 +@ IN A 3.2.1.30 + +; Aliases +www IN CNAME @ + +; MX Record +@ IN MX 10 mail.example.org. + + Заметьте, что все имена хостов, оканчивающиеся на ., + задают полное имя, тогда как все имена без символа . на + конце считаются заданными относительно ориджина. Например, + www преобразуется в www + origin. + В нашем воображаемом файле ориджином является + example.org., так что + www преобразуется в + www.example.org. + + Файл зоны имеет следующий формат: + + recordname IN recordtype value + + + DNS + записи + + Наиболее часто используемые записи DNS: + + + + SOA + + + начало зоны ответственности + + + + + NS + + + авторитативный сервер имен + + + + + A + + + адрес хоста + + + + + CNAME + + + каноническое имя для алиаса + + + + + MX + + + обмен почтой + + + + + PTR + + + указатель на доменное имя (используется в обратных + зонах DNS) + + + + + example.org. IN SOA ns1.example.org. admin.example.org. ( + 5 ; Serial + 10800 ; Refresh after 3 hours + 3600 ; Retry after 1 hour + 604800 ; Expire after 1 week + 86400 ) ; Minimum TTL of 1 day + + + + example.org. + + + имя домена, а также ориджин для этого файла зоны. + + + + + ns1.example.org. + + + основной/авторитативный сервер имён для этой зоны + + + + + admin.example.org. + + + человек, отвечающий за эту зону, адрес электронной почты с + подменённым символом @. (admin@example.org + становится admin.example.org) + + + + + 5 + + + последовательный номер файла. При каждом изменении файла + зоны это число должно увеличиваться. В настоящее время для + нумерации многие администраторы предпочитают формат + ггггммддвв. 2001041002 будет означать, что + файл последний раз изменялся 10.04.2001, а последнее число 02 + означает, что это была вторая модификация файла за день. + Последовательный номер важен, так как он служит для того, чтобы + вторичные серверы узнавали об обновлении зоны. + + + + + @ IN NS ns1.example.org. + + Это NS-запись. Такие записи должны иметься для + всех серверов имён, которые будут отвечать за зону. Символ + @, используемый здесь, преобразуется в + example.org. Этот + символ @ соответствует ориджину. + + localhost IN A 127.0.0.1 +ns1 IN A 3.2.1.2 +ns2 IN A 3.2.1.3 +mail IN A 3.2.1.10 +@ IN A 3.2.1.30 + + Записи типа A служат для обозначения имён машин. Как это видно + выше, имя ns1.example.org будет преобразовано в + 3.2.1.2. И снова здесь используется + символ ориджина @, обозначая, что + example.org будет преобразовано в 3.2.1.30. + + www IN CNAME @ + + Записи с каноническими именами обычно используются для присвоения + машинам псевдонимов. В этом примере www является + псевдонимом для машины, соответствующей ориджину, то есть + example.org (3.2.1.30). + Записи CNAME могут использоваться для присвоения + псевдонимов именам хостов или для использования одного имени + несколькими машинами по очереди. + + @ IN MX 10 mail.example.org. + + MX-запись указывает, какие почтовые серверы + отвечают за обработку входящей электронной почты для зоны. mail.example.org является именем почтового + сервера, а 10 обозначает приоритет этого почтового сервера. + + Можно иметь несколько почтовых серверов с приоритетами 3, 2 и 1. + Почтовый сервер, пытающийся доставить почту для example.org, + сначала попробует связаться с машиной, имеющий MX-запись с самым + большим приоритетом, затем с приоритетом поменьше и так далее, до тех + пор, пока почта не будет отправлена. + + Для файлов зон in-addr.arpa (обратные записи DNS) используется тот + же самый формат, отличающийся только использованием записей + PTR вместо A или + CNAME. + + $TTL 3600 + +1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. ( + 5 ; Serial + 10800 ; Refresh + 3600 ; Retry + 604800 ; Expire + 3600 ) ; Minimum + +@ IN NS ns1.example.org. +@ IN NS ns2.example.org. + +2 IN PTR ns1.example.org. +3 IN PTR ns2.example.org. +10 IN PTR mail.example.org. +30 IN PTR example.org. + + В этом файле дается полное соответствие имён хостов IP-адресам в + нашем описанном ранее вымышленном домене. + - + + Кэширующий сервер имён + + BIND + кэширующий сервер имён + + + Кэширующий сервер имён - это сервер имён, не отвечающий ни + за какую зону. Он просто выполняет запросы от своего имени и сохраняет + результаты для последующего использования. Для настройки такого + сервера достаточно исключить все описания зон из стандартной + конфигурации сервера имён. + + + + Запуск <application>named</application> в песочнице + + + BIND + работа в песочнице + + + + chroot + + + Для дополнительной безопасности вам может потребоваться запускать + &man.named.8; с правами непривилегированного пользователя и настроить + его на выполнение &man.chroot.8; в каталог-песочницу. Это позволит + сделать недоступным для даемона named все, + что расположено вне песочницы. Если named + будет взломан, то это поможет уменьшить возможный ущерб. По умолчанию + во FreeBSD имеются пользователь и группа с именами + bind, которые предназначены именно для такого + использования. + + + Многие рекомендуют вместо настройки + named на использование + chroot, запускать named + внутри &man.jail.8;. В этом разделе такой подход не + рассматривается. + + + Так как named не сможет обратиться ни к + чему вне песочницы (например, совместно используемым библиотекам, + сокетам протоколов и так далее), то нужно выполнить несколько шагов, + чтобы named смог работать нормально. В + следующем списке предполагается, что каталогом песочницы является + /etc/namedb и что вы не делали никаких изменений + в содержимом этого каталога. Выполните следующие шаги, работая как + пользователь root. + + + + Создайте все каталоги, которые ожидает увидеть + named: + + &prompt.root; cd /etc/namedb +&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave +&prompt.root; chown bind:bind slave var/* + + + + Программе named нужен доступ с + правом записи в эти каталоги, так что это все, что мы ей + предоставим. + + + + + + Измените и создайте базовые файлы зоны и настроек: + + &prompt.root; cp /etc/localtime etc +&prompt.root; mv named.conf etc && ln -sf etc/named.conf +&prompt.root; mv named.root master + +&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master +&prompt.root; cat > master/named.localhost +$ORIGIN localhost. +$TTL 6h +@ IN SOA localhost. postmaster.localhost. ( + 1 ; serial + 3600 ; refresh + 1800 ; retry + 604800 ; expiration + 3600 ) ; minimum + IN NS localhost. + IN A 127.0.0.1 +^D + + + + Это позволит программе named + протоколировать правильное время в &man.syslogd.8; + + + + + + Если вы используете &os; версии ранее 4.9-RELEASE, то постройте + статически скомпонованную копию + named-xfer и скопируйте её в + песочницу: + + &prompt.root; cd /usr/src/lib/libisc +&prompt.root; make cleandir && make cleandir && make depend && make all +&prompt.root; cd /usr/src/lib/libbind +&prompt.root; make cleandir && make cleandir && make depend && make all +&prompt.root; cd /usr/src/libexec/named-xfer +&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all +&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xfer + + После установки статически скомпонованного + named-xfer, во избежание появления старых копий + библиотек и программ в дереве исходного кода, требуется некоторая + зачистка: + + &prompt.root; cd /usr/src/lib/libisc +&prompt.root; make cleandir +&prompt.root; cd /usr/src/lib/libbind +&prompt.root; make cleandir +&prompt.root; cd /usr/src/libexec/named-xfer +&prompt.root; make cleandir + + + + Иногда при выполнении этого шага возникают ошибки. Если + это случилось, выполните такую команду: + + &prompt.root; cd /usr/src && make cleandir && make cleandir + + и удалите ваше дерево /usr/obj: + + &prompt.root; rm -fr /usr/obj && mkdir /usr/obj + + При этом из вашего дерева исходных текстов будет удалён + весь мусор, и повторение вышеописанных шагов + должно выполниться успешно. + + + + Если вы используете &os; 4.9-RELEASE или более позднюю версию, + то копия named-xfer в каталоге + /usr/libexec по умолчанию является статически + скомпонованной, и вы можете просто скопировать её в песочницу при + помощи команды &man.cp.1;. + + + + Создайте файл устройства dev/null, + который named может видеть и писать в + него: + + &prompt.root; cd /etc/namedb/dev && mknod null c 2 2 +&prompt.root; chmod 666 null + + + + Создайте символическую ссылку + /var/run/ndc на + /etc/namedb/var/run/ndc: + + &prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndc + + + Это просто для того, чтобы не задавать опцию + при каждом запуске &man.ndc.8;. Так как + содержимое каталога /var/run удаляется при загрузке, и если это + показалось вам полезным, то вы можете добавить эту команду + в cron-таблицу для root с использованием параметра + . Обратитесь к справочной странице по + &man.crontab.5; для получения более полной информации + относительно этого. + + + + + Настройте &man.syslogd.8; на создание дополнительного + протоколирующего сокета log, в который + может писать named. Для этого добавьте + -l /etc/namedb/dev/log к переменной + syslogd_flags из файла + /etc/rc.conf. + + + + Задайте запуск named и выполнение + chroot в песочницу, добавив следующее в + /etc/rc.conf: + + named_enable="YES" +named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf" + + + Заметьте, что конфигурационный файл + /etc/named.conf именуется по полному + имени относительно песочницы, то есть в + вышеприведённой строке указывается файл, который на самом деле + является файлом + /etc/namedb/etc/named.conf. + + + + + Следующим шагом является редактирование файла + /etc/namedb/etc/named.conf так, чтобы + named знал, какую зону загружать и где найти + их на диске. Далее следует прокомментированный пример (все, что + специально не прокомментировано, ничем не отличается от настройки + сервера DNS, работающего не в песочнице): + + options { + directory "/"; + named-xfer "/bin/named-xfer"; + version ""; // Не выдавайте версию BIND + query-source address * port 53; +}; +// управляющий сокет ndc +controls { + unix "/var/run/ndc" perm 0600 owner 0 group 0; +}; +// Далее следуют зоны: +zone "localhost" IN { + type master; + file "master/named.localhost"; + allow-transfer { localhost; }; + notify no; +}; +zone "0.0.127.in-addr.arpa" IN { + type master; + file "master/localhost.rev"; + allow-transfer { localhost; }; + notify no; +}; +zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" { + type master; + file "master/localhost-v6.rev"; + allow-transfer { localhost; }; + notify no; +}; +zone "." IN { + type hint; + file "master/named.root"; +}; +zone "private.example.net" in { + type master; + file "master/private.example.net.db"; + allow-transfer { 192.168.10.0/24; }; +}; +zone "10.168.192.in-addr.arpa" in { + type slave; + masters { 192.168.10.2; }; + file "slave/192.168.10.db"; +}; + + + + В директиве directory указан каталог + /, так как все файлы, которые нужны для + named, находятся внутри этого каталога + (вспомните, что это равнозначно обычному + пользовательскому /etc/namedb. + + + + Задает полный путь к двоичному выполнимому файлу + named-xfer (внутри границ видимости + named). Это необходимо, так как + named компилируется с тем, чтобы + брать named-xfer по умолчанию из + /usr/libexec. + + + + Задает имя файла (относительно директивы + directory выше), в котором + named может найти файл зоны для этой + зоны. + + + + Задает имя файла (относительно директивы + directory выше), в котором + named должен записывать копию файла + зоны для этой зоны после успешной передачи ее с основного сервера. + Вот почему нам нужно изменить владельца каталога + slave на bind на этапах + настроек выше. + + + + После выполнения шагов выше либо перезагрузите ваш сервер, либо + перезапустите &man.syslogd.8; и запустите &man.named.8;, не забыв + использовать новые опции, заданные в syslogd_flags и + named_flags. Теперь + named должен заработать в песочнице! + + + + Безопасность + + Хотя BIND является самой распространенной реализацией DNS, всегда + стоит вопрос об обеспечении безопасности. Время от времени + обнаруживаются возможные и реальные бреши в безопасности. + + Весьма полезно подписаться на списки рассылки CERT и + freebsd-security-notifications для того, чтобы быть в курсе + текущих проблем с обеспечением безопасности Internet и FreeBSD. + + + Если возникают проблемы, то наличие последних исходных текстов и + свежеоткомпилированного named не помешает. + + + + + Дополнительная литература + + Справочная информация по BIND/named: &man.ndc.8; &man.named.8; и + &man.named.conf.5; + + + + + Официальная страница ISC BIND + + + + + FAQ по BIND + + + + + Книга издательства O'Reilly DNS and BIND 4th + Edition + + + + RFC1034 - Domain + Names - Concepts and Facilities + + + + RFC1035 - Domain + Names - Implementation and Specification + + + + + + + + + + Tom + Hukins + Текст предоставил + + + + + NTP + + NTP + + + Обзор + + С течением времени часы компьютера имеют тенденцию отставать. Со + временем они становятся все более неточными. NTP (Network Time + Protocol - Сетевой Протокол Времени) является одним из способов + вести точное время. + + Многие сервисы Интернет опираются или сильно зависят от точности + часов компьютеров. К примеру, веб-сервер может получать запрос на + посылку файла, который был недавно модифицирован. Такие службы, как + &man.cron.8;, запускают команды в определенное время. Если часы идут + неточно, то эти команды могут запуститься не тогда, когда это + ожидается. + + + NTP + ntpd + + FreeBSD поставляется с сервером NTP &man.ntpd.8;, который можно + использовать для опроса других серверов NTP для установки часов на + вашей машине или предоставления услуг точного времени. + + + + Выбор подходящих серверов NTP + + + NTP + выбор серверов + + + Для синхронизации ваших часов вам нужно найти для использования + один или большее количество серверов NTP. Ваш сетевой администратор + или провайдер могут иметь сервер NTP для этой цели—обратитесь к + ним, так ли это в вашем случае. Существует список + общедоступных серверов NTP, которым можно воспользоваться для + поиска ближайшего к вам сервера NTP. Не забудьте выяснить политику + выбранного вами сервера и спросить разрешения, если это + требуется. + + Выбор нескольких несвязанных серверов NTP является хорошей идеей в + том случае, если один из используемых вами серверов станет недоступным + или его часы неточны. &man.ntpd.8; использует ответы, которые он + получает от других серверов с умом—он делает предпочтение + надежным серверам. + + + + Настройка вашей машины + + + NTP + настройка + + + + Базовая конфигурация + + ntpdate + + Если вам нужно только синхронизировать ваши часы при загрузке + машины, вы можете воспользоваться утилитой &man.ntpdate.8;. Это + может подойти для некоторых настольных машин, которые часто + перезагружаются и только требуют изредка синхронизироваться, но + на большинстве машин должен работать &man.ntpd.8;. + + Использование &man.ntpdate.8; при загрузке также хорошо для + машин, на которых запущен даемон &man.ntpd.8;. Программа + &man.ntpd.8; изменяет время постепенно, тогда как &man.ntpdate.8; + устанавливает время вне + зависисмости от того, насколько велика разница между текущим временем + машины и точным временем. + + Для включения &man.ntpdate.8; во время загрузки, добавьте строчку + ntpdate_enable="YES" в файл + /etc/rc.conf. Вам также потребуется указать + все серверы, с которыми вы хотите синхронизироваться, и все + параметры, которые передаются в &man.ntpdate.8;, в + ntpdate_flags. + + + + + NTP + + ntp.conf + + + Общие настройки + + NTP настраивается в файле /etc/ntp.conf, + формат которого описан в &man.ntp.conf.5;. Вот простой + пример: + + server ntplocal.example.com prefer +server timeserver.example.org +server ntp2a.example.net + +driftfile /var/db/ntp.drift + + Параметр server задает, какие серверы будут + использоваться, по одному в каждой строке. Если сервер задан с + аргументом prefer, как ntplocal.example.com, то этому серверу отдается + предпочтение перед остальными. Ответ от предпочтительного сервера + будет отброшен, если он значительно отличается от ответов других + серверов, в противном случае он будет использоваться безотносительно + к другим ответам. Аргумент prefer обычно + используется для серверов NTP, о которых известно, что они очень + точны, такими, на которых используется специальное оборудование + точного времени. + + Параметр driftfile задает файл, который + используется для хранения смещения частоты системных часов. + Программа &man.ntpd.8; использует его для автоматической компенсации + естественного смещения часов, позволяя ему поддерживать достаточно + правильную настройку, даже если он на некоторый период отключается от + внешнего источника информации о времени. + + Параметр driftfile задает, какой файл + используется для сохранения информации о предыдущих ответах от + серверов NTP, которые вы используете. Этот файл содержит внутреннюю + информацию для NTP. Он не должен изменяться никакими другими + процессами. + + + + Управление доступом к вашему серверу + + По умолчанию ваш сервер NTP будет доступен всем хостам в + Интернет. Параметр restrict в файле + /etc/ntp.conf позволяет вам контролировать, + какие машины могут обращаться к вашему серверу. + + Если вы хотите запретить всем машинам обращаться к вашему серверу + NTP, добавьте следующую строку в + файл /etc/ntp.conf: + + restrict default ignore + + Если вы хотите разрешить синхронизировать свои часы с вашим + сервером только машинам в вашей сети, но запретить им настраивать + сервер или быть равноправными участниками синхронизации времени, то + вместо указанной добавьте строчку + + restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrap + + где 192.168.1.0 является адресом + IP вашей сети, а 255.255.255.0 её + сетевой маской. + + /etc/ntp.conf может содержать несколько + директив restrict. Для получения подробной + информации обратитесь к подразделу Access Control + Support (Поддержка Управления Доступом) в + &man.ntp.conf.5;. + + + + + Запуск сервера NTP + + Для того, чтобы сервер NTP запускался при загрузке, добавьте строку + xntpd_enable="YES" в файл + /etc/rc.conf. Если вы хотите передать + дополнительные опции в &man.ntpd.8;, то отредактируйте параметр + xntpd_flags в файле + /etc/rc.conf. + + Для запуска сервера без перезагрузки вашей машины, выполните + команду ntpd, не забыв задать дополнительные + параметры из переменной xntpd_flags в файле + /etc/rc.conf. К примеру: + + &prompt.root; ntpd -p /var/run/ntpd.pid + + + Во &os; 5.X различные параметры из + /etc/rc.conf были переименованы. В частности, + в списке параметров вам необходимо заменить каждую строчку + xntpd на ntpd. + + + + + Использование ntpd с временным подключением к + Интернет + + Для нормальной работы программе &man.ntpd.8; не требуется + постоянное подключение к Интернет. Однако если ваше временное + подключение к Интернет настроено для дозвонки по требованию, хорошо бы + запретить трафику NTP вызывать дозвонку или поддерживать соединение + постоянно. Если вы используете пользовательский PPP, то можете + воспользоваться директивами filter в файле + /etc/ppp/ppp.conf. К примеру: + + set filter dial 0 deny udp src eq 123 + # Prevent NTP traffic from initiating dial out + set filter dial 1 permit 0 0 + set filter alive 0 deny udp src eq 123 + # Prevent incoming NTP traffic from keeping the connection open + set filter alive 1 deny udp dst eq 123 + # Prevent outgoing NTP traffic from keeping the connection open + set filter alive 2 permit 0/0 0/0 + + Более подробную информацию можно найти в разделе PACKET + FILTERING (ФИЛЬТРАЦИЯ ПАКЕТОВ) в &man.ppp.8;, а примеры в + /usr/share/examples/ppp/. + + + Некоторые провайдеры Интернет блокируют трафик по портам с + маленькими номерами, что приводит к неработоспособности NTP, так как + ответы никогда не достигают вашей машины. + + + + + Дополнительная литература + + Документация по серверу NTP может быть найдена в каталоге + /usr/share/doc/ntp/ в формате HTML. + + + + + + + + Chern + + Lee + + Текст предоставил + + + + + Даемон преобразования сетевых адресов (natd) + + + Обзор + + natd + + + Даемон преобразования сетевых адресов (Network Address + Translation) во FreeBSD, широко известный как &man.natd.8;, является + даемоном, который принимает входящие IP-пакеты, изменяет адрес + отправителя на адрес локальной машины и повторно отправляет эти пакеты + в потоке исхдящих пакетов. &man.natd.8; делает это, меняя IP-адрес + отправителя и порт таким образом, что когда данные принимаются + обратно, он может определить расположение источника начальных данных + и переслать их машине, которая запрашивала данные изначально. + + + совместное использование доступа в Интернет + + + сокрытие IP + + Чаще всего NAT используется для организации так называемого + Совместного Использования Интернет. + + + + Настройка + + Из-за исчерпания пространства адресов в IPv4 и увеличения + количества пользователей высокоскоростных каналов связи, таких, как + кабельное подключение или DSL, необходимость в решении по Совместному + Использованию Интернет растёт. Возможность подключить несколько + компьютеров через одинственное соединение и IP-адрес делает + &man.natd.8; подходящим решением. + + Чаще всего у пользователя имеется машина, подключенная к кабельному + каналу или каналу DSL с одним IP-адресом и есть желание использовать + этот единственный подключенный компьютер для организации доступа в + Интернет другим компьютерам в локальной сети. + + Для этого машина FreeBSD, находящаяся в Интернет, должна выступать + в роли шлюза. Эта шлюзовая машина должна иметь два сетевых + адаптера—один для подключения к маршрутизатору Интернет, а + другой для подключения к ЛВС. Все машины в локальной сети + подключаются через сетевой концентратор или коммутатор. + + + + + + + + _______ __________ ________ + | | | | | | + | Hub |-----| Client B |-----| Router |----- Internet + |_______| |__________| |________| + | + ____|_____ +| | +| Client A | +|__________| + + + + Структура сети + + + + Подобная конфигурация часто используется для совместного + использования доступа в Интернет. Одна из подключенных к локальной + сети машин подключается к Интернет. Остальные машины работают с + Интернет посредством этой шлюзовой машины. + + + + + ядро + настройка + + Настройка + + В файле конфигурации ядра должны присутствовать следующие + параметры: + + options IPFIREWALL +options IPDIVERT + + Дополнительно, если это нужно, можно добавить следующее: + + options IPFIREWALL_DEFAULT_TO_ACCEPT +options IPFIREWALL_VERBOSE + + В файле /etc/rc.conf должны быть такие + строки: + + gateway_enable="YES" +firewall_enable="YES" +firewall_type="OPEN" +natd_enable="YES" +natd_interface="fxp0" +natd_flags="" + + + + + + gateway_enable="YES" + Указывает машине выступать в качестве шлюза. Выполнение + команды sysctl net.inet.ip.forwarding=1 + приведёт к тому же самому результату. + + + + firewall_enable="YES" + При загрузке включает использование правил межсетевого + экрана из файла /etc/rc.firewall. + + + + firewall_type="OPEN" + Здесь задается предопределенный набор правил межсетевого + экрана, который разрешает все. Посмотрите файл + /etc/rc.firewall для нахождения + дополнительных типов. + + + + natd_interface="fxp0" + Указывает, через какой интерфейс передавать пакеты + (интерфейс, подключенный к Интернет). + + + + natd_flags="" + Любые дополнительный параметры, передаваемые при запуске + даемону &man.natd.8;. + + + + + + При использовании вышеуказанных параметров в файле + /etc/rc.conf при загрузке будет запущена команда + natd -interface fxp0. Эту команду можно запустить и + вручную. + + Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из + адресного пространства частных сетей, как это определено в RFC 1918, а в + качестве маршрутизатора по умолчанию должен быть задан IP-адрес машины + с natd из внутренней сети. + + Например, клиенты A и B в ЛВС + имеют IP-адреса 192.168.0.2 и 192.168.0.3, а интерфейс машины с natd в + локальной сети имеет IP-адрес 192.168.0.1. Маршрутизатором по умолчанию для + клиентов A и B должна быть назначена + машина с natd, то есть 192.168.0.1. Внешний, или Интернет-интерфейс + машины с natd не требует особых + настроек для работы &man.natd.8;. + + + + Перенаправление портов + + Минусом использования &man.natd.8; является то, что машины в + локальной сети + недоступны из Интернет. Клиенты в ЛВС могут выполнять исходящие + соединения во внешний мир, но не могут обслуживать входящие. Это + является проблемой при запуске служб Интернет на клиентских машинах в + локальной сети. Простым решением является перенаправление некоторых + портов Интернет машины с natd на клиента + локальной сети. + + Пусть, к примеру, сервер IRC запущен на клиенте A, + а веб-сервер работает на клиенте B. Чтобы это + работало, соединения, принимаемые на портах 6667 (IRC) и 80 (веб), + должны перенаправляться на соответствующие машины. + + Программе &man.natd.8; должна быть передана команда + с соответствующими параметрами. + Синтаксис следующий: + + -redirect_port proto targetIP:targetPORT[-targetPORT] + [aliasIP:]aliasPORT[-aliasPORT] + [remoteIP[:remotePORT[-remotePORT]]] + + В примере выше аргументы должен быть такими: + + -redirect_port tcp 192.168.0.2:6667 6667 + -redirect_port tcp 192.168.0.3:80 80 + + При этом будут перенаправлены соответствующие порты + tcp на клиентские машины в локальной сети. + + Аргумент может использоваться для + указания диапазонов портов, а не конкретного порта. Например, + tcp 192.168.0.2:2000-3000 2000-3000 будет + перенаправлять все соединения, принимаемые на портах от 2000 до 3000, + на порты от 2000 до 3000 клиента A. + + Эим параметры могут использоваться при непосредственном запуске + &man.natd.8; или их можно поместить в параметр + natd_flags="" из файла + /etc/rc.conf. + + Для получение информации о других параметрах настройки обратитесь + к справочной странице по &man.natd.8; + + + + Перенаправление адреса + перенаправление адреса + + Перенаправление адреса полезно, если имеется несколько адресов IP, + и они должны быть на одной машине. В этой ситуации &man.natd.8; может + назначить каждому клиенту ЛВС свой собственный внешний IP-адрес. Затем + &man.natd.8; преобразует исходящие от клиентов локальной сети пакеты, + заменяя IP-адреса на соответствующие внешние, и перенаправляет весь + трафик, входящий на некоторый IP-адрес, обратно конкретному клиенту + локальной сети. Это также называют статическим NAT. К примеру, пусть + IP-адреса 128.1.1.1, 128.1.1.2 и 128.1.1.3 принадлежат шлюзовой машине + natd. 128.1.1.1 может использоваться в качестве + внешнего IP-адреса шлюзовой машины natd, + тогда как 128.1.1.2 и 128.1.1.3 будут перенаправляться обратно + к клиентам ЛВС A и B. + + Синтаксис для таков: + + -redirect_address localIP publicIP + + + + + + localIP + Внутренний IP-адрес клиента локальной сети. + + + + publicIP + Внешний IP, соответствующий клиенту локальной сети. + + + + + + В примере этот аргумент будет выглядеть так: + + -redirect_address 192.168.0.2 128.1.1.2 +-redirect_address 192.168.0.3 128.1.1.3 + + Как и для , эти аргументы также + помещаются в строку natd_flags="" файла + /etc/rc.conf. При + перенаправлении адресов нет нужды в перенаправлении портов, потому что + перенаправляются все данные, принимаемые для конкретного + IP-адреса. + + Внешние IP-адреса машины с natd должны + быть активизированы и являться алиасами для внешнего интерфейса. + Обратитесь к &man.rc.conf.5;, чтобы это сделать. + + + + + + + + Chern + Lee + Текст предоставил + + + + + <quote>Супер-сервер</quote> <application>inetd</application> + + + Обзор + + &man.inetd.8; называют также супер-сервером + Интернет, потому что он управляет соединениями к нескольким + даемонам. Программы, которые предоставляют сетевые услуги, называют + даемонами. inetd выступает в качестве + управляющего сервера для других даемонов. Когда + inetd принимает соединение, он определяет, + для какого даемона предназначено соединение, вызывает соответствующий + даемон и предоставляет ему сокет. Запуск одного экземпляра + inetd уменьшает общую нагрузку на систему по + сравнению с запуском каждого даемона индивидуально в выделенном + режиме. + + В первую очередь inetd используется для + вызова других даемонов, но несколько простых протоколов, таких, как + chargen, auth и + daytime, обслуживаются + непосредственно. + + Этот раздел посвящен основам настройки + inetd посредством его параметров командной + строки и его конфигурационного файла, + /etc/inetd.conf. + + + + Настройки + + inetd инициализируется посредством + системы /etc/rc.conf. Параметр + inetd_enable по умолчанию установлен в + NO, однако часто включается утилитой + sysinstall при выборе профиля среднего + уровня безопасности. Указание + inetd_enable="YES" или + inetd_enable="NO" в файле + /etc/rc.conf может задать или запретить запуск + inetd во время загрузки. + + Кроме того, через inetd_flags даемону + inetd могут быть переданы различные + параметры командной строки. + + + + Параметры командной строки + + Формат вызова inetd: + + + + + + -d + + + Включение отладочной информации. + + + + + -l + + + Включение регистрации успешных соединений. + + + + + -w + + + Включение механизма TCP Wrapping для внешних служб (по + умолчанию включено). + + + + + -W + + + Включение механизма TCP Wrapping для внутренних служб, + которые встроены в inetd (по + умолчанию включено). + + + + + -c maximum + + + Определение максимального числа одновременных запусков каждой + службы; по умолчание не ограничено. Может быть переопределено + индивидуально для каждой службы при помощи параметра + . + + + + + -C rate + + + Определение по умолчанию максимального количества раз, + которое служба может быть вызвана с одного IP-адреса в минуту; по + умолчанию не ограничено. Может быть переопределено для каждой + службы параметром + . + + + + + -R rate + + + Определяет максимальное количество раз, которое служба может + быть вызвана в минуту; по умолчанию 256. Частота, равная 0, + не ограничивает число вызовов. + + + + + -a + + + Задает один IP-адрес, к которому делается привязка. + Альтернативно может быть указано имя хоста, и в этом случае + используется соответсвующий этому имени хоста адрес IPv4 или + IPv6. Обычно имя хоста задается, когда + inetd запускается в окружении + &man.jail.8;, и в этом случае имя хоста соответствует этому + &man.jail.8;-окружению. + + Если используется формат с именем хоста и требуется привязка + как для IPv4, так и для IPv6, то для каждой привязки требуется + запись с соответствующим типом протокола для каждой службы в + файле /etc/inetd.conf. К примеру, службе + на основе TCP потребуется две записи, в одной для протокола + используется tcp4, а в другой + используется tcp6. + + + + + -p + + + Задает альтернативный файл для хранения ID процесса. + + + + + Эти параметры могут быть переданы в + inetd при помощи + inetd_flags в файле + /etc/rc.conf. По умолчанию значение + inetd_flags установлено в -wW, + что включает механизм TCP wrapping для внутренних и внешних служб + inetd. Новичкам эти параметры изменять и + даже задавать их в файле /etc/rc.conf не + нужно. + + + Внешняя служба является даемоном вне + inetd, который запускается при получении + соединения к нему. С другой стороны, внутренней службой является + услуга, которую inetd предоставляет + сам. + + + + + <filename>inetd.conf</filename> + + Настройка inetd управляется через файл + /etc/inetd.conf. + + Если в файле /etc/inetd.conf делались + изменения, то inetd можно заставить считать + его конфигурационный файл повторно, послав сигнал HangUP процессу + inetd, как показано здесь: + + + Посылка сигнала HangUP процессу + <application>inetd</application> + + &prompt.root; kill -HUP `cat /var/run/inetd.pid` + + + В каждой строке конфигурационного файла описывается отдельный + даемон. Комментариям в файле предшествует знак #. Файл + /etc/inetd.conf имеет такой формат: + + service-name +socket-type +protocol +{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] +user[:group][/login-class] +server-program +server-program-arguments + + Пример записи для даемона ftpd, + использующего IPv4: + + ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l + + + + service-name + + + Это имя сервиса, предоставляемого конкретным даемоном. Оно + должно соответствовать сервису, указанному в файле + /etc/services. Здесь определяется, какой + порт должен обслуживать inetd. При + создании нового сервиса он должен помещаться сначала в файл + /etc/services. + + + + + socket-type + + + stream, dgram, + raw либо seqpacket. + stream должен использоваться для + ориентированных на соединение даемонов TCP, когда как + dgram используется для даемонов, использующих + транспортный протокол UDP. + + + + + protocol + + + Одно из следующих: + + + + + + Протокол + Описание + + + + + tcp, tcp4 + TCP IPv4 + + + + udp, udp4 + UDP IPv4 + + + + tcp6 + TCP IPv6 + + + + udp6 + UDP IPv6 + + + + tcp46 + TCP как для IPv4, так и для v6 + + + + udp46 + UDP как для IPv4, так и для v6 + + + + + + + + + {wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] + + + определяет, может ли даемон, + вызванный из inetd, работать с + собственным сокетом, или нет. Сокеты типа + должны использовать параметр wait, когда как даемоны с потоковыми + сокетами, которые обычно многопоточны, должны использовать + . обычно передает + много сокетов одному даемону, когда как + порождает даемон для каждого нового сокета. + + Максимальное число порожденных даемонов, которых может + создать inetd, может быть задано + параметром . Если нужно ограничение в + десять экземпляров некоторого даемона, то после параметра + нужно задать + /10. + + Кроме , может быть задействован + другой параметр, ограничивающий максимальное число соединений от + одного источника. + служит именно + для этого. Здесь значение, равное десяти, будет ограничивать + любой заданный IP-адрес на выполнение десяти попыток подключения + к некоторому сервису в минуту. Это полезно для предотвращения + намеренного или ненамеренного расходования ресурсов и атак типа + Denial of Service (DoS) на машину. + + В этом поле или + обязательны. и + + опциональны. + + Многопоточный даемон типа stream без ограничений + или + будет + определен просто вот так: nowait + + Тот же самый даемон с ограничением в максимум десять даемонов + будет определен так: nowait/10 + + Наконец, та же конфигурация с ограничением в двадцать + соединений на IP-адрес в минуту и общим ограничением в максимум + десять порожденных даемонов выглядит так: + nowait/10/20 + + Эти параметры, используемые все со значениями по умолчанию + даемоном fingerd, имеют такой + вид: + + finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s + + + + + user + + + Поле user является именем пользователем, под которым должен + работать сответствующий даемон. Чаще всего даемоны работают + как пользователь root. Для обеспечения + безопасности некоторые серверы запыскаются как пользователь + daemon или как пользователь с минимальными + правами nobody. + + + + + server-program + + + Полный маршрут к даемону, который будет выполняться при + установлении соединения. Если даемон является сервисом, + предоставляемым самим inetd, то нужно + задать ключевое слово . + + + + + server-program-arguments + + + Этот параметр работает вместе с параметром + , задавая параметры, начиная с + argv[0], передаваемые даемону при запуске. Если в командной + строке задано mydaemon -d, то + mydaemon -d будет являться значением для + . И снова, если даемон + является внутренней службой, то здесь нужно использовать + . + + + + + + + Безопасность + + В зависимости от схемы безопасности, выбранной при установке, + многие из даемонов inetd могут оказаться по + умолчанию включенными. Если нет особой нужды в некотором даемоне, то + выключите его! Поместите знак # перед ненужным даемоном + и пошлите сигнал для inetd. + Некоторые даемоны, такие, как fingerd, + вообще нежелательны, потому что они дают атакующему слишком много + информации. + + Некоторые даемоны не заботятся о безопасности и имеют большие + таймауты для соединений или вообще их не имеют. Это позволяет + атакующему неспешно устанавливать соединения к конкретному даемону, + истощая имеющиеся ресурсы. Может оказаться полезным задать для + некоторых даемонов ограничения и + . + + По умолчанию механизм TCP wrapping включен. Обратитесь к + справочной странице по &man.hosts.access.5; для получения более + подробной информации о задании ограничений TCP для различных даемонов, + запускаемых посредством inetd. + + + + Разное + + daytime, + time, + echo, + discard, + chargen и + auth все являются услугами, предоставляемыми + самим inetd. + + Сервис auth предоставляет + идентификационные сетевые услуги (ident, identd) и поддается + настройке. + + Обратитесь к справочной странице по &man.inetd.8; для получения + более подробной информации. + + + + + IP по параллельному порту (PLIP) + + PLIP + IP по параллельному порту + + PLIP позволяет нам работать с TCP/IP по параллельному порту. Это + полезно для машин без сетевых алаптеров или для установки на лаптопы. + В этом разделе мы обсудим: + + + + создание кабеля для параллельного порта (laplink). + + + + Соединение двух компьютеров посредством PLIP. + + + + + Создание параллельного кабеля + + Вы можете приобрести кабель для параллельного порта в большинстве + магазинов, торгующих комплектующими. Если вы его на нйдёте, или же + просто хотите знать, как он делается, то следующая таблица поможет вам + сделать такой кабель из обычного принтерного кабеля для параллельного + порта. + + + Распайка кабеля для параллельного порта для сетевой + работы + + + + + A-name + + A-End + + B-End + + Описание + + Post/Bit + + + + + + DATA0 +-ERROR + + 2 +15 + + 15 +2 + + Data + + 0/0x01 +1/0x08 + + + + DATA1 ++SLCT + + 3 +13 + + 13 +3 + + Data + + 0/0x02 +1/0x10 + + + + DATA2 ++PE + + 4 +12 + + 12 +4 + + Data + + 0/0x04 +1/0x20 + + + + DATA3 +-ACK + + 5 +10 + + 10 +5 + + Strobe + + 0/0x08 +1/0x40 + + + + DATA4 +BUSY + + 6 +11 + + 11 +6 + + Data + + 0/0x10 +1/0x80 + + + + GND + + 18-25 + + 18-25 + + GND + + - + + + +
+
+ + + Настройка PLIP + + Прежде всего вы должны найти laplink-кабель. Затем + удостоверьтесь, что на обоих компьютерах в ядро включена поддержка + драйвера &man.lpt.4;: + + &prompt.root; grep lp /var/run/dmesg.boot +lpt0: <Printer> on ppbus0 +lpt0: Interrupt-driven port + + Управление параллельным портом должно выполняться по прерываниям. + Во &os; 4.X в файле конфигурации ядра должна присутствовать + строка, подобная следующей: + + device ppc0 at isa? irq 7 + + Во &os; 5.X файл /boot/device.hints + должен содержать следующие строки: + + hint.ppc.0.at="isa" +hint.ppc.0.irq="7" + + Затем проверьте, что файл конфигурации ядра имеет строку + device plip, или загружен ли модуль ядра + plip.ko. В обоих случаях интерфейс работы с + сетью по параллельному порту должен присутствовать на момент прямого + использования команды &man.ifconfig.8;. Во &os; 4.X это должно + быть примерно так: + + &prompt.root; ifconfig lp0 +lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 + + а для &os; 5.X: + + &prompt.root; ifconfig plip0 +plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500 + + + Имя устройства, используемого для параллельного интерфейса, + во &os; 4.X + (lpX) и + &os; 5.X + (plipX). + + + Подключите кабель laplink к параллельным интерфейсам на обоих + компьютерах. + + Настройте параметры сетевого интерфейса с обеих сторон, работая как + пользователь root. К примеру, если вы хотите + соединить хост host1, на котором работает + &os; 4.X, с хостом host2 под управлением + &os; 5.X: + + host1 <-----> host2 +IP Address 10.0.0.1 10.0.0.2 + + Настройте интерфейс на машине host1, + выполнив: + + &prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2 + + Настройте интерфейс на машине host2, + выполнив: + + &prompt.root; ifconfig lp0 10.0.0.2 10.0.0.1 + + Теперь вы должны получить работающее соединение. Пожалуйста, + прочтите страницы руководства по &man.lp.4; и &man.lpt.4; для выяснения + деталей. + + Вы должны также добавить оба хоста в + /etc/hosts: + + 127.0.0.1 localhost.my.domain localhost +10.0.0.1 host1.my.domain host1 +10.0.0.2 host2.my.domain + + Чтобы проверить работу соединения, перейдите к каждому хосту и + выполните тестирование соединения с другой машиной посредством команды + ping. К примеру, на машине host1: + + &prompt.root; ifconfig lp0 +lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000 +&prompt.root; netstat -r +Routing tables + +Internet: +Destination Gateway Flags Refs Use Netif Expire +host2 host1 UH 0 0 lp0 +&prompt.root; ping -c 4 host2 +PING host2 (10.0.0.2): 56 data bytes +64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms +64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms +64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms +64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms + +--- host2 ping statistics --- +4 packets transmitted, 4 packets received, 0% packet loss +round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms + + +
+ + + + + + Aaron + Kaplan + Первоначальный текст написал + + + + + + Tom + Rhodes + Реструктуризацию и добавления внёс + + + + + IPv6 + + IPv6 (также называемый IPng IP next generation - + следующее поколение IP) является новой версией широко известного + протокола IP (называемого также IPv4). Как и другие + современные системы *BSD, FreeBSD включает эталонную реализацию IPv6 от + KAME. Так что система FreeBSD поставляется со всем, + что вам нужно для экспериментирования с IPv6. Этот раздел посвящёен + настройке и запуску в работу IPv6. + + В начале 1990-х люди стали беспокоиться о быстро иссякающем адресном + пространстве IPv4. Принимая во внимание темпы роста Интернет, имелись + основные проблемы: + + + + Нехватка адресов. Сегодня это не такая большая проблема, так как + стали применяться адресные пространства для частных сетей + (10.0.0.0/8, 192.168.0.0/24 и так далее) и технология + преобразования сетевых адресов (NAT - Network + Address Translation). + + + + Таблицы маршрутов становятся чересчур большими. Это всё ещё + является проблемой сегодня. + + + + IPv6 решает эти и многие другие вопросы: + + + + 128-битное адресное пространство. Другими словами, теоретически + доступны 340,282,366,920,938,463,463,374,607,431,768,211,456 адреса. + Это означает плотность примерно в 6.67 * 10^27 адресов IPv6 на + квадратный метр нашей планеты. + + + + Маршрутизаторы будут хранить в своих талицах только + агрегированные адреса сетей, что уменьшает средний размер таблицы + маршрутизации до 8192 записей. + + + + Имеется также множество других полезных особенностей IPv6, таких, + как: + + + + Автоматическая настройка адреса (RFC2462) + + + + Групповые адреса (один к нескольким из + многих) + + + + Обязательные адреса множественной рассылки + + + + IPsec (IP security - безопасный IP) + + + + Упрощённая структура заголовка + + + + Мобильный IP + + + + Механизмы преобразования IPv4-в-IPv6 + + + + Для получения дополнительной информации посмотрите: + + + + Обзор IPv6 на сайте Sun.com + + + + IPv6.org + + + + KAME.net + + + + 6bone.net + + + + + Основы адресации IPv6 + + Существуют различные типы адресов IPv6: одноадресные (Unicast), + групповые (Anycast) и многоадресные (Multicast). + + Адреса типа Unicast хорошо всем известны. Пакет, посланный на + такой адрес, достигает в точности интерфейса, который этому адресу + соответствует. + + Адреса типа Anycast синтаксически неотличимы от адресов Unicast, + но они адресуют группу интерфейсов. Пакет, направленный такому адресу, + попадёт в ближайший (согласно метрике маршрутизатора) интерфейс. + Адреса Anycast могут использоваться только маршрутизаторами. + + Адреса типа Multicast идентифицируют группу интерфейсов. Пакет, + посланный на такой адрес, достигнет всех интерфейсов, привязанных к + группе многоадресного вещания. + + + Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами + многоадресного вещания IPv6. + + + Зарезервированные адреса IPv6: + +ipv6-address prefixlength(Bits) description Notes + + :: 128 Bits unspecified cf. 0.0.0.0 in IPv4 address + ::1 128 Bits loopback address cf. 127.0.0.1 in IPv4 + ::00:xx:xx:xx:xx 96 Bits embedded IPv4 The lower 32 bits are the + address IPv4 address. Also called + IPv4 compatible IPv6 + address + ::ff:xx:xx:xx:xx 96 Bits IPv4 mapped The lower 32 bits are the + IPv6 address IPv4 address. For hosts + which do not support IPv6 + fe80:: - feb:: 10 Bits link-local cf. loopback address in + IPv4 + fec0:: - fef:: 10 Bits site-local + ff:: 8 Bits multicast + 001 (base 2) 3 Bits global unicast All global unicast + addresses are assigned from + this pool. The first 3 Bits + are 001. + + + + + Чтение адресов IPv6 + + Каноническая форма представляется в виде x:x:x:x:x:x:x:x, где каждый символ + x является 16-битовым шестнадцатиричным числом. К + примеру, FEBC:A574:382B:23C1:AA49:4592:4EFE:9982 + + Часто в адресе присутствуют длинные строчки, заполненные нулями, + поэтому каждая такая последовательность может быть сокращена до + ::. К примеру, fe80::1 + соответствует канонической форме fe80:0000:0000:0000:0000:0000:0000:0001 + + В третьей форме последние 32 бита записываются в широко известном + (десятичном) стиле IPv4 с точками . в качестве + разделителей. Например, f2002::10.0.0.1 соответствует + (шестнадцатиричному) каноническому представлению 2002:0000:0000:0000:0000:0000:0a00:0001, + которое, в свою очередь, равнозначно записи 2002::a00:1 + + Теперь читатель должен понять следующую запись: + + &prompt.root; ifconfig + + rl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500 + inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255 + inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1 + ether 00:00:21:03:08:e1 + media: Ethernet autoselect (100baseTX ) + status: active + + fe80::200:21ff:fe03:8e1%rl0 + является автоматически отконфигурированным локальным адресом. В + процессе автоматической конфигурации в него включается MAC-адрес + Ethernet. + + Для получения дополнительной информации о структуре адресов IPv6 + обратитесь к RFC3513. + + + + Настройка подключения + + На данный момент существуют четыре способа подключиться к другим + хостам и сетям IPv6: + + + + Подключиться к эскпериментальному 6bone + + + + Получить сеть IPv6 от вышестоящего провайдера. Для получения + рекомендаций обратитесь к вашему провайдеру Интернет. + + + + Туннелировать посредством 6-в-4 + + + + Использовать порт freenet6, если вы используете коммутируемое + соединение. + + + + Здесь мы будем рассматривать подключение к 6bone, так как на + данный момент это является самым популярным способом. + + Сначала взгляните на сайт 6bone и найдите ближайшую к вам точку + подключения к 6bone. Напишите ответственному и при некоторой удаче вам + дадут инструкции по настройке соединения. Обычно это касается + настройки туннеля GRE (gif). + + Вот типичный пример настройки туннеля &man.gif.4;: + + &prompt.root; ifconfig gif0 create +&prompt.root; ifconfig gif0 +gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280 +&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDR HIS_IPv4_ADDR +&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR + + Замените слова, написанные заглавными буквами, информацией, которую + вам дал вышестоящий узел 6bone. + + При этом установится туннель. Проверьте работу туннеля утилитой + &man.ping6.8; с адресом ff02::1%gif0. + Вы должны получить два положительных ответа. + + + Если вы заинтригованы адресом ff02:1%gif0, скажем, что это адрес + многоадресного вещания. %gif0 указывает на + использование такого адреса с сетевым интерфейсом + gif0. Так как мы выполняем + ping над адресом многоадресного вещания, то другая + сторона туннеля также должна ответить). + + + Теперь настройка маршрута к вашей вышестоящей точке подключения + 6bone должна быть весьма проста: + + &prompt.root; route add -inet6 default -interface gif0 +&prompt.root; ping6 -n MY_UPLINK + + &prompt.root; traceroute6 www.jp.FreeBSD.org +(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets + 1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms + 2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms * + 3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms + 4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms + 5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms + 6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 ms + + Эта выдача будет отличаться от машины к машине. Теперь вы должны + суметь достигнуть сайта IPv6 www.kame.net и увидеть танцующую + черепаху — в случае, если ваш браузер поддерживает IPv6, как, + например, www/mozilla. + + + + DNS в мире IPv6 + + Для IPv6 имеются два новых типа записей DNS: + + + + Записи AAAA, + + + + Записи A6 + + + + Использование записей AAAA достаточно просто. Назначение вашему + имени хоста нового адреса IPv6 достигается просто добавлением: + + MYHOSTNAME AAAA MYIPv6ADDR + + к вашему первичному файлу DNS зоны. В случае, если вы не + обслуживаете собственные зоны DNS, обратитесь к + вашему провайдеру DNS. Имеющиеся версии + bind (версий 8.3 и 9) поддерживают записи + AAAA. + +
+ -- cgit v1.2.3