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 d13c16ccf5..c9f4f708fc 100644
--- a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
@@ -1,4537 +1,4537 @@
АндрейЗахватовПеревод на русский язык: Сложные вопросы работы в сетиКраткий обзорЭта глава охватывает множество различных сетевых тематик
повышенной сложности.После чтения этой главы вы будете знать:Основные понятия о маршрутизации и маршрутах.Как настроить IEEE 802.11 и &bluetooth;.Как заставить FreeBSD работать в качестве сетевого
моста.Как настроить загрузку по сети для бездисковой машины.Как настроить трансляцию сетевых адресов.Как соединить два компьютера посредством PLIP.Как настроить IPv6 на машине FreeBSD.Как настроить ATM в &os; 5.X.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как настраивать и устанавливать новое ядро FreeBSD
().Знать как устанавливать дополнительное программное
обеспечение сторонних разработчиков
().CoranthGryphonТекст предоставил Сетевые шлюзы и маршрутымаршрутизацияшлюзподсетьЧтобы некоторая машина могла найти в сети другую, должен иметься
механизм описания того, как добраться от одной машине к другой. Такой
механизм называется маршрутизацией.
Маршрут задаётся
парой адресов: адресом назначения (destination) и
сетевым шлюзом (gateway). Эта пара указывает на то, что
если Вы пытаетесь соединиться с адресом назначения,
то вам нужно устанавливать связь через сетевой шлюз.
Существует три типа адресов назначения: отдельные хосты, подсети и
маршрут по умолчанию (default). Маршрут по
умолчанию (default route) используется, если не подходит ни один
из других маршрутов. Мы поговорим немного подробнее о маршрутах по
умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные
хосты, интерфейсы (также называемые подключениями
(links)) и аппаратные адреса Ethernet (MAC-адреса).ПримерДля иллюстрации различных аспектов маршрутизации мы будем
использовать следующий пример использования команды
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
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. Это значит сохранение всего трафика для указанного адреса
назначения внутри, без посылки его по сети, так как он все равно
будет направлен туда, где был создан.EthernetMAC адресСледующими выделяющимися адресами являются адреса, начинающиеся с
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. Ниже приводится краткая таблица
некоторых из этих флагов и их значений:UUp: Маршрут актуален.HHost: Адресом назначения является отдельный хост.GGateway: Посылать все для этого адреса назначения на
указанную удаленную систему, которая будет сама определять
дальнейший путь прохождения информации.SStatic: Маршрут был настроен вручную, а не автоматически
сгенерирован системой.CClone: Новый маршрут сгенерирован на основе указанного для
машин, к которым мы подключены. Такой тип маршрута обычно
используется для локальных сетей.WWasCloned: Указывает на то, что маршрут был автоматически
сконфигурирован на основе маршрута в локальной
сети (Clone).LLink: Маршрут включает ссылку на аппаратный адрес
Ethernet.Маршруты по умолчаниюмаршрут по умолчаниюКогда локальной системе нужно установить соединение с удаленным
хостом, она обращается к таблице маршрутов для того, чтобы определить,
существует ли такой маршрут. Если удаленный хост попадает в подсеть,
для которой известен способ ее достижения (маршруты типа Cloned), то
система определяет возможность подключиться к ней по этому
интерфейсу.Если все известные маршруты не подходят, у системы имеется
последняя возможность: маршрут default. Это маршрут
с особым типом сетевого шлюза (обычно единственным, присутствующим
в системе), и в поле флагов он всегда помечен как c.
Для хостов в локальной сети этот сетевой шлюз указывает на машину,
имеющую прямое подключение к внешнему миру (неважно, используется ли
связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то
другой сетевой интерфейс).Если вы настраиваете маршрут по умолчанию на машине, которая сама
является сетевым шлюзом во внешний мир, то маршрутом по умолчанию
будет являться сетевой шлюз у Вашего провайдера Интернет (ISP).Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная
конфигурация:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Хосты Local1 и Local2 находятся в
нашей сети. Local1 подключён к ISP через
коммутируемое соединение по протоколу PPP. Этот компьютер с сервером
PPP подключён посредством локальной сети к другому шлюзовому компьютеру
через внешний интерфейс самого ISP к Интернет.Маршруты по умолчанию для каждой из ваших машин будут
следующими:ХостМаршрут по умолчаниюИнтерфейсLocal2Local1EthernetLocal1T1-GWPPPЧасто задаётся вопрос Почему (или каким образом) в качестве
шлюза по умолчанию для машины 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:defaultrouter="10.20.30.1"Это также возможно сделать и непосредственно из командной строки
при помощи команды &man.route.8;:&prompt.root; route add default 10.20.30.1Для получения дополнительной информации об управлении таблицами
маршрутизации обратитесь к справочной странице по команде
&man.route.8;.Хосты с двойным подключениемхосты с двойным подключениемЕсть еще один тип подключения, который мы должны рассмотреть, и это
случай, когда хост находится в двух различных сетях. Технически,
любая машина, работающая как сетевой шлюз (в примере выше
использовалось PPP-соединение), считается хостом с двойным
подключением. Однако этот термин реально используется для описания
машины, находящейся в двух локальных сетях.В одном случае у машины имеется два адаптера Ethernet, каждый
имеющий адрес в разделенных подсетях. Как альтернативу можно
рассмотреть вариант с одним Ethernet-адаптером и использованием
алиасов в команде &man.ifconfig.8;. В первом случае используются два
физически разделённые сети Ethernet, в последнем имеется один
физический сегмент сети, но две логически разделённые подсети.В любом случае таблицы маршрутизации настраиваются так, что для
каждой подсети эта машина определена как шлюз (входной маршрут) в
другую подсеть. Такая конфигурация, при которой машина выступает в
роли маршрутизатора между двумя подсетями, часто используется, если
нужно реализовать систему безопасности на основе фильтрации пакетов или
функций брандмауэра в одном или обоих направлениях.Если вы хотите, чтобы эта машина действительно перемещала пакеты
между двумя интерфейсами, то вам нужно указать FreeBSD на включение
этой функции. Обратитесь к следующей главе, чтобы узнать, как это
сделать.Построение маршрутизаторамаршрутизаторСетевой маршрутизатор является обычной системой, которая
пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и
хорошая инженерная практика не позволяют Проекту FreeBSD включать эту
функцию по умолчанию во FreeBSD. Вы можете включить эту возможность,
изменив значение следующей переменной в YES в файле
&man.rc.conf.5;:gateway_enable=YES # Set to YES if this host will be a gatewayЭтот параметр изменит значение &man.sysctl.8;-переменной
net.inet.ip.forwarding в
1. Если вам временно нужно выключить маршрутизацию,
вы можете на время сбросить это значение в 0.Вашему новому маршрутизатору нужна информация о маршрутах для того,
чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста,
то вы можете использовать статические маршруты. С FreeBSD также
поставляется стандартный даемон BSD для маршрутизации &man.routed.8;,
который умеет работать с RIP (как версии 1, так и версии 2) и IRDP.
Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации
имеется в пакете net/zebra. Также
существуют и коммерческие продукты, применяемые как более комплексное
решение проблемы маршрутизации в сети, такие как
&gated;.BGPRIPOSPFAlHoangПредоставил Настройка статических маршрутовРучная настройкаПредположим, что у нас есть следующая сеть:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
В этом сценарии, RouterA это наш
компьютер с &os;, который выступает в качестве
маршрутизатора в сеть Интернет. Его маршрут по умолчанию
настроен на 10.0.0.1, что позволяет ему
соединяться с внешним миром. Мы будем предполагать, что
RouterB уже правильно настроен и
знает все необходимые маршруты (на этом рисунке все
просто; добавьте на RouterB маршрут
по умолчанию, используя 192.168.1.1 в качестве шлюза).Если мы посмотрим на таблицу маршрутизации
RouterA, то увидим примерно следующее:&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1С текущей таблицей маршрутизации RouterA
не сможет достичь внутренней сети 2 (Internal Net 2).
Один из способов обхода этой проблемы — добавление
маршрута вручную. Следующая команда добавляет
внутреннюю сеть 2 к таблице маршрутизации
RouterA с 192.168.1.2 в качестве следующего
узла:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Теперь RouterA сможет достичь любого хоста
в сети
192.168.2.0/24.Постоянная конфигурацияПредыдущий пример прекрасно подходит для настройки статического
маршрута в работающей системе. Однако, проблема заключается в
том, что маршрутная информация не сохранится после перезагрузки
&os;. Способ сохранения добавленного маршрута заключается в
добавлении его в файл /etc/rc.conf:# Добавление статического маршрута в Internal Net 2
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"В переменной static_routes находятся
строки, разделенные пробелами. Каждая строка означает имя
маршрута. В примере выше в static_routes
есть только одна строка, это
internalnet2. Затем мы добавили
переменную
route_internalnet2,
куда помещены все параметры, которые необходимо передать
команде &man.route.8;. В примере выше была использована
команда:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2поэтому нам потребуется
"-net 192.168.2.0/24 192.168.1.2".Как было сказано выше, мы можем добавить в
static_routes более чем одну строку.
Это позволит создать несколько статических маршрутов.
В следующем примере показано добавление маршрутов для сетей 192.168.0.0/24 и 192.168.1.0/24 (этот маршрутизатор не
показан на рисунке выше:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Распространение маршрутовраспространение маршрутовМы уже говорили о том, как мы задаем наши маршруты во внешний мир,
но не упоминали о том, как внешний мир находит нас.Мы уже знаем, что таблицы маршрутизации могут быть настроены так,
что весь трафик для некоторого диапазона адресов (в нашем примере это
подсеть класса C) может быть направлен заданному хосту в той сети,
которая будет перенаправлять входящие пакеты дальше.При получении адресного пространства, выделенного Вашей сети,
Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик
для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети.
Но как серверы по всей стране узнают, что Ваш трафик нужно посылать
Вашему ISP?Существует система (подобная распределению информации DNS), которая
отслеживает все назначенные пространства адресов и определяет точку
подключения к магистрали Интернет. Магистралью называют
главные каналы, по которым идет трафик Интернет внутри страны и по
всему миру. Каждая магистральная машина имеет копию основного набора
таблиц, согласно которой трафик для конкретной сети направляется по
конкретному магистральному каналу, и затем, передаваясь по цепочке
провайдеров, он достигает вашей сети.Задачей вашего провайдера является объявить на магистрали о том,
что он отвечает за подключение (и поэтому на него указывает маршрут)
вашей сети. Этот процесс называется распространением маршрута.Устранение неполадокtracerouteИногда с распространением маршрута возникают проблемы, и некоторые
сайты не могут к вам подключиться. Наверное, самой полезной командой
для определения точки неверной работы маршрутизации является
&man.traceroute.8;. Она также полезна и когда вы сами не можете
подключиться к удаленной машине (то есть команда &man.ping.8; не
срабатывает).Команда &man.traceroute.8; запускается с именем удаленного хоста, с
которым вы хотите установить соединение, в качестве параметра. Она
показывает промежуточные сетевые шлюзы по пути следования, в конце
концов достигая адрес назначения или прерывая свою работу из-за
отсутствия соединения.За дополнительной информацией обратитесь к странице Справочника по
&man.traceroute.8;.Маршрутизация многоадресного трафикамаршрутизация многоадресного трафикапараметры ядраMROUTINGFreeBSD изначально поддерживает как приложения, работающие с
многоадресным трафиком, так и его маршрутизацию. Такие приложения не
требуют особой настройки FreeBSD; обычно они работают сразу.
Для маршрутизации многоадресного трафика требуется, чтобы поддержка
этого была включена в ядро:options MROUTINGКроме того, даемон многоадресной маршрутизации, &man.mrouted.8;,
должен быть настроен посредством файла
/etc/mrouted.conf на использование туннелей и
DVMRP. Дополнительную информацию о настройки
многоадресного трафика
можно найти на страницах справочной системы, посвящённых даемону
&man.mrouted.8;.EricAndersonТекст предоставил АндрейЗахватовПеревёл на русский язык Беспроводные сетибеспроводные сети802.11беспроводные сетиВведениеБыло бы весьма полезным иметь возможность использовать компьютер
без хлопот, связанных с постоянно подключенным сетевым кабелем.
FreeBSD может использоваться как клиент беспроводной сети, и даже
в качестве точки доступа к ней.Режимы работы беспроводной связиСуществуют два варианта конфигурации устройств беспроводного
доступа 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.Режим инфраструктурыТочки доступаТочки доступа представляют собой беспроводные сетевые устройства,
позволяющие одному или большему количеству клиентов беспроводной сети
использовать эти устройства в качестве центрального сетевого
концентратора. При использовании точки доступа все клиенты работают
через неё. Зачастую используются несколько точек доступа для полного
покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или
парк.Точки доступа обычно имеют несколько подключений к сети: адаптер
беспроводной связи и один или большее количество сетевых
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.enable=1
&prompt.root; sysctl net.link.ether.bridge.config="wi0,xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1В версиях &os;, предшествующих 5.2, вместо указанных нужно
использовать следующие параметры:&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Теперь необходимо настроить адаптер беспроводной сети.
Следующая команда заставит адаптер работать в режиме точки
доступа:
&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Если статус не будет соответствовать
associated, это
может значить, что вы оказались вне зоны досягаемости точки
доступа, включили шифрование или, возможно, имеются проблемы с
конфигурацией.Шифрованиебеспроводные сетишифрованиеШифрование в беспроводной сети имеет важное значение, потому что
у вас нет больше возможности ограничить сеть хорошо защищённой
областью. Данные вашей беспроводной сети вещаются по всей
окрестности, так что любой заинтересовавшийся может их считать. Вот
здесь используется шифрование. Шифруя данные, посылаемые в
эфир, вы делаете их прямой перехват гораздо более сложным для всех
любопытных.Двумя наиболее широко применяемыми способами шифрования данных
между вашим клиентом и точкой доступа являются WEP
и &man.ipsec.4;.WEPWEPWEP является сокращением от 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 этого Руководства.УтилитыИмеется несколько утилит, которые можно использовать для
настройки и отладки вашей беспроводной сети, и здесь мы попытаемся
описать некоторые из них и что они могут делать.Пакет bsd-airtoolsПакет bsd-airtools представляет
собой полный набор инструментов, включая инструменты для проверки
беспроводной сети на предмет взлома WEP-ключа,
обнаружения точки доступа и тому подобное.Утилиты bsd-airtools можно
установить из порта net/bsd-airtools. Информацию
об установке портов можно найти в Главе
этого Руководства.Программа dstumbler является инструментом,
предназначенным для обнаружения точки доступа и выдачи отношения
уровня сигнала к шуму. Если у вас с трудом получается запустить
точку доступа, dstumbler может помочь вам
начать.Для тестирования информационной безопасности вашей беспроводной
сети, вы можете воспользоваться набором dweputils
(dwepcrack, dwepdump и
dwepkeygen), который может помочь
понять, является ли WEP подходящим решением для обеспечения ваших
потребностей в информационной безопасности.Утилиты wicontrol,
ancontrol и
raycontrolЭто инструменты, которые могут быть использованы для
управления поведением
адаптера беспроводной связи в сети. В примере выше мы выбирали
&man.wicontrol.8;, так как нашим адаптером беспроводной сети был
интерфейс wi0. Если у вас установлено
устройство беспроводного доступа от Cisco, этим интерфейсом будет
an0, и тогда вы будете
использовать &man.ancontrol.8;.Команда ifconfigifconfigКоманда &man.ifconfig.8; может использоваться для установки
многих из тех параметров, что задаёт &man.wicontrol.8;, однако
работа с некоторыми параметрами в ней отсутствует. Обратитесь к
&man.ifconfig.8; для выяснения параметров и опций командной
строки.Поддерживаемые адаптерыТочки доступаЕдинственными адаптерами, которые на данный момент
поддерживаются в режиме BSS (как точка доступа), являются те
устройства, что сделаны на основе набора микросхем Prism 2, 2.5
или 3). Полный список можно увидеть в &man.wi.4;.Клиенты 802.11bПрактически все адаптеры беспроводной связи 802.11b на данный
момент во FreeBSD поддерживаются. Большинство адаптеров,
построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink,
будут работать в качестве адаптера беспроводной сети в режиме
IBSS (ad-hoc, одноранговая сеть и BSS).Клиенты 802.11a и 802.11gДрайвер устройства &man.ath.4; поддерживает 802.11a и 802.11g.
Если ваша карта основана на чипсете Atheros, вы можете использовать
этот драйвер.К сожалению, все еще много производителей, не предоставляющих
схематику своих драйверов сообществу open source, поскольку
эта информация считается торговым секретом. Следовательно,
у разработчиков FreeBSD и других операционных систем остается
два варианта: разработать драйверы долгим и сложным методом
обратного инжиниринга, или использовать существующие драйверы
для платформ µsoft.windows;. Большинство разработчиков
FreeBSD выбрали второй способ.Благодаря усилиям Билла Пола (wpaul), начиная
с FreeBSD 5.3-RELEASE существует прозрачная
поддержка Network Driver Interface Specification (NDIS).
FreeBSD NDISulator (известный также как Project Evil)
преобразует бинарный драйвер &windows; так, что он работает
так же как и в &windows;. Эта возможность всё ещё относительно
нова, но в большинстве тестов она работает адекватно.NDISзагрузчик NDIS
- драйверы &windows
+ драйверы &windows;Microsoft WindowsMicrosoft Windowsдрайверы устройствKLD (загружаемый объект ядра)Для использования NDISulator потребуются три вещи:Исходные тексты ядраБинарный драйвер &windowsxp;
(расширение .SYS)Файл конфигурации бинарного драйвера &windowsxp;
(расширение .INF)Вам может потребоваться компиляция драйвера оболочки мини порта
&man.ndis.4;. Под root:&prompt.root; cd /usr/src/sys/modules/ndis
&prompt.root; make && make installОпределите местоположение файлов для вашей карты. Обычно
их можно найти на входящем в комплект CD или на Web-сайте
поставщика. В нашем примере используются файлы
W32DRIVER.SYS и
W32DRIVER.INF.Следующий шаг это компиляция бинарного драйвера в
загружаемый модуль ядра. Чтобы сделать это, сначала зайдите в
каталог модуля if_ndis и с правами
root скопируйте туда драйверы
&windows;:&prompt.root; cd /usr/src/sys/modules/if_ndis
&prompt.root; cp /path/to/driver/W32DRIVER.SYS ./
&prompt.root; cp /path/to/driver/W32DRIVER.INF ./Теперь используйте утилиту ndiscvt для
создания заголовка определения драйвера
ndis_driver_data.h перед сборкой
модуля:&prompt.root; ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.hПараметры и задают
соответственно файл настройки и бинарный файл. Мы используем
параметр , поскольку
Makefile при создании модуля будет
обращаться именно к этому файлу.Некоторым драйверам &windows; для работы требуются
дополнительные файлы. Вы можете включить их параметром
ndiscvt . Обратитесь
к странице справочной системы &man.ndiscvt.8; за
дополнительной информацией.Наконец, соберите и установите модуль драйвера:&prompt.root; make && make installДля использования драйвера необходимо загрузить соответствующие
модули:&prompt.root; kldload ndis
&prompt.root; kldload if_ndisПервая команда загружает оболочку драйвера мини-порта NDIS,
вторая загружает собственно сетевой интерфейс. Проверьте
&man.dmesg.8; на предмет ошибок загрузки. Если все прошло
хорошо, вывод должен быть примерно таким:ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54MbpsНачиная с этого момента вы можете использовать устройство
ndis0 как любое другое беспроводное
устройство (например, wi0);
в этой ситуации применима информация, приведенная в начале этой
главы.PavLucistnikТекст предоставил pav@oook.czBluetoothBluetoothВведение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 и более новых версиях системы.Подключение устройстваПо умолчанию драйверы устройств 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: 8HCIHost 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 для выполнения не требуют прав администратора системы.L2CAPLogical 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 OPENRFCOMMПротокол 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.pairingPairing 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:a4SDPService Discovery Protocol (SDP)Протокол обнаружения сервисов SDP даёт возможность клиентским
приложениям осуществлять поиск услуг, предоставляемых серверными
приложениями, а также характеристик этих услуг. В перечень атрибутов
сервиса включается тип класса предлагаемого сервиса и информация о
механизме или протоколе, требуемом для использования сервиса.SDP подразумевает коммуникации между SDP-сервером и SDP-клиентом.
Сервер поддерживает список сервисов, в котором описываются параметры
сервисов, связанных с сервером. Каждая запись об услуге содержит
информацию об одном сервисе. Клиент может запросить информацию об
определённом сервисе, обслуживаемом SDP-сервером, выдавая SDP-запрос.
Если клиент или приложение, связанное с клиентом, решат воспользоваться
сервисом, то для его использования необходимо открыть отдельное
соединение к устройству, предоставляющему сервис. SDP предоставляет
механизм обнаружения услуг и их параметров, но не даёт механизма
использования этих сервисов.Обычно SDP-клиент выполняет поиск услуг на основе некоторых
желаемых характеристик услуг. Однако иногда возникает необходимость
выяснить полный перечень типов услуг, предоставляемых SDP-сервером,
не имея никакой информации об имеющихся сервисах. Такой процесс
всех предлагаемых сервисов называется обзором
(browsing).Bluetooth SDP сервер &man.sdpd.8; и клиент с интерфейсом
командной строки &man.sdpcontrol.8; включены в стандартную поставку
&os;. В следующем примере показано, как выполнять
запрос на SDP-обзор.&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... и так далее. Заметьте, что каждый сервис имеет перечень
атрибутов (например, канал RFCOMM). В зависимости от сервиса вам может
потребоваться где-то сохранить эти атрибуты. Некоторые реализации
Bluetooth не поддерживают просмотр сервисов и могут возвращать пустой
список. В этом случае возможен поиск конкретной услуги. В примере
ниже показано, как выполнить поиск службы OBEX Object Push
(OPUSH):&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHВо &os; предоставление сервисов клиентам Bluetooth осуществляется
сервером &man.sdpd.8;:&prompt.root; sdpdПриложение на локальном сервере, желающее предоставить сервис
Bluetooth удаленным клиентам, регистрирует сервис через локального
даемона SDP. Пример такого приложения — &man.rfcomm.pppd.8;.
После запуска оно регистрирует Bluetooth LAN сервис через локального
даемона SDP.Список сервисов, зарегистрированных через локальный SDP сервер,
может быть получен путем выдачи запроса на просмотр SDP через
локальный контрольный канал:&prompt.root; sdpcontrol -l browseДоступ к сети по коммутируемой линии связи (DUN) и по протоколу
PPP (LAN)Модуль работы с коммутируемым доступом к сети (DUN - Dial-Up
Networking) в большинстве случаев используется с модемами и сотовыми
телефонами. Этот модуль покрывает следующие случаи:сотовый телефон или модем используется вместе с компьютером
в качестве беспроводного модема для подключения к серверу
коммутируемого доступа в Интернет, или другой коммутируемой
услуге;сотовый телефон или модем используется компьютером для приёма
входящих соединений.Модуль доступа к сети по протоколу PPP (Network Access with
PPP - LAN) может использоваться в следующих ситуациях:доступ к ЛВС для одного 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-канала на удалённом
устройстве используйте утилиту &man.sdpcontrol.8;.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupДля того, чтобы организовать сервис Network Access with PPP (LAN),
необходимо запустить сервер &man.sdpd.8;. В файле
/etc/ppp/ppp.conf должна быть создана новая запись
для клиентов LAN. Примеры можно найти в справке по
&man.rfcomm.pppd.8;. Наконец, запустите RFCOMM PPP сервер на
существующем номере канала RFCOMM. Сервер RFCOMM PPP автоматически
зарегистрирует Bluetooth LAN сервис через локальный SDP даемон.
В примере ниже показано, как запустить сервер RFCOMM PPP.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXOBEX Object Push (OPUSH) ProfileOBEX является широко используемым протоколом для простой передачи
файлов между мобильными устройствами. В основном он используется в
коммуникациях через инфракрасный порт для передачи файлов между
ноутбуками или КПК, а также для пересылки визитных
карточек или календарных планов между сотовыми телефонами и
другими устройствами с персональными информационными
менеджерами.Сервер и клиент OBEX реализованы в виде пакета стороннего
разработчика obexapp, который доступен
в виде порта comms/obexapp.Клиент OBEX используется для посылки или приёма объектов с сервера
OBEX. Объектом, к примеру, может быть визитная карточка или
указание. Клиент OBEX может получить номер RFCOMM-канала, указав
вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC,
FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся
пример сеанса OBEX, где с сотового телефона забирается объект с
информацией об устройстве, а новый объект (визитная карточка)
передаётся в каталог сотового телефона.&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Для того, чтобы предоставить сервис OBEX Push, должен быть запущен
сервер &man.sdpd.8;. Должен быть создан
корневой каталог, в котором будут сохраняться все поступающие объекты.
По умолчанию корневым каталогом является
/var/spool/obex. Наконец, запустите OBEX
сервер на существующем номере канала RFCOMM. OBEX сервер
автоматически зарегистрирует сервис OBEX Object Push через локального
даемона SDP. В примере ниже показано, как запустить
OBEX-сервер.&prompt.root; obexapp -s -C 10Профиль последовательного порта (SPP)Профиль последовательного порта (SPP - Serial Port Profile) позволяет
Bluetooth-устройствам осуществлять эмуляцию последовательного порта
RS232 (или подобного). Этот профиль покрывает случаи, касающиеся
работы унаследованных приложений с Bluetooth в качестве замены
кабельному соединению, при это используется абстракция виртуального
последовательного порта.Утилита &man.rfcomm.sppd.1; реализует профиль
последовательного порта. В качестве виртуального последовательного порта
используется псевдотерминал. В примере ниже показано, как подключиться
к сервису Serial Port удалённого устройства. Заметьте, что вы не
указываете RFCOMM-канал - &man.rfcomm.sppd.1; может получить его с
удалённого устройства через SDP. Если вы хотите переопределить это,
укажите RFCOMM-канал явно в командной строке.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...После подключения псевдотерминал можно использовать как
последовательный порт:&prompt.root; cu -l ttyp6Решение проблемУдалённое устройство не подключаетсяНекоторые старые Bluetooth-устройства не поддерживают
переключение ролей. По умолчанию, когда &os; подтверждает новое
соединение, она пытается выполнить переключение роли и стать ведущим
устройством. Устройства, которые это не поддерживают, не смогут
подключиться. Заметьте, что переключение ролей выполняется при
установлении нового соединения, поэтому невозможно выяснить,
поддерживает ли удалённое устройство переключение ролей. На
локальной машине имеется возможность отключить переключение ролей при
помощи HCI-параметра:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Что-то идёт не так, можно ли посмотреть, что в точности
происходит?Да, можно. Воспользуйтесь пакетом стороннего разработчика,
hcidump который доступен в виде порта
comms/hcidump. Утилита
hcidump похожа на &man.tcpdump.1;. Она
может быть использована для вывода на терминал содержимого
Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл.StevePetersonТекст создал МостыВведениеподсеть IPсетевой мостИногда полезно разделить одну физическую сеть (такую, как
сегмент Ethernet) на два отдельных сегмента сети без необходимости
создания подсетей IP и использования маршрутизатора для соединения
сегментов. Устройство, которое соединяет две сети на такой манер,
называется сетевым мостом (bridge).
Система FreeBSD с двумя сетевыми адаптерами может выступать в роли
моста.Мост работает на основе изучения адресов уровня MAC (адресов
Ethernet) устройств на каждом из своих сетевых интерфейсах.
Он перенаправляет трафик между двумя сетями, только когда адреса
отправителя и получателя находятся в разных сетях.По многим параметрам мост работает также, как коммутатор Ethernet
с малым количеством портов.Ситуации, когда можно использовать мостыНа сегодняшний день есть две ситуации, когда можно использовать
мост.Большой трафик в сегментеПервая ситуация возникает, когда ваша физическая сеть перегружена
трафиком, но по каким-то соображениям вы не хотите разделять сеть
на подсети и соединять их с помощью маршрутизатора.Давайте рассмотрим в качестве примера газету, в которой
редакторский и производственный отделы находятся в одной и той же
подсети. Пользователи в редакторском отделе все используют сервер
A для служб доступа к файлам, а пользователи
производственного отдела используют сервер B. Для
объединения всех пользователей используется сеть Ethernet, а высокая
нагрузка на сеть замедляет работу.Если пользователи редакторского отдела могут быть собраны в
одном сегменте сети, а пользователи производственного отдела в
другом, то два сетевых сегмента можно объединить мостом. Только
сетевой трафик, предназначенный для интерфейсов с
другой стороны моста, будет посылаться в другую сеть,
тем самым снижая уровень нагрузки на каждый сегмент сети.Сетевой экран с возможностями фильтрации/ограничения
пропускной способности трафикасетевой экранNATВторой распространённой ситуацией является необходимость в
обеспечении функций сетевого экрана без трансляции
сетевых адресов (NAT).Для примера можно взять маленькую компанию, которая подключена
к своему провайдеру по каналу DSL или ISDN. Для неё провайдер
выделил 13 глобально доступных IP-адресов для имеющихся в сети 10
персональных компьютеров. В такой ситуации использование сетевого
экрана на основе маршрутизатора затруднено из-за проблем с
разделением на подсети.маршрутизаторDSLISDNБрандмауэр на основе моста может быть настроен и включен
между маршрутизаторами DSL/ISDN без каких-либо проблем с
IP-адресацией.Настройка мостаВыбор сетевого адаптераДля работы моста требуются по крайней мере два сетевых адаптера.
К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают
функции моста. Прочтите страницу Справочника по &man.bridge.4; для
выяснения подробностей о поддерживаемых адаптерах.Перед тем, как продолжить, сначала установите и протестируйте
два сетевых адаптера.Изменения в конфигурации ядрапараметры ядраBRIDGEДля включения поддержки функций сетевого моста в ядре, добавьте
строчкуoptions BRIDGEв файл конфигурации вашего ядра, и перестройте ядро.Поддержка функций брандмауэрабрандмауэрЕсли вы планируете использовать мост в качестве
брандмауэра, вам нужно также добавить опцию
IPFIREWALL.
Прочтите , содержащую общую
информацию о настройке моста в качестве брандмауэра.Если вам необходимо обеспечить прохождение не-IP пакетов (таких,
как ARP) через мост, то имеется опция брандмауэра,
которую можно задать. Это опция
IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при
этом правило, используемое брандмауэром по умолчанию, меняется
на разрешительное для всех пакетов. Перед тем, как задавать эту
опцию, убедитесь, что вы понимаете работу вашего набора
правил.Поддержка функций ограничения пропускной способностиЕсли вы хотите использовать мост в качестве машины,
ограничивающей пропускную способность, то добавьте в файл
конфигурации ядра опцию DUMMYNET. Дополнительную
информацию можно почерпнуть из страницы Справочника по
&man.dummynet.4;.Включение функций мостаДобавьте строкуnet.link.ether.bridge.enable=1в файл /etc/sysctl.conf для включения функций
моста во время работы системы, и строку:net.link.ether.bridge.config=if1,if2для включения функций моста для указанных интерфейсов (замените
if1 и if2 на
имена двух ваших сетевых интерфейсов). Если вы хотите, чтобы
проходящие через мост пакеты фильтровались посредством &man.ipfw.8;,
вы должны также добавить строчку:net.link.ether.bridge.ipfw=1Для версий &os;, предшествующих &os; 5.2-RELEASE, нужно
использовать следующие строки:net.link.ether.bridge=1
net.link.ether.bridge_cfg=if1,if2
net.link.ether.bridge_ipfw=1Дополнительные замечанияЕсли вы хотите осуществлять удалённый доступ на мост через
&man.ssh.1; из сети, то корректно назначить одному из сетевых
адаптеров IP-адрес. Общепринято, что назначение адреса обоим сетевым
адаптерам является не самой хорошей идеей.Если в вашей сети присутствует несколько мостов, не должно быть
более одного маршрута между любыми двумя рабочими станциями. С
технической точки зрения это означает отсутствие поддержки протокола
spanning tree.Сетевой мост может увеличить задержки в замерах командой
&man.ping.8;, особенно для трафика между двумя разными
сегментами.Jean-FrançoisDockèsТекст обновил AlexDupreРеорганизовал и улучшил Работа с бездисковыми станциямиработа без дискаМашина с 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; (&os; 4.X) или &man.md.4; (&os; 5.X).
Любые изменения будут потеряны при перезагрузках
системы.Ядро передается и загружается посредством
Etherboot или PXE,
и в некоторых ситуациях может быть использован любой из
этих методов.Как описано, эта система не защищена. Она должна располагаться в
защищенной части сети, а другие хосты не должны на нее
полагаться.Вся информация этого раздела была протестирована с
релизами &os; 4.9-RELEASE и 5.2.1-RELEASE. Текст структурирован
преимущественно для использования с 4.X. Отличия
для 5.X упоминаются особо.Общая информацияНастройка бездисковых рабочих станций относительно проста,
но в то же время легко сделать ошибку. Иногда сложно
диагностировать эти ошибки по нескольким причинам.
Например:Параметры компиляции могут по-разному проявлять
себя во время работы.Сообщения об ошибках бывают загадочны или вовсе
отсутствуют.В данной ситуации некоторые знания, касающиеся используемых
внутренних механизмов, очень полезны при разрешении проблем,
которые могут возникнуть.Для выполнения успешной загрузки необходимо произвести
несколько операций:Компьютеру необходимо получить начальные параметры, такие
как собственный IP адрес, имя исполняемого файла, корневой
каталог. Для этого используются протоколы DHCP
или BOOTP. DHCP это совместимое расширение
BOOTP, используются те же номера портов и основной формат
пакетов.Возможна настройка системы для использования только BOOTP.
Серверная программа &man.bootpd.8; включена в основную систему
&os;.Тем не менее, у DHCP есть множество
преимуществ над BOOTP (лучше файлы настройки, возможность
использования PXE, плюс многие другие
преимущества, не относящиеся непосредственно к бездисковым
операциям), и мы в основном будем описывать настройку
DHCP, с эквивалентными примерами
для &man.bootpd.8;, когда это возможно. Пример
конфигурации будет использовать пакет
ISC DHCP (релиз
3.0.1.r12 был установлен на тестовом сервере).Компьютеру требуется загрузить в локальную память одну
или несколько программ. Используются TFTP
или NFS. Выбор между
TFTP или NFS
производится во время компилирования в нескольких местах.
Часто встречающаяся ошибка это указание имен файлов для
другого протокола: TFTP обычно
загружает все файлы с одного каталога сервера, и принимает
имена файлов относительно этого каталога. NFS
нужны абсолютные пути к файлам.Необходимо инициализировать и выполнить возможные
промежуточные программы загрузки и ядро. В этой области
существует несколько важных вариаций:PXE загрузит &man.pxeboot.8;,
являющийся модифицированной версией загрузчика
третьей стадии &os;. &man.loader.8; получит большинство
параметров, необходимых для старта системы, и оставит
их в окружении ядра до контроля передачи. В этом
случае возможно использование ядра
GENERIC.Etherboot, непосредственно
загрузит ядро, с меньшей подготовкой. Вам потребуется
собрать ядро со специальными параметрами.PXE и Etherboot
работают одинаково хорошо с системами 4.X. Поскольку ядро
5.X обычно позволяет &man.loader.8; выполнить больше
предварительной работы, метод PXE на системах
5.X предпочтителен.Если ваш BIOS и сетевые карты поддерживают
PXE, используйте его. Однако, все же возможен
запуск системы 5.X с Etherboot.Наконец, компьютеру требуется доступ к файловым системам.
NFS используется во всех случаях.Обратитесь также к странице справочника &man.diskless.8;.Инструкции по настройкеКонфигурация с использованием ISC DHCPDHCPбездисковые конфигурацииСервер ISC DHCP может обрабатывать
как запросы BOOTP, так и запросы DHCP.Начиная с релиза 4.9, ISC DHCP 3.0
не включается в поставку системы. Сначала вам нужно будет
установить порт net/isc-dhcp3-server
или соответствующий пакет.После установки ISC DHCP ему для
работы требуется конфигурационный файл (обычно называемый
/usr/local/etc/dhcpd.conf). Вот
прокомментированный пример, где хост margaux
использует Etherboot, а хост
corbieres использует
PXE:
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 "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Этот параметр указывает dhcpd посылать
значения деклараций host как имя хоста для
бездисковой машины. Альтернативным способом было бы добавление
option host-name
margaux внутри объявлений
host.Директива next-server определяет сервер
TFTP или NFS,
используемый для получения загрузчика или файла ядра
(по умолчанию используется тот же самый хост, на котором
расположен сервер DHCP).Директива filename определяет файл,
который Etherboot или
PXE будут загружать для следующего шага
выполнения. Он должен быть указан в соответствии с
используемым методом передачи.
Etherboot может быть скомпилирован
для использования NFS или
TFTP. &os; порт по умолчанию использует
NFS. PXE использует
TFTP, поэтому здесь применяются
относительные пути файлов (это может зависеть от настроек
TFTP сервера, но обычно довольно типично).
Кроме того, PXE загружает
pxeboot, а не ядро. Существуют другие
интересные возможности, такие как загрузка
pxeboot из каталога
/boot &os; CD-ROM
(поскольку &man.pxeboot.8; может загружать
GENERIC ядро, это делает возможной
загрузку с удаленного CD-ROM).Параметр root-path определяет путь к
корневой файловой системе, в обычной нотации
NFS. При использовании
PXE, можно оставить IP хоста отключенным,
если параметр ядра BOOTP не используется. Затем
NFS сервер может использоваться так же,
как и TFTP.Настройка с использованием BOOTPBOOTPбездисковые конфигурацииДалее описана эквивалентная конфигурация с использованием
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
Подготовка программы загрузки при помощи
EtherbootEtherbootСайт
Etherboot содержит
подробную документацию, в основном предназначенную для систем
Linux, но несомненно, она полезна. Далее будет просто кратко
описано, как вы должны использовать
Etherboot в системе FreeBSD.Сначала вы должны установить пакет или порт net/etherboot.Вы можете изменить настройку
Etherboot (например, для использования
TFTP вместо NFS) путем
редактирования файла Config
в каталоге исходных текстов
Etherboot.В нашей ситуации мы будем использовать загрузочную дискету. Для
других методов (PROM или программа &ms-dos;) пожалуйста, обратитесь к
документации по Etherboot.Для создания загрузочной дискеты, вставьте дискету в дисковод на
машине, где установлен Etherboot, затем
перейдите в каталог src в дереве
Etherboot и наберите:
&prompt.root; gmake bin32/devicetype.fd0devicetype зависит от типа адаптера
Ethernet на бездисковой рабочей станции. Обратитесь к файлу
NIC в том же самом каталоге для определения
правильного значения для
devicetype.Загрузка с PXEПо умолчанию, &man.pxeboot.8; загружает ядро через
NFS. Он может быть скомпилирован для
использования вместо него TFTP путем
указания параметра LOADER_TFTP_SUPPORT в
/etc/make.conf. Смотрите комментарии в
/etc/defaults/make.conf (или
/usr/share/examples/etc/make.conf систем
5.X) с инструкциями.Есть два не документированных параметра
make.conf, которые могут быть полезны для
настройки бездискового компьютера с последовательной консолью:
BOOT_PXELDR_PROBE_KEYBOARD, и
BOOT_PXELDR_ALWAYS_SERIAL (последняя существует
только в &os; 5.X).Для использования PXE при загрузке компьютера
вам обычно потребуется выбрать параметр Boot from
network (загрузка по сети) в настройках
BIOS, или нажать функциональную клавишу во
время загрузки PC.Настройка серверов TFTP и NFSTFTPбездисковые конфигурацииNFSбездисковые конфигурацииЕсли вы используете PXE или
Etherboot, настроенные для
использования TFTP, вам нужно включить
tftpd на файловом сервере:Создайте каталог, файлы которого будет обслуживать
tftpd, например,
/tftpboot.Добавьте в ваш /etc/inetd.conf такую
строчку:tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -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
corbieres
именами бездисковых рабочих станций):/data/misc -alldirs -ro margaux corbieresУкажите mountd на повторное чтение
настроечного файла. На самом деле если вам потребовалось на
первом шаге включить NFS в /etc/rc.conf, то
вам нужно будет выполнить перезагрузку.&prompt.root; kill -HUP `cat /var/run/mountd.pid`Построение ядра для бездисковой рабочей станциибездисковые конфигурациинастройка ядраПри использовании Etherboot, вам
потребуется создать конфигурационный файл ядра для бездискового
клиента со
следующими параметрами (вдобавок к обычным):
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
Вам может потребоваться использовать
BOOTP_NFSV3, BOOT_COMPAT
и BOOTP_WIRED_TO
(посмотрите LINT в 4.X или
NOTES в 5.X).Эти имена параметров сложились исторически, и могут немного
ввести в заблуждение, поскольку включают необязательное
использование DHCP и BOOTP в ядре (возможно
включение обязательного использования BOOTP
или DHCP use).Постройте ядро (обратитесь к ) и
скопируйте его в каталог, указанный в
dhcpd.conf.При использовании PXE, сборка ядра
с вышеприведенными параметрами не является совершенно необходимой
(хотя желательна). Включение этих параметров приведет к
выполнению большинства DHCP запросов во время
загрузки ядра, с небольшим риском несоответствия новых значений
и значений, полученных &man.pxeboot.8; в некоторых особых
случаях. Преимущество использования в том, что в качестве
побочного эффекта будет установлено имя хоста. Иначе вам
потребуется установить имя хоста другим методом, например
в клиент-специфичном файле rc.conf.Для включения возможности загрузки с
Etherboot, в ядро 5.X необходимо
включить устройство hints. Вам потребуется установить
в файле конфигурации следующий параметр (см. файл
комментариев NOTES):hints "GENERIC.hints"Подготовка корневой файловой системыкорневая файловая системабездисковые конфигурацииВам нужно создать корневую файловую систему для бездисковых
рабочих станций, в местоположении, заданном как
root-path в
dhcpd.conf. В следующем разделе
описаны два способа, чтобы сделать это.Использование скрипта clone_rootЭто самый простой способ создания корневой файловой системы,
но на данный момент он не поддерживается в &os; 4.X. Этот
shell скрипт находится в
/usr/share/examples/diskless/clone_root,
и требует настройки, по крайней мере, задания того места, где
будет создана файловая система (переменная
DEST).Прочтите комментарии в начале скрипта для получения указаний.
Там описано, как строится основная файловая система, и как файлы
могут быть выборочно заменены версиями, предназначенными для работы
без диска, для подсети или для отдельной рабочей станции. Также
здесь даются примеры бездисковых файлов
/etc/fstab и
/etc/rc.conf.Файлы README в
/usr/share/examples/diskless много интересной
информации, но вместе с другими примерами из каталога
diskless они на самом деле описывают метод
настройки, который отличается от того, что используется в
clone_root и
стартовых скриптах системы из
/etc, этим несколько запутывая
дело. Используйте их только для справки, за исключением того случая,
когда вы выберете метод, ими описываемый, и тогда вам нужны
исправленные скрипты rc.Использование стандартной процедуры
make worldЭтот метод может быть применен к &os; 4.X или 5.X и
установит новую систему (не только корневую) в
DESTDIR. Все, что вам потребуется сделать,
это просто выполнить следующий скрипт:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make world && make kernel
cd /usr/src/etc; make distributionКак только это будет сделано, вам может потребоваться
настроить /etc/rc.conf и
/etc/fstab, помещенные в
DESTDIR, в соответствии с вашими
потребностями.Настройка области подкачкиЕсли это нужно, то файл подкачки, расположенный на сервере, можно
использовать посредством NFS. Один из методов,
используемых для этого, не поддерживается в релизах 5.X.Подкачка по NFS в &os; 4.XМестоположение и размер файла подкачки могут быть указаны
&os;-специфичными параметрами BOOTP/DHCP
128 и 129. Примеры файлов настройки для
ISC DHCP 3.0 или
bootpd приведены ниже:Добавьте следующие строки в
dhcpd.conf:
# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}
swap-path это путь к каталогу, где
находятся файлы подкачки. Название каждого файла имеет вид
swap.client-ip.Старые версии dhcpd использовали
синтаксис
option option-128 "..., который больше не
поддерживается.Во /etc/bootptab будет использоваться
такой синтаксис:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00В файле /etc/bootptab размер файла
подкачки должен быть записан в шестнадцатеричном формате.На файловом сервере 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.6192.168.4.6 является IP-адресом
бездискового клиента.На файловом сервере NFS, в /etc/exports
добавьте такую строку:/netswapvolume -maproot=0:10 -alldirs margaux corbieresЗатем укажите mountd на повторное
чтение файла exports, как описано
ранее.Подкачка по NFS в &os; 4.XПоложение и размер файла подкачки могут быть указаны в
&os;-специфичных параметрах BOOTP/DHCP
с номерами 128 и 129. Ниже приведены примеры файлов
настройки для ISC DHCP 3.0 или
bootpd:Добавьте следующие строки к
dhcpd.conf:
# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}
swap-path это путь к каталогу, где
расположены файлы подкачки. Файлы называются
swap.client-ip.Старые версии dhcpd используют
синтаксис option option-128 "..., которые
более не поддерживаются./etc/bootptab вместо этого использует
следующий синтаксис:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00В /etc/bootptab, размер
подкачки должен вычисляться в шестнадцатеричном
формате.Создайте на 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.6192.168.4.6 это IP адрес
бездискового клиента.На файловом сервере NFS с файлами
подкачки добавьте следующую строку к
/etc/exports:/netswapvolume -maproot=0:10 -alldirs margaux corbieresЗатем заставьте mountd перечитать
конфигурационные файлы как было показано выше.Различные проблемыРабота с /usr, доступной только для
чтениябездисковые конфигурации/usr только для чтенияЕсли бездисковая рабочая станция настроена на запуск X, вам
нужно подправить настроечный файл для
XDM, который по умолчанию
помещает протокол ошибок в /usr.Использование не-FreeBSD сервераЕсли сервер с корневой файловой системой работает не под
управлением FreeBSD, вам потребуется создать корневую файловую
систему на машине FreeBSD, а затем скопировать ее в нужно место,
при помощи tar или
cpio.В такой ситуации иногда возникают проблемы со
специальными файлами в /dev из-за различной
разрядности целых чисел для старшего/младшего чисел. Решением
этой проблемы является экспортирование каталога с не-FreeBSD
сервера, монтирование его на машине с FreeBSD и запуск
скрипта MAKEDEV на машине с FreeBSD для создания
правильных файлов устройств (во FreeBSD 5.0 и более поздних версиях
используется &man.devfs.5; для создания файлов устройств прозрачно
для пользователя, запуск MAKEDEV в этих версиях
бессмысленно).ISDNISDNПолезным источником информации о технологии ISDN и его аппаратном
обеспечении является
Страница Дэна Кегела (Dan Kegel) об ISDN.Быстрое введение в ISDN:Если вы живёте в Европе, то вам может понадобиться изучить раздел
об ISDN-адаптерах.Если вы планируете использовать ISDN в основном для соединений
с Интернет через провайдера по коммутируемому, не выделенному
соединению, рекомендуется посмотреть информацию о терминальных
адаптерах. Это даст вам самую большую гибкость и наименьшее
количество проблем при смене провайдера.Если вы объединяете две локальные сети или подключаетесь к
Интернет через постоянное ISDN-соединение, рекомендуем остановить свой
выбор на отдельном мосте/маршрутизаторе.Стоимость является важным фактором при выборе вашего решения.
Далее перечислены все возможности от самого дешевого до самого дорогого
варианта.HellmuthMichaelisТекст предоставил Адаптеры ISDNISDNадаптерыРеализация 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 ProAdtranБольшинство остальных TA, скорее всего, тоже будут работать,
производители TA прилагают все усилия для обеспечения поддержки
практически всего набора стандартных AT-команд модема.Как и в случае модемов проблемой использования внешнего TA является
потребность в хорошем последовательном адаптере на вашем
компьютере.Вы должны прочесть учебник Последовательные устройства
во FreeBSD для того, чтобы в деталях понять работу
последовательных устройств и осознать различие между асинхронными и
синхронными последовательными портами.TA, работающий со стандартным последовательным (асинхронным) портом
PC, ограничивает вас скоростью 115.2 Кбит/с, хотя реально у вас
соединение на скорости 128 Кбит/с. Чтобы использовать
128 Кбит/с, которые обеспечивает ISDN, полностью, вы должны
подключить TA к синхронному последовательному адаптеру.Не обманывайте себя, думая, что покупка встроенного TA поможет
избежать проблемы синхронности/асинхронности. Встроенные TA просто
уже имеют внутри стандартный последовательный порт PC. Все, что при
этом достигается - это экономия дополнительных последовательного
кабеля и электрической розетки.Синхронный адаптер с TA по крайней мере так же быстр, как и
отдельный маршрутизатор, а если он работает под управлением машины
класса 386 с FreeBSD, то это гораздо более гибкое решение.Выбор между использованием синхронного адаптера/TA или отдельного
маршрутизатора в большей степени является религиозным вопросом. По этому
поводу в списках рассылки была некоторая дискуссия. Рекомендуем поискать
в архивах обсуждение
полностью.Отдельные мосты/маршрутизаторы ISDNISDNотдельно стоящие мосты/маршрутизаторыМосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD
или для любой другой операционной системы. Для более подробного
описания технологий маршрутизации и работы мостов, пожалуйста,
обратитесь к справочникам по сетевым технологиям.В контексте этого раздела термины маршрутизатор и сетевой мост будут
использоваться как взаимозаменяемые.Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они
становятся все более популярными. Маршрутизатор ISDN представляет
собой маленькую коробочку, которая подключается непосредственно в
вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором.
Всё программное обеспечение для работы по PPP и другим протоколам
встроено в маршрутизатор.Маршрутизатор обладает гораздо большей пропускной способностью, чем
стандартный TA, так как он использует полное синхронное соединение
ISDN.Основной проблемой с маршрутизаторами и мостами ISDN является то,
что их совместная работа с оборудованием других производителей может
оказаться под вопросом. Если вы собираетесь подключаться к провайдеру,
то вы должны обсудить с ним то, что вам нужно.Если вы планируете объединить два сегмента локальной сети, например,
домашнюю сеть с сетью офиса, это самое простое решение с минимальными
издержками на обслуживание. Так как вы покупаете оборудование для
обоих сторон соединения, то можете быть уверены, что связь будет
работать нормально.Например, для соединения домашнего компьютера или сети
подразделения к сети центрального офиса, может использоваться такая
настройка:Офис подразделения или домашняя сеть10 base 2Сеть построена в топологии общей шины на основе 10 base 2 Ethernet
(thinnet - тонкий Ethernet). Подключите
маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если
это нужно.---Рабочая станция Sun
|
---Машина с FreeBSD
|
---Windows 95
|
Отдельный маршрутизатор
|
Канал ISDN BRI10 Base 2 EthernetЕсли ваш домашний или удаленный офис представляет собой один
компьютер, то для непосредственного подключения к маршрутизатору вы
вы можете использовать витую пару с перекрестным соединениям.Центральный офис или другая локальная сеть10 base TСеть построена в топологии звезды на основе 10 Base T Ethernet
(витая пара). -------Сервер Novell
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Отдельно стоящий маршрутизатор
|
Канал ISDN BRIСхема сети с ISDNОдним большим преимуществом большинства маршрутизаторов/мостов
является то, что они позволяют иметь 2 отдельных
независимых соединения PPP к 2 различным сайтам
одновременно. Это не поддерживается в большинстве
TA, кроме специальных (обычно дорогих) моделей, имеющих по два
последовательных порта. Не путайте это с балансировкой нагрузки,
MPP и так далее.Это может оказаться весьма полезной особенностью, например, если
у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите
им воспользоваться, но не хотите задействовать дополнительный канал
ISDN на работе. Маршрутизатор, расположенный в офисе, может
использовать выделенное соединение по каналу B (64 Кбит/с) для
Интернет,
и одновременно другой канал B для отдельного соединения для передачи
данных. Второй канал B может использоваться для входящих, исходящих
и динамически распределяемых соединений (MPP и так далее) совместно с
первым каналом B для повышения пропускной способности.IPX/SPXМост Ethernet также позволяет вам передавать больше, чем просто
трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы,
которые вы используете.ChernLeeТекст предоставил Даемон преобразования сетевых адресов (natd)ОбзорnatdДаемон преобразования сетевых адресов (Network Address
Translation) во FreeBSD, широко известный как &man.natd.8;, является
даемоном, который принимает входящие IP-пакеты, изменяет адрес
отправителя на адрес локальной машины и повторно отправляет эти пакеты
в потоке исходящих пакетов. &man.natd.8; делает это, меняя IP-адрес
отправителя и порт таким образом, что когда данные принимаются
обратно, он может определить расположение источника начальных данных
и переслать их машине, которая запрашивала данные изначально.совместное использование доступа в ИнтернетNATЧаще всего 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="" Указывает машине выступать в качестве шлюза. Выполнение
команды sysctl net.inet.ip.forwarding=1
приведёт к тому же самому результату.При загрузке включает использование правил брандмауэра
из файла /etc/rc.firewall.Здесь задается предопределенный набор правил брандмауэра,
который разрешает все. Посмотрите файл
/etc/rc.firewall для нахождения
дополнительных типов.Указывает, через какой интерфейс передавать пакеты
(интерфейс, подключенный к Интернет).Любые дополнительный параметры, передаваемые при запуске
даемону &man.natd.8;.При использовании вышеуказанных параметров в файле
/etc/rc.conf при загрузке будет запущена команда
natd -interface fxp0. Эту команду можно запустить и
вручную.Если для передачи &man.natd.8; набирается слишком много
параметров, возможно также использовать конфигурационный файл. В
этом случае имя настроечного файла должно быть задано добавлением
следующей строки в /etc/rc.conf:natd_flags="-f /etc/natd.conf"Файл /etc/natd.conf будет содержать перечень
конфигурационных параметров, по одному в строке. К примеру, для
примера из следующего раздела будет использоваться такой файл:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80Для получения более полной информации о конфигурационном файле
прочтите страницу справки по &man.natd.8; относительно параметра
.Каждой машине и интерфейсу в ЛВС должен быть назначен 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,
а Web-сервер работает на клиенте B. Чтобы это
работало, соединения, принимаемые на портах 6667 (IRC) и 80 (Web),
должны перенаправляться на соответствующие машины.Программе &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 publicIPlocalIPВнутренний 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;, чтобы это сделать.IP по параллельному порту (PLIP)PLIPIP по параллельному портуPLIPPLIP позволяет нам работать с TCP/IP по параллельному порту. Это
полезно для машин без сетевых адаптеров или для установки на лэптопы.
В этом разделе мы обсудим:создание кабеля для параллельного порта (laplink).Соединение двух компьютеров посредством PLIP.Создание параллельного кабеляВы можете приобрести кабель для параллельного порта в большинстве
магазинов, торгующих комплектующими. Если вы его не найдете, или же
просто хотите знать, как он делается, то следующая таблица поможет вам
сделать такой кабель из обычного принтерного кабеля для параллельного
порта.
Настройка 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 msAaronKaplanПервоначальный текст написал TomRhodesРеструктуризацию и добавления внёс BradDavisРасширил IPv6IPv6 (также называемый 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Механизмы преобразования IPv6-в-IPv4Для получения дополнительной информации посмотрите:Обзор IPv6 на сайте playground.sun.comKAME.net6bone.netОсновы адресации IPv6Существуют различные типы адресов IPv6: одноадресные (Unicast),
групповые (Anycast) и многоадресные (Multicast).Адреса типа Unicast хорошо всем известны. Пакет, посланный на
такой адрес, достигает в точности интерфейса, который этому адресу
соответствует.Адреса типа Anycast синтаксически неотличимы от адресов Unicast,
но они адресуют группу интерфейсов. Пакет, направленный такому адресу,
попадёт в ближайший (согласно метрике маршрутизатора) интерфейс.
Адреса Anycast могут использоваться только маршрутизаторами.Адреса типа Multicast идентифицируют группу интерфейсов. Пакет,
посланный на такой адрес, достигнет всех интерфейсов, привязанных к
группе многоадресного вещания.Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами
многоадресного вещания IPv6.
Зарезервированные адреса IPv6IPv6 адресДлина префикса (биты)ОписаниеЗаметки::128 битнет описанияcf. 0.0.0.0 в
IPv4::1128 битloopback адресcf. 127.0.0.1 в
IPv4::00:xx:xx:xx:xx96 битвстроенный IPv4Нижние 32 бита это адрес IPv4. Также
называется IPv4 совместимым IPv6
адресом::ff:xx:xx:xx:xx96 битАдрес IPv6, отображенный на IPv4Нижние 32 бита это адрес IPv4.
Для хостов, не поддерживающих IPv6.fe80:: - feb::10 битlink-localcf. loopback адрес в IPv4fec0:: - fef::10 битsite-localff::8 битшироковещательный001 (основание
2)3 битglobal unicastВсе global unicast адреса присваиваются из этого
пула. Первые три бита
001.
Чтение адресов IPv6Каноническая форма представляется в виде x:x:x:x:x:x:x:x, где каждый символ
x является 16-разрядным числом в шестнадцатеричной
форме. К примеру, FEBC:A574:382B:23C1:AA49:4592:4EFE:9982Часто в адресе присутствуют длинные строчки, заполненные нулями,
поэтому одна такая последовательность на адрес может быть сокращена до
::. Кроме того, до трех ведущих 0
на шестнадцатеричную четверку могут быть пропущены.
К примеру, 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; ifconfigrl0: 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: activefe80::200:21ff:fe03:8e1%rl0
является автоматически настроенным локальным адресом. Он
генерируется из MAC адреса в процессе автоматической
конфигурации.Для получения дополнительной информации о структуре адресов IPv6
обратитесь к RFC3513.Настройка подключенияНа данный момент существуют четыре способа подключиться к другим
хостам и сетям IPv6:Подключиться к экспериментальному 6boneПолучить сеть IPv6 от вышестоящего провайдера. Для получения
рекомендаций обратитесь к вашему провайдеру Интернет.Туннелировать посредством 6-в-4 (RFC3068)Использовать порт net/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_ADDRHIS_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 или
Konqueror,
который входит в x11/kdebase3,
или www/epiphany.DNS в мире IPv6Для IPv6 использовались два типа записей DNS. IETF
объявил записи A6 устаревшими. Стандартом на данный момент
являются записи AAAA.Использование записей AAAA достаточно просто. Назначение вашему
имени хоста нового адреса IPv6 достигается просто добавлением:MYHOSTNAME AAAA MYIPv6ADDRк вашему первичному файлу DNS зоны. В случае, если вы не
обслуживаете собственные зоны DNS, обратитесь к
вашему провайдеру DNS. Имеющиеся версии
bind (версий 8.3 и 9) и
dns/djbdns (с патчем IPv6)
поддерживают записи AAAA.Внесение необходимых изменений в
/etc/rc.confНастройки клиентов IPv6Эти установки помогут вам настроить компьютер, который
будет работать в сети как клиент, а не как маршрутизатор.
Для включения настройки интерфейсов через &man.rtsol.8;
при загрузке, все, что вам потребуется, это добавить
следующую строку:ipv6_enable="YES"Для статического присвоения IP адреса, такого как 2001:471:1f11:251:290:27ff:fee0:2093,
интерфейсу fxp0, добавьте:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Для назначения маршрутизатором по умолчанию
2001:471:1f11:251::1,
добавьте следующую строку к
/etc/rc.conf:ipv6_defaultrouter="2001:471:1f11:251::1"Настройки маршрутизатора/шлюза IPv6Этот раздел поможет вам использовать инструкции, которые выдал
провайдер туннеля, например, 6bone, и сделать эти настройки
постоянными. Для восстановления туннеля при загрузке системы
используйте в /etc/rc.conf нижеприведенные
настройки.Задайте список туннельных интерфейсов (Generic Tunneling
interfaces), которые необходимо настроить, например
gif0:gif_interfaces="gif0"Для настройки интерфейса с локальным подключением на
MY_IPv4_ADDR к удаленной точке
REMOTE_IPv4_ADDR:gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Для включения IPv6 адреса, который был вам присвоен для
использования в подключении к туннелю IPv6, добавьте:ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Затем все, что вам потребуется сделать, это добавить маршрут
по умолчанию для IPv6. Это другая сторона туннеля IPv6:ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Настройка туннелирования IPv6Если сервер будет обеспечивать маршрутизацию между вашей сетью и
остальным миром, то в файле /etc/rc.conf
понадобится следующая строка:ipv6_gateway_enable="YES"Распространение маршрутов и автоматическая настройка
хостовЭтот раздел поможет вам настроить &man.rtadvd.8; для
распространения маршрута IPv6 по умолчанию.Для включения &man.rtadvd.8; вам понадобится добавить в
/etc/rc.conf следующую строку:rtadvd_enable="YES"Важно указать интерфейс, на котором выполняется запрос
маршрутизатора IPv6. Например, для указания &man.rtadvd.8;
использовать fxp0:rtadvd_interfaces="fxp0"Теперь мы должны создать файл настройки,
/etc/rtadvd.conf. Вот пример:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Замените fxp0 на интерфейс, который вы
будете использовать.Затем, замените 2001:471:1f11:246:: на префикс вашего
размещения.Если у вас выделенная подсеть /64, больше ничего менять не потребуется.
Иначе, вам потребуется изменить prefixlen#
на корректное значение.HartiBrandtПредоставил Асинхронный режим передачи (ATM) в &os; 5.XКлассическая настройка IP через ATM (PVC)Классический IP через ATM (CLIP)
это простейший метод использования асинхронного режима
передачи (Asynchronous Transfer Mode, ATM) с IP. Он может
быть использован с коммутируемыми подключениями
(switched connections, SVC) и с постоянными подключениями
(permanent connections, PVC). В этом разделе будет описано
как настроить сеть на основе PVC.Полностью объединенные конфигурацииПервый метод для настройки CLIP с
PVC это подключение каждого компьютера к каждому в сети с
выделенным PVC. Хотя настройка проста, она непрактична
для большого количества компьютеров. В примере предполагается,
что в сети есть четыре компьютера, каждый подключенный к
ATM
сети с помощью карты ATM адаптера.
Первый шаг это планирование IP адресов и ATM подключений между
компьютерами. Мы используем:ХостIP адресhostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Для сборки полностью объединенной сети нам потребуется по
одному ATM соединению между каждой парой компьютеров:КомпьютерыVPI.VCI соединениеhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105Значения VPI и VCI на каждом конце соединения конечно могут
отличаться, но для упрощения мы предполагаем, что они одинаковы.
Затем нам потребуется настроить ATM интерфейсы на каждом
хосте:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upпредполагая, что ATM интерфейс называется
hatm0 на всех хостах. Теперь PVC
необходимо настроить на hostA (мы предполагаем,
что ATM коммутаторы уже настроены, вам необходимо свериться
с руководством на коммутатор за информацией по
настройке).hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrКонечно, вместо UBR может быть использован другой тип, если ATM адаптер поддерживает это. В этом случае
имя типа дополняется параметрами трафика. Помощь по
&man.atmconfig.8; может быть получена командой:&prompt.root; atmconfig help natm addили на странице справочника &man.atmconfig.8;.Та же настройка может быть выполнена через
/etc/rc.conf. Для hostA
это будет выглядеть примерно так:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"Текущий статус всех маршрутов CLIP
может быть получен командой:hostA&prompt.root; atmconfig natm show
diff --git a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
index 9224ce1695..2ffc0f7d0c 100644
--- a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
@@ -1,1908 +1,1913 @@
MosesMooreПредоставил АлександрКоваленкоПеревод на русский язык: ДенисПеплинМультимедиаКраткий обзорFreeBSD поддерживает большое количество различных звуковых
карт, что позволяет вам насладится высококачественным звуком. Это также
дает возможность записывать и воспроизводить звуковые файлы в формате
MPEG Audio Layer 3 (MP3), WAV, Ogg Vorbis, а также во множестве других
форматов. Коллекция Портов FreeBSD также содержит ряд приложений,
позволяющих редактировать записанные звуковые файлы, добавлять звуковые
эффекты, управлять подключенными MIDI устройствами.FreeBSD может поддерживать воспроизведение видеофайлов и DVD.
Количество приложений, позволяющих кодировать, преобразовывать и
воспроизводить различные форматы видео, существенно меньше
количества приложений для работы со звуком. Например, на время написания
этого документа в Коллекции Портов FreeBSD не существовало хорошего
приложения для преобразования видео, которое могло бы быть использовано
для преобразований между разными форматами, как, например, audio/sox. Впрочем, ситуация в этой области
меняется быстро.Эта глава описывает необходимые шаги для настройки вашей звуковой
карты. Настройка и установка X11 () уже охватывает вопросы, связанные с аппаратными
установками вашей видеокарты, хотя могут быть возможности
дополнительной настройки для улучшения воспроизведения.После прочтения этой главы вы будете знать:Как настроить систему так, чтобы звуковая карта была
опознана.Методы проверки работы звуковой карты при помощи тестовых
приложений.Как исправить проблемы, возникающие при работе со звуковыми
картами.Как прослушать и создать MP3 и другие форматы.Как X сервер поддерживает видео.Некоторые проигрыватели и кодировщики видео, которые показывают
хорошие результаты.Как воспроизвести DVD, .mpg и
.avi файлы.Как скопировать информацию с CD и DVD в файлы.Как настроить ТВ тюнер.Как настроить сканер.Перед чтением этой главы вам потребуется:Узнать, как конфигурировать и устанавливать новое ядро
().Попытка смонтировать аудио CD при помощи команды
&man.mount.8; как минимум, сообщит об ошибке и, как максимум, может
привести к панике ядра. Эти носители имеют
специальные форматы, которые отличны от обычной файловой системы
ISO.MosesMooreПредоставил MarcFonvieilleРасширил для &os; 5.X Настройка звуковой картыНастройка системыPCIISAзвуковые картыПеред тем как начать, определите модель вашей карты,
процессор, который она использует, и интерфейс карты: PCI или ISA.
FreeBSD поддерживает множество разных PCI и ISA карт.
Сверьтесь со списком поддерживаемых аудио устройств в Информации об оборудовании,
чтобы проверить, поддерживается ли ваша карта. Этот документ также
содержит информацию о том, какой драйвер поддерживает вашу
карту.ядроконфигурацияДля того, чтобы использовать звуковую карту, вы должный загрузить
соответствующий драйвер устройства. Этого можно достигнуть двумя путями.
Простейший способ – это просто загрузить соответствующий вашей карте
модуль ядра используя &man.kldload.8;, что можно сделать или из командной
строки:&prompt.root; kldload snd_emu10k1или добавлением соответствующей строки к файлу
/boot/loader.conf:snd_emu10k1_load="YES"Эти примеры приведены для звуковой карты Creative
&soundblaster; Live!. Другие имеющиеся модули драйверов
звуковых карты приведены в
/boot/defaults/loader.conf
Если вы не уверены, какой драйвер использовать, попробуйте загрузить
snd_driver:&prompt.root; kldload snd_driverЭто мета-драйвер, загружающий сразу все наиболее распространенные
драйверы сразу. Это повышает скорость поиска правильного драйвера.
Возможна также загрузка всех звуковых драйверов через
/boot/loader.conf.
+ Для того чтобы узнать, какой именно драйвер требуется для вашей
+ звуковой карты, вы можете проверить содержимое файла
+ /dev/sndstat при помощи команды
+ cat /dev/sndstat.
+
В &os; 4.X для загрузки всех звуковых драйверов вам будет
необходимо загрузить модуль snd вместо
snd_driver.Другой способ заключается в
добавлении статического драйвера в ядро. В разделе ниже дана
более подробная информация о том, что вам нужно сделать для добавления
поддержки оборудования. Более подробно о конфигурация ядра описана в
.Настройка собственного ядра с поддержкой звукаПервое, что необходимо сделать, это добавить в ядро
общий звуковой драйвер &man.sound.4;. Добавьте в
файл конфигурации ядра следующую строку:device soundВ &os; 4.X, вам необходимо использовать следующую
строку:device pcmЗатем необходимо добавить поддержку имеющейся звуковой
карты. Следовательно, нужно знать какой драйвер поддерживает
карту. Для этого сверьтесь со списком поддерживаемых
устройств из Информации об оборудовании.
Например, звуковая карта Creative &soundblaster; Live!
поддерживается драйвером &man.snd.emu10k1.4;.
Для добавления поддержки этой карты, используйте:device "snd_emu10k1"Прочтите страницу справочника драйвера, чтобы узнать,
какой синтаксис использовать. Информация, относящаяся
к синтаксису включения звуковых драйверов в файл конфигурации
ядра, может быть также найдена в файле
/usr/src/sys/conf/NOTES
(/usr/src/sys/i386/conf/LINT для
&os; 4.X).Не-PnP ISA карты могут потребовать включения в ядро
информации о настройках звуковой карты (IRQ, I/O port,
и т.д.). Эта информация добавляется редактированием
файла /boot/device.hints.
Во время загрузки системы &man.loader.8; прочтет этот
файл и передаст настройки ядру. Например, старая ISA не-PnP карта
Creative &soundblaster; 16 использует драйвер &man.snd.sbc.4;
со следующей строкой, добавленной к файлу настройки ядра:device snd_sbcи со следующей информацией в
/boot/device.hints:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"В данном случае, карта использует порт ввода-вывода
0x220 и IRQ 5.Синтаксис, используемый в файле
/boot/device.hints, описан в справочной
странице драйвера. В &os; 4.X эти настройки записываются
непосредственно в файл конфигурации ядра. В случае ISA
карты используется такая строка:device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15Установки, приведенные выше, используются по умолчанию.
В некоторых случаях вам может потребоваться изменить IRQ
или другие настройки в соответствии с настройками карты.
За более подробной информацией обратитесь к странице справочника
&man.snd.sbc.4;.В &os; 4.X некоторые системы со встроенной в
материнскую плату звуковой картой могут потребовать
следующей строки в файле настройки ядра:options PNPBIOSТестирование звуковой картыПосле перезагрузки модифицированного ядра, или после загрузки
необходимого модуля, звуковая карта должна появиться в буфере
системных сообщений (&man.dmesg.8;) примерно так:pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>Статус звуковой карты может быт проверен через файл
/dev/sndstat:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)Вывод этой команды для вашей системы может отличаться.
Если устройства pcm не появились, вернитесь
назад и проверьте выполненные действия. Проверьте файл настройки
ядра еще раз и убедитесь, что выбрано подходящее устройство.
Часто встречающиеся проблемы приведены в .Если всё пройдет удачно, звуковая карта заработает. Если
CD-ROM или DVD-ROM привод правильно подключён к звуковой карте, вы можете
вставить CD в привод и воспроизвести его при помощи
&man.cdcontrol.1;.&prompt.user; cdcontrol -f /dev/acd0 play 1Различные приложения, например audio/workman могут предоставить
более дружественный
пользователю интерфейс. Вы можете также установить
приложения для прослушивания звуковых файлов MP3, как например
audio/mpg123. Быстрым способом
тестирования звуковой карты является отправка данных в
файл /dev/dsp, как показано здесь:&prompt.user; cat filename > /dev/dspгде filename может быть любым
файлом. Результатом выполнения этой команды станет шум,
который означает, что звуковая карта на самом деле
работает.Пользователям &os; 4.X потребуется создать устройства
звуковой карты перед тем, как ее использовать. Если в буфере
системных сообщений карта появилась как
pcm0, вам необходимо выполнить от
root следующее:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Если карта обнаружена как pcm1,
выполните то же самое, заменив
snd0 на
snd1.MAKEDEV создаст группу файлов устройств,
которые будут использоваться различными звуковыми
приложениями.Уровни громкости звука могут быть изменены командой &man.mixer.8;.
Более подробная информация находится на странице справочной системы
&man.mixer.8;.Часто встречающиеся проблемыфайлы устройствпорт ввода-выводаIRQDSPОшибкаРешениеunsupported subdevice XXОдно или более устройств не были правильно
созданы. Повторите приведенные выше шаги.sb_dspwr(XX) timed outПорт ввода-вывода указан неправильно.bad irq XXIRQ установлен неправильно. Убедитесь, что
настройки в системе и на карте одинаковы.xxx: gus pcm not attached, out of
memoryДля использования устройства недостаточно
памяти.xxx: can't open /dev/dsp!Проверьте с помощью fstat | grep
dsp, не занято ли устройство другим приложением.
Создать проблемы могут esound и
поддержка звука в KDE.MunishChopraПредоставил Использование нескольких источников звукаДостаточно часто встречается необходимость иметь несколько источников
звука, которые должны воспроизводить одновременно, например когда
esound или artsd не
поддерживают совместное использование звукового устройства с некоторым
приложением.FreeBSD позволяет делать это при помощи виртуальных
звуковых каналов, которые могут быть настроены с помощью
&man.sysctl.8;. Виртуальные каналы позволяют вам мультиплексировать
каналы воспроизведения звуковой карты, смешивая звук в ядре.Для установки количества виртуальных каналов вы можете использовать
две переменные sysctl, которые, если вы пользователь root,
могут быть установлены таким образом:&prompt.root; sysctl hw.snd.pcm0.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4В этом примере выделяются четыре виртуальных канала, чего вполне
достаточно для повседневного использования.
hw.snd.pcm0.vchans это количество виртуальных каналов
устройства pcm0, оно может быть установлено сразу
же, как только устройство было подключено.
hw.snd.maxautovchans это количество виртуальных
каналов, которые выделяются новому аудио устройству, когда оно
подключается при помощи &man.kldload.8;. Так как модуль
pcm может быть загружен независимо от аппаратных
драйверов, hw.snd.maxautovchans может указывать
количество виртуальных каналов для любых устройств, которые будут подключены
позже.Если вы не используете &man.devfs.5;, необходимо будет указать
приложениям
/dev/dsp0.x, где
x это число от 0 до 3, если
hw.snd.pcm0.vchans установлено в значение 4. Для
системы, использующей &man.devfs.5;, вышеуказанные настройки будут
сделаны автоматически прозрачно для пользователя.JosefEl-RayesПредоставил Установка значений по умолчанию для каналов mixerЗначения по умолчанию для различных каналов mixer жестко
прописаны в исходных текстах драйвера &man.pcm.4;. Существует
множество различных приложений и даемонов, которые позволяют
устанавливать значения для mixer, которые они запоминают
и выставляют каждый раз при запуске, но это не совсем
правильное решение, нам нужны значения по умолчанию на уровне
драйвера. Они могут быть установлены путем указания
в /boot/device.hints. Например:hint.pcm.0.vol="100"Установит значение для канала volume в значение по умолчанию
100, как только будет загружен модуль &man.pcm.4;.Поддерживается начиная с &os; версии 5.3.ChernLeeПредоставил Звук MP3MP3 (MPEG Layer 3 Audio) достигает качества звука, близкого к CD, и
нет причин не воспользоваться им на вашей рабочей
станции.Проигрыватели MP3На данный момент наиболее популярным MP3-проигрывателем для
X11 является
XMMS (X Multimedia System). Скины приложения
WinAMP могут быть использованы для
XMMS так как графический интерфейс
пользователя практически идентичен интерфейсу программы
WinAMP от Nullsoft.
XMMS поддерживает также собственные
расширения.XMMS может быть установлен из порта или
пакета multimedia/xmms.Интерфейс XMMS интуитивно понятен и
включает в себя список песен, графический эквалайзер и многое другое.
Те, кто знаком с WinAMP, найдут
XMMS очень простым в использовании.Порт audio/mpg123 является
альтернативой, это MP3-проигрыватель для командной строки.mpg123 может быть запущен с указанием
звукового устройства и файла MP3 в командной строке как показано
ниже:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 должно быть заменено соответствующим
устройством dsp для вашей системы.Копирование аудио дорожек с CDПеред тем как преобразовывать CD или дорожку CD в MP3, аудио данные
на CD должны быть скопированы на жёсткий диск. Это можно сделать путём
копирования данных CDDA (CD Digital Audio) в файл WAV.Утилита cdda2wav, которая является частью пакета
sysutils/cdrtools, может быть
использована для копирования аудио информации с CD, а также различной
связанной информации.Когда музыкальный CD находится в приводе, следующая команда может
быть выполнена под root для того,
чтобы скопировать весь CD в отдельные (один на каждую дорожку) WAV
файлы:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav поддерживает ATAPI (IDE)
приводы CDROM. Для копирования с IDE привода, укажите имя устройства
вместо номеров SCSI. Например, для того, чтобы скопировать 7-ую
аудио дорожку с IDE-привода:&prompt.root; cdda2wav -D /dev/acd0a -t 7Параметр
указывает устройство SCSI 0,1,0,
соответственно результату работы cdrecord
-scanbus.Для того, чтобы копировать отдельные дорожки, используйте параметр
как показано ниже:&prompt.root; cdda2wav -D 0,1,0 -t 7Этот пример показывает как скопировать 7-ю дорожку музыкального CD.
Для того чтобы скопировать набор дорожек, например, с первой по
седьмую, укажите диапазон:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Утилита &man.dd.1; также может быть использована для копирования
аудио дорожек на приводах ATAPI, для того, чтобы узнать больше об этом,
прочитайте .Создание файлов MP3На сегодняшний день наилучшим выбором программы для создания mp3
является lame.
Lame находится в дереве портов в подкаталоге
audio/lame.Используя скопированные файлы WAV, следующая команда преобразует
audio01.wav в
audio01.mp3:&prompt.root; lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3Частота 128 килобит является стандартом "де факто" для MP3. Многие,
однако, используют более высокие частоты для получения лучшего
качества, 160 или 192 килобита. Чем выше частота, тем больше дискового
пространства будет занимать получаемый MP3, но качество будет выше.
Параметр включает режим лучшее качество, но
меньше скорость. Параметры, начинающиеся с
указывают теги ID3, которые обычно содержат информацию о песне,
включаемую в файл MP3. О дополнительных настройках преобразования можно
узнать, прочитав страницу руководства lame.Декодирование MP3Для того, чтобы записать музыкальный CD из файлов MP3, они должны
быть преобразованы в несжатый формат WAV. Как
XMMS, так и
mpg123 поддерживают вывод MP3 в
распакованный формат файлов.Запись на диск в XMMS:Запустите XMMS:Нажмите правой кнопкой мыши в главном окне
XMMS для того, чтобы показать меню.Выберите Preferences (либо
Свойства, если у вас локализованная версия
XMMS) в
Options.Измените расширение вывода на Disk Writer Plugin
(или Расширение записи на диск, если у вас
локализованная версия XMMS).Нажмите Configure (или
Настройка, если у вас локализованная версия
XMMS).Введите (или выберите при помощи обзора) каталог, в который
следует сохранять распакованные файлы.Загрузите файл MP3 в XMMS как вы это
делаете обычно. Установите громкость на 100% и отключите
эквалайзер.Нажмите Воспроизвести —
XMMS будет выглядеть так же как и при
обычном воспроизведении MP3, но самой музыки слышно не будет. На
самом деле MP3 воспроизводится в файл.Убедитесь, что вы установили расширение вывода таким, как оно
было до этого, для того, чтобы снова слушать MP3.Запись в stdout в mpg123:Запустите mpg123 -s audio01.mp3 > audio01.pcmXMMS записывает файл в формате WAV, в то
время как mpg123 преобразовывает MP3 в
простые аудио данные PCM. Оба формата могут быть использованы
cdrecord для создания музыкальных
CD.
Для использования &man.burncd.8; вам потребуются простые аудио данные
PCM. Если же вы будете использовать файлы в формате WAV, то заметите
небольшой щелчок в начале каждой аудио дорожки, этот щелчок - заголовок
файла в формате WAV. Вы очень просто можете избавиться от него путём
удаления заголовка WAV при помощи утилиты
SoX (она может быть установлена из порта
audio/sox или соответствующего
пакета:&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawПрочтите для того, чтобы узнать
больше о записи CD в FreeBSD.RossLippertПредоставил Воспроизведение видеоВоспроизведение видео является очень новой и быстро развивающейся
областью применения. Будьте терпеливы. Не всё будет работать так
беспроблемно, как это было со звуком.Прежде, чем вы начнёте, определите модель видеокарты и
чипсет, который она использует. Хотя &xorg;
и &xfree86;
поддерживают множество различных видеокарт, только их малая часть
показывает хорошую скорость воспроизведения видео. Для того, чтобы
получить список расширений, поддерживаемых X-сервером, который
используется вашей видеокартой, используйте команду &man.xdpyinfo.1; во
время работы X11.Неплохо также иметь небольшой файл MPEG, который бы использовался
как тестовый файл для проверки различных проигрывателей и настроек. Так
как некоторые проигрыватели DVD будут искать носитель DVD как
/dev/dvd по умолчанию или быть жёстко настроены
на него, возможно будет полезно сделать символические ссылки на
правильные устройства:&prompt.root; ln -sf /dev/acd0c /dev/dvd
&prompt.root; ln -sf /dev/racd0c /dev/rdvdДля FreeBSD 5.X, которая использует &man.devfs.5; рекомендуется
немного другой набор ссылок:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdОбратите внимание, природа &man.devfs.5; такова, что такие созданные
вручную ссылки не сохраняются при перезагрузке системы. Для
автоматического создания символических ссылок при каждой загрузке
системы добавьте в /etc/devfs.conf
следующие строки:link acd0 dvd
link acd0 rdvdКроме того, декодирование DVD требует доступа к специальным
функциям DVD-ROM, поэтому должен быть доступ на запись для устройств
DVD.параметры ядраCPU_ENABLE_SSEпараметры ядраUSER_LDTНекоторые из обсуждаемых портов полагаются на наличие некоторых
параметров ядра для правильной сборки. Перед тем, как собирать порты,
добавьте эти параметры в файл конфигурации ядра, пересоберите ядро и
перезагрузите систему:option CPU_ENABLE_SSE
option USER_LDToption USER_LDT в &os; 5.X
не существует.Для того, чтобы улучшить работу разделяемой памяти X11,
рекомендуется увеличить значения некоторых переменных
&man.sysctl.8;:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Определение возможностей видеоXVideoSDLDGAСуществует несколько возможных путей отображения видео под X11. Что
именно будет действительно работать, во многом зависит от аппаратного
обеспечения. Каждый из описанных методов будет работать с различным
качеством
на разном аппаратном обеспечении. Во-вторых, воспроизведение видео в
X11, это тема, которой уделяется достаточно много внимания последнее
время, и с каждой новой версией &xorg;
или &xfree86; могут
наблюдаться значительные улучшения.Список наиболее часто используемых видеоинтерфейсов:X11: обычный вывод X11 с использованием разделяемой памяти.XVideo: расширение интерфейса X11, которое поддерживает видео в
любом объекте X11.SDL: the Simple Directmedia Layer.DGA: the Direct Graphics Access — прямой доступ для
графики.SVGAlib: низкоуровневый доступ к графике на консоли.XVideo&xorg; и
&xfree86; 4.X включают в себя
расширение, называющееся XVideo (также известное
как Xvideo, Xv и xv), которое позволяет отображать видео прямо на
объектах при помощи специального ускорения. Это расширение
предоставляет очень хорошее качество воспроизведения даже на low-end
машинах.Для того чтобы проверить, работает ли это расширение, используйте
команду xvinfo:&prompt.user; xvinfoXVideo поддерживается вашей видеокартой, если результат выглядит приблизительно так:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Следует заметить, что перечисленные форматы (YUV2, YUV12 и т.п.) не
присутствуют в каждой реализации XVideo и их отсутствие может быть
помехой для некоторых проигрывателей.Если результат выглядит так:X-Video Extension version 2.2
screen #0
no adaptors presentто, возможно, XVideo не поддерживается для вашей видеокарты.Если XVideo не поддерживается вашей видеокартой, то это всего лишь
означает, что будет сложнее получить приемлемые для воспроизведения
видео вычислительные мощности. В зависимости от вашей видеокарты и
процессора, возможно, вы сможете получить удовлетворительный результат.
Возможно, вы должны будете прочитать о путях улучшения
производительности в .Simple Directmedia LayerSDL был задуман как уровень абстракции для разработки
кросплатформенных приложений под µsoft.windows;, BeOS и &unix;, позволяя
им эффективно использовать звук и графику. SDL предоставляет
низкоуровневые абстракции для аппаратного обеспечения, и
может быть более эффективным чем интерфейс X11.SDL есть в Коллекции портов FreeBSD: devel/sdl12.Прямой доступ для графики (DGA)DGA это расширение X11, которое позволяет программам напрямую
изменять кадровый буфер (framebuffer) без участия X-сервера. Поскольку
DGA основывается на низкоуровневом доступе к памяти, программы, которые
используют его должны исполняться от пользователя
root.Расширение DGA может быть протестировано при помощи &man.dga.1;.
Когда dga запущена, она изменяет цвета на экране при
каждом нажатии клавиш. Для того, чтобы выйти из неё, используйте
q.Порты и пакеты для работы с видеовидео портывидео пакетыЭтот раздел обсуждает программное обеспечение для работы с видео
из Коллекции Портов FreeBSD. Воспроизведение видео является
очень активной сферой разработок программного обеспечения и возможности
различных приложений могут несколько отличаться от описанных
здесь.Во-первых, важно помнить, что многие приложения для работы с
видео, которые работают на FreeBSD, были разработаны как приложения
Linux. Многие из этих приложений все еще бета-качества. Вот
некоторые проблемы, которые могут встретиться в работе видео
пакетов на FreeBSD:Приложение не может воспроизвести файл, который создало другое
приложение.Приложение не может воспроизвести файл, который создало
само.Одно и то же приложение на разных машинах, скомпилированное на
каждой машине специально для неё, воспроизводит один и тот же файл
различно.Кажущийся тривиальным фильтр, например фильтр изменения размеров
изображения, приводит к очень плохим артефактам из-за
неправильной функции изменения размера.Приложение часто не работает (оставляет core-файл).Документация не устанавливается вместе с портом и может быть
найдена лишь на сайте или в каталоге порта
work.Многие из этих приложений могут также проявлять
линуксизмы. Так, это могут быть
некоторые проблемы, связанные со способом реализации некоторых
стандартных библиотек в дистрибутивах Linux, или некоторыми
дополнительными возможностями ядра Linux, которые авторы приложений
посчитали существующими везде. Эти проблемы не всегда могут быть
обнаружены людьми,
поддерживающими порт (порты), вследствие чего могут возникнуть проблемы,
сходные с нижеперечисленными:Использование /proc/cpuinfo для того, чтобы
определить характеристики процессора.Неправильное использование нитей (threads), которое может
привести к зависанию программы при завершении вместо нормального
выхода.Программного обеспечения, которое обычно используется совместно
с данным приложением, ещё нет в Коллекции Портов FreeBSD.Таким образом, разработчики этих приложений должны сотрудничать с
людьми, поддерживающими порты, для того, чтобы минимизировать количество
обходных путей, необходимых для портирования.MPlayerMPlayer это недавно разработанный и
быстро развивающийся проигрыватель видео. Задачами команды
разработчиков MPlayer являются скорость и
гибкость при работе на Linux и других Unix-системах. Проект был начал,
когда его основатель стал сыт по горло плохой производительностью и
качеством проигрывателей того времени. Некоторые могут сказать, что
графический интерфейс был принесён в жертву рационализированному
дизайну. Однако, как
только вы привыкнете к опциям командной строки MPlayer и его управлению
с клавиатуры, всё будет хорошо.Компиляция MPlayerMPlayerсборкаMPlayer находится в multimedia/mplayer. MPlayer производит
различные тесты аппаратного обеспечения во время процесса компиляции,
в результате чего полученные исполняемые модули не могут быть
перенесены с одной системы на другую. Поэтому важно собирать его из
портов, а не использовать бинарный пакет. Также, при сборке вы можете
указать различные установки при помощи параметров командной строки
make, как описывается в
Makefile в начале сборки:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
Параметры порта по умолчанию должны подходить большинству
пользователей. Однако, если вам необходим кодек XviD,
необходимо указать в командной строке параметр
WITH_XVID. Устройство
DVD по умолчанию также может быть указано в командной
строке параметром WITH_DVD_DEVICE,
по умолчанию используется /dev/acd0.На время написания данного документа порт
MPlayer'а собирает и устанавливает свою
документацию в формате HTML и два исполняемых файла,
mplayer и mencoder,
который является утилитой для перекодировки видео.Документация к MPlayer очень
информативна. Если читатель найдет информацию этой главы о аппаратном
обеспечении для поддержки видео и интерфейсах недостаточной, то
документация MPlayer будет очень
хорошим дополнением. Обязательно уделите время
чтению документации MPlayer, если вам
нужна информация о поддержке видео под &unix;.Использование MPlayerMPlayerиспользованиеКаждый пользователь MPlayer должен
создать подкаталог .mplayer в своем домашнем
каталоге. Для того, чтобы его создать, выполните следующие
действия:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userПараметры для mplayer перечислены в страничке
руководства mplayer. За более подробной информацией вы можете обратиться
к документации в формате HTML. В этом разделе мы опишем несколько самых
распространённых случаев использования mplayer.Для того, чтобы воспроизвести файл, например
testfile.avi через один из многих видеоинтерфейсов,
используйте параметр :&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviСтоит испробовать все варианты интерфейсов, так как их
производительность зависит от множества факторов и будет заметно меняться
в зависимости от аппаратного обеспечения.Для того, чтобы воспроизвести DVD, замените
testfile.avi на , где N является номером
дорожки, с которой следует начать воспроизведение и
DEVICE файл устройства
привода DVD. Например, для того, чтобы воспроизвести дорожку 3 с
/dev/dvd:&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvdУстройство DVD по умолчанию может быть определено во время
сборки порта MPlayer параметром
WITH_DVD_DEVICE. По умолчанию,
это устройство /dev/acd0. Дополнительную
информацию можно найти в Makefile порта.Для того, чтобы остановить, приостановить или продолжить
воспроизведение, воспользуйтесь привязкой клавиш, информация о которой
может быть получена посредством запуска mplayer -h, либо
на страничке документации.Дополнительные, достаточно важные параметры воспроизведения:
, которые включают полноэкранный режим и
, который улучшает производительность на
медленных системах.Для того, чтобы командная строка запуска mplayer не становилась
слишком большой, пользователь может создать файл
.mplayer/config и установить параметры по умолчанию
там:vo=xv
fs=yes
zoom=yesТакже mplayer может быть использован для
копирования дорожек DVD в .vob файлы. Для того,
чтобы скопировать вторую дорожку DVD необходимо выполнить следующую
команду:&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvdПолученный файл, out.vob, будет представлять
собой MPEG, с которым можно производить различные действия при помощи
программ, которые будут описаны далее в этом разделе.mencodermencoderПеред использованием
mencoder, было бы
неплохо ближе ознакомится с его параметрами, используя документацию в
формате HTML. Также существует страничка справочника mplayer, но она не
очень полезна без HTML документации. Существует бесчисленное множество
способов улучшения качества, снижения битрейта и изменения формата; и
некоторые из этих приёмов могут влиять на производительность. Ниже
приведено несколько примеров использования mencoder.
Во-первых, простое копирование:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviНеправильная комбинация параметров командной строки может привести к
появлению файлов, которые невозможно будет
воспроизвести даже mplayer. Поэтому, если вы хотите
скопировать изображение в файл, лучше использовать только параметр
mplayer .Для того, чтобы преобразовать input.avi в MPEG4
со звуком в формате MPEG Audio Layer 3 (MP3) (требуется audio/lame):&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviЭта команда создаст файл, воспроизводимый mplayer
и xine.input.avi может быть заменён на
и
mplayer, запущенный от
пользователя root, будет преобразовывать дорожку DVD
напрямую. Так как первый раз, скорее всего, вы будете недовольны
полученными результатами, всё же рекомендуется копировать
дорожку в файл и работать затем с файлом.Проигрыватель хinexine - это большой проект, в задачи
которого входит не только создание решения для видео все-в-одном, но и
создание базовой библиотеки с возможностью расширения путем
использования плагинов. Поставляется он как в виде порта,
так и в виде пакета, multimedia/xine.xine все еще несовершенен, но все-таки это
хорошее начало. На практике xine требует либо
быстрого процессора с быстрой видеокартой или поддержки расширения
XVideo. Графический интерфейс можно использовать, но он все еще немного
неуклюж.На время написания этого документа в поставке
xine не существовало модуля ввода, который бы
мог воспроизводить DVD, закодированные по алгоритму CSS. Существуют
сборки, в которых есть такой модуль, но ни одна из них не входит в
Коллекцию Портов FreeBSD.По сравнению с MPlayer,
xine является более дружелюбным к
пользователю, но, в то же время, скрывает более тонкие настройки и
управление от пользователя. Также xine лучше
работает на XVideo интерфейсах.По умолчанию, xine запускается с
графическим интерфейсом. Для открытия файлов используются меню.&prompt.user; xineВ качестве альтернативы можно использовать его для запуска файла
непосредственно, без GUI, следующей командой:&prompt.user; xine -g -p mymovie.aviУтилиты transcodeПриложение transcode не является
проигрывателем. Это набор инструментов для преобразования
.avi и .mpg файлов. При помощи
transcode можно объединять видеофайлы,
исправлять поврежденные файлы, использовать инструменты командной строки
для работы с потоками ввода/вывода
stdin/stdout.Так же, как и MPlayer,
transcode является очень экспериментальным
программным продуктом, который необходимо собирать из порта multimedia/transcode. Этот порт имеет огромное
количество параметров для команды make при сборке.
Рекомендуется:&prompt.root; make WITH_LIBMPEG2=yesЕсли вы планируете установить multimedia/avifile, то добавьте параметр
WITH_AVIFILE в строку запуска make
как показано ниже:&prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yesНиже приводятся два примера использования
transcode для преобразования видео, в результате
которого изменяется размер изображения. Первый пример преобразовывает
данные в openDIVX AVI файл, в то время как второй использует более
переносимый формат MPEG.&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y opendivx -N 0x55 -o output.avi&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y mpeg -N 0x55 -o output.tmp
&prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1Существует страничка справочника для transcode, но
для различных утилит tc* (таких как
tcmplex), которые тоже устанавливаются в систему,
документации очень немного. Тем не менее, для получения краткой справки
по использованию команд, может быть задан параметр
.По сравнению с mencoder,
transcode работает заметно медленнее, но имеет больше
шансов создать более переносимый файл, который можно будет воспроизвести
на большем количестве систем. Например MPEG,
созданные при помощи transcode, воспроизводятся в
&windows.media; Player и Apple
&quicktime;.Дальнейшее чтениеРазличные пакеты видео программ для FreeBSD интенсивно
разрабатываются. Очень возможно, что в ближайшем будущем
многие обсуждаемые здесь проблемы разрешатся. Это займет время, и те, кто
желает получить максимум от аудио/видео возможностей FreeBSD, должны
будут собирать необходимые знания из нескольких списков часто задаваемых
вопросов и обучающих статей, а также использовать различные
приложения. Этот раздел существует для того, чтобы читатель мог получить
указания на несколько источников дополнительной информации.Документация
MPlayer очень содержательна в
техническом плане. Возможно, эти документы должны использоваться любым
человеком, желающим получить высокий уровень знаний о видео на &unix;
системах. Список рассылки MPlayer враждебен
для любого, кто не потрудился прочитать документацию, так что, если у вас
есть желание сообщать о найденных ошибках, прочитайте вначале
документацию.xine
HOWTO содержит главу об улучшении производительности, которая
применима к любому проигрывателю.Наконец, существует несколько многообещающих приложений, которые
читатель может испробовать:Avifile,
для которого также существует порт multimedia/avifile.Ogle, для
которого также существует порт multimedia/ogle.Xtheatermultimedia/dvdauthor, пакет с открытыми
текстами для распространения DVD контента.JosefEl-RayesПервоначально предоставил MarcFonvieilleУлучшил и адаптировал Настройка ТВ тюнеровТВ тюнерыВведениеТВ тюнеры предназначены для просмотра
широковещательного или кабельного телевидения на компьютере. Большинство
тюнеров поддерживают композитный видео вход RCA или
S-video, а некоторые из них поставляются с FM радио тюнером.&os; поддерживает PCI ТВ тюнеры, использующие
Brooktree Bt848/849/878/879 или Conexant CN-878/Fusion 878a
Video Capture Chip через драйвер &man.bktr.4;. Вы должны также
убедиться, что тюнер поддерживается; обратитесь к странице справочника
&man.bktr.4; за списком поддерживаемых тюнеров.Добавление драйвераДля использования карты потребуется загрузить драйвер
&man.bktr.4;, что можно сделать, добавив в
/boot/loader.conf следующую строку:bktr_load="YES"В качестве альтернативы, вы можете статически скомпилировать
ядро с поддержкой ТВ тюнера; добавьте следующие строки в
файл конфигурации ядра:device bktr
device iicbus
device iicbb
device smbusЭти дополнительные драйвера устройств необходимы, поскольку
компоненты карты соединены через шину I2C. Затем соберите и
установите новое ядро.Как только поддержка тюнера будет добавлена в систему, перегрузите
компьютер. Во время загрузки TV карта должна отобразить примерно
такие строки:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Конечно, эти сообщения будут различаться на разном оборудовании.
Тем не менее, проверьте, что тюнер определяется правильно; возможна
перезапись параметров, определенных ядром, с помощью &man.sysctl.8;
MIB и параметров в файле настройки ядра. Например, если вы хотите
указать, что это Philips SECAM тюнер, добавьте следующую строку
к файлу настройки ядра:options OVERRIDE_TUNER=6или прямо задайте переменную &man.sysctl.8;:&prompt.root; sysctl hw.bt848.tuner=6Обратитесь к странице &man.bktr.4; и файлу
/usr/src/sys/conf/NOTES за более детальной
информацией о доступных параметрах (если вы работаете в
&os; 4.X, вместо
/usr/src/sys/conf/NOTES используйте
/usr/src/sys/i386/conf/LINT).Полезные приложенияДля использования ТВ тюнера вам потребуется установить одно из
следующих приложений:multimedia/fxtv
предоставляет возможности ТВ-в-окне и захвата
изображений/аудио/видео.multimedia/xawtv
это также приложение для ТВ тюнера, с теми же, что и у
fxtv возможностями.misc/alevt раскодирует
и отображает видеотекст/телетекст.audio/xmradio,
приложение для использования с FM радио тюнером, поставляемым
с некоторыми ТВ тюнерами.audio/wmtune, это
удобное приложение для радио тюнеров.В коллекции портов &os; можно найти и другие приложения.Решение проблемЕсли вы столкнулись с какой-либо проблемой, связанной с ТВ
тюнером, проверьте в первую очередь поддержку микросхемы захвата
видео и тюнера драйвером &man.bktr.4;, а также правильность установки
параметров. За дальнейшей поддержкой и с вопросами о ТВ тюнере
вы можете обращаться в &a.multimedia.name; и
использовать его архивы.MarcFonvieilleНаписана ДмитрийМорозовскийПеревод на русский язык: СканерысканерыВведение&os;, как и прочие современные операционные системы, поддерживает
сканеры. Стандартный доступ к сканерам обеспечивается программой
SANE (Scanner Access Now
Easy), обеспечивающей универсальный интерфейс
(API)
и доступной в коллекции портов &os;. Для общения со сканерами
SANE использует некоторые драйвера
устройств &os;.&os; поддерживает сканеры с интерфейсом как SCSI, так и USB.
Убедитесь, что ваш сканер поддерживается
SANE перед тем, как приступить к
конфигурации. Для
SANE существует список
поддерживаемых устройств где находится информация
о поддержке сканера и статусе этой поддержки.
Кроме того, страница справочника &man.uscanner.4; также перечисляет
поддерживаемые устройства.Конфигурация ядраКак уже отмечалось, поддерживаются как SCSI, так и USB сканеры.
В зависимости от интерфейса вашего сканера требуется поддержка разных
драйверов устройств.USBСтандартное ядро GENERIC включает в себя
драйвера, необходимые для поддержки USB сканеров. Если вы
компилируете собственное ядро, убедитесь, что в его конфигурации
присутствуют строкиdevice usb
device uhci
device ohci
device uscannerВ зависимости от чипсета USB, встроенного в вашу материнскую
плату, потребуется лишь один из драйверов device
uhci или device ohci, однако, наличие
обеих строк в конфигурации ядра никому не повредит.Если вы не хотите перестраивать ядро, и при этом ваше ядро не
является стандартным (GENERIC), вы можете
загрузить модуль драйвера поддержки сканеров &man.uscanner.4;
при помощи команды &man.kldload.8;:&prompt.root; kldload uscannerДля автоматической загрузки модуля при старте системы добавьте
в файл /boot/loader.conf строкуuscanner_load="YES"После перезагрузки с новым ядром или загрузки модуля подключите
ваш USB сканер. В буфере системных сообщений (&man.dmesg.8;) должно
появиться сообщение о найденном устройстве, например:uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2В данном случае сканер будет использовать устройство
/dev/uscanner0.В &os; 4.X для корректного распознавания некоторых USB
устройств должен быть запущен даемон USB (&man.usbd.8;).
Для этого добавьте строку usbd_enable="YES"
в файл конфигурации системы /etc/rc.conf.
SCSIЕсли ваш сканер имеет интерфейс SCSI, важно знать, к какому
контроллеру он подключен. В зависимости от контроллера потребуются
различные драйвера в файле конфигурации ядра. Стандартное ядро
GENERIC поддерживает большинство
распространенных SCSI-контроллеров. Внимательно прочитайте файл
NOTES (в &os; 4.X файл
LINT) и добавьте необходимые строки в файл
конфигурации вашего ядра. Помимо строки для драйвера адаптера,
вам потребуются следующие строки:device scbus
device passПосле сборки и загрузки нового ядра, в буфере системных
сообщений должны появиться строки о вашем сканере, например:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersЕсли сканер не был включен в момент загрузки, его можно
принудительно опознать, выполнив сканирование SCSI шины при
помощи команды &man.camcontrol.8;:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulПосле этого сканер должен появиться в списке устройств:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)Более подробная информация о устройствах SCSI доступна на
страницах справочника &man.scsi.4; и &man.camcontrol.8;.Конфигурация SANEСистема SANE состоит из двух частей:
аппаратной поддержки (backend, graphics/sane-backends) и программной
поддержки (frontend, graphics/sane-frontends). Первая часть
обеспечивает собственно доступ к сканеру. Список
поддерживаемых устройствSANE
содержит информацию о необходимом вам аппаратном модуле.
Вторая часть обеспечивает графический интерфейс для сканирования
(xscanimage).В первую очередь следует установить порт или пакет graphics/sane-backends, после чего при
помощи команды sane-find-scanner проверить
поддержку сканера системой SANE:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3В выводе должны присутствовать интерфейс сканера и имя
используемого устройства. Производитель и модель сканера могут
отсутствовать: это нормально.Некоторым USB сканерам может потребоваться загрузка прошивки.
Подробности смотрите в страницах справочника драйвера сканера,
&man.sane-find-scanner.1; и &man.sane.7;.Теперь необходимо убедиться, что сканер опознан программой
графического интерфейса. В состав системы
SANE входит утилита &man.scanimage.1;,
позволяющая работать со сканером из командной строки. Опция
используется для показа информации
о сканере:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerОтсутствие сообщений или сообщение об отсутствии устройств
означает, что утилита &man.scanimage.1; не смогла идентифицировать
сканер. В этом случае вам потребуется отредактировать файл
конфигурации аппаратного модуля и указать устройство, используемое
сканером. Все файлы настройки находятся в каталоге
/usr/local/etc/sane.d/.
Такие проблемы присущи некоторым моделям USB сканеров.
Например, в случае USB сканера, описанного в , утилита
sane-find-scanner выдаст следующую информацию:
&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0Сканер обнаружен корректно, он использует интерфейс USB
и доступен через устройство /dev/uscanner0.
Теперь попробуем идентифицировать его:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Поскольку сканер не идентифицирован, нам потребуется изменить
файл конфигурации
/usr/local/etc/sane.d/epson.conf.
В нашем примере использован сканер &epson.perfection; 1650, так что
мы знаем, что будет использоваться драйвер epson.
Не забудьте прочитать комментарии в файле конфигурации. Требуемые
изменения весьма просты: закомментируйте все строки, описывающие
интерфейсы, не соответствующие интерфейсу вашего сканера (в нашем
случае, все строки, начинающиеся со scsi: наш
сканер использует интерфейс USB), и добавьте в конец файла строку,
содержащую интерфейс и имя использованного устройства.
Мы добавим строкуusb /dev/uscanner0Пожалуйста, прочтите комментарии в файле конфигурации, а также
страницы справочника для более полной информации. Теперь мы можем
проверить, что наш сканер опознан:&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerНаш USB сканер опознан. Не столь важно, что имя и номер модели
не совпадают, главное, что используются правильные имя устройства
и драйвер: `epson:/dev/uscanner0'.После того как команда scanimage -L опознала
сканер, конфигурация завершена. Все готово к сканированию.Хотя утилита &man.scanimage.1; позволяет производить сканирование
из командной строки, как правило, для сканирования предпочтительнее
использовать графический интерфейс. Для этого в состав
SANE входит простая, но эффективная
утилита xscanimage (graphics/sane-frontends).Другой популярной программой графического интерфейса к сканеру
является Xsane (graphics/xsane). Эта программа
поддерживает такие расширенные возможности, как разные режимы
сканирования (фотокопия, факс и т.п.), цветокоррекцию, потоковое
сканирование и другие. Оба приложения пригодны для использования
в качестве плагинов сканирования для GIMP.
Доступ к сканеру для других пользователейВсе описанные операции выполнялись нами с привилегиями
суперпользователя (root). Вам может
потребоваться дать доступ к сканеру другим пользователям.
Для этого необходимо разрешить доступ на чтение и запись
к файлу устройства, обслуживающему сканер. В нашем примере
USB сканер использует устройство /dev/uscanner0,
принадлежащее группе operator.
Добавление пользователя joe в группу
operator разрешит ему использовать сканер:
&prompt.root; pw groupmod operator -m joeЗа подробностями обращайтесь к странице справочника &man.pw.8;.
Вам также потребуется установить нужные права доступа (0660 или 0664)
к устройству /dev/uscanner0, поскольку по
умолчанию группа operator может лишь
читать из него. Это достигается добавлением следующей строки
в файл /etc/devfs.rules:[system=5]
add path uscanner0 mode 660Затем добавьте в файл конфигурации системы
/etc/rc.conf такую строку (после чего
перезагрузите систему):devfs_system_ruleset="system"Подробную информацию о правах на файлы устройств вы найдете
на странице справочника &man.devfs.8;. В &os; 4.X группа
operator по умолчанию имеет права как
на чтение, так и на запись, к устройству
/dev/uscanner0.Разумеется, по соображениям безопасности, вы должны как следует
подумать, прежде чем добавлять пользователя в другие группы,
в особенности в группу operator.