Операционная система NetWare

         

Аутентификация пользователей при подключении к сети


Подключение к сети выполняется с помощью утилиты LOGIN.EXE. Эта программа передаёт на сервер идентификатор, введённый пользователем (рисунок 2.54).

Рис. 2.54. Аутентификация клиента

По этому идентификатору NetWare выполняет поиск соответствующего объекта пользователя в системной базе данных сетевых ресурсов. Если в базе данных хранится значение пароля для этого клиента, то NetWare посылает на рабочую станцию зашифрованный с помощью пароля открытый ключ (симметричное шифрование). На рабочей станции этот ключ расшифровывается с помощью пароля, введённого пользователем, и используется для получения подписи запроса (пакета) к серверу о продолжении работы. Сервер расшифровывает эту подпись с помощью закрытого ключа (асимметричное шифрование), проверяет её и посылает подтверждение на рабочую станцию. В дальнейшем каждый NCP-пакет снабжается подписью, получаемой в результате кодирования открытом ключом контрольной суммы содержимого пакета и случайного числа Nonce. Это число генерируется для каждого сеанса. Поэтому подписи пакетов не повторяются для разных сеансов, даже если пользователь выполняет те же самые действия.



Авторизация доступа к данным сети


В NetWare реализованы три уровня защиты данных (рисунок 2.53).

Здесь под аутентификацией понимается:

процесс подтверждения подлинности клиента при его подключении к сети,

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

Рис. 2.53. Уровни защиты данных в NetWare

Права по отношению к файлу (каталогу) определяют, какие операции пользователь может выполнить с файлом (каталогом). Администратор может для каждого клиента сети определить права по отношению к любому сетевому файлу или каталогу.

Атрибуты определяют некоторые системные свойства файлов (каталогов). Они могут быть назначены администратором для любого сетевого файла или каталога.

Например, чтобы записать данные в файл, клиент должен:

знать свой идентификатор и пароль для подключения к сети,

иметь право записи данных в этот файл,

файл должен иметь атрибут, разрешающий запись данных.

Следует отметить, что атрибуты файла (каталога) имеют более высокий приоритет, чем права пользователей по отношению к этому файлу.



Диалоговый интерфейс пользователя


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

Рис. 2.60. Структура файла *.SCR с описаниями меню

Эти средства включают (для NetWare 3.12, 4.х):

язык описания различных окон меню и их пунктов в текстовых файлах *.SRC,

утилиту MENUMAKE, транслирующую файл *.SRC в файл *.DAT,

файл NMENU.BAT для запуска файла *.DAT с описаниями меню пользователя.

На рисунке 2.60 показана структура файла *.SRC.

На рисунке показана допустимая иерархия операторов, которые можно использовать в файле *.SRC (таблица 2.22).

Таблица 2.22. Операторы, используемые в файле *.SRC

ОператорОписание

MENU номер_меню,
заголовок_меню
Определяет номер и заголовок меню.

ITEM заголовок_пункта {опции}Определяет заголовок пункта меню.

EXEC имя_программыОпределяет имя программы, которая выполняется при выборе пункта меню.

SHOW имя_менюОпределяет подменю, которое отображается при выборе пункта меню. Это подменю должно быть описано в том же файле *.SRC.

LOAD имя_файлаОпределяет подменю, которое отображается при выборе пункта меню. Это подменю должно быть описано в другом файле *.DAT.

GETO параметры
GETR параметры
GETP параметры
Определяют характеристики специального окна, отображаемого на экране для задания параметров программы, которая описывается в следующем операторе EXEC. Операторы GETO, GETR, GETP различаются способами ввода параметров в специальном окне и их описанием в операторе EXEC (для GETP).

На рисунке 2.61 показан пример последовательности операторов в файле *.SRC.

Чтобы предотвратить выход в DOS, команду NMENU, которая запускает диалоговый интерфейс пользователя, часто помещают в файл AUTOEXEC.BAT и используют в цикле.

MENUОпределить 1-ое меню.

ITEMОпределить 1-ый пункт меню.

SHOWОпределить 1-ый пункт меню как подменю, определённое в том же файле *.SCR.

MENUОпределить 2-ое меню.

ITEMОпределить 1-ый пункт меню.

LOADОпределить 1-ый пункт меню как подменю, определённое в другом файле *.DAT.

ITEMОпределить 2-ой пункт меню.

EXECОпределить программу, которая будет выполняться при выборе этого пункта меню.

ITEMОпределить 3-ий пункт меню.

GETOОписать имя поля для задания 1-го параметра программы, определённой ниже в операторе EXEC.

GETOОписать имя поля для задания 2-го параметра программы, определённой ниже в операторе EXEC

EXECОпределить программу, которая будет выполняться при выборе этого пункта меню.

Рис. 2.61. Пример последовательности операторов в файле *.SRC



Динамические HTML-документы Web-сервера


Статические HTML-документы не позволяют задавать исходные данные для поиска информации и строить сложные процедуры просмотра. Эту задачу решают так называемые динамические HTML-документы. Предположим, что пользователю требуется найти сведения о коммуникационных сетевых продуктах, которые обладают некоторыми признаками. На рисунке 5.20 представлена Web-страница с полями ввода [16].

Рис. 5.20. Пример Web-страницы на экране броузера

На рисунке 5.21 приведён текст соответствующего htm-файла (htm-формы). Здесь номера строк введены для пояснений и в реальной программе отсутствуют. Запустив с помощью броузера этот htm-файл (например index.htm), пользователь получит на экране страницу (рисунок 5.20).

Параметр ACTION оператора FORM (1-я строка) задаёт имя script-программы, которая будет выполняться Web-сервере, когда пользователь щёлкнет на кнопке с типом SUBMIT (см. ниже). В этом примере предполагается, что будет выполняться скрипт example.pl, составленный на языке PERL. Важно, чтобы каталог CGI-BIN, где хранится этот файл, имел тип Scripts (рисунок 5.11). Параметр METHOD определяет, каким способом будут переданы скрипту исходные данные:

GET - через командную строку,

POST - через устройство стандартного ввода (STDIN).

1<FORM ACTION="/cgi-bin/example.pl" METHOD="GET">

2<H5> Please enter the following information: </H5> <BR>

3Company:

4<INPUT TYPE="TEXT" NAME="NAME" SIZE="25" MAXLENGTH="30"> <BR>

5Select product type:

6<INPUT TYPE="RADIO" NAME="PRODT" VALUE="Bridge" CHECKED> Bridge

7<INPUT TYPE="RADIO" NAME="PRODT" VALUE="Router " > Router

8<INPUT TYPE="RADIO" NAME="PRODT" VALUE=" Switch" > Switch <P>

9Protocols handled:

10<INPUT TYPE="CHECKBOX" NAME="IP" CHECKED> IP

11<INPUT TYPE="CHECKBOX" NAME="IPX" CHECKED> IPX

12<INPUT TYPE="CHECKBOX" NAME="AppleTalk" CHECKED> AppleTalk

13<INPUT TYPE="SUBMIT" VALUE="Press here to submit your entry" >

14<INPUT TYPE="RESET" VALUE="Clear Form" >

15</FORM>

<
Рис. 5.21. Текст HTML-файла, который соответствует странице на рисунке 5.20

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

Строка 2 будет сообщать пользователю, что необходимо ввести информацию.

Строка именует поле ввода, которое описывается в 4-ой строке с помощью команды INPUT. Параметр TYPE="TEXT" в этой команде информирует броузер о том, что поле является текстовым. Определение NAME="NAME" указывает, что поле имеет имя NAME. Это имя вместе со значением поля затем будет пересылаться (после нажатия кнопки SUBMIT) Web-серверу для их передачи в качестве исходных данных скрипту example.pl. Параметр SIZE указывает сколько позиций будет занимать это поле на экране броузера (в данном случае 25 символов). Одновременно параметр MAXLENGTH означает, что максимальная длина поля - 30 символов. То есть если пользователь наберёт больше 25 символов, текст в поле начнёт сдвигаться влево (т. е. возможен скроллинг строки).

Далее в HTML-файле описываются поля радио-кнопки (строки 6 - 8). На это указывает тип полей (RADIO) и то, что они имеют одинаковое имя (PRODT). Если пользователь выберет первое поле этой радио-кнопки, то скрипту будут переданы имя поля (PRODT) и его значение (Bridge). Параметр CHECKED указывает на то, что сразу при появлении формы на экране броузера будет отмечено первое поле радио-кнопки Bridge (рисунок 5.20).

Строки 10 - 12 описывают поля признаков (флажков). На это указывает тип полей (CHECKBOX). Эти поля должны иметь разные имена (параметр NAME). В приведённом примере при отображении формы все эти поля будут отмечены (см. рисунок 5.21), т. к. При описании полей был закодирован параметр CHECKED. Например, если пользователь оставит отмеченным флаг IP, то Web-серверу будут переданы имя поля (IP) и его значение (ON). Если флаг будет сброшен, то имя поля и его значение не пересылаются на сервер.

Строка 13 описывает кнопку типа SUBMIT. После нажатия этой кнопки исходные данные для скрипта передаются на Web-сервер.


С помощью параметра VALUE указывается имя кнопки, отображаемое на экране.

С помощью строки 14 задаётся кнопка RESET. После её нажатия экран приобретёт начальный вид (рисунок 5.20). То есть будут отмечены поля, при описании которых был закодирован параметр CHECKED.

После того, как пользователь нажмёт кнопку типа SUBMIT, система выполнит следующие действия:

Например, если пользователь ввёл в поле Company текст "Cisco Inc.", отметил поле Router и указал только признак IP, то броузер пересылает Web-серверу запрос со следующими данными:

GET /CGI-BIN/EXAMPLE.PL?

NAME=Cisco%20Inc.&PRODT=Router&IP=ON

HTTP 1.0

Отметим, что в командной строке параметры разделяются знаком '&', а пробелы заменяются символами '%20' (знак процента и код символа в шестнадцатеричном виде).

Web-сервер запускает программу общего шлюзового интерфейса CGI (Common Gateway Interface). Этот шлюз переписывает командную строку исходных данных для скрипта в переменную среды и запускает интерпретатор языка PERL. Часто скрипты называют CGI-программами.

В процессе выполнения скрипт EXAMPLE.PL читает исходные данные, переданные броузером, выполняет поиск данных в базе данных и с помощью команды PRINT посылает на устройство стандартного вывода STDOUT строки операторов языка HTML (через шлюз CGI). То есть скрипт как бы генерирует (формирует) текст выходной программы на языке HTML.

После выполнения скрипта Web-сервер пересылает выходную HTML-программу из устройства STDOUT броузеру, который сделал запрос.

Броузер интерпретирует команды этой HTML-программы и отображает на экране страницу с результатами поиска, выполненного скриптом. Эта HTML-программа также может содержать гиперссылки.

Более подробно общий шлюзовой интерфейс CGI обсуждается в следующем разделе пособия.


Диспетчеризация процессов (нитей)


Операционная система NetWare включает в себя следующие очереди (рисунок 2.4), в которых находятся различные нити, ожидая освобождения центрального процессора (ЦП):

очередь WorkToDoList (только для версии 4.х),

очередь RunList,

очередь DelayedWorkToDo,

очередь LowPriority.

Очереди перечислены в порядке убывания приоритетов обслуживания нитей. Внутри каждой очереди нити диспетчируются в соответствии с дисциплиной FIFO: "первый пришёл - первый обслужен".

Уже отмечалось, что нить - это или внутренняя задача ОС, или задача, связанная с NLM-модулем. Операционная система идентифицирует и отслеживает каждую нить по её блоку управления процессом PCB (Process Control Block).

Рис. 2.3. Функциональная схема ОС NetWare

Обычно в NetWare нить сама себя переводит в неактивное состояние (ставит в очередь). Это происходит в одном из следующих случаев (рисунок 2.4).

Нить выполняет функцию SheduleWorkToDo (для версии 4.х). Создаётся новая нить, которая заимствуется из ядра NetWare и помещается в очередь WorkToDoList, имеющую высший приоритет для планирования на ЦП. Старая нить помещается в конец очереди RunList.

Нить приостанавливается, устанавливая семафор (функция WaitOnLocalSemaphore) или ожидая активизации со стороны другой нити (функция SuspendThread). В этом случае нить помещается в конец очереди RunList, но не диспетчируется (не планируется) до наступления требуемого события.

Нить выполняет функцию ThreadSwitch, чтобы переключить контекст (т. е. чтобы активизировать другую нить из очереди). В этом случае нить помещается в конец очереди RunList и диспетчируется, когда до неё доходит очередь.

Нить выполняет функцию BeginThread. Создаётся новая нить, которая помещается в конец очереди RunList. Старая нить продолжает выполняться.

Рис. 2.4. Очереди к процессору

Нить выполняет функцию ThreadSwitchWithDelay. Нить помещается в конец очереди DelayedWorkToDo и приостанавливается на 50 переключений контекста (нитей), после чего она помещается в конец очереди RunList. Число переключений контекста (50) можно изменить с помощью функции SetThreadHandicap (при этом говорят, что устанавливается постоянный гандикап). Часто функцию ThreadSwitchWithDelay используют для того, чтобы активизировать задачи из очереди LowPriority, т.к. нити из этой очереди выполняются только в том случае, если пуста очередь RunList. Аналогичные действия выполняются, если встречается функция Delay (задержать нить на определённый интервал времени).

Нить выполняет функцию ThreadSwitchLowPriority. В этом случае нить помещается в очередь LowPriority, имеющую самый низкий приоритет. Нити в этой очереди выполняются только в том случае, если пуста очередь RunList, и нет нитей, для которых установлен постоянный гандикап. Типичные низкоприоритетные нити - это создание резервной копии или упаковка файла.



Достоинства NetWare


NetWare имеет некоторые преимущества по сравнению со своим конкурентом Windows NT Server 3.51. Это маршрутизация всех протоколов на сервере, удаленное управление самим сервером и эффективная поддержка клиентских станций, работающих под управлением DOS.

Более того, NetWare 4.1 обеспечивает поддержку ряда служб, необходимых для ОС сети масштаба предприятия. Например, служба справочника NetWare (NDS) стала мощным средством управления большими корпоративными сетями. Система безопасности включает функцию ограничения объема данных пользователя на томе сервера. Эта функция не реализована в Windows NT. Производительность NetWare при операциях с файлами и службами сетевой печати по-прежнему выше, чем у ее конкурентов, особенно в случае крупных разнородных сетей. По сравнению с другими сетевыми ОС, NetWare поддерживает большее число операционных сред клиентов, включая DOS, Windows, OS/2, Macintosh и UNIX.

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

Другие достоинства NetWare перечислены в таблице 1.3.

Таблица 1.3. Некоторые характеристики NetWare

ХарактеристикаЗначение

Минимальный объем ОП файлового сервера.Для NetWare 4.х - 9 Мб (Windows NT Server 3.51 - 16 Мб, OS/2 Lan Server 4.0 Advanced - 14 Мб).

Поддержка клиентских платформ.DOS, Windows, WFW, UNIX, OS/2, Macintosh, Windows NT Workstation.

Регистрация пользователей и доступ к сетевым ресурсам.В NetWare 4.х поддерживается однократная регистрация при входе в сеть.

Почтовые шлюзы, включенные в поставку ОС.В NetWare 4.1 включен шлюз MHS (в ОС Windows NT Server 3.51 и OS/2 Lan Server 4.0 Advanced шлюзы не входят в базовую поставку).

Средства маршрутизации, включенные в поставку.IPX, TCP/IP, AppleTalk (в ОС Windows NT Server 3.51 и OS/2 Lan Server 4.0 Advanced - только TCP/IP).

Число прав доступа к файлам и каталогам.8 (Windows NT Server 3.51 - 6, OS/2 Lan Server 4.0 Advanced - 7).

Поддержка компрессии файлов на жестком диске.Поддерживается в NetWare 4.х (в OS/2 Lan Server 4.0 Advanced такие средства отсутствуют).

Время считывания 7 Мб с файлового сервера (клиенты - WFW; сервер - 486/DX2, 32 Мб, SCSI, 1 Гб; шина - витая пара на 10 Мбит/c).NetWare 4.1 - 0,86 мин.,
Windows NT Server 3.51 - 1,17 мин,,
OS/2 Lan Server 4.0 Advanced - 1,55 мин.

Время поиска по базе данных Lotus Notes (клиенты - WFW; сервер - 486/DX2, 32 Мб, SCSI, 1 Гб; шина - витая пара на 10 Мбит/c).NetWare 4.1 - 1,17 мин.,
Windows NT Server 3.51 - 2,67 мин.,
OS/2 Lan Server 4.0 Advanced - 9,83 мин.

<
Ориентация на корпоративные сети

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

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

При переходе от локальной сети к корпоративной необходимо решить следующие задачи:

объединить различные компьютерные платформы в единую сеть,

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

объединить удаленные локальные сети с помощью мостов, маршрутизаторов и шлюзов,

организовать доступ большого числа пользователей к ресурсам единой сети и управление ресурсами.

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

операционная система NetWare - файловый, почтовый (MHS) и коммуникационный (NetWare Connect) серверы,

операционная система UnixWare - сервер баз данных и приложений.

При решении второй и третьей задач можно использовать следующие продукты фирмы Novell: NetWare Multi Protocol Router v.3.0 (MPR), NetWare/IP, NetWare FLeX/IP 1.2c, NetWare NFS 1.2c.

Используя MPR, можно построить глобальную разнородную сеть на базе NetWare и РС-совместимых компьютеров. В одну сеть могут быть объединены сети, работающие по таким популярным протоколам как IPX, IP, AppleTalk, Novell NetBIOS, OSI, FTAM с использованием физических сред передачи Ethernet, Token Ring, ARCnet, FDDI, LocalTalk.



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

Пакеты NetWare FLeX/IP 1.2c и NetWare NFS 1.2c предназначены для использования в сетях, где требуется доступ пользователей UNIX к ресурсам NetWare (принтерам и файлам).

Четвертая задача имеет два аспекта: программный и аппаратный. С точки зрения сетевого программного обеспечения сеть должна выглядеть для пользователя единым пулом разнообразных ресурсов. Пользователю не важно, какой из серверов предоставляет ему те или иные ресурсы. Это позволяет администратору системы более гибко распределять ресурсы по имеющимся в наличии серверам, упрощает и повышает эффективность контроля и управления ресурсами сети. Для управления ресурсами сети во всех современных операционных системах выделяются специальные сервисы. В NetWare 4.х эту роль играют служба каталогов NetWare Directory Services (NDS) и системы управления сетями NMS (NetWare Management System) и ManageWise. С точки зрения аппаратных средств эту задачу можно сформулировать так: обеспечение эффективного доступа пула клиентов к пулу серверов. Практическим решением этой задачи является использование при построении кабельной системы так называемых активных элементов. К ним можно отнести локальные мосты, маршрутизаторы, шлюзы, а также устройства, использующие технологию Ethernet Switch, и FDDI-концентраторы.


Функциональная схема ОС. Модули загрузки NLM


В NetWare 2.х VAP-модули (аналоги NLM-модулей) загружаются в ОП только один раз вместе с операционной системой. Начиная с NetWare 3.х, NLM-модули могут загружаться в ОП и выгружаться из неё с консоли файлового сервера в динамическом режиме. NLM-модули - это программы, в которых используется API-интерфейс для связи со службами NetWare. Они разрабатываются, как правило, с помощью компилятора Watcom C.

Компилятор Watcom C генерирует код, использующий преимущества архитектуры процессоров 80386 и 80486. Он использует 32-битовые ближайшие указатели (near pointers) и 4-байтовые целые числа. Использование 32-битовых указателей делает концепцию моделей памяти во многом ненужной. NLM-модули компилируются для непрерывной модели памяти с абсолютной адресацией ("плоской" модели), в которой сегментация памяти гораздо менее важна, чем в других. Одного 32-битового указателя достаточно для адресации всей доступной памяти. Кроме того, компилятор генерирует код, выполняемый в виртуальном режиме.

Все NLM-модули условно можно разделить на две группы: основные (без которых не может функционировать NetWare) и дополнительные (рисунок 2.3).

Как видно из рисунка, в качестве NLM-модулей выступают программы с расширениями *.DSK, *.LAN, *.NAM, *.NLM. При загрузке NLM-модулей в ОП автоматически создаётся нить (задача), связанная с этим модулем. Нить может динамически порождать другие нити. Нити выполняются на сервере независимо друг от друга. Синхронизация между ними осуществляется с помощью семафоров.



Глобальный сетевой каталог NDS


В NetWare 4.х системная база данных сетевых ресурсов называется NDS, и она существенно отличается от базы данных Bindery в NetWare 3.х. Ниже перечислены наиболее важные отличия NDS от Bindery:

в базу данных можно включить много новых объектов,

объекты базы данных иерархически связаны между собой; такую структуру называют деревом NDS,

NDS - это база данных всей сети, а не отдельного сервера,

в NetWare 4.х предлагается графическая утилита для работы с базой данных NDS (Windows-программа NWADMIN.EXE).

Итак, в NetWare 4.х логические и физические ресурсы сети должны быть описаны администратором в виде дерева NDS. На верхних уровнях дерева (ближе к корню) описываются логические ресурсы, которые принято называть контейнерными объектами. На самых нижних (листьевых) уровнях располагаются описания физических ресурсов, которые также называют оконечными объектами. В контейнерных объектах можно создавать другие объекты, в оконечных нельзя.

В таблице 3.12 приведён список контейнерных объектов.

Рисунок 3.5 иллюстрирует общие правила формирования дерева NDS.

Т. е. в объекте Root можно создавать объекты типа Country и Organization. Объект Country может включать только объекты типа Organization, в которых могут размещаться объекты Organizational Unit и оконечные объекты (Leaf). В объекте Organizational Unit также можно создавать объекты типа Organizational Unit и Leaf. Максимальный уровень вложенности объектов в дереве NDS равен 15.

Таблица 3.12. Контейнерные объекты

Имя объектаОбозначениеПримечания

Root Корень дерева

CountryCСтрана

OrganizationOОрганизация

Organizational UnitOUОрганизационная единица (отдел, цех, комната и т. д.)

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

Рис. 3.5. Правила формирования дерева NDS

В таблице 3.13 перечислены оконечные объекты (Leaf), которые можно включать в контейнерные объекты.

Таблица 3.13. Оконечные объекты дерева NDS


Имя объекта Примечания

AFP ServerСервер, базирующийся на протоколе Appletalk (для ОС Macintosh).

AliasСсылка на действительно существующий объект.

ComputerРабочая станция или маршрутизатор ( используется для хранения адреса станции, имени пользователя и т. д.).

Directory MapСсылается на какую-либо директорию файловой системы (может использоваться в Login Script при кодировании команды MAP).

GroupИменует список (группу) объектов User (права, назначенные группе, автоматически передаются объектам User из списка).

Organizational RoleОпределяет менеджера для контейнера.

Print ServerОпределяет сервер печати.

PrinterОписывает сетевой принтер.

Printer QueueОпределяет очередь заданий на печать.

ProfileПозволяет создать Login Script, который может выполняться после системного сценария подключения, но перед пользовательским.

Netware ServerОписывает файловый сервер NetWare. Он автоматически создаётся при инсталляции файлового сервера, и на этот объект можно ссылаться в свойствах объектов дерева NDS и в утилитах NetWare 4.х.

UserОписывает пользователя, который может регистрироваться в сети.

VolumeОписывает физический том файлового сервера (на этот объект можно ссылаться в свойствах других объектов и в утилитах NetWare 4.х).

DirectoriesОписывает директорию (для объектов Volume и Directories).

Messaging Server
(для NetWare 4.1)
Определяет шлюз электронной почты MHS, развёрнутый на файловом сервере.

Message Routing Group (для NetWare 4.1)Определяет кластер взаимосвязанных шлюзов электронной почты.

Distribution List
(для NetWare 4.1)
Используется, чтобы адресовать сообщение сразу нескольким пользователям.

External Entity
(для NetWare 4.1)
Определяет клиентов электронной почты, которые не описаны в дереве NDS.

В NetWare 4.1 дополнительно включены четыре объекта для работы со шлюзом электронной почты MHS, который можно использовать в NetWare 4.1 как штатное средство. Листьевые объекты имеют одно системное обозначение - CN. Каждый из этих объектов имеет свой набор свойств.





Рис. 3.6. Пример дерева, создаваемого при инсталляции файлового сервера

В результате инсталляции файлового сервера автоматически создаётся дерево, пример которого представлен на рисунке 3.6.



Рис. 3.7. Дерево NDS

При инсталляции дерева NDS администратор должен указать контекст для размещения новых объектов Server и Volume: имена объектов Organization (O) и Organizational Unit (OU). С помощью утилиты NWADMIN администратор может расширить это дерево NDS по своему усмотрению.

Следует отметить, что наличие службы NDS является весомым преимуществом NetWare 4.х. Например ОС Windows NT не имеет средств, аналогичных NDS.


Идентификация услуг. Протокол SAP


В NetWare протокол SAP (Service Advertising Protocol) является надстройкой над протоколом IPX и используется файловым сервером для оповещения других станций о предоставляемых услугах.

Для оповещения используется широковещательный пакет IPX (в поле DestNode заголовка IPX и в поле ImmAddress блока ECB указывается значение FFFFFFFFh) с номером гнезда 0х0452.

Каждый файловый сервер посылает SAP-пакет примерно через каждые 60 секунд. Структура этого пакета представлена на рисунке 2.18 (б).

С помощью этих пакетов файловый сервер информирует другие серверы о своём присутствии. Данные этого пакета помещаются в базу данных объектов на каждом файловом сервере сети. Если сервер не будет непрерывно объявлять своё имя, то оно потеряется из базы данных каждого файлового сервера NetWare.

Программа рабочей станции может получить информацию о серверах сети двумя способами:

читая эти сведения в режиме Bindery из базы данных текущего файлового сервера для объектов типа 0004h (серверы NetWare),

принимая пакеты SAP, используя при этом гнездо 0х0452.



Интернационализация диалоговых интерфейсов


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

операционной системой на консоли файлового сервера,

NLM-модулями на консоли файлового сервера,

утилитами NetWare на экране рабочей станции,

модулями программного обеспечения клиента на экране рабочей станции.

Для изменения языка, используемого для вывода сообщений ОС на консоль файлового сервера, необходимо подготовить соответствующий модуль SERVER.MSG и поместить его в каталог, откуда загружается головная программа ОС NetWare SERVER.EXE.

Для вывода сообщений NLM-модулей на требуемом языке необходимо с консоли файлового сервера ввести команду

LANGUAGE number

где number определяет национальный язык сообщений. В частности число 4 соответствует английскому языку, а 13 - русскому. На рисунке 2.62 представлена структура каталогов, где должны храниться сообщения NLM-модулей.

Рис. 2.62. Структура каталогов, где хранятся сообщения NLM-модулей

При инсталляции файлового сервера обычно устанавливается только каталог с именем 4, где хранятся модули *.MSG описания сообщений на английском языке для соответствующих NLM-модулей.

Для вывода сообщений утилит NetWare и модулей программного обеспечения клиента на требуемом языке используется переменная NWLANGUAGE среды DOS, которая устанавливается, как правило, в файле C:\NWCLIENT\STARTNET.BAT, создаваемом при инсталляции рабочей станции:

SET NWLANGUAGE=language

где language - один из следующих языков: English, Duetsh, Espanol, Francais, Italiano. На рисунке 2.63 представлена структура каталогов, где должны храниться сообщения утилит NetWare.

При инсталляции файлового сервера обычно устанавливается только каталог с именем ENGLISH.

На рисунке 2.64 изображена структура каталогов и файлов с сообщениями модулей программного обеспечения клиента рабочей станции.

При инсталляции рабочей станции обычно устанавливается каталог с именем ENGLISH.

Рис. 2.63.

Структура каталогов, где хранятся сообщения


Структура каталогов, где хранятся сообщения утилит NetWare

Форматы даты, времени и числа, используемых на рабочей станции, описываются в файле C:\NWCLIENT\LCONFIG.SYS. Примеры форматов для USA, используемых по умолчанию, представлены в таблице 2.23.

Таблица 2.23. Примеры форматов для USA

ДатаВремяЧисло

USA09/22/958:37:00 PM12,345.67



Рис. 2.64. Структура каталогов, где хранятся сообщения модулей программного

обеспечения клиента станции


Использование сигнатур для передачи NCP-пакетов


Необходимость применения сигнатуры (подписи) NCP-пакетов связана со скандалом, разыгравшимся в 1992 году. Тогда голландский студент предложил простой способ "взламывания" файлового сервера NetWare. Этот способ основывается на параллельной работе хаккера и пользователя, имеющего требуемые права (рисунок 2.55).

Рис. 2.55. Организация несанкционированного доступа к файловому серверу

На рабочей станции хаккера (hacker) функционирует программа, которая перехватывает пакеты, передаваемые по шине сети. При формировании пакета программа хаккера выполняет следующие действия:

переписывает в заголовок формируемого IPX-пакета заголовок перехваченного пакета,

записывает в поле данных требуемую команду.

Далее пакет посылается на файловый сервер. Файловый сервер пересылает адрес станции hacker в поле ImmAddress блока ECB и использует данные заголовка пакета IPX, чтобы определить номер соединения и возможность выполнения команды. Но в заголовке пакета хаккера записан адрес пользователя (адрес Admin), который имеет требуемые права. Поэтому команда хаккера выполняется.

При формировании сетевым адаптером заголовка ответного кадра адрес станции, куда непосредственно передаётся кадр, выбирается из поля ImmAddress блока ECB. Т. е. станция hacker воспринимается файловым сервером как маршрутизатор или мост. Напомним, что адрес конечной станции-получателя хранится в заголовке пакета IPX (в данном случае это адрес Admin, хотя для хаккера это не имеет значения). Таким образом, ответ посылается на станцию hacker, где и обрабатывается.

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

NCP-пакеты могут подписываться и рабочими станциями, и файловым сервером.
Для инициирования включения подписи в NCP- пакеты администратор должен выполнить следующие действия (для NetWare 3.12 и 4.х):

1. С консоли файлового сервера необходимо ввести SET-команду

SET NCP Packet Signature Option = уровень (по умолчанию 1)

Можно задать один из следующих уровней:

0 - сервер не подписывает пакет,

1 - сервер подписывает пакет, если этого требует клиент (уровень на станции больше или равен 2),

2 - сервер подписывает пакет, если клиент также способен это сделать (уровень на станции больше или равен 1),

3 - сервер подписывает пакет и требует этого от всех клиентов (иначе подключение к сети невозможно).

2. На рабочей станции в раздел Netware DOS Requester файла net.cfg необходимо включить строку:

Signature Level = уровень (по умолчанию 1)

Можно задать один из следующих уровней:

0 - клиент не подписывает пакет,

1 - клиент подписывает пакет, если этого требует сервер (уровень на сервере больше или равен 2),

2 - клиент подписывает пакет, если сервер также способен это сделать (уровень на сервере больше или равен 1),

3 - клиент подписывает пакет и требует этого от всех серверов (иначе подключение к сети невозможно).

В таблице 2.15 перечислены различные сочетания уровней на сервере и рабочей станции, а также варианты подписи пакета.

Таблица 2.15. Варианты подписи пакета

Еслиуровень на сервере = 0
= 1

= 2

= 3

уровень на станции = 0
-

-

-

N

= 1- -++

= 2 - +++

= 3 N+++

Здесь приняты следующие обозначения :

+ - пакеты подписываются,

- - пакеты не подписываются,

N - рабочая станция не подключается к сети.


Категории пользователей сетевой ОС NetWare


Имеется четыре уровня ответственности, которые могут быть присвоены пользователям NetWare:

рядовые пользователи сети,

операторы (операторы консоли файлового сервера, операторы очереди печати, операторы сервера печати),

менеджеры (руководители групп),

администраторы сети.

Рядовыми пользователями называются пользователи, работающие в сети. Они могут запускать прикладные программы и работать с файлами в соответствии с теми правами, которыми они наделены.

Операторами называются рядовые пользователи, которые наделены дополнительными привилегиями. Например, оператор консоли файлового сервера - это пользователь, наделённый правом использования утилиты NetWare 3.12 FCONSOLE, которая позволяет контролировать работу сервера (просматривать время загрузки сервера, анализировать, могут ли подключаться новые пользователи и включена ли TTS) и выгружать сервер.

Менеджерами называются пользователи, имеющие право создания новых объектов пользователей и управления ими. Менеджеры рабочих групп (Workgroup Managers) могут выполнять обе эти функции, а менеджеры контроля пользователей (User/Group Account Managers) могут только управлять пользователями. Менеджеры работают как администраторы, но только в пределах данной группы.

В NetWare 3.х менеджеры описываются с помощью утилиты SYSCON. В NetWare 4.х для этой цели используется объект Organizational Role. В качестве свойства объекта Organizational Role администратором назначается список "оккупантов" этого объекта. При этом объект Organizational Role автоматически включается в список Security Equal To всех "оккупантов". Как правило, объект Organizational Role назначается опекуном управляемого контейнерного объекта. Если объекту Organizational Role назначить супервизорное право [S], то "оккупант" не может лишить администратора права управлять этим контейнерным объектом (сравните с п. 2.6.6, таблице 2.21).

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

создание счетов (т. е. объектов пользователей),

создание и реконфигурирование серверов печати и очередей,

архивацию и восстановление данных,

назначение опекунов файловой системы и NDS,

создание групп и их менеджеров,

инсталляцию дополнительного сервера и т. д.



Манипулирование сетевыми ресурсами


После запуска в Windows утилиты SYS:PUBLIC\NWADMIN.EXE на экране появляется окно с изображением дерева NDS (рисунок 3.7).

Слева от каждого имени объекта высвечивается знак, указывающий на класс, к которому принадлежит этот объект. Классы объектов (таблица 3.13) показаны на рисунке 3.8.

Рис. 3.8. Классы объектов

Над объектами в дереве NDS можно выполнять следующие операции:

осуществлять поиск объектов в дереве NDS,

создавать новые объекты,

модифицировать свойства объектов,

перемещать объекты в дереве NDS,

удалять объекты.

Поиск объектов в дереве NDS

Чтобы посмотреть содержимое контейнерного объекта, необходимо дважды щёлкнуть мышью на имени этого контейнера в окне Browse (рисунок 3.7). А чтобы скрыть содержимое, следует повторно дважды щёлкнуть мышью на имени контейнерного объекта. Поиск объекта с заданными свойствами можно выполнить, выбрав пункт меню Object/Search утилиты NWADMIN.

Создание объектов

Для создания нового объекта необходимо в дереве NDS (рисунок 3.7) указать мышью на контейнерный объект, куда следует включить новый объект, и выбрать пункт меню Object/Create утилиты NWADMIN. Из появившегося меню требуется выбрать класс включаемого объекта (рисунок 3.8) и заполнить поля окна, имеющего примерно следующую структуру (рисунок 3.9).

Рис. 3.9. Структура окна с именем объекта

Если указать второй признак, то после создания объекта система предложит создать другой объект того же типа. Первый признак является альтернативой второму. Если он указан, то после нажатия кнопки OK на экране появится окно, имеющее следующую структуру (рисунок 3.10).

Рис. 3.10. Структура окна для определения значений свойств объекта

Справа располагается меню свойств, а слева - поля со значениями свойства, выбранного из меню. Каждый объект имеет свой набор свойств. В частности, многие объекты имеют свойство Rights to Files and Directories, с помощью которого объект можно сделать опекуном нескольких директорий или файлов. Объект типа Directories обладает свойствами Trustees of this Directory и Directory Attributes, которые позволяют определить фильтр наследуемых прав (IRF), описать несколько опекунов к этой директории и назначить атрибуты.
Дважды щёлкнув мышью на имени директории в дереве NDS (рисунок 3.7), можно посмотреть поддиректории и файлы, хранящиеся в ней. Они имеют примерно тот же самый набор свойств.

После определения значений свойств и нажатия кнопки OK на экране вновь появляется окно Browse (рисунок 3.7). Чтобы переименовать объект, следует подсветить его в дереве NDS и выбрать пункт меню Object/Rename.

Модификация свойств объекта



Чтобы модифицировать свойства объекта, необходимо подсветить его в дереве NDS, нажать правую клавишу мыши и в появившемся меню выбрать пункт Details (таблица 3.14). На экране появляется окно для определения значений свойств объекта (рисунок 3.10).

Перечисленные в таблице 3.14 пункты меню (кроме Browse) можно также найти в меню Object.

Перемещение объектов в дереве NDS



Для перемещения оконечных объектов в другой контейнерный объект необходимо указать мышью на перемещаемый объект (чтобы указать на несколько объектов, следует удерживать клавишу Ctrl или Shift), выбрать пункт Object/Move (или нажать клавишу F7) и выбрать контейнерный объект, куда следует переместить выбранные оконечные объекты.

Таблица 3.14. Описание пунктов меню, которое появляется после

нажатия правой клавиши мыши

Пункт менюОписание

DetailsОтобразить свойства объекта.

Rights to other ObjectsПоказать список объектов, для которых текущий объект является опекуном.

Trustees of this ObjectОтобразить список опекунов выбранного объекта. С помощью этого пункта можно определить фильтр наследуемых прав (IRF) и описать несколько опекунов к этому объекту (см. п 2.6.6).

BrowseПоказать на экране новое окно Browse.

CreateСоздать новый объект в текущем контейнерном объекте.

DeleteУдалить текущий объект.

Для перемещения контейнерного объекта вместе со своими объектами (только для NetWare 4.1) сначала следует создать раздел для этого контейнера (пункт меню Tools/Partition Manager/Create as New Partition) и только потом выполнить его перемещение в другой контейнерный объект (пункт меню Tools/Partition Manager/Move Partition).

Удаление объектов в дереве NDS



Для удаления объектов необходимо указать мышью на удаляемый объект (чтобы указать на несколько объектов, следует удерживать клавишу Ctrl или Shift), выбрать пункт меню Object/Delete (или нажать клавишу Delete) и подтвердить необходимость удаления объектов. Контейнерный объект можно удалять только в том случае, если он пуст.


Метод доступа и кадры для сетей ARCNet


При подключении устройств в ARCNet применяют топологию шина или звезда. Адаптеры ARCNet поддерживают метод доступа Token Bus (маркерная шина) и обеспечивают производительность 2,5 Мбит/с. Этот метод предусматривает следующие правила:

все устройства, подключённые к сети, могут передавать данные, только получив разрешение на передачу (маркер),

в любой момент времени только одна станция в сети обладает таким правом,

кадр, передаваемый одной станцией, одновременно анализируется всеми остальными станциями сети.

Этот метод доступа излагается после рассмотрения кадров ARCNet.

В сетях ARCNet используется асинхронный метод передачи данных (в сетях Ethernet и Token Ring применяется синхронный метод). Т. е. передача каждого байта в ARCNet выполняется посылкой ISU (Information Symbol Unit - единица передачи информации), состоящей из трёх служебных старт/стоповых битов и восьми битов данных.

В ARCNet определены 5 типов кадров (рисунок 2.30):

Кадр ITT (Invitations To Transmit) - приглашение к передаче. Станция, принявшая этот кадр, получает право на передачу данных.

Кадр FBE (Free Buffer Enquiries) - запрос о готовности к приёму данных. С помощью этого кадра проверяется готовность узла к приёму данных.

Кадр DATA - с помощью этого кадра передаётся пакет данных.

Кадр ACK (ACKnowledgments) - подтверждение приёма. Подтверждение готовности к приёму данных (ответ на FBE) или подтверждение приёма кадра DATA без шибок (ответ на DATA).

Кадр NAK (Negative ACKnowledgments) - Узел не готов к приёму данных (ответ на FBE) или принят кадр с ошибкой (ответ на DATA).

ITT FBE DATA ACK NAK

AB1AB1AB1AB1AB1

EOT1ENQ1SOH1ACK1NAK1

DID2DID2SID1

DID2

COUNT2

Пакет1-508

CRC2

Рис. 2.30. Типы кадров для сетей ARCNet

Цифры на рисунке 2.30 обозначают длины полей кадров (в байтах). На рисунке введены следующие обозначения полей:

AB (Alert Burst) - начальный разделитель. Он выполняет функции преамбулы кадра.

EOT (End Of Transmit) - символ конца передачи.


DID (Destination Identification) - адрес приёмника (ID приёмника). Если в поле заносится значение 00h, то кадр обрабатывается всеми станциями.

ENQ (ENQuiry) - символ запроса о готовности к приёму данных.

SOH (Start Of Header) - символ начального заголовка.

SID (Source Identification) - адрес источника (ID источника).

COUNT = 512-N, где N - длина пакета в байтах.

CRC - контрольная сумма.

ACK (ACKnowledgments) - символ готовности к приёму данных.

NAK (Negative ACKnowledgments) - символ не готовности к приёму данных.

Ниже приведено описание метода доступа Token Bus.

Все станции в сети ARCNet определяются 8-битовым ID (Identification - физический адрес сетевого адаптера). Этот адрес устанавливается переключателями на плате.

В сети ARCNet очерёдность передачи данных определяется физическими адресами станций (ID). Первой является станция с наибольшим адресом, затем следует станция с наименьшим адресом, далее - в порядке возрастания адресов. Каждая станция знает адрес следующей за ней станции (NextID или NID). Этот адрес определяется при выполнении процедуры реконфигурации системы. Выполнив передачу данных, станция передаёт право на передачу данных следующей станции при помощи кадра ITT, при этом в поле DID устанавливается адрес NID. Следующая станция передаёт данные, затем кадр ITT и так далее. Таким образом, каждой станции предоставляется возможность передать свои данные. Предположим, что в сети работают станции с физическими адресами 3, 11, 14, 35, 126. Тогда маркер на передачу (кадр ITT) будет передаваться в следующей последовательности: 126®3®11®14®35®126®3 и т. д.

Для передачи пакета станция сначала должна получить маркер. Получив маркер, узел посылает кадр FBE той станции, которой должны быть переданы данные. Если станция-приёмник не готова, она отвечает кадром NAK, в противном случае - ACK. Получив ACK, узел, владеющий маркером, начинает передавать кадр DATA. После отправки кадра передатчик ожидает ответа в течение 75,6 мкс. Если получен ответ ACK, то передатчик передаёт маркер следующей станции.


Если получен ответ NAK, то передатчик повторно передаёт приёмнику кадр DATA. Затем, вне зависимости от ответа маркер передаётся следующей станции.

Каждая станция начинает принимать кадр DATA, обнаружив передачу начального разделителя AB. Затем сравнивает значение адреса DID со своим адресом. Если адреса одинаковы или пришёл broadcast-кадр, данные записываются в буфер станции, если нет, то кадр игнорируется. Кадр считается нормально принятым, если он принят полностью, и контрольная сумма совпадает со значением в поле CRC. Получив нормальный кадр DATA, станция передаёт ответ ACK. Если при приёме обнаружена ошибка, то передаётся ответ NAK. В ответ на широковещательный кадр DATA кадры ACK и NAK не передаются.

В заключение этого пункта рассмотрим, как выполняется реконфигурация сети ARCNet.

Реконфигурация сети выполняется автоматически всякий раз при включении новой станции или при потере маркера. Сетевой адаптер начинает реконфигурацию, если в течение 840 мс не получен кадр ITT. Реконфигурация производится с помощью специального кадра реконфигурации (Reconfiguration Burst). Такой кадр длиннее любого другого кадра, поэтому маркер будет разрушен (из-за коллизии), и никакая станция в сети не будет владеть маркером (т. е. правом на передачу). После приёма кадра реконфигурации каждая станция переходит в состояние ожидания на время, равное 146*(256-ID) мкс. Если по окончании тайм-аута передач по сети не было (а это справедливо только для станции с наибольшим адресом ID), то узел передаёт кадр ITT с адресом DID, равным собственному ID. Если ни одна станция не ответила, узел увеличивает DID на единицу и повторяет передачу кадра ITT и т. д. После положительного ответа маркер передаётся ответившей станции, а её адрес ID запоминается как адрес следующей станции (NID). Эта операция повторяется, пока маркер не вернётся к первому узлу (станции с максимальным адресом). При выполнении реконфигурации каждая станция в сети узнаёт следующую за ней станцию. Таким образом формируется логическое кольцо, определяющее последовательность передачи маркера.


Метод доступа и кадры для сетей Ethernet


На логическом уровне в Ethernet применяется топология шина:

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

кадр, передаваемый одной станцией, одновременно анализируется всеми остальными станциями сегмента.

Стандарты Ethernet поддерживают метод доступа CSMA/CD (Carrier Sense Multiple Access / Collision Detection) и обеспечивают скорость передачи по шине 10 Мбит/с и 100 Мбит/с. По-русски этот метод доступа называется "Множественный доступ с контролем несущей и обнаружением коллизий". Ниже приводится краткое описание этого метода доступа.

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

Если при передаче кадра произошла коллизия (т. е. несущая частота изменилась на величины f2(f1), то станция прекращает передавать данные и выдаёт специальную последовательность из 32 битов, которая позволяет всем станциям определить, что произошла коллизия. Затем станция переходит в состояние ожидания на небольшой случайный промежуток времени, по окончании которого она, проверив среду, пытается ещё раз передать по сети свой кадр. Если за 16 попыток станции не удается передать свои данные, то считается, что среда недоступна.

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

Существует четыре основные разновидности кадров Ethernet (рисунок 2.28). NetWare все их поддерживает.

Ethernet_II Ethernet_802.3 Ethernet_802.2 Ethernet_SNAP

P7P7P7P7

SFD1SFD1SFD1SFD1

DA6DA6DA6DA6

SA6SA6SA6SA6

Type2Length2Length2Length2

Пакет DSAP1DSAP1

SSAP1SSAP1

46- 46-Control1Control1

1500 1500Пакет OUI3

43 -ID2

1497Пакет38-

1495

FCS4FCS4FCS4FCS4

Рис. 2.28. Типы кадров для сетей Ethernet

Цифры на рисунке обозначают длины полей кадров (в байтах). Здесь введены следующие обозначения.

P - преамбула. Представляет собой семибайтовую последовательность единиц и нулей (101010....). Это поле предназначено для синхронизации приёмной и передающей станций.

SFD (Start Frame Delimiter) - признак начала кадра (10101011),

DA (Destination Address), SA (Source Address) - адреса получателя и отправителя. Они представляют собой физические адреса сетевых адаптеров Ethernet и являются уникальными. Первые три байта адреса назначаются каждому производителю Ethernet-адаптеров (для адаптеров фирмы Intel это будет значение 00AA00h, а для адаптеров 3Com - 0020afh), последние три байта определяются самим производителем. Для широковещательных кадров поле DA устанавливается в FFFFFFFFh.

FCS (Frame Check Sequence) - контрольная сумма всех полей кадра (за исключением полей преамбулы, признака начала кадра и самой контрольной суммы). Если длина пакета передаваемых данных меньше минимальной величины, то адаптер Ethernet автоматически дополняет его до 46 байтов. Этот процесс называется выравниванием (padding). Жёсткие ограничения на минимальную длину пакета были введены для обеспечения нормальной работы механизма обнаружения коллизий.

Теперь рассмотрим специфичные поля каждого типа кадра.

Ethernet_II

Этот тип кадра был разработан первым для сетей Ethernet. Дополнительно содержит следующее поле:

Type - определяет тип протокола сетевого уровня, пакет которого переносится этим кадром (8137h - для протокола IPX, 0800h - для протокола IP, 809Bh - для протокола AppleTalk и т.


д.). Все идентификаторы имеют значения старше 05bch.

Ethernet_802.3

Этот тип кадра был создан фирмой Novell и является базовым для сетей с ОС NetWare 3.11. Дополнительно содержит следующее поле:

Length - длина передаваемого пакета.

Поскольку в этом кадре отсутствует поле с типом протокола, то он может быть использован только для переноса IPX. Заголовок пакета IPX (рисунок 2.14) следует непосредственно за полем длины, поэтому первое поле пакета (поле Checksum) содержит значение FFFFh.

Ethernet_802.2

Этот тип кадра разработан подкомитетом IEEE 802.3 в результате стандартизации сетей Ethernet. Этот кадр содержит следующие дополнительные поля:

Length - длина передаваемого пакета,

DSAP (Destination Service Access Point) - тип протокола сетевого уровня станции-получателя (E0h - для IPX),

SSAP (Source Service Access Point) - тип протокола сетевого уровня станции-отправителя,

Control - номер сегмента; используется при разбиении длинных IP-пакетов на более мелкие сегменты; для пакетов IPX это поле всегда содержит значение 03h (обмен ненумерованными датаграммами).

Ethernet_SNAP

Этот кадр является модернизацией кадра Ethernet_802.2 и содержит ещё два поля: OUI (Organizational Unit Identifier) и ID, которые определяют тип протокола верхнего уровня SNAP Protocol ID.

Каждая станция начинает принимать кадр с преамбулы Р. Затем сравнивает значение адреса DA со своим адресом. Если адреса одинаковы, или пришёл широковещательный кадр, или задана специальная программа обработки, то кадр копируется в буфер станции. Если нет, то кадр игнорируется.

Ниже приведён алгоритм идентификации типа кадра сетевым адаптером:

если за полем SA следует значение старше 05dch, то это кадр Ethernet_II,

если за полем Length следует идентификатор FFFFh, то это кадр Ethernet_802.3,

если за полем Length следует идентификатор AAh, то это кадр Ethernet_SNAP, иначе - это кадр Ethernet_802.2.


Метод доступа и кадры для сетей FDDI


Адаптеры FDDI поддерживают метод доступа Token Ring (см. п. 2.3.6.2) и обеспечивают производительность 100 Мбит/с. Максимальная длина кольца с оптоволоконным кабелем FDDI - 100 км. Интерфейс FDDI (Fiber Distributed Data Interface) является более современным, чем Ethernet, Token Ring и ARCNet. Сети FDDI можно использовать для объединения нескольких сетей Ethernet, расположенных в разных зданиях (рисунок 2.31).

Часто в качестве адаптеров FDDI используются интеллектуальные концентраторы, выполняющие функции моста, например, NetBuilder II. На рисунке интеллектуальный концентратор обозначен как Hub1. Простой концентратор (Hub2) обычно выполняет роль повторителя. Метод доступа, используемый в сетях FDDI, имеет следующие отличия от Token Ring (см. п. 2.3.6.2):

в Token Ring маркер передаётся следующей станции только после возвращения кадра в узел, который передал этот кадр в сеть; в методе FDDI маркер будет передан непосредственно после передачи кадра данных в сеть,

в методе FDDI не используется поле приоритета Р (в байте АС).

В сетях FDDI используются два основных типа кадра (рисунок 2.32):

Data/Command Frame (кадр управление/данные),

Token (маркер).

Цифры на рисунке 2.32 обозначают длины полей кадров (в байтах). На рисунке введены следующие обозначения полей:

P - преамбула. Это поле предназначено для синхронизации.

SD - признак начала кадра.

FC - поле, состоящее из следующих областей: CLFFTTTT.

Рис. 2.31. Использование интерфейса FDDI для объединения сетей Ethernet

Бит C устанавливает класс кадра, который определяет, будет ли кадр использоваться для синхронного или асинхронного обмена. Бит L - это индикатор длины адреса станции (16 или 48 битов). В отличие от Ethernet и Token Ring здесь допускается использование в одной сети адресов той и другой длины. Биты FF определяют, принадлежит ли кадр подуровню MAC (т. е. кадр предназначен для управления кольцом) или подуровню LLC (т. е. кадр предназначен для передачи данных). Если кадр является кадром подуровня MAC, то биты TTTT определяют тип пакета (IPX и т.
д.).

DA - адрес станции-приёмника.

SA - адрес станции-источника.

FCS -контрольная сумма.

ED - конечный ограничитель кадра.

FS - поле статуса пакета. Это поле содержит поля А (Address Resolution) и C (Frame Copied) (см. таблицу 2.12).

Data/Command Frame Token

P8P8

SD1SD1

FC1FC1

DA2 или 6ED1

SA2 или 6FS1

Пакетдо 4500



FCS4

ED1/2

FS1

Рис. 2.32. Типы кадров для сетей FDDI


Метод доступа и кадры для сетей Token Ring


Адаптеры Token Ring поддерживают метод доступа Token Ring (маркерное кольцо) и обеспечивают скорости передачи 4 Мбит/с или 16 Мбит/с. Ниже перечислены основные положения этого метода:

станции подключаются к сети по топологии кольцо,

все станции, подключённые к сети, могут передавать данные, только получив разрешение на передачу (маркер),

в любой момент времени только одна станция в сети обладает таким правом.

Data/Command Frame Token Abort

SD1SD1SD1

AC1AC1ED1

FC1ED1

DA6

SA6

Пакетдо 4202

FCS4

ED1

FS1

Рис. 2.29. Типы кадров для сетей Token Ring

Этот метод доступа излагается при обсуждении кадров Token Ring в конце данного пункта.

В сетях Token Ring используются три основных типа кадров (рисунок 2.29):

Data/Command Frame (кадр управления/данные),

Token (маркер),

Abort (кадр сброса).

Цифры на рисунке обозначают длины полей кадров (в байтах). Здесь введены следующие обозначения полей:

SD (Start Delimiter) - признак начала кадра. Синхронизирует работу приёмника и передатчика, подготавливает станцию к приёму пакета.

AC (Access Control) - поле управления доступом. Содержит поле приоритета Р (3 бита), поле маркера Т (1 бит), поле монитора М (1 бит) и рабочее поле R (3 бита). Поясним назначение полей Р, Т и М.

Поле Р (Priority). Предположим, что станции WS1, WS2 и WS3 связаны в кольцо. Пусть у станции WS2 есть данные для передачи с приоритетом 5. В это время через неё проходит кадр (например, данные от WS1), где в поле AC установлен приоритет 3 (поле Р). Тогда WS2 запоминает старое значение Р (=3), устанавливает в Р новое значение (=5, т. е. более высокий уровень) и ретранслирует кадр дальше. По кольцу этот кадр возвращается к станции-отправителю WS1. Она, обнаружив в поле Р значение 5, формирует кадр Token (маркер) со значением поля Р, равным 5, и направляет этот кадр по кольцу. Таким образом, станция WS2 получит право на передачу, поскольку у неё самый высокий приоритет. Передав данные, WS2 сформирует и передаст кадр Token с приоритетом 5.
FS (Frame Status) - поле статуса кадра. Состоит из полей A (Address Resolution) и C (Frame Copied). Передающая станция устанавливает эти поля в 0, а принимающая станция изменяет их в соответствии с результатами приёма кадра и ретранслирует кадр дальше по сети. Когда кадр возвращается на станцию-передатчик, выполняется проверка полей A и С (таблица 2.12), и кадр удаляется из кольца.

Таблица 2.12. Значения полей А и С

АСОписание

00Станция-приёмник не доступна в данный момент.

10Станция-приёмник обнаружила ошибку в кадре. Передача кадра повторяется.

01Недопустимая комбинация битов.

11Передача выполнена успешно.

Ниже приведено краткое описание метода доступа Token Ring.

Управление станциями в сети происходит с помощью передачи специального кадра Token - маркера (рисунок 2.29). Станция, которая приняла маркер, получает право на передачу и может передавать данные. Для этого станция удаляет маркер из кольца, формирует кадр данных и передаёт его следующей станции. В сети Token Ring все станции принимают и ретранслируют все кадры, проходящие по кольцу. При приёме станция сравнивает поле адреса кадра (DA) с собственным адресом. Если адреса не совпадают, то кадр передаётся далее по кольцу без изменений. Если адреса совпадают, или принят кадр с broadcast-адресом, то содержимое копируется в буфер станции, а по результатам приёма вносятся изменения в поле статуса кадра (FS). Затем кадр передаётся далее по сети и, таким образом, возвращается на станцию-отправитель. Получив кадр, станция-отправитель проверяет поле статуса кадра (FS) (таблица 2.12), формирует маркер и передаёт его следующей станции. Таким образом, следующая станция получает право на передачу данных.


Методы доступа и кадры для сетей Ethernet, Token Ring, ARCNet и FDDI


Обработку кадров, передаваемых по сети, выполняют сетевой адаптер, устанавливаемый в слот расширения станции, и соответствующий ему драйвер.

Сетевой адаптер (СА) и драйвер СА реализуют следующие функции:

поддерживают метод доступа в сети,

формируют и анализируют кадры, передаваемые по сети.

В зависимости от поддерживаемого метода доступа и типа кадра сетевые адаптеры можно разделить на несколько групп: Ethernet, Token Ring, ARCNet, FDDI и др. Сети, где устанавливаются перечисленные адаптеры, имеют те же названия: сети Ethernet, сети Token Ring и т. д. Следует отметить, что рассматриваемые СА поддерживают разные методы доступа и типы кадров, поэтому они не совместимы между собой. Следовательно, на станциях, подключаемых к одному сегменту сети, необходимо устанавливать сетевые адаптеры одного типа.

Ниже рассматриваются методы доступа и кадры для сетей Ethernet, Token Ring, ARCNet и FDDI.



Многопротокольный интерфейс ODI рабочей станции


На рисунке 2.24 представлена структура программного обеспечения клиента NetWare, устанавливаемого на рабочей станции.

Рис. 2.24. Структура ПО клиента NetWare

Запросчик (Requester) перехватывает прерывания на ввод/вывод в файл. Если файл располагается на локальном диске, то запрос обрабатывается операционной системой рабочей станции. Иначе, используя примитивы API-интерфейса, запросчик организует ввод/вывод в файл, хранящийся на диске файлового сервера. Следует отметить, что в OS/2 прерывания перехватывает сама ОС, а затем передаёт управление запросчику.

Стек транспортных протоколов поддерживает API-интерфейс доступа запросчика (или прикладной программы) к службам NetWare. На рабочей станции могут выполняться несколько транспортных протоколов одновременно: SPX/IPX, TCP/IP, AppleTalk. Как правило, для каждого протокола требуется свой запросчик, т. е. свой API-интерфейс. Обычно протокол SPX/IPX используется клиентами MS-DOS, OS/2, Windows NT Workstation, протокол AppleTalk - клиентами Macintosh. Протокол TCP/IP устанавливается в стек клиента NetWare для обеспечения связи с ОС UNIX.

Программа уровня поддержки связи (Link Support Layer - LSL) принимает пакет от драйвера сетевого адаптера, распознаёт протокол, который был использован при формировании пакета, выбирает соответствующий протокол из стека и передаёт ему управление.

Модули драйвера и уровня поддержки связи со стеком протоколов образуют так называемый интерфейс ODI (Open Data-Link Interface). Важно отметить, что стек транспортных протоколов рабочей станции является открытым: если новый протокол разрабатывался с использованием спецификаций ODI-интерфейса, то он может быть включён в стек.

В таблице 2.9 перечислены компоненты ПО клиента MS-DOS.

Таблица 2.9. Компоненты программного обеспечения клиента MS DOS

ЗапросчикТранспортный
протокол (SPX/IPX)
Уровень поддержки связиДрайвер сетевого
адаптера

VLM.EXE и
модули *.VLM
IPXODI.COMLSL.COMNE2000.COM, NE1000.COM и др.

Многопротокольный интерфейс STREAMS файлового сервера


На рисунке 2. 25 представлена структура многопротокольного интерфейса STREAMS, используемого на файловом сервере. Он применяется для обеспечения взаимодействия с сервером по протоколам, отличным от NCP на базе IPX.



Рис. 2.25. Структура многопротокольного интерфейса STREAMS

на файловом сервере

Поддержка многопротокольного интерфейса STREAMS - это множество программных средств, включающее ресурсы ядра и NLM-библиотеки STREAMS.NLM, CLIB.NLM, TLI.NLM, SPXS.NLM, IPXS.NLM. Это средство используется, чтобы создать дуплексный процесс пересылки данных между драйверами и программами сервера.

Драйверы сетевых адаптеров - это NLM-модули, обеспечивающие приём кадров и выделение из них пакетов. Файловый сервер может поддерживать одновременную работу 16 драйверов.

Уровень поддержки связи (Link Support Layer - LSL) принимает пакет от драйвера, распознаёт тип пакета и выбирает соответствующий протокол из стека коммуникационных протоколов. NetWare поддерживает одновременную работу до 32 протоколов. Модули драйверов и уровня поддержки связи LSL образуют ODI-интерфейс, позволяющий включать в стек новые транспортные протоколы.

При необходимости пакеты обрабатываются протоколами сессионного уровня NCP (пакеты IPX), AFP (пакеты AppleTalk от клиентов Macintosh), NFS (пакеты TCP/IP от клиентов UNIX), SMB (пакеты IPX от клиентов OS/2).


Набор протоколов IPX/SPX


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

NetWare поддерживает следующие уровни протоколов в классификации OSI:

канальный, обрабатывающий заголовок кадра (драйвер сетевого адаптера),

сетевой (протоколы IPX, SPX, NETBIOS, TLI),

транспортный (протоколы SPX, NETBIOS, TLI, NCP),

сессионный (протоколы NETBIOS, NCP),

прикладной (протоколы RIP, NLSP, SAP).

Для рабочей станции с ОС DOS протоколы IPX и SPX входят в состав программы IPXODI.COM, которая загружается с помощью bat-файла STARTNET.BAT.

Протокол IPX (Internetwork Packet Exchange) обрабатывает так называемый пакет IPX, являющийся основным средством, которое используется при передаче данных в сетях NetWare. Формат пакета IPX представлен на рис 2.14.

Все поля, указанные на рис 2.14, кроме последнего (Data), образуют заголовок пакета. Особенностью формата пакета является то, что все поля заголовка содержат значения в перевёрнутом формате: по младшему адресу записывается старший байт данных.

Рассмотрим подробнее назначение отдельных полей пакета.

Поле Checksum предназначено для хранения контрольной суммы пакета или другой служебной информации. В прикладных программах обычно не используется.

2Checksum -контрольная сумма

2Length -общая длина пакета

1TransportControl-счетчик пройденных маршрутизаторов

1PacketType-тип пакета

4DestNetwork-номер сети получателя пакета

6DestNode-адрес станции-получателя

2DestSocket-гнездо программы-получателя

4SourceNetwork-номер сети отправителя пакета

6SourceNode-адрес станции-отправителя

2SourceSocket-гнездо программы-отправителя

длинаData-передаваемые данные

Рис. 2.14. Структура пакета IPX

Поле Length определяет общий размер пакета вместе с заголовком. NetWare поддерживает следующие максимальные длины пакетов: Token Ring и ARCnet - 4202 байта, Ethernet - 1514 байтов.
Это поле устанавливается протоколом IPX передающей станции.

Поле TransportControl служит как бы счетчиком маршрутизаторов, которые проходит пакет на своём пути от передающей станции к принимающей. В начале это поле устанавливается в 0 протоколом IPX передающей станции.

Поле PacketType определяет тип передаваемого пакета. Программа, которая передаёт пакет средствами IPX, должна записывать в это поле значение 0х04.

Поле DestNetwork определяет номер сети, в которую передаётся пакет. Устанавливается в прикладной программе. Если в поле указывается нулевое значение, то пакет предаётся в сеть (сегмент), к которой подключена станция.

Поле DestNode определяет адрес станции, которой предназначен пакет. Устанавливается прикладной программой. Если пакет предназначен всем станциям в сети (сегменте), то в поле указывается значение FFFFFFFFh.

Поле DestSocket предназначено для определения программы, которая запущена на станции-получателе и должна принять пакет. Это поле устанавливается в прикладной программе.

Поля SourceNetwork, SourceNode, SourceSocket содержат соответственно номер сети, из которой посылается пакет, адрес передающей станции и гнездо программы, которая передаёт пакет. Эти поля заполняются протоколом IPX передающей станции.

Поле Data в пакете IPX содержит передаваемые данные. Это поле формируется протоколом IPX передающей станции на основании описания блока ECB (рисунок 2.15).

Блок ECB состоит из фиксированной части размером 36 байтов и массива дескрипторов, описывающих отдельные фрагменты передаваемого или принимаемого пакета данных.

Рассмотрим назначение отдельных полей блока ECB.

Поле Link предназначено для организации списков, состоящих из блоков ECB. Устанавливается протоколом IPX.

Поле ESRAddress содержит адрес программного модуля, который получает управление при завершении процесса чтения или передачи пакета IPX. При необходимости устанавливается прикладной программой.

Поле InUse служит индикатором завершения операции приёма или передачи пакета.


Вначале устанавливается в 0 прикладной программой.

Поле Ccode содержит код результата выполнения функции API-интерфейса.

4Link-указатель на следующий ECB

4ESRAddress-адрес программы ESR

1InUse-флаг состояния ECB

1CCode-код завершения запроса

2Socket-номер гнезда для приёма или передачи

4IPXWorkspace-рабочий буфер для IPX

12DriverWorkspace-рабочий буфер

6ImmAddress-адрес той станции сегмента, которой непосредственно передаётся пакет

2FragmentCnt-количество фрагментов в пакете. Каждая следующая пара полей образует дескриптор фрагмента

4 Address-адрес 1-го фрагмента

2 Size-размер 1-го фрагмента

4 Address-адрес 2-го фрагмента

2 Size-размер 2-го фрагмента

...... ........ и так далее

Рис 2.15. Формат блока ECB, используемого в функциях API-интерфейса

Поле Socket содержит номер гнезда. Если ECB используется для приёма, то это поле должно содержать номер гнезда принимающей программы. Если ECB используется для передачи, то поле содержит номер гнезда передающей программы. Заполняется в прикладной программе и используется протоколом IPX для заполнения поля SourceSocket пакета IPX (рисунок 2.14).

Поля IPXWorkspace и DriverWorkspace зарезервированы для использования протоколом IPX.

Поле ImmAddress содержит при передаче адрес узла сегмента, куда непосредственно будет направлен пакет. Если пакет передаётся в пределах одного сегмента, поле содержит адрес станции-получателя (такой же, как и в поле DestNode заголовка пакета IPX). Если пакет предназначен для другого сегмента и будет проходить через маршрутизатор, поле ImmAddress содержит адрес этого маршрутизатора. Если пакет предназначен всем узлам сегмента, то в поле указывается значение FFFFFFFFh. При передаче пакета это поле заполняется в прикладной программе. Важно отметить, что значение этого поля используется драйвером сетевого адаптера для формирования адреса-получателя в заголовке кадра.

При приёме поле ImmAddress содержит адрес станции сегмента, от которой пришёл пакет.


В этом случае поле заполняется протоколом IPX. Следует отметить, что этот адрес станции выбирается из заголовка кадра (поле "адрес отправителя") и, как правило, используется прикладной программой для передачи ответа.

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

Таблица 2.3. Примитивы API-интерфейсов для работы по протоколу IPX

ПримитивОписание

IPXOpenSocketОткрыть гнездо.
Вход - тип гнезда, номер открываемого гнезда.

IPXCloseSocketЗакрыть гнездо.
Вход - номер закрываемого гнезда

IPXGetLocalTargetПрименяется для вычисления значения непосредственного адреса.
Вход - адрес 12-байтового поля с полным адресом конечной станции-назначения (номер сети - 4 байта, адрес станции - 6 байтов, номер гнезда - 2 байта).
Выход - значение адреса той станции сегмента (например, маршрутизатора или файлового сервера), которой непосредственно передаётся пакет (значение поля ImmAddress блока ECB).

IPXGetInternetworkAddressС помощью этого примитива программа может узнать сетевой адрес станции, на которой она работает.
Выход - 10-байтовый адрес станции (номер сети - 4 байта, адрес станции - 6 байтов).

IPXListenForPacket
(для программы на рабочей станции)
IPXReceive
(для NLM-модуля)
Используется для приёма пакета из сети.
Вход - адрес блока ECB.

IPXSendPacket
(для программы на рабочей станции)
IPXSend
(для NLM-модуля)
Используется для передачи пакета в сеть.
Вход - адрес блока ECB.

IPXRelinquishControl
(для программы на рабочей станции)
ThreadSwitch
(для NLM-модуля)
Используется, чтобы освободить процессор для выделения процессорного времени протоколу IPX. Применяется в том случае, если поле InUse блока ECB (рисунок 2.15) в цикле опрашивается прикладной программой.

Сразу за полем FragmentCnt располагаются дескрипторы фрагментов, каждый из которых состоит из адреса фрагмента (поле Address) и размера фрагмента (поле Size).



Фирма Novell предлагает API- интерфейсы для работы по протоколу IPX на рабочей станции и файловом сервере. В таблице 2.3 перечислены примитивы (функции) этих интерфейсов.

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

Следует отметить, что для поддержки на файловом сервере служб протокола IPX используется библиотека CLIB.NLM. Для организации доступа к этим службам следует дополнительно загрузить NLM-модуль IPXS.NLM в стек протоколов, основанных на STREAMS.

Протокол IPX определяет самый быстрый уровень передачи данных в сетях NetWare. Он относится к классу датаграммных протоколов типа "точка-точка" без установления соединения. Это означает, что вашей прикладной программе не требуется устанавливать специальное соединение с получателем. Впрочем IPX имеет несколько недостатков:

не гарантирует доставку данных,

не гарантирует сохранения правильной последовательности приёма пакетов,

не подавляет приём дублированных пакетов.

Т. е. обработка ошибок, возникающих при передаче пакетов IPX, возлагается на прикладную программу, принимающую пакеты.

Указанных недостатков не имеет протокол транспортного уровня SPX (Sequenced Packet eXchange), ориентированный на установление соединения. Протокол SPX обрабатывает пакет SPX, формат которого представлен на рисунке 2.16.


2

Checksum

-
ПОЛЯ IPX
контрольная сумма

2Length -общая длина пакета

1TransportControl-счетчик пройденных маршрутизаторов

1PacketType-тип пакета

4DestNetwork-номер сети получателя пакета

6DestNode-адрес станции-получателя

2DestSocket-гнездо программы-получателя

4SourceNetwork-номер сети отправителя пакета

6SourceNode-адрес станции-отправителя

2SourceSocket-гнездо программы-отправителя


1

ConnControl

-
ПОЛЯ SPX
управление потоком данных

1DataStreamType-тип данных в пакете

2SourceConnID-идентификатор канала отправителя

2DestConnID-идентификатор канала получателя

2SeqNumber-счётчик переданных пакетов

2AckNumber-номер следующего пакета

2AllocNumber-количество буферов для приёма

длинаData-передаваемые данные

<


Рис. 2.16. Структура пакета SPX

Первые десять полей пакета совпадают с заголовком пакета IPX. Рассмотрим остальные поля заголовка SPX.

Поле ConnControl содержит набор битовых флагов, управляющих передачей данных по каналу SPX.

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

Поле SourceConnID содержит номер канала связи передающей программы, присвоенный протоколом SPX при создании канала связи. Полем управляет протокол SPX.

Поле DestConnID содержит номер канала связи принимающей стороны. Так как все пакеты, приходящие на один номер гнезда, могут принадлежать разным каналам связи (на одном гнезде можно открыть несколько каналов связи), то приходящие пакеты следует классифицировать по номеру канала связи. Полем управляет протокол SPX.

Поле SeqNumber содержит счётчик пакетов, переданных по каналу в одном направлении. На каждой стороне канала используется свой счётчик. При достижении значения FFFFh счётчик сбрасывается в 0, после чего процесс счёта продолжается. Содержимым поля управляет протокол SPX.

Поле AckNumber содержит номер следующего пакета, который должен быть принят протоколом SPX. Содержимым этого поля управляет протокол SPX.

Поле AllocNumber содержит количество буферов, отведенных программой для приёма пакетов. Содержимым этого поля управляет протокол SPX.

Таблица 2.4. Примитивы API-интерфейсов для работы по протоколу SPX

ПримитивОписание

SPXListenForConnectionИспользуется в паре с функцией SPXEstablishConnection для образования канала связи.
Вход - адрес блока ECB.
Прикладную программу, в которой используется функция SPXListenForConnection, принято называть программой-сервером (она принимает первый пакет канала). Прикладную программу, в которой используется функция SPXEstablishConnection, называют программой-клиентом (она посылает первый пакет программе-серверу). При использовании примитива SPXListenForConnection в программе-сервере необходимо выполнить следующие шаги:
Выполнить обращение к функции SPXListenForSequencedPacket, чтобы обеспечить в дальнейшем приём пакета от программы-клиента.
Выполнить обращение к функции SPXListenForConnection. После успешного образования канала в поля InUse и Ccode блока ECB будет записано нулевое значение.
Ожидать приёма пакета (см. шаг 1).

SPXEstablishConnectionИспользуется в программе-клиенте для образования канала связи.
Вход - адрес блока ECB.
При использовании этого примитива в программе-клиенте необходимо выполнить следующие шаги:
Выполнить обращение к функции SPXListenForSequencedPacket, чтобы обеспечить в дальнейшем приём пакета от программы-сервера.
Выполнить обращение к функции SPXEstablishConnection. После успешного образования канала в поля InUse и Ccode блока ECB будет записано нулевое значение, а поле SourceConnID заголовка пакета SPX будет содержать номер образованного канала связи.
С помощью функции SPXSendSequencedPacket выполнить передачу первого пакета программе-серверу.

SPXListenForSequencedPacketОбеспечивает приём пакета средствами протокола SPX.
Вход - адрес блока ECB.

SPXSendSequencedPacketОбеспечивает передачу пакета.
Вход - адрес блока ECB, а также номер канала, используемый программой-получателем.
Номер канала следует выбирать из поля SourceConnID заголовка принятого пакета.

SPXGetConnectionStatusПроверить состояние канала.
Вход - номер канала и указатель на буфер, куда записывается информация о состоянии канала.

SPXTerminateConnectionЭта функция автоматически посылает удалённому партнёру пакет, который состоит из одного заголовка. В поле DataStreamType этого заголовка находится значение FEh, которое говорит программе получателя закрыть канал (т.е. выполнить в ответ функцию SPXTerminateConnection).
Вход - адрес блока ECB и номер канала связи.
Далее обе программы должны закрыть используемые гнёзда.

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

<


Для протокола SPX используется точно такой же блок ECB, что и для протокола IPX. Прикладная программа, в которой используются примитивы API-интерфейса с протоколом SPX, обычно включает выполнение следующих шагов:

открыть гнездо для IPX,

установить с помощью функций IPXListenForPacket (или IPXReceive) и IPXSendPacket (или IPXSend) связь между программами, которые должны организовать обмен данными между собой,

с помощью функции IPXOpenSocket открыть гнездо для SPX,

установить канал связи между программами (см. таблицу 2.4),

выполнить обмен данными по установленному каналу связи,

закрыть канал связи.

Фирма Novell предлагает API-интерфейсы для работы по протоколу SPX на рабочей станции и на файловом сервере. В таблице 2.4 перечислены основные примитивы этих интерфейсов.

Как видно из таблицы 2.4, имена примитивов совпадают для программ на рабочей станции и для NLM-модулей файлового сервера.

Следует отметить, что для поддержки на файловом сервере служб протокола SPX используется библиотека CLIB.NLM. Для организации доступа к этим службам следует дополнительно загрузить NLM-модуль SPXS.NLM в стек протоколов, основанных на STREAMS.

Оценивая рассмотренные выше протоколы IPX и SPX, можно сказать, что протокол IPX быстр, но SPX надёжен.


Назначение ОС NetWare


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

Для управления сетью разрабатываются специальные сетевые операционные системы, которые по своей организации можно разделить на одноранговые (Peer-To-Peer Network) и с выделенным файловым сервером (Dedicated File Server Network).

В одноранговых сетях на каждой рабочей станции (компьютере) сети могут быть загружены две группы модулей: модули сервера и клиента (рисунок 1.1).

Рис. 1.1. Пример загрузки модулей одноранговой сети

Загрузка в оперативную память (ОП) рабочей станции модулей сервера обеспечивает доступ других пользователей к ресурсам этого компьютера. А наличие модулей клиента позволяет пользователю иметь доступ к ресурсам других рабочих станций сети.

Указанные группы программ могут использоваться в различных сочетаниях. Так рабочие станции (WorkStation) WS1 и WS2 (рисунок 1.1) могут выступать в качестве серверов, т.е. их ресурсами могут пользоваться другие станции. А станции WS1 и WS3 имеют доступ к другим компьютерам сети.

К одноранговым относятся следующие сетевые операционные системы:

NetWare Lite, Personal NetWare (Novell),

Windows For Workgroups (Microsoft),

LANtastic (Artisoft).

Здесь в скобках указаны названия фирм-изготовителей соответствующих продуктов. В таблице 1.1 перечислены общие преимущества и недостатки одноранговых ОС.

Таблица 1.1. Преимущества и недостатки одноранговых ОС

ПреимуществаНедостатки

Простота инсталляции.
Обеспечивают доступ к ресурсам других рабочих станций.
Низкая производительность сети. Это объясняется небольшой мощностью рабочих станций.
Имеют ограниченные возможности по обеспечению связи удаленных сегментов сети.
Отсутствуют развитые средства управления сетью.
Не обеспечивают режим работы СУБД "клиент-сервер".

В сетях с выделенным сервером сетевая ОС инсталлируется и загружается на отдельной станции, которую называют файловым сервером (File Server).
Рабочие станции имеют доступ к общим данным и другим ресурсам, хранящимся на файловом сервере (рисунок 1.2).



Рис. 1.2. Пример сегмента сети с выделенным сервером

К операционным системам, которые устанавливаются на файловом сервере, относятся следующие ОС:

Vines 5.53 (Banyan),

OS/2 LAN Server 4.0 Advanced (IBM),

Windows NT Server 3.51 (Microsoft),

NetWare 3.x, 4.x (Novell).

Рабочие станции могут функционировать под управлением различных ОС: MS DOS, OS/2, UNIX, Macintosh, Windows NT Workstation.

В таблице 1.2 перечислены основные преимущества и недостатки ОС с выделенным сервером.

Чтобы устранить недостатки, присущие сетям рассмотренных типов, часто на одном сегменте сети устанавливают две операционные системы: одноранговую и с выделенным сервером.

Следует также отметить, что наблюдается некоторое сближение сетей различных типов. Например, с целью увеличения производительности одноранговой сети LANtastic фирма Artisoft выпустила сервер CorStream, функционирующий под управлением NetWare 4.01.

Таблица 1.2. Преимущества и недостатки ОС с выделенным сервером

ПреимуществаНедостатки

Высокая производительность сети за счет использования файлового сервера большой мощности.
Наличие развитых аппаратных и программных средств связи удаленных сегментов сети и рабочих станций.
Наличие развитых средств управления и администрирования в сети.
Обеспечивают режим работы СУБД "клиент-сервер".
Некоторая сложность в освоении.
Ограниченные возможности доступа к ресурсам рабочих станций.

Признанными лидерами сетевых ОС с выделенным сервером являются Windows NT Server 3.51 и NetWare 3.x,4.x.

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


NetWare Web Server (Novell): установка, настройка, порядок работы


NetWare Web Server устанавливается на NetWare 4.1и 4.11 с 16 Мб RAM и требует 2.5 Мб памяти на жёстком диске и дополнительно 3.5 Мб для online-документации. На сервере также должен быть загружен протокол TCP/IP (см. раздел 5.1).

NetWare Web Server устанавливается, как и многие продукты NetWare, с помощью утилиты INSTALL.NLM на файловом сервере. Конфигурирование же Web-сервера выполняется с помощью Windows-утилиты WEBMGR.EXE на рабочей станции.

Инсталляция NetWare Web Server включает следующие шаги:

Вставьте диск CD-ROM с NetWare Web Server в устройство CD-ROM на сервере.

Смонтируйте CD-ROM как том NetWare, введя с консоли команду

CD MOUNT WEB

Следует отметить, что этого можно и не делать, если при загрузке DOS на файловом сервере были загружены драйверы CD-ROM.

Загрузите утилиту INSTALL.NLM:

LOAD INSTALL.NLM

Выбрать из меню пункт " Product Option".

Выбрать пункт "Install a Product Not Listed".

Появляется окно, приглашающее вставить диск в устройство А или выбрать другой путь. Нажмите клавишу F3, чтобы выбрать другой путь.

Введите этот путь:

WEB:\DISK1\ - если диск CD-ROM используется как том NetWare,

D: \DISK1\ - если диск CD-ROM используется как драйв DOS

и нажмите клавишу ENTER.

Вам будет задано два вопроса: 1) желаете ли вы просмотреть файл README.TXT? (yes/no) и 2) желаете ли вы инсталлировать online-документацию? (yes/no).

Система запрашивает установить пароль администратора Web-сервера. Этот пароль должен отличаться от пароля администратора NetWare, чтобы его можно было передать другому лицу.

В результате инсталляции будет создана структура каталогов (рисунок 5.4).

Рис. 5.4. Структура каталогов Web-сервера

Для загрузки Web-сервера используются основные четыре NLM-модуля, которые выполняют следующие функции:

NETDB.NLM - осуществляет доступ к базе данных сети для конфигурирования и получения информации об IP-адресах (включая DNS),

BASIC.NLM - интерпретатор script-файлов языка BASIC,

PERL.NLM - интерпретатор script-файлов языка PERL,


HTTP.NLM - HTTP-протокол Web-сервера.

Пятый модуль CGIAPP.NLM используется для приложений CGI.

Создаётся также конфигурационный файл UNISTART.NCF, включающий следующие команды для старта Web-сервера:

load netdb.nlm

load basic.nlm -d sys:web

load perl.nlm

load http.nlm -d sys:web

Здесь параметры -d sys:web определяют корневую директорию Web-сервера.

Строка UNISTART.NCF автоматически добавляется в конец файла AUTOEXEC.NCF.

После загрузки программного обеспечения Web-сервера (NLM-модули из UNISTART.NCF) на сервере создаются три экрана: Web-сервера, интерпретатора языка BASIC и интерпретатора языка PERL (рисунки 5.5 - 5.7).



Рис. 5.5. Экран Web-сервера



Рис. 5.6. Экран интерпретатора языка BASIC



Рис. 5.7. Экран интерпретатора языка PERL

Перед загрузкой файлового сервера в файл AUTOEXEC.NCF следует поместить команду, увеличивающую число буферов для приёма пакетов до 1000:

SET MAXIMUM PACKET RECEIVE BUFFERS = 1000

После загрузки файлового сервера Web-сервер готов к работе. С рабочей станции можно запустить какой-либо броузер (Netscape Naigator, Microsoft Explorer и др.) и посмотреть какую либо Web-страницу, хранящуюся в качестве примера на Web-сервере:

http://IP-адрес или доменное имя сервера/index.htm

Здесь " IP-адрес или доменное имя сервера" - это либо IP-адрес вашего Web-сервера (например 137.65.96.143), либо доменное имя вашего Web-сервера, зарегистрированное в домене фирмы-провайдера (например tiger.simple.ru).

На Web-сервере не обязательно устанавливать домен имён (DNS). При желании это можно сделать, воспользовавшись продуктом NetWare/IP, который входит в состав NetWare 4.1.

Чтобы управлять Web-сервером администратору необходима рабочая станция в следующей конфигурации:

386, 486 или Intel Pentium PC с 8 Мб RAM,

1 Мб свободного дискового пространства,

Windows 3.1, Windows for Workgroups 3.11 или Windows 95,

программное обеспечение клиента NetWare (VLM или Client 32),

IPX и Winsock v1.1 (dll - библиотека).

Администрирование выполняется с помощью Windows-программы SYS:PUBLIC\WEBMGR.EXE.


Чтобы сконфигурировать Web-сервер, необходимо запустить утилиту WEBMGR. На экране появляется окно (рисунок 5.8).



Рис. 5.8. Первое окно утилиты WEBMGR

Выполните следующие действия:

Выберите пункт "Select Server" из меню File.

Укажите корневую директорию Web-сервера: SYS:WEB (рисунок 5.9).



Рис. 5.9. Окно для задания корневой директории Web-сервера

Щёлкните ОК и на экране появляется главное окно конфигурации Web-сервера (рисунок 5.10).



Рис. 5.10. Главное окно конфигурации Web-сервера

Конфигурация сервера (вкладка Server, рисунок 5.10). Это главные параметры и они изменяются не часто.

Full server name - по умолчанию здесь указан IP-адрес Web-сервера, хотя можно указать и доменное имя, полученное у фирмы-провайдера.

TCP port - большинство броузеров используют порт (сокет) 80.

Directory containing HTML documents - это директория, где будут сохраняться HTML-программы, рисунки, кнопки и т. д. (по умолчанию DOCS).

Directory containing log files - директория, где сохраняются файлы журналов операций.

Enable user documents - эта опция указывает, что пользователям разрешён доступ к чужим Web-страницам.

User subdirectory - имя директории (относительно личной директории пользователя, определённого в дереве NDS), где будут размещаться персональные страницы клиента, видимые другими пользователями (по умолчанию PUBLIC.WWW).



Конфигурация директорий (вкладка Directories, рисунок 5.11).

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

Existing directories - список директорий, для которых уже даны определения.

Directory path - путь к описываемой директории.

Contains - определяет тип файлов, которые будут храниться в описываемой директории:

Documents - HTML-документы, рисунки, кнопки, SSI-документы.

Scripts - PERL- и BASIC-скрипты (интерпретируемые программы).

Image maps - планы рисунков. Они контролируют "горячие пятна" (hot spots) внутри рисунка.


Например, вы щёлкаете на изображении горы. Сервер выполнит соответствующий скрипт и отобразит информацию о курорте, который располагается на склоне этой горы.



Рис. 5.11. Окно конфигурации директорий

Для директорий, где хранятся документы и Image-планы могут быть назначены следующие опции:

Enable Indexing - если указан этот признак, то становятся доступными три опции Index options (на рисунке 5.11 справа):

Fancy indexing - Web-сервер генерирует для броузера клиента входы, которые дополнительно к именам файлов показывают иконки (кнопки), информацию о размерах файлов, дескрипторы файлов.

Icons are links - Web-сервер создаёт индексные входы, в которых иконки связываются с соответствующими документами. Когда пользователь щёлкает на иконке, броузер автоматически генерирует значение поля URL для доступа к документу.

Scan titles - Web-сервер генерирует дескрипторы индексов путём сканирования заголовков HTML-документов.

Enable Includes - эта опция позволяет серверу модифицировать HTML-документ перед его посылкой клиенту. Эти изменения определяются специальными командами, включаемыми в комментарии этого документа (<!, >). Такие HTML-документы имеют расширение *.SSI.



Доступ пользователей к директориям Web-сервера (вкладка User Access, рисунок 5.12).

Эти директории должны быть уже специфицированы ранее. Чтобы определить доступ пользователей к директории, выполните следующие шаги:

Выберите директорию (Directory).

Установите контекст NDS (например, OU=pilots.O=scico или pilots.scico). В результате имена объектов пользователей (USER), определённых в контейнере pilots, отображаются в списке Network users.

Выберите пользователя из списка и щёлкните кнопку Add to Authorized users list. Имя клиента появится в списке Authorized users.

Чтобы эти назначения стали действительными, требуется перезагрузить Web-сервер.

Доступ к директории будут иметь только указанные пользователи. Другие клиенты не получат доступ. Следует отметить, что если пользователи не были назначены для директории, то все клиенты получат к ней доступ в режиме read-only.



Если доступ к директории был определён, то при обращении к файлу из этой директории броузер будет запрашивать имя и пароль пользователя. Пароль передаётся в кодах UUENCODED, и может стать лёгкой добычей хакера.



Рис. 5.12. Окно для определения доступа пользователей к директориям Web-сервера

Доступ внешних пользователей к директориям Web-сервера (вкладка System Access, рисунок 5.13).



Рис. 5.13. Окно для определения доступа внешних пользователей к директориям Web-сервера

С помощью окна User Access (рисунок 5.12) можно описать доступ к директориям Web-сервера только пользователей, описанных в NDS. С помощью окна на рисунке 5.13 можно определить какие доменные имена и IP-адреса имеют доступ к директориям Web-сервера. Для этого выполните следующие шаги:

Выберите директорию (Directory).

Введите доменное имя или IP-адрес (полный или его часть), например, shallow.com, 137.65.100, 192.200 и т.д.

Щёлкните мышкой на кнопку Add to Authorized systems list.

Сохраните изменения, щелкнув кнопку ОК и перезапустив Web-сервер.

В каталоге SYS:WEB/CONFIG хранятся следующие конфигурационные файлы:

HTTPD.CFG - содержит основные команды настройки Web-сервера,

ACCESS.CFG - содержит сведения о доступе пользователей к директориям,

SRM.CFG - конфигурационный файл ресурсов, где хранится информация о директориях,

MIME.TYP - планирует файлы к одному из MIME-типов, которые знакомы Web-серверу.

Ранее отмечалось, что можно сделать так, чтобы клиент броузера видел страницы, созданные пользователем NetWare (опция Enable user documents на рисунке 5.10). Предположим, что пользователь ALAN имеет личную директорию FS41/SYS:USERS/ALAN. Чтобы другие клиенты могли видеть страницы, созданные этим пользователем, следует выполнить следующие шаги:

Создать в личной директории поддиректорию, например, PUBLIC.WWW (см. рисунок 5.10), где будут храниться личные HTML-файлы.

Создать документ INDEX.HTM. Если такого файла нет в директории PUBLIC.WWW, то Web-сервер будет возвращать список всех HTML-документов в этой директории.

Чтобы получить доступ к документу INDEX.HTM пользователя ALAN, другой клиент должен в поле URL броузера закодировать строку

HTTP://IP-адрес или доменное имя Web-сервера/~ ALAN

Тильда (~) указывает, что затем кодируется имя login пользователя. Вместо короткого имени можно указать и полное имя пользователя в дереве NDS: ~. ALAN.SED.NOVELL.


Обеспечение надёжности


NetWare обеспечивает надёжное хранение данных на файловом сервере. Фирма Novell условно разделила соответствующие средства поддержки надёжности на три уровня защиты SFT (System Fault Tolerance): SFT-I, SFT-II, SFT-III.



Обзор команд оперативного управления


В таблице 3.18 перечислены команды оперативного управления, которые можно вводить с консоли файлового сервера NetWare.

Таблица 3.18. Команды оперативного управления

КомандаОписание

OFF или CLSОчистить экран консоли файлового сервера.

BROADCAST "сообщение"Передать сообщение всем пользователям, зарегистрированным в сети.

SEND "сообщение" TO номер_соеди-нения [,номер_соединения ...]Передать сообщение одному или нескольким пользователям, которые зарегистрированы в сети.

CONFIGОтобразить характеристики файлового сервера, указанные в файле AUTOEXEC.NCF.

DISPLAY NETWORKSОтобразить сведения о топологии сети.

DISPLAY SERVERSОтобразить сведения об имеющихся в сети серверах, мостах и маршрутизаторах.

NAMEОтобразить имя файлового сервера.

DISABLE LOGINЗапретить новым клиентам подключаться к серверу.

ENABLE LOGINРазрешить новым клиентам подключаться к серверу.

MOUNT имя_тома | ALLСмонтировать один или все тома сервера.

DISMOUNT имя_томаРазмонтировать том сервера.

SETПосмотреть или изменить SET-параметры операционной системы.

SET TIME [месяц/день/год]
[час:минуты:секунды]
Установить системную дату и время.

MEMORYПоказать объём оперативной памяти сервера.

REGISTER MEMORY начальный_
адрес добавляемый_объём_ОП
Использовать на сервере более 16 Мб оперативной памяти (для шины компьютера ISA).

VERSIONОтобразить версию и характеристики лицензии NetWare.

VOLUMESОтобразить список томов, смонтированных на файловом сервере.

MODULESПосмотреть список загруженных NLM-модулей.

LOAD [путь]имя_модуля[параметры_
модуля]
Загрузить и выполнить NLM-модуль.

UNLOAD имя_модуляВыгрузить NLM-модуль из оперативной памяти.

BIND протокол [TO] имя_драйвера |
имя_конфигурации_карты [[параме-
тры_драйвера]] NET=номер_сети
Привязать протокол к драйверу сетевого адаптера.

UNBIND протокол [FROM] имя_
драйвера [параметры_драйвера]
Отсоединить протокол от драйвера сетевого адаптера.

SEARCHОтобразить пути поиска NLM-модулей.

SEARCH ADD номер путьДобавить путь поиска NLM-модулей.

SEARCH DEL номерУдалить путь поиска NLM-модулей.

SECURE CONSOLEВыгрузить DOS из оперативной памяти сервера и разрешить чтение NLM-модулей только из системной директории SYS:SYSTEM.

REMOVE DOSВыгрузить DOS из оперативной памяти сервера. Освободившаяся память присоединяется к кэш-буферу.

DOWNЗавершить работу ОС NetWare.

EXITВыйти в DOS файлового сервера после выполнения команды DOWN. Если до этого DOS была выгружена (см. команды SECURE CONSOLE и REMOVE DOS), то выполняется перезагрузка NetWare.

<
Наблюдение и контроль состояния системы

Мониторинг сети - это оценка ее характеристик производительности и надежности. Для мониторинга сети NetWare, в частности, можно использовать следующие средства:

NLM-модуль MONITOR.NLM,

продукт NetWare Management System (NMS),

продукт ManageWise.

Модуль MONITOR.NLM является утилитой файлового сервера NetWare и позволяет анализировать следующие характеристики производительности и надежности системы:

по каждому пользователю:

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

объем данных, прочитанных и записанных рабочей станцией на диск сервера за время соединения;



по каждому жесткому диску сервера:

состояние средства переадресации дефектных блоков (Hot Fix),

число переадресованных дефектных блоков,

состояние режима проверки чтением после записи на диск;



по каждому сетевому адаптеру сервера:

общее число отправленных и принятых пакетов,

число пакетов, при приеме которых не было свободных блоков ECB,

количество кадров, которые были приняты с ошибками и др.;



по оперативной памяти сервера:

размер пула выделенной памяти

распределение пула выделенной памяти между NLM-модулями (для NetWare 4.х),

размер кэш-буфера,

характеристики использования кэш-буфера (для NetWare 4.х),

размер области перемещаемой памяти,

размер области, занимаемой NLM-модулями (код и данные);



по процессору сервера:

загрузка процессора за последнюю секунду,

загрузка процессора NLM-модулями и программами обработки прерываний.

Продукт NMS разработан фирмой Novell, а средство ManageWise является совместной разработкой Novell и Intel. ManageWise включает в себя продукты NMS (Novell) и Landesk (Intel).

Средство ManageWise включает следующие компоненты (рисунок 3.14):

NMS:

LANalyzer Agent (LA) - агент сервера для сбора информации о сегменте сети,

Network Management Agent (NMA) - агент сервера для сбора информации о файловом сервере,

NetWare Management System (NMS) - консоль ManageWise, выполняемая под Windows,





LANDESK:

средство удаленного управления рабочей станцией, устанавливаемое на сервере,

программа-агент, устанавливаемая на рабочей станции (USER.COM),

средство поиска вирусов в сети, устанавливаемое на сервере.

При инсталляции ManageWise устанавливаются:

программы-агенты на файловых серверах, для которых необходимо осуществлять мониторинг,

программа-агент на рабочих станциях, которыми надо управлять,

Windows-программы на станции администратора для реализации функций мониторинга и управления (консоль ManageWise).



Рис. 3.14. Компоненты ManageWise

После запуска под Windows консоли ManageWise (NMS) она взаимодействует с программами-агентами с помощью трех основных команд:

GET - опросить базу данных MIB (Management Information Base). Эта база содержит информацию о форматах данных, с помощью которых NMS и программы-агенты могут обмениваться между собой. NMS транслирует сведения из этой базы и запоминает их в собственной базе данных на станции администратора.

TRAP - получить данные от программы-агента. Как только администратор выбирает требуемую характеристику, NMS формирует команду TRAP для соответствующего агента. После этого программа-агент начинает пересылать на станцию администратора требуемые сведения. NMS отображает их в соответствующем окне.

SET - установить параметр. С помощью этой команды NMS управляет (через программы-агенты) состоянием процессора, рабочей станции и др.

LA-агент перехватывает пакеты, поступающие на сервер, накапливает статистику о функционировании сегмента и пересылает ее на станцию администратора. NMA-агентом накапливается статистика о работе файлового сервера.

Связь между агентами и базой данных MIB, о также между агентами и консолью ManageWise осуществляется с помощью протокола SNMP (Simple Network Management Protocol). Следует отметить, что SNMP является стандартным протоколом для разработки различных систем администрирования сетей. Он используется в системах администрирования OpenView (HP), NetView/6000 (IBM), Norton Administrator for Networks (Symantec).



С помощью консоли ManageWise можно выполнять следующие функции:

1. Просматривать графики и анализировать информацию

а) по сегментам:

производительность сегмента (пакет/сек.),

загрузку сегмента,

количество ошибок в секунду,

текущий трафик (пакет/сек.) и т. д.,

б) по файловым серверам (где установлены агенты):

загрузку процессора,

статистику о работе контроллера жесткого диска,

статистику о работе сетевого адаптера,

информацию о NLM-модулях,

в) по сети в целом:

топологию сети,

индикаторы и сообщения об ошибках и предупреждениях (например о превышении установленного порога для кэш-буфера).

2. Вырабатывать управляющие воздействия

а) для настройки параметров файловых серверов (средствами удаленной консоли),

б) для настройки концентраторов (включить, выключить порты и т. д.),

в) для настройки рабочих станций (LANDESK).


Обзор средств администратора


В таблице 3.10 перечислены основные утилиты администратора NetWare 3.12, а в таблице 3.11 - утилиты администратора NetWare 4.х. Эти утилиты следует запускать на рабочей станции.

Таблица 3.10. Утилиты администратора NetWare 3.12

УтилитаОписание

Графические
утилиты, выполняемые под Windows.

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

DTEXTRWИспользуется для просмотра электронной документации.

Утилиты-меню

COLORPALПозволяет изменить цвета уже существующих палитр элементов окон утилит-меню NetWare 3.12.

DSPACEПозволяет ограничить дисковое пространство, доступное клиентам, и дисковое пространство в каталоге.

FCONSOLEПозволяет операторам консоли файлового сервера посылать сообщения всем клиентам, просматривать информацию о соединениях клиентов, останавливать сервер (DOWN).

FILERПозволяет выполнить защиту каталога или файла и операции с каталогом или файлом (удаление, копирование).

MAKEUSERПозволяет создать или удалить большое число клиентов с одинаковыми правами.

RCONSOLE
(в SYSTEM)
Позволяет организовать удалённую консоль.

SALVAGEПозволяет восстановить ранее удалённые (по delete) файлы.

SESSIONПозволяет создать логические и поисковые драйвы.

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

USERDEFИспользуется администратором сети или менеджером рабочих групп для создания нескольких пользователей. Эта утилита формирует файл *.USR для автоматического создания клиентов при помощи утилиты MAKEUSER.

VOLINFOПозволяет посмотреть информацию о заполнении томов файлового сервера.

Утилиты
командной строки

ALLOWПозволяет устанавливать и модифицировать фильтры наследуемых прав (IRF) для каталогов и файлов.

ATTACHИспользуется для подключения к другим файловым серверам.

BINDFIXИспользуется, чтобы "отремонтировать" файлы базы данных Bindery.

BINDRESTИспользуется для реставрации предыдущих файлов базы данных Bindery, которые сохраняются утилитой BINDFIX (файлы *.OLD).

CASTOFFЗапретить приём сообщений на рабочую станцию.

CASTONРазрешить приём сообщений.

CHKDIRПозволяет отобразить информацию о заполнении тома и директории.

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

DOSGENСоздаёт файл удалённой загрузки для бездисковых станций.

FLAGИспользуется для просмотра и изменения атрибутов файлов.

FLAGDIRИспользуется для просмотра и изменения атрибутов каталогов.

GRANTИспользуется для назначения опекунских прав клиентам и группам по отношению к каталогу или файлу.

LISTDIRИспользуется для просмотра эффективных прав клиента и фильтра наследуемых прав во всех подкаталогах текущего каталога.

LOGINИспользуется для регистрации клиента на файловом сервере.

LOGOUTИспользуется для отключения клиента от одного или всех файловых серверов.

MAPПрименяется для просмотра, назначения или отмены логического или поискового драйва.

MENUMAKEПозволяет оттранслировать описание пользовательского меню.

NCOPYИспользуется для копирования файлов из одного каталога в другой.

NDIRПрименяется для просмотра разнообразной информации о файлах и каталогах.

NMENUПозволяет запустить пользовательское меню.

NVERИспользуется для просмотра версии ПО, загруженного на файловом сервере и рабочей станции.

PAUDIT
(в SYSTEM)
Применяется для просмотра записей системного бюджета.

PURGEОчистить каталог от ранее удалённых (по delete) файлов.

REMOVEИспользуется для исключения пользователя или группы из списка опекунов какого-либо каталога или файла.

RENDIRПрименяется для переименования каталога.

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

RIGHTSПрименяется для просмотра действительных (эффективных) прав клиента по отношению к каталогу или файлу.

SECURITY
(в SYSTEM)
Оповещает о потенциальных нарушителях в сети.

SENDПослать сообщение с рабочей станции одному или всем активным клиентам сети.

SETPASSПозволяет установить или изменить пароль на файловом сервере.

SETTTSУстанавливает пороги для транзакционных файлов.

SLISTПоказывает список активных файловых серверов.

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

SYSTIMEПозволяет посмотреть дату и время, установленные на файловом сервере.

TLISTИспользуется для просмотра списка опекунов файла или каталога.

USERLISTИспользуется для просмотра списка активных пользователей.

VERSIONИспользуется для просмотра версии утилиты или NLM-модуля.

WHOAMIИспользуется для просмотра информации о клиенте, работающем на текущей станции.

WSUPDATE
(в SYSTEM)
Применяется для обновления файлов рабочей станции с файлового сервера.

PRINTDEF, PCONSOLE, PRINTCON, CAPTUREИспользуются для настройки сетевой печати.

NPRINTИспользуется для передачи задания в очередь на печать.

<
Таблица 3.11.Утилиты администратора NetWare 4.х

УтилитаОписание

Графические утилиты,
выполняемые под Windows.


NWADMINОсновная утилита администратора в NetWare 4.х для работы с деревом NDS.

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

DTEXTRWИспользуется для просмотра электронной документации.

Утилиты-меню

AUDITCONПозволяет организовать аудиторскую проверку данных.

COLORPALПозволяет изменить цвета уже существующих палитр элементов окон утилит-меню NetWare 4.х.

FILERПредназначена для управления доступом к файлами и каталогам, а также для восстановления ранее удалённых файлов.

NETADMINТекстовая утилита для работы с деревом NDS.

NETUSERТекстовая утилита для динамического планирования логических и поисковых драйвов, портов печати, а также для просмотра ресурсов сети и посылки сообщений.

PARTMGRВыполнить операции с разделами и репликами дерева NDS.

RCONSOLE
(в SYSTEM)
Позволяет организовать удалённую консоль.

Утилиты
командной строки


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

CXПозволяет просмотреть и изменить текущий контекст в дереве NDS.

DOSGENСоздаёт файл удалённой загрузки для бездисковых станций.

FLAGИспользуется для просмотра и изменения атрибутов каталогов и файлов.

LOGINИспользуется для регистрации клиента в дереве NDS.

LOGOUTИспользуется для отключения клиента от сети.

MAPПрименяется для просмотра, назначения или отмены логического или поискового драйва.

MENUMAKEПозволяет оттранслировать описание пользовательского меню.

NCOPYИспользуется для копирования файлов из одного каталога в другой.

NDIRПрименяется для просмотра разнообразной информации о файлах и каталогах.

NLISTИспользуется для просмотра списка объектов, свойств и их значений в дереве NDS.

NMENUПозволяет запустить пользовательское меню.

NVERИспользуется для просмотра версии ПО, загруженного на файловом сервере и рабочей станции.

NWXTRACTКопирует файлы с CD-ROM на сетевой или локальный диск.

PURGEОчистить каталог от ранее удалённых (по delete) файлов.

RENDIRПрименяется для переименования каталога.

RIGHTSПосмотреть или модифицировать права пользователя или группы по отношению к каталогу или файлу.

SENDПослать сообщение с рабочей станции одному или всем активным клиентам сети.

SETPASSПозволяет установить или изменить пароль клиента.

SETTTSУстанавливает пороги для транзакционных файлов.

SYSTIMEВыполнить синхронизацию времени рабочей станции и сервера.

UIMPORTДобавляет объекты в дерево NDS из ASCII-файла.

WHOAMIИспользуется для просмотра информации о клиенте, работающем на текущей станции.

WSUPDATEПрименяется для обновления файлов рабочей станции с файлового сервера.

WSUPGRDОбновить драйвер сетевого адаптера на рабочей станции.

PRINTDEF, PCONSOLE, PRINTCON, CAPTUREИспользуются для настройки сетевой печати.

PSCОбеспечивает контроль за сервером печати и принтерами.

NPRINTИспользуется для передачи задания в очередь на печать.

Управление сетевыми ресурсами


Ограниченность ОС и ее сетевых приложений


Операционная система NetWare имеет ограниченные возможности по разработке приложений:

имеется небольшое число средств для разработки NLM-модулей (в основном компилятор Watcom C),

в NetWare 3.х нет встроенных средств защиты оперативной памяти (ОП) задачи (нити); в NetWare 4.х эта защита реализована только между двумя доменами (кольцами) ОП файлового сервера,

нет средств организации на файловом сервере виртуальных машин,

многопроцессорную обработку поддерживают только операционные системы NetWare 4.1 SMP и NetWare SFT III, причем возможности последней ОС весьма ограничены,

не реализована встроенная распределенная файловая система,

ОС не поддерживает удаленные процедуры.

С целью устранения перечисленных недостатков фирма Novell разработала UNIX-подобную ОС UnixWare. Это связано с тем, что операционная система UNIX не имеет отмеченных выше ограничений.

NetWare имеет и некоторые другие недостатки:

для администрирования необходимо иметь рабочую станцию,

ОС поддерживает персональные компьютеры с Intel-совместимым процессором,

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



Операционная система NetWare


Григорьев Ю. А.,

Введение

Курс лекций в объеме 30 академических часов рассчитан на 5 дней занятий и предназначен для слушателей, занимающихся организацией вычислительных процессов в сетях на основе ОС NetWare, и на разработчиков сетевых приложений для этой среды. В курсе рассматриваются вопросы, связанные с архитектурой современных сетевых ОС NetWare версий 3.х и 4.х. Цель курса - дать полное изложение особенностей ОС NetWare, выявить ее достоинства и недостатки, сопоставить возможности различных версий NetWare и определить правила написания сетевых приложений для этой ОС.

В первой теме (разделе) определяется место и границы применения популярного семейства сетевых ОС NetWare. Обсуждаются возможности, достоинства и недостатки, а также примеры приложений ОС NetWare.

Во второй теме рассматриваются архитектура и принципы функционирования ОС NetWare 3.x и 4.x. Отдельно приведены особенности управления основной и внешней памятью в ОС NetWare 4.х. Подробно освещены сетевые возможности NetWare (IPX/SPX, SAP, RIP, NCP, NLSP и т. д.). Приводятся способы обеспечения расширяемости и открытости для интеграции с другими системами, способы обеспечения надежности (уровни SFT). Изучаются способы обеспечения высокой производительности, а также механизмы защиты файловой системы и дерева NDS. Дополнительно обсуждаются варианты интернационализации диалоговых интерфейсов.

Третья тема посвящена вопросам администрирования и оперативного управления ОС. Излагается организация пользовательской операционной среды рабочей станции и файлового сервера. Затронуты вопросы администрирования информационной среды. Отдельно рассмотрены особенности управления сетевыми ресурсами в ОС NetWare 4.х (глобальный каталог сетевых ресурсов NDS, миграция с Bindery в NDS). Дан обзор команд оперативного управления файловым сервером. Кроме того, рассмотрены средства наблюдения и контроля за состоянием системы.

Четвертая тема посвящена вопросам разработки сетевых приложений для NetWare. Здесь приведены структура модулей NLM и правила их написания.
Дается обзор клиентских и сетевых примитивов NetWare.

В заключительной, пятой теме, рассматриваются различные решения подключения сети NetWare к Internet. Подробно освещаются вопросы инсталляции Web-сервера фирмы Novell, его настройки и использования. Приводятся особенности создания статических и динамических HTML-документов. Рассматриваются продукты, входящие в состав IntranetWare, и преимущества их использования.


Определение эффективных прав пользователей по отношению к каталогам и файлам


Права, которые могут быть предоставлены пользователю (или группе пользователей) по отношению к каталогу или файлу, перечислены в таблице 2.16.

Права и фильтры (маски) наследуемых прав назначаются администратором сети с помощью утилит NetWare. Но назначение прав для каждого пользователя по отношению ко всем требуемым файлам и каталогам - это утомительная задача. В NetWare предлагается механизм наследования прав. Прежде всего введём некоторые определения.

Опекун (Trustees) - это пользователь (или группа пользователей, или другой объект), которому администратор с помощью утилиты (например, FILER) явно назначает права по отношению к какому-либо файлу или каталогу. Такие права называются опекунскими назначениями.

Фильтр наследуемых прав (IRF - Inherited Right Filter) - это свойство файла (каталога), определяющее, какие права данный файл (каталог) может унаследовать от родительского каталога. Фильтр назначается администратором с помощью утилиты (например, FILER).

Наследуемые права - права, передаваемые (распространяемые) от родительского каталога.

Эффективные права - права, которыми пользователь реально обладает по отношению к файлу или каталогу.

Таблица 2.16. Список возможных прав по отношению к каталогу или файлу

ПравоОбозначениеОписание

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

ReadRЧтение существующего файла (просмотр содержимого текстового файла, просмотр записей в файле базы данных и т. д.).

WriteWЗапись в существующий файл (добавление, удаление частей текста, редактирование записей базы данных).

CreateCСоздание в каталоге новых файлов (и запись в них) и подкаталогов.
На уровне файла позволяет восстанавливать файл, если он был ошибочно удалён.

EraseEУдаление существующих файлов и каталогов.

ModifyMИзменение имён и атрибутов (файлов и каталогов), но не содержимого файлов.

File ScanFПросмотр в каталоге имён файлов и подкаталогов.
По отношению к файлу - возможность видеть структуру каталогов от корневого уровня до этого файла (путь доступа).

Access
Control
AВозможность предоставлять другим пользователям все права, кроме Supervisor. Возможность изменять фильтр наследуемых прав IRF.

<
На рисунке 2. 56 представлена схема формирования операционной системой NetWare эффективных прав пользователя к файлу или каталогу. Здесь предполагается, что пользователь является участником групп 1 и 2.

Важно подчеркнуть, что к этим эффективным правам добавляются эффективные права тех пользователей, которые указаны в списке Security Equal To (эквивалентны по защите). На рисунке 2.56 символами '+' и '&' обозначены логические операции ИЛИ и И.

Рассмотрим пример, иллюстрирующий приведённую выше схему. Предположим, что пользователь John работает с каталогами D1, D2, D3 и файлом F1:

FS/VOL: D1\D2\D3\F1

и не является участником групп.



Рис. 2.56. Схема определения операционной системой NetWare

эффективных прав пользователя по отношению к файлу или каталогу

В таблице 2.17 показаны изменения эффективных прав пользователя John по отношению к указанным каталогам и файлу.

Таблица 2.17. Изменение эффективных прав пользователя

Права и фильтрыПримечания

Корень тома FS/VOL:

1. Наследуемые права-

2. IRFSRWCEMFA

3. Опекунские права для John-

4. Права пользователей из списка Security Equal To-

5. Эффективные права-

Каталог D1

1. Наследуемые права-

2. IRFSRWCEMFA

3. Опекунские права для JohnRW F

4. Права пользователей из списка Security Equal To-

5. Эффективные праваRW FСм. вторую ветвь на рисунке 2.56

Каталог D2

1. Наследуемые праваRW F

2. IRF SR CEMFA

3. Опекунские права для John-

4. Права пользователей из списка Security Equal ToA

5. Эффективные праваR FAСм. четвёртую ветвь на рисунке 2.56 + права от пользователей, эквивалентных по защите

Каталог D3

1. Наследуемые праваR FA

2. IRF S WCEM

3. Опекунские права для John S

4. Права пользователей из списка Security Equal ToA

5. Эффективные праваSRWCEMFAСм. первую ветвь на рисунке 2.56

Файл F1

1. Наследуемые права SRWCEMFA

2. IRFS FA

3. Опекунские права для JohnWC

4. Права пользователей из списка Security Equal ToA

5. Эффективные праваSRWCEMFAСм. первую ветвь на рисунке 2.56 (право S не маскируется)

<


Атрибуты каталогов и файлов

Атрибуты файла (каталога) устанавливаются администратором сети с помощью утилиты (например, FLAG) и управляют доступом к этому файлу или каталогу.

Атрибуты файлов и каталогов перечислены в таблице 2.18.

Таблица 2.18. Атрибуты файлов и каталогов NetWare

АтрибутОбозначениеОписание

Атрибуты NetWare 3.х и 4.х

Delete InhibitD или Di Запрещает пользователю удалять файл или каталог.

HiddenHДелает файл или каталог невидимым для команды DIR и предотвращает его копирование и удаление. Однако команда NDIR позволяет его увидеть, если пользователь обладает правом File Scan для каталога.

PurgePУказывает ОС физически затирать файл или каталог при его удалении (delete). После этого файл или каталог нельзя восстановить.

Rename InhibitR или RiЗапрещает пользователю переименовывать файл или каталог.

SystemSyУстанавливается для файлов или каталогов, используемых только ОС (далее см. атрибут H).

NormalNОпция утилиты FLAG, позволяющая сбросить все атрибуты.

AllAllОпция утилиты FLAG, позволяющая установить все атрибуты.

Только для файлов

Archive NeededAАвтоматически устанавливается для файлов, которые были модифицированы, но не архивировались.

Copy InhibitC или CiЗапрещает копировать файл (только для ОС Macintosh).

Execute OnlyXЗащищает файл от копирования. Устанавливается для файлов *.EXE и *.COM. Только пользователь с правами Supervisor может установить этот атрибут. Этот атрибут не может быть снят даже пользователем с правами Supervisor. Файл с этим атрибутом можно только удалить.

ShareableS или ShПозволяет нескольким пользователям одновременно получать доступ к файлу (обычно используется с Ro).

TransactionalTПоказывает, что TTS ведёт неявные транзакции для этого файла.

Атрибуты только для NetWare 4.х

Don't MigrateDmЗапрещает миграцию (перемещение) файла или каталога на магнитооптическое устройство.

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

Don't CompressDcЗапретить системе сжимать файл или каталог.

Флаги статуса файла

CompressedCoПоказывает, что файл сжат.

Can't CompressCcПоказывает, что файл не может быть сжат.

MigratedMФайл был перезаписан на магнитооптический диск.

<


Права доступа к объектам NDS и их свойствам

Ранее уже отмечалось, что системная база данных сетевых ресурсов (СБДСР) представляет собой совокупность объектов, их свойств и значений этих свойств. В NetWare 4.х эта база данных называется NDS (NetWare Directory Services), а в NetWare 3.х - Bindery. Отличия NDS от Bindery описаны в отдельном разделе, который посвящён глобальному сетевому каталогу (NDS).

Объекты NDS связаны между собой в иерархическую структуру, которую часто называют деревом NDS. На верхних уровнях дерева (ближе к корню [Root]) описываются логические ресурсы, которые принято называть контейнерными объектами. На самом нижнем (листьевом) уровне располагаются описания физических ресурсов, которые называют оконечными объектами.

В качестве контейнерных объектов используются объекты типа [Root] (корень), C (страна), O (организация), OU (организационная единица). Оконечные объекты - это User (пользователь), Group (группа), NetWare Server (сервер NetWare), Volume (том файлового сервера), Directories (директория тома) и т. д. Оконечные объекты имеют единое обозначение - CN.

В NetWare 4.х разработан механизм защиты дерева NDS. Этот механизм очень похож на механизм защиты файловой системы, который был рассмотрен ранее. Чтобы облегчить понимание этого механизма, оконечный объект можно интерпретировать как файл, а контейнерный объект - как каталог, в котором могут быть созданы другие контейнерные объекты (как бы подкаталоги) и оконечные объекты (как бы файлы). На рисунке 2.57 представлена схема дерева NDS.

Здесь символами [Root], C, O, OU обозначены контейнерные объекты, а символами CN - оконечные объекты.

В отличие от файловой системы здесь права по отношению к какому-либо объекту можно предоставить любому контейнерному или оконечному объекту дерева NDS. В частности допустимо рекурсивное назначение прав объекта по отношению к этому же объекту.



Рис. 2.57. Схема дерева NDS

Права, которые могут быть предоставлены объекту по отношению к другому или тому же самому объекту, перечислены в таблице 2.19.



Таблица 2.19. Список возможных прав по отношению к объекту

ПравоОбозначениеОписание

SupervisorSГарантирует все привилегии по отношению к объекту и его свойствам. В отличие от файловой системы это право может быть блокировано фильтром наследуемых прав IRF, который может быть назначен для каждого объекта.

BrowseBОбеспечивает просмотр объекта в дереве NDS.

CreateCЭто право может быть назначено только по отношению к контейнерному объекту (контейнеру). Позволяет создавать объекты в данном и во всех дочерних контейнерах.

DeleteDПозволяет удалять объект из дерева NDS.

RenameRПозволяет изменять имя объекта.

Администратор сети может для каждого объекта в дереве NDS определить значения свойств этого объекта. Для объекта User - это имя Login, требования к паролю, пароль пользователя, пользовательский сценарий подключения и т. д. Механизм защиты NDS предоставляет также возможность назначать права по отношению к свойствам любого объекта (таблица 2.20).

Права по отношению к свойствам могут быть назначены

сразу для всех свойств объекта (All Properties),

для выбранного свойства (Selected Properties).

Во втором случае права для выбранного свойства замещают права, назначенные через опцию All Properties. Следует также отметить, что права для выбранного свойства (Selected Properties) не наследуются, а права для всех свойств объекта (All Properties) наследуются.

Права и фильтры наследуемых прав назначаются администратором с помощью утилит NetWare 4.х (NWADMIN или NETADMIN). Но назначение прав объектов по отношению ко всем требуемым объектам и свойствам - это утомительная задача. Предлагаемый в NetWare 4.х механизм наследования прав в дереве NDS напоминает механизм наследования прав в файловой системе.

Таблица 2.20. Список возможных прав по отношению к свойству объекта

ПраваОбозначениеОписание

SupervisorSГарантирует все привилегии по отношению к свойству объекта. Это право может быть блокировано фильтром наследуемых прав IRF, который может быть назначен для свойства. Фильтры IRF назначаются для объекта и его свойства отдельно.

CompareCПозволяет при поиске объекта (например, с помощью утилиты NLIST) сравнивать значение свойства с любой константой. Однако это право не обеспечивает чтения значения свойства. После операции сравнения возвращается результат: True или False.

ReadRПозволяет читать значение свойства из базы данных NDS. Право Read включает право Compare.

WriteWПозволяет добавлять, изменять или удалять значение свойства. Право Write включает право Add Self.

Add SelfAПозволяет опекуну (User) добавлять или удалять самого себя как значение свойства. Это право имеет смысл только для свойств, которые содержат имена пользователей в качестве значений, например, для свойства Members (участники) объекта Group (группа).

<




Рис. 2.58. Схема определения операционной системой NetWare эффективных

прав объекта А по отношению к объекту Б (или его свойствам)

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

Опекун (Trustees) - это объект, которому администратор с помощью утилиты (например, NWADMIN) явно назначает права к какому-либо объекту (или его свойствам). Такие права называются опекунскими назначениями.

Фильтр наследуемых прав (IRF - Inherited Right Filter) - это характеристика объекта (или его свойств), определяющая, какие права данный объект (или его свойства) может унаследовать от родительского контейнерного объекта. Фильтр назначается администратором с помощью утилиты (например, NWADMIN).

Наследуемые права - права, передаваемые (распространяемые) от родительского контейнерного объекта.

Эффективные права - права, которыми пользователь реально обладает по отношению к другому или тому же самому объекту (или его свойствам).

На рисунке 2.58 представлена схема формирования операционной системой NetWare эффективных прав объекта А по отношению к какому-либо объекту Б (или его свойствам).

Здесь предполагается, что объект А является участником групп 1 и 2. Ясно, что группы следует учитывать только в том случае, если объект А - это объект типа User (пользователь).

Если объект А является пользователем, то к его эффективным правам добавляются эффективные права тех объектов, которые указаны в свойстве Security Equal To этого пользователя.

На рисунке 2.58 символами '+' и '&' обозначены логические операции ИЛИ и И.

Рассмотрим пример, иллюстрирующий эту схему. Предположим, что администратор сети Admin создал дерево NDS, представленное на рисунке 2.59.



Рис. 2.59. Дерево NDS, которое создаёт администратор Admin



В таблице 2. 21 показаны изменения эффективных прав для пользователей Admin и User по отношению к указанным в таблице объектам. Также предполагается, что эти пользователи имеют пустые списки Security Equal To.

Этот пример иллюстрирует, как администратор Admin может потерять управление контейнерным объектом OU=CLASS. Это может произойти в том случае, если Admin назначает пользователя User опекуном объекта OU=CLASS с правами [SBCDR]. Пользователь User может сбросить все признаки в фильтре наследуемых прав IRF объекта OU=CLASS. Т. к. право [S] и все остальные права маскируются, то в этом случае Admin не только потеряет управление объектом OU=CLASS, но он даже не сможет увидеть объект в дереве NDS.

Отметим, что после инсталляции файлового сервера

пользователь Admin автоматически получает права [SBCDR] по отношению к объекту [Root],

фиктивный опекун [Public] автоматически получает право [B] по отношению к объекту [Root]; это означает, что любой пользователь, который подключается к сети, ещё до Login видит все объекты дерева NDS (право [B] наследуется от [Root] всеми объектами).

Таблица 2.21. Примеры изменения эффективных прав пользователей

Admin и User по отношению к объектам

AdminUser

Контейнер [Root]

Наследуемые права--

IRFSBCDRSBCDR

Опекунские назначенияSBCDR-

Эффективные праваSBCDR-

Контейнер MSTU

Наследуемые праваSBCDR-

IRFSBCDRSBCDR

Опекунские назначения--

Эффективные праваSBCDR-

Контейнер CLASS

Наследуемые праваSBCDR-

IRF--

Опекунские назначения-SBCDR

Эффективные права-SBCDR

Оконечный объект User

Наследуемые права-SBCDR

IRFSBCDRSBCDR

Опекунские назначения--

Эффективные права-SBCDR

Санкционирование доступа к консоли файлового сервера

Доступ к консоли файлового сервера можно осуществить посредством

основной консоли,

удалённой консоли (т. е. с рабочей станции).

Администратор может защитить основную консоль, используя пункт меню "Lock File Server Console" утилиты MONITOR.NLM. После ввода произвольного пароля доступ к консоли (основной и удалённой) блокируется, и администратор может оставить консоль без присмотра.


Чтобы разблокировать консоль, администратор должен ввести либо ранее указанный пароль, либо пароль Admin.

Для создания удалённой консоли необходимо с основной консоли ввести следующие команды:

LOAD REMOTE <произвольный_пароль>

LOAD RSPX

Эти команды можно поместить в конфигурационный файл AUTOEXEC.NCF.

Затем на рабочей станции, где необходимо создать удалённую консоль, следует запустить утилиту SYS:SYSTEM\RCONSOLE.EXE и в диалоге указать <произвольный_пароль>.

Недостаток такой схемы организации удалённой консоли заключается в том, что параметр <произвольный_пароль> при загрузке NLM-модуля REMOVE указывается открытым текстом. Чтобы скрыть параметр <произвольный_пароль>, с основной консоли NetWare 4.х необходимо ввести следующие команды

LOAD REMOTE X

REMOTE ENCRYPT

Далее ОС NetWare 4.х предлагает ввести пароль для удалённой консоли. Он вводится скрытым текстом. В результате ОС формирует <код>, который отображается на консоли файлового сервера.

После этого можно использовать следующие команды:

LOAD REMOTE -E <код>

(в NetWare 4.1 вместо этой команды можно ввести LDREMOTE.NCF)

LOAD RSPX

На рабочей станции указывается пароль, который администратор ввёл с основной консоли скрытым текстом.


Организация API-интерфейса и примитивы для разработки программ


Здесь рассматриваются примитивы (функции), используемые для обращения к службам NetWare из NLM-модулей и программ, которые выполняются на рабочих станциях. Часто имена этих примитивов совпадают для NLM-модулей и программ рабочих станций. Отличие заключается в том, что примитивы, используемые в NLM-модуле, хранятся в других NLM-модулях, выступающих в роли общих библиотек (CLIB.NLM, MATHLIB.NLM и т. д.). Эти функции вызываются динамически, а не дублируются в разных NLM-модулях. Примитивы, используемые в прикладной программе рабочей станции, редактируются (линкуются) с основной программой, являются составной частью исполняемого модуля и дублируются в разных программах.

Таблица 4.2. Заголовочные файлы служб NetWare

Служба NetWareh-файл для создания NLM-модуляh-файл для создания программы рабочей станции

Служба протоколов IPX и SPXNWIPXSPX.HNXT.H

Служба учёта счетовNWACCTNG.HNWACCT.H

Служба базы объектовNWBINDRY.HNWBINDRY.H

Служба соединенийNWCONN.HNWCONN.H

Служба среды файлового сервераNWENVRN.HNWCONSOL.H

Служба каталоговDIRECT.H,
NWDIR.H
NWDIR.H

Служба файловNWFILE.HNWFILE.H,
NTT.H

Служба сообщенийNWMSG.HNWMSG.H

Служба печати-NWPRINT.H

Служба сервера печати-NPT.H

Служба синхронизацииNWSYNC.HNWSYNC.H

Служба отслеживания транзакцийNWTTS.HNWTTS.H

Служба среды рабочей станции-NWWRKENV.H

В таблице 4.2 перечислены названия заголовочных файлов (h-файлов) различных служб NetWare 3.х. В h-файлах хранятся константы и прототипы примитивов. Следует отметить, что соответствующие службы имеются и в NetWare 4.х. Большинство функций NetWare 4.х Большинство функций NetWare 4.х выполняется в режиме Bindery, т. е. также, как и в NetWare 3.х.

API-интерфейсы для NLM-модулей и программ, выполняемых на рабочих станциях, включают более 600 примитивов. Основные примитивы службы протоколов IPX и SPX описаны в пункте 2.2.1. Ниже приведены основные примитивы остальных служб NetWare.



Организация работы NetWare в режиме Intranet


По определению, режим Intranet - это использование технологий Internet в локальной вычислительной сети (LAN-сети). Фирма Novell предлагает свою платформу для создания интрасети. Она получила название IntranetWare. Эта среда включает несколько продуктов:

IntranetWare NetWare 4.11,

NetWare Web Server,

Novell IPX/IP Gateway,

FTP Services,

NetWare Multiprotocol Router 3.1.

Основу IntranetWare NetWare 4.11 составляет NetWare 4.1, которая была дополнена новыми возможностями. В частности IntranetWare NetWare 4.11 поддерживает работу многопроцессорного файлового сервера в режиме SMP. В состав IntranetWare NetWare 4.11 также включён шлюз Novell IPX/IP Gateway.

Особенности установки, настройки и работы с Web-сервером NetWare Web Server были рассмотрены в разделах 5.2 - 5.4. В разделе 5.4 было показано, как с помощью script-программ, выполняющихся на Web-сервере, можно создавать сложные документы. В частности говорилось о том, что связь между броузером на рабочей станции и скриптом реализуется с помощью общего шлюзового интерфейса CGI (Common Gateway Interface). На рисунок 5.22 представлена общая схема взаимосвязи броузера со script-программой.

Локальный CGI (L-CGI) обеспечивает интерфейс между NLM-модулями файлового сервера. По запросу броузера L-CGI запускает NLM-модуль соответствующего интерпретатора script-программы (PERL.NLM или BASIC.NLM). В процессе выполнения script-программа считывает исходные данные (из устройства стандартного ввода STDIN или командной строки), переданные Web-серверу броузером. В процессе выполнения скрипта интерпретатор может обращаться через интерфейс L-CGI к NDS, локальному серверу базы данных, шлюзу e-mail. Интерпретатор script-программы может обращаться (через интерфейс R-CGI) к удалённому серверу базы данных Oracle или Btrieve, который выполняется на другом сервере. Script-программа с помощью оператора print может выводить на устройство стандартного вывода STDOUT команды языка HTML. После завершения выполнения скрипта сгенерированная HTML-программа передаётся обратно броузеру на рабочую станцию, где и интерпретируется.




Рис. 5.22. Схема взаимосвязи броузера с script-программой

Так как script- программа на языке BASIC имеет доступ к NDS, то можно написать скрипт, позволяющий пользователю броузера выполнять поиск и запускать документы прямо из дерева NDS (рисунок 5.23).



Рис. 5.23. Поиск документов из дерева NDS

По умолчанию навигатор NDS не используется. Его можно задействовать с помощью утилиты WEBMGR, выбрав пункт из меню Server и нажав кнопку Enable NDS browsing.

Novell предлагает средства, позволяющие описывать в дереве новые NDS объекты и их свойства (пакет Net2000). Поэтому прикладной программист может написать скрипт, генерирующий по запросу броузера HTML-программу с изображением части дерева NDS, где изображения объектов документов выступают в роли гиперссылок. Следует также отметить, что с помощью программы администрирования базы данных NDS (Windows-программа NWADMIN) можно достаточно просто описать права доступа пользователей сети к тем или иным документам.

Как уже отмечалось, чтобы организовать доступ к Web-серверу и Intranet со стороны клиента DOS/Windows 3.x, на этой станции необходимо установить в стек протокол TCP/IP. Если станций много, то эта работа становится трудоёмкой. Причём все TCP/IP-клиенты (DOS, Windows 3.x, Windows 95) должны быть зарегистрированы у фирмы-провайдера. А это довольно дорогое удовольствие. Протокол TCP/IP можно не устанавливать на станциях, если воспользоваться шлюзом Novell IPX/IP Gateway. Этот шлюз поддерживает Windows-приложения (в частности броузеры), обращающиеся к протоколу TCP/IP. Novell IPX/IP Gateway состоит из клиентской и серверной частей (рисунок 5.24).



Рис. 5.24. Компоненты шлюза Novell IPX/IP Gateway

Клиентская часть шлюза автоматически устанавливается при инсталляции NetWare 32 Client из директории SYS:PUBLIC/CLIENT IntranetWare NetWare 4.11. Серверная часть устанавливается в результате конфигурирования на сервере IntranetWare NetWare 4.11 протокола TCP/IP с помощью утилиты INETCFG.NLM (Protocols ®TCP/IP ® IPX/IP Configuration).



Windows-приложения (например, броузеры) для связи с server-приложением (например, Web-сервером) по протоколу TCP/IP обращаются к функциям dll-библиотеки WINSOCK.DLL (v 1.1). Эти функции в свою очередь обращаются к модуля протокола TCP/IP. Программа Gateway Task шлюза перехватывает эти прерывания и формирует пакет IPX, т. е. помещает пакет TCP/IP как данные в пакет IPX. На сервере эти данные (пакет TCP/IP) извлекаются из пакета IPX и передаются на обработку протоколу TCP/IP. При передаче данных с сервера на рабочую станцию выполняются аналогичные преобразования.

Рекомендуется устанавливать клиентскую часть шлюза Novell IPX/IP Gateway и на рабочих станциях Windows 95. В этом случае все клиенты сети (DOS, Windows 3.x, Windows 95) смогут подключаться к Intranet, используя один IP-адрес. Доменное имя, на основании которого система доменных имён (DNS) выдаёт этот IP-адрес, назначается при инсталляции серверной части Novell IPX/IP Gateway. Это имя должно отличаться от доменного имени, назначенного Web-серверу (рисунок 5.10).

Особенности настройки станций сети при использовании Novell IPX/IP Gateway и MPR 3.1 приведены в таблице 5.3 (сравните с таблицей 5.2)

Таблица 5.3. Особенности настройки станций при использовании

Novell IPX/IP Gateway и MPR 3.1

Параметры настройкиNovell IPX/IP Gateway и Multiprotocol Router 3.1

Назначение
IP-адресов.
Не требуется.

Описание имён компьютера и домена на рабочей станции.Не требуется. Указывается одно доменное имя (имена компьютера и домена) при инсталляции серверной части Novell IPX/IP Gateway.

Описание на рабочей станции параметров дозвона к шлюзу фирмы-провайдера.Не требуется.

Используемые телекоммуникационные каналы связи.Коммутируемые и выделенные телефонные линии, линии X.25, Frame Relay, ISDN.

В качестве шлюза IPX/IP для NetWare 4.1 можно назвать продукт Iware Lite компании Quarterdeck.

Протокол FTP (File Transfer Protocol) является основным средством для пересылки групп файлов или директорий через сеть. FTP является дуплексным протоколом, который позволяет и получать, и посылать файлы в сети.


Отметим, что протокол HTTP позволяет только загружать файлы с сервера на рабочую станцию. Клиент может запрашивать требуемые файлы, используя FTP, из броузера или продукта Novell's LAN WorkPlace. Продукт IntranetWare's FTP Services обеспечивает проверку прав доступа к запрашиваемым по протоколу FTP файлам средствами базы данных NDS.

Маршрутизатор Multiprotocol Router 3.1 поддерживает протоколы сетевого уровня TCP/IP, IPX/SPX, AppleTalk и следующие типы сетевых адаптеров:

AIO-адаптеры для связи с коммутируемыми и выделенными телефонными каналами,

WAN HSM- и WAN ODI-адаптеры для связи с каналами X.25, Frame Relay, ISDN.

Использование продуктов IntranetWare даёт ряд существенных преимуществ:

Все пользователи локальной сети могут обращаться к Internet через одно доменное имя.

Клиент сети может создавать на Web-сервере свои документы, причём другие пользователи сети NetWare и Internet могут с помощью броузера получить доступ к этим документам.

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

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

Можно организовать эффективную защиту документов (при доступе по протоколу HTTP) и файлов (при доступе по протоколам FTP и FILE) на уровне дерева NDS.

Литература

Девис Р. Руководство по программированию в NetWare/386. -

М: Из-во АО "ИСМ", 1994. - 396с.

Дэй М., Кунц М., Маршалл Д. Программирование NLM в NetWare 4.0. -

М: Из-во "ЛОРИ", 1994. - 484 с.

Нанс Б. Программирование в локальных сетях. -

Пермь: Из-во Перм. ун-та, 1992. -756 с.

Шабалин А.Р. Интерфейс пользователя с системой//Технологии электронных

коммуникаций, т.24, М., 1992 - 222 с.

Казаков С.И. Основы сетевых технологий. - М.: Микроинформ, 1995. - 160 с.

Бычков И.В., Григорьев Ю.А., Левен И.Э. Операционная система NetWare 4.х. -

М: МГТУ-ИНТЕРПРОКОМ, 1995. - 306 с.

Getting Started with NetWare 4.0 // Part Number 100-001561-001, 1993.- p. 111.

NetWare 4.0 Concept // Part Number 100-001417-001, 1993.- p. 359.

NetWare 4.0 Supervising the Network // Part Number 100-001415-001, 1993.- p. 655.

Installation and Upgrade // Part Number 100-001414-001, 1993.- p. 257.

Workstation Basics and Installation// Part Number 100-001562-001, 1993.- p. 141.

NetWare 4.0 Print Services // Part Number 100-001419-001, 1993.- p. 115.

NetWare 4.0 Utilities Reference // Part Number 100-001416-001, 1993. - p. 451.

Вонг У. Web-узлы? Да, они работают в среде NetWare //LAN MAGAZINE/

Русское издание, т.2, № 7, 1996.

Франк А. Язык разметки гипертекста //LAN MAGAZINE/Русское издание, т.2, № 6, 1996.

Франк А. HTML и CGI //LAN MAGAZINE/Русское издание, т.2, № 7, 1996.


Первый уровень защиты SFT-I


Первый уровень защиты SFT-I включает следующие решения:

дублирование таблиц DET и FAT тома,

проверка записи на диск последующим чтением,

динамическая переадресация блоков (Hot Fix).

Рассмотрим эти решения подробнее.

Дублирование таблиц DET и FAT тома

Таблицы DET и FAT дублируются для каждого тома файлового сервера (рисунок 2.39).

Эти дубли используются NLM-модулем VREPAIR.NLM в процессе "ремонта" тома. Эта программа последовательно читает записи DET и FAT, сопоставляет их, при необходимости корректирует эти записи и затем записывает изменения в обе копии таблиц.

Рис. 2.39. Дублирование таблиц DET и FAT

Проверка записи на диск последующим чтением

Если этот режим включён, то после записи на диск блок данных читается, и данные сравниваются с тем, что было записано (рисунок 2.40).

Считается, что запись на диск выполнена успешно, если записанные и прочитанные данные совпадают. Режим проверки записи последующим чтением можно включить для всех дисков файлового сервера с помощью SET-параметра ENABLE DISK READ AFTER WRITE. Для конкретного диска этот режим можно включить/выключить с помощью утилиты MONITOR.NLM (пункт меню Disk Information/Read After Write Verify).

Рис 2.40. Проверка записи последующим чтением

Динамическая переадресация дефектных блоков (Hot Fix)

Если записанные и затем прочитанные данные не совпадают, то считается, что соответствующая область на диске является дефектной, и блок записывается в область переназначения Hot Fix (рисунок 2.41).

Рис. 2.41. Динамическая переадресация дефектных блоков

При чтении блока с файлового сервера NetWare сначала просматривает таблицу переназначения, и если блок описан в этой таблице, то он читается из области переназначения Hot Fix. В противном случае блок читается из основной области раздела NetWare.

Размер области Hot Fix устанавливается при инсталляции файлового сервера.



"Плоская" модель основной памяти


Как уже отмечалось, компилятор Watcom C генерирует код, использующий преимущества архитектуры процессоров 80386 и 80486. Он использует 32-битовые ближайшие указатели (near pointers) и 4-байтовые целые числа. Использование 32-битовых указателей делает концепцию моделей памяти (Tiny, Small, Compact, Medium, Large, Huge и т. д.) во многом ненужной. NLM-модули компилируются для непрерывной модели памяти с абсолютной адресацией ("плоской" модели), в которой сегментация памяти гораздо менее важна, чем в других. Однако 32-битового указателя достаточно для адресации всей доступной памяти. Кроме того, компилятор генерирует код, выполняемый в виртуальном режиме (для NetWare 4.х).

Таким образом, основная память файлового сервера NetWare интерпретируется как один большой сегмент, но идентифицируется для использования NLM с помощью функций распределения.

Когда процесс (нить) запрашивает память, ему выделяется пул памяти. Этот пул может быть освобождён, но оставлен в пуле процесса, либо освобождён и возвращён в системный пул.

Когда запрашивается память, NetWare использует три массива указателей для определения того, где находится доступная память. Это массивы отслеживают блоки доступной памяти. Первый массив отслеживает блоки с 16-байтовыми приращениями от 16 байтов до 1024 байтов каждый. Второй массив отслеживает блоки с 256-байтовыми приращениями. Третий массив указателей отслеживает блоки, превышающие 4 Кб. Основываясь на размере запрошенной NLM-модулем памяти, NetWare выполняет поиск в соответствующем массиве, пока не находит затребованный объём памяти.

В NetWare 4.х внесены следующие улучшения:

Когда память выделяется и освобождается снова и снова, это может привести к её фрагментации, и некоторые блоки будут оставаться неиспользуемыми. В таких случаях выполняется некоторая работа по очистке. Такая "сборка мусора" обеспечивает использование ранее недоступных блоков памяти. В таблице 2.13 перечислены SET-параметры NetWare 4.х, регулирующие "сбор мусора".


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

Таблица 2.13. SET-параметры, регулирующие "сбор мусора" в NetWare 4.х

SET-параметрЗначение по
умолчанию
Границы
изменения
Примечания

Garbare Collection
Interval
15 мин.1 мин. - 1 часОпределяет максимальный интервал времени между "чистками" памяти.

Number of Frees for
Garbare
1000100 - 10000Определяет минимальное число освобождений памяти для запуска системной программы чистки памяти.

Minimum Free Memory for Garbare Collection80001000-1000000Определяет минимальный размер освобождаемой памяти для запуска программы чистки памяти.

Невытесняющая многозадачность

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

Большинство многозадачных сетевых операционных систем, таких, как OS/2 и UNIX, являются системами, где поддерживается модель с приоритетами. Предположим, что в одной из этих ОС выполняются две задачи (рисунок 2.33 а), причём задача 2 имеет более высокий приоритет, чем задача 1.

После операции с диском (чтение или запись) операционная система активизирует задачу 2, имеющую более высокий приоритет (рисунок 2.33 а, точка 1). При этом задача 1 прерывается (вытесняется) и переходит в состояние ожидания. Если для задачи 2 требуется выполнить операцию с диском, то операционная система приостановит её и передаёт управление задаче 1 (рисунок 2.33 а, точка 2) и т. д.



Рис. 2.33. Схемы переключения процессов

(а - для модели с приоритетами, б - для модели без приоритетов)

Многозадачная сетевая операционная система NetWare является системой, где поддерживается модель без приоритетов (невытесняющая многозадачность).


Если какая-либо задача (нить) выполняет функцию ThreadSwitch, то ОС помещает её в конец очереди RunList и передаёт управление другой задаче (рисунок 2.33 б, точки 1,2).

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

В системах с приоритетами необходимо перед обновлением ресурсов (областей основной памяти, записей файлов и т. д.) выполнить их блокировку (рисунок 2.34 а, точки 1, 2, 3, 4).

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

Предположим, что задача 1 заблокировала запись 1 какого-либо файла (рисунок 2.34 а, точка 1) и была прервана задачей 2. Пусть задача 2, в свою очередь, блокирует запись 2 (точка 2). При попытке заблокировать запись 1 задача 2 переходит в состояние ожидания, так как эта запись уже заблокирована задачей 1. Управление передаётся задаче 1, которая пытается блокировать запись 2 и переходит в состояние ожидания, так как эта запись уже была заблокирована задачей 2. Таким образом, ни одна из задач (1 и 2) не может продолжить выполнение из-за возникшей тупиковой ситуации.

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

В NetWare, где поддерживается модель использования процессора без приоритетов, переключение на другую задачу планирует сама программа (NLM-модуль), используя команду ThreadSwitch в подходящий момент. Т. е. задача 1 может выполнить все требуемые обновления в разделяемых записях 1 и 2, а затем передать управление другой нити с помощью команды ThreadSwitch (рисунок 2.34 б). В этом случае нет необходимости в использовании блокировок ресурсов. Это, во-первых, повышает быстродействие системы, а, во-вторых, устраняет возможность возникновения тупиковых ситуаций.



Рис. 2.34. Схемы использования разделяемых ресурсов

(а - для модели с приоритетами, б - для модели без приоритетов)

Недостатком системы без приоритетов является то, что при выполнении операции с диском (чтение в кэш с диска) операционная система NetWare не переключает процессор на выполнение другой прикладной задачи. Но этот недостаток компенсируется тем, что в NetWare, как правило, используется кэш-память большого размера, и 90% запросов на ввод данных удовлетворяется из этого кэша.


Поддержка дисковых массивов RAID


Когда объём внешней памяти файлового сервера приближается к 10 Гб, то использование традиционных способов обеспечения надёжного хранения данных (см. SFT II) становится проблематичным.

В настоящее время для надёжного хранения больших объёмов данных (порядка 10 и более гигабайт) используют дисковые массивы RAID (Redundant Array of Independent Disks), которые представляют собой специальные устройства, подключаемые к файловому серверу по SCSI-интерфейсу. Как правило, в корпусе устройства RAID устанавливают 5 дисков (рисунок 2.49).

Рис. 2.49. Дисковый массив RAID

Объём каждого диска зависит от типа устройства и колеблется от 1 до 4 Гб. Существует несколько систем RAID: Digital Storage Works RAID Array 210, HP Disk System, Micropolis RAIDion LTX, Storage Dimensions SuperFlex. Все они поставляются с требуемым набором NLM-модулей и поэтому поддерживаются NetWare. Дисковый массив настраивается на определённый уровень RAID (рисунок 2.50).

Разработаны стандарты на уровни 0 - 5. Другие уровни RAID (6, 7, 10), используемые в дисковых массивах, не стандартизованы и представляют собой комбинации или модификации уровней 0 - 5. Рассмотрим уровни RAID подробнее. На рисунке 2.50 для соответствующих уровней RAID представлены схемы размещения 20 секторов (блоков) какого-либо файла.

Уровень 0

Данные размещаются на нескольких дисках, воспринимаемых компьютером как одно устройство хранения информации большой ёмкости.

Имеется возможность одновременного проведения нескольких операций чтения или записи на разных дисках.

При отказе одного диска данные не восстанавливаются, и вся система выходит из строя.

1

Sector 1Sector 1

Sector 2Sector 2

..... .....

Sector 20Sector 20

3

Sector 1 Byte1,5,...,5092,6,...,5103,7,...,5114,8,...,512Parity

Sector 2 Byte1,5,...,5092,6,...,5103,7,...,5114,8,...,512Parity

........

Sector20 Byte1,5,...,5092,6,...,5103,7,...,5114,8,...,512Parity

4

Sector 1Sector 2Sector 3Sector 4Parity

Sector 5Sector 6Sector 7Sector 8Parity

Sector 9 Sector 10Sector 11Sector 12Parity

Sector 13Sector 14Sector 15Sector 16Parity

Sector 17Sector 18Sector 19Sector 20Parity

5

Sector 1Sector 2Sector 3Sector 4Parity

Sector 5Sector 6Sector 7ParitySector 8

Sector 9 Sector 10ParitySector 11Sector 12

Sector 13ParitySector 14Sector 15Sector 16

ParitySector 17Sector 18Sector 19Sector 20

<
Рис. 2.50. Уровни RAID

Уровень 1 (рисунок 2.50)

Зеркальное отражение дисков.

Дублирование данных обеспечивает высокую отказоустойчивость.

Эта схема хранения данных не экономична, так как для каждого диска с данными требуется резервный диск.

Уровень 2

Поочерёдное размещение битов по дискам. Используется очень редко из-за сложности корректировки ошибок.

Уровень 3 (рисунок 2.50)

Байты сектора поочерёдно размещаются на нескольких дисках. Сектор как-бы "размазывается" по четырём дискам. Один диск отводится для хранения контрольной информации.

Если часть сектора не читается с какого-либо диска, то система читает все остальные части сектора и контрольную информацию Parity для этого сектора, а затем, используя эти данные, восстанавливает недостающую часть сектора.

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

Уровень 4 (рисунок 2.50)

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

Если, например, не читается сектор 2, то система читает секторы 1, 3, 4, контрольную информацию Parity для этих секторов, а затем, используя эти данные, восстанавливает сектор 2. Возможно параллельное чтение секторов, расположенных на разных дисках.

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

Уровень 5 (рисунок 2.50)

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

Если, например, не читается сектор 2, то система RAID читает секторы 1, 3, 4, контрольную информацию для этих секторов и, используя эти данные, восстанавливает сектор 2.

Возможно параллельное чтение и запись секторов, расположенных на разных дисках. Например, при записи секторов 3 и 6 эти операции могут выполняться параллельно, так как эти секторы и их контрольная информация располагаются на разных дисках.