В данной главе представлен обзор инсталляции протоколов, отличных от IPX, и, в частности TCP/IP. Она дает общую обзорную информацию, которую вы должны подготовить для установки, а также пояснение некоторых устанавливаемых параметров. Кроме того, здесь вы найдете некоторую более углубленную информацию об IPX, SPX, TLI и SPX II.
Основная цель данного раздела состоит в том, чтобы познакомить вас со средствами протокола одноуровневых коммуникаций и новыми возможностями NetWare 4.0. Для этого мы расскажем сначала об основных моментах, касающихся этих протоколов, что позволит вам понять их сильные и слабые стороны. Это поможет принять решение относительно использования протокола в одноуровневых коммуникациях. Если у вас нет явных причин не использовать его, то мы настоятельно рекомендуем вам применять протокол транспортного интерфейса TLI (Transport Layer Interface). Использовать при программировании этот протокол обычно значительно проще, а программный код обладает большой переносимостью.
Одноуровневые коммуникации требуются не для всех NLM-приложений, но, вероятно, для большинства из них. Это связано с тем, что NLM работают на компьютерах, информация и средства которых часто требуются другим компьютерам. Когда один участник одноуровневого сетевого приложения обеспечивает средства для другого, то такое приложение часто называют приложением "клиент-сервер". Приложение "клиент-сервер" имеет две разных части: та часть, которая работает на сервере, обеспечивает управление и доступ к нужной информации сервера, а часть, работающая на клиенте, передает запросы серверной части и получает от нее ответы. Серверная (обслуживающая) часть может работать на рабочей станции или в виде NLM-модуля на сервере NetWare. Клиентная часть может работать и на сервере, но обычно взаимодействует с сервером с рабочей станции и имеет интерфейс с пользователем, позволяющий ему давать запросы на предоставление услуг. Часто приложение "клиент-сервер" обеспечивает доступ к информации, которую можно найти на NetWare-cервере. По этой причине в качестве серверной части приложения "клиент-сервер" часто используется NLM-модуль.
Первым коммуникационным протоколом, реализованным в операционной среде NetWare, был протокол IPX (Internetwork Packet Exchange). Он использовался исключительно для обмена данными между рабочими станциями и серверами NetWare. IPX представляет собой не требующий подключения протокол, реализованный на основе протокола IDP (Internetwork Datagram Protocol) Xerox Network System (XNS). Хотя IPX - это "родной" протокол NetWare, некоторые независимые разработчики также используют его в качестве коммуникационного протокола.
IPX используется для передачи и получения пакетов информации между рабочими станциями и серверами. Такая передача данных является негарантированной в том смысле, что IPX не предусматривает подтверждения успешного получения пакета целевым адресатом. Однако, он позволяет определить, был ли пакет передан.
IPX взаимодействует с сетью через драйвер платы локальной сети, поэтому для работы он должен загружаться в память с драйвером платы локальной сети, запрограммированным специально для работы с IPX. На рабочей станции и на сервере это делается по-разному.
Использующие IPX приложения должны особым образом подготавливать пакеты и соблюдать процедуры инициации передачи данных с помощью IPX. Сам пакет состоит из 30-байтового заголовка и имеет рекомендованный максимум в 546 байт данных. Для каждого запроса IPX требуется также создать и инициализировать блок управления событием ECB (Event Control Block). Иногда (обычно для обработки приходящих пакетов информации) требуются подпрограммы обслуживания события ESR (Event Service Routine).
Перед получением требуется открыть гнездо IPX. Гнездо IPX рекомендуется также открывать и перед передачей пакетов, хотя это и не требуется. После подготовки ECB и информации пакета в буфере, можно начать передачу и получение пакетов. ECB имеет поля, которые отслеживаются и обновляются для определения статуса и поведения каждой выполняемой вами функции IPX.
Структура заголовка IPX представлена ниже. Большинство числовых значений в NetWare имеет порядок байт "старший-младший". Отметьте также специальные правила и исключительные ситуации.
typedef struct IPXHeader { WORD checkSum /* старший-младший */ WORD length; /* старший-младший */ BYTE transportControl; /* используется маршрутизаторами сети */ BYTE packetType; /* тип связанного с пакетом средства */ IPXAddress destination; /* целевой адрес пакета */ IPXAddress source; /* исходный адрес пакета */ }
В структуре IPXAddress 4 байта отводится под номер сети, 6 байт для узла (или платы интерфейса локальной сети) и 2 байта для номера гнезда. С учетом значения WORD размером 2 байта, значения BYTE длиной 1 байт и IPXAddress размером 12 байт общий размер IPXHeader в байтах составляет 2 + 2 + 1 + 1 + 12 + 12 = 30. Вы должны указать целевой адрес, но исходный адрес посылаемых пакетов IPX будет заполнять сам.
Чтобы клиент и сервер могли общаться друг с другом, они должны иметь возможность найти или уже знать гнездо, через которое будут обмениваться данными. Если номер гнезда определяется при написании приложения, то он и будет каждый раз использоваться. Такой тип гнезда можно рассматривать как статическое гнездо, поскольку каждый раз используется одно и то же гнездо. Если есть опасение, что такой тип гнезда в приложении может привести к конфликту с использованием гнезда в другом приложении, вы можете разработать метод выделения динамического гнезда, которое можно использовать и объявлять об этом другим, чтобы они также не задействовали это гнездо. Таким образом, если гнездо, которое вы обычно используете, задействовано другим приложением, вы можете просто использовать другое. Если вы хотите зарезервировать гнездо для исключительного использования вашим приложением, свяжитесь с отделом разработки Novell (Novell Development Relations) и запросите его номер.
Последовательный обмен пакетами SPX (Sequenced Packet Exchange) обеспечивает функциональные возможности повторной передачи и тайм-аута, отсутствующие в IPX. Он ориентирован на подключения и доступен наряду с IPX. Если у вас есть IPX, то вы имеете и возможность работы с SPX.
Основная разница между IPX и SPX состоит в том, что их заголовки и дополнительные операции, предусмотренные в SPX, обеспечивают доставку пакетов. Гарантированная доставка означает просто выполнение некоторого числа повторных попыток передачи адресату запроса, пока число повторных передач не превысит некоторое число (в этом случае передавшему запрос посылается уведомление). Таким образом, передающей стороне не нужно проверять доставку пакета. SPX будет уведомлять вас о состоянии передачи.
Заголовок пакета SPX имеет длину 42 байта (в отличие от 30-байтового заголовка IPX). Как было показано ранее, первые 30 байт обоих заголовков в точности совпадают. Дополнительные поля заголовков необходимы для выполнения верификации и доставки пакетов.
tydef struct SPXHeader { WORD checkSum /* старший-младший */ WORD length; /* старший-младший */ BYTE transportControl; /* используется маршрутизаторами сети */ BYTE packetType; /* тип связанного с пакетом средства */ IPXAddress destination; /* целевой адрес пакета */ IPXAddress source; /* исходный адрес пакета */ Byte connectionControl; /* старший-младший */ BYTE dataStreamType; /* старший-младший */ WORD destConnectionID; /* старший-младший */ WORD sequenceNumber; /* старший-младший */ WORD acknowledgeNumber; /* старший-младший */ WORD allocationNumber; /* старший-младший */ }
Обновленная версия протокола SPX называется SPX II. Одним из основных вопросов, который особенно беспокоил Novell при разработке коммуникационного протокола следующего поколения, была проблема обеспечения обратной совместимости, поэтому вместо того, чтобы дать ему совершенно новое имя, протокол назвали SPX II. Основное назначение SPX II состоит в использование пакетов большего размера, реализации действительно оконного протокола и обеспечение поддержки API TLI (Transport Layer Interface).
Наиболее важно то, что SPX II обладает полной обратной совместимостью с протоколом SPX. Этого удалось добиться с помощью возможности двухрежимной работы. Установка режима работы выполняется при установлении связи. Использующие SPX II узлы (клиент, сервер или узлы одного ранга) устанавливают бит в заголовке SPX, который указывает, что передавать данные нужно с использованием SPX II. Все узлы SPX II будут проверять этот бит и инициировать подключение для SPX II. Узлы SPX II не будут знать о том, что они обмениваются данными в режиме SPX II. Узел SPX II, если он при начальном подключении не обнаруживает установленный бит SPX II, просто будет работать в режиме SPX.
По сравнению с SPX, протокол SPX II добавляет существенные улучшения в обработку больших пакетов данных. Различные сети могут обрабатывать различные размеры пакетов. Многие сети могут обрабатывать пакеты с размером, превышающим 576 байт (размер пакета SPX). Поскольку заголовок пакета SPX имеет размер 42 байта, что оставляет для данных 534 байта (которые могут передаваться в одном пакете SPX). Если нужно послать больше данных, то нужно подготовить и передать другой пакет SPX. Когда требуется передать большой объем данных, то, конечно, более эффективным будет увеличение размера пакета. Протокол SPX II автоматически использует преимущества тех сетей, которые допускают передачу пакета большего размера.
Другим реализованным в SPX II средством являются окна пакетов. При пересылке в одной передаче информации нескольких пакетов они представляют собой часто ненужный набор, в котором каждый индивидуальный пакет ожидает подтверждения. Окно организуется, когда нужно передать несколько пакетов с одним подтверждением получения для всех пакетов. Число передаваемых пакетов может быть различным (это называется размером окна). Если один из пакетов не получен, как это предполагалось, запрос на этот пакет может быть возвращен передающему узлу. Как можно видеть, это уменьшает сетевой трафик и ускоряет процесс передачи данных.
Средство TLI SPX II является, возможно, наиболее примечательным средством, по крайней мере в смысле разработки приложений. TLI представляет собой тщательно проработанный интерфейс API, созданный фирмой AT&T. Все существующие TLI-приложения без полного перепрограммирования на использование IPX или SPX можно перенести в операционную среду SPX NetWare.
Установить на сервере поддержку TCP/IP вы можете с помощью утилиты INSTALL. В процессе инсталляции сервера у вас есть возможность установки коммуникационных протоколов. Вы можете также установить их поддержку в любое время после инсталляции, загрузив для этого утилиту INSTALL. Оба метода выводят одни и те же меню и параметры. Если вы только что закончили установку сервера, то находитесь в меню Internetworking Configuration.
Для установки поддержки TCP/IP наберите:
LOAD INSTALL
После вывода меню Installation Options выберите пункт Other Options, затем Configure Communication Protocols. Выводится следующее меню:
+----------------------------------+ ¦ Internetworking Configuration ¦ +----------------------------------+ 1 ¦ ¦Boards ¦ 2 ¦ ¦Protocols ¦ 3 ¦ ¦Bindings ¦ 4 ¦ ¦General Node Information ¦ +----------------------------------+
1 - платы; 2 - протоколы; 3 - привязки; 4 - общая информация об узле.
Меню межсетевой конфигурации Internetworking Configuration представляет собой последовательность меню и подменю, используемых для задания отличных от IPX протоколов. Мы обсудим установку TCP/IP. Выбираемые с помощью меню параметры автоматически сохраняются в конфигурации сервера и начинают действовать после его перезагрузки. Элементы меню выводятся в том порядке, какой вы должны соблюдать для установки протоколов. Каждый пункт меню описывается в следующих разделах.
Для настройки конфигурации установленных в системе плат выберите пункт Board меню Internetworking Configuration. Этот список первоначально будет пустым, так как вы конфигурируете платы для использования с несколькими протоколами. Чтобы вывести список плат, уже установленных в системе в процессе инсталляции NetWare, нажмите клавишу Ins.
В меню драйверов Avaliable Drivers выводится список драйверов, уже находящихся в каталоге SYS:SYSTEM сервера. Если вы не видите в этом списке плату, которую хотите конфигурировать, выйдите из этой утилиты и вернитесь в меню Installation Options. Для копирования и загрузки нового драйвера локальной сети выберите пункт LAN Driver Options. После этого имя драйвера локальной сети будет выводиться в списке при возврате в меню конфигурации платы.
Если вы увидите плату, которую хотите конфигурировать, подсветите ее и нажмите Enter. Выведется меню Board Configuration, в котором вы можете изменить название и другие параметры платы (прерывания, адреса ввода-вывода и т.д.).
Для каждого типа кадра, который будет маршрутизироваться через соответствующую физическую плату, вы должны конфигурировать одну логическую плату. Однако физическая плата может конфигурироваться как несколько логических со своим типом платы и именем.
Для выхода из меню Board Configuration нажмите клавишу Esc. Новый драйвер будет выводиться в меню Configured Boards, и для изменения (при необходимости) его конфигурации вы можете нажать Enter. Для добавления другой платы нажмите Ins, а для возврата в меню Internetworking Configuration - Esc.
Если в меню Internetworking Configuration вы выберите Protocols, то увидите список поддерживаемых протоколов (IPX и TCP/IP).
Выберите в списке TCP/IP и нажмите Enter. Подсвечивается поле Expert TCP/IP Configuration Options. Нажатие Enter выводит следующее меню:
+------------------------------------------------------------+ ¦ Expert TCP/IP Configuration Options ¦ +------------------------------------------------------------+ ¦ IP Packet Forwarding: Forward IP Packets ("Router:"¦ ¦ RIP Routing Protocol: Enabled ¦ ¦ ¦ ¦ Static Routing Configuration: Disabled ¦ ¦ Static Routing Tables: (Select For List) ¦ ¦ ¦ ¦ SNMP Manager Table: (Select For List) ¦ +------------------------------------------------------------+
Используйте это меню для установки следующих параметров (об IP-адресах мы расскажем ниже):
IP Packet Forwarding
По умолчанию здесь устанавливается Forward IP Packets (передача пакетов IP), что подходит для сервера, так как он действует в качестве маршрутизатора.
RIP Routing Protocol
По умолчанию в этом поле устанавливается Enabled (разрешено), то подходит для сервера. RIP обеспечивает средства, с помощью которых сервер обменивается информацией с другими маршрутизаторами сети. Если вы запрещаете эту возможность, на данном сервере используется статический протокол маршрутизации. Статическая маршрутизация позволяет вам строить набор маршрутов, которые может найти RIP, и вы можете добавить их к базе данных межсетевой маршрутизации. Статические маршруты требуются редко.
Static Routing Configuration
По умолчанию этот параметр устанавливается в Disabled (запрещен). Разрешайте его только если вам требуется статическая маршрутизация. При разрешении база данных и информацией о статической маршрутизации загружается при инициализации системы.
Static Routing Tables
Выберите этот параметр только если вам нужно создать таблицу статической маршрутизации. Нажмите Enter, затем нажмите клавишу Ins для вывода меню Static Route. Задайте в меню следующую информацию:
Route to Network or Host | Установите этот параметр в Host или Network, в зависимости от того, будет ли запись базы данных направляться на конкретную хост-машину или на любую хост-машину данной сети. |
IP Address of Network of Hos | Наберите IP-адрес сети или хост-машины, куда должны маршрутизироваться данные. Вводите только сетевую часть сетевого адреса без конечных нулей. |
Next Hop Router on this Route | Наберите адрес ближайшего маршрутизатора той же сети. |
Metric for this Route | Данное значение равно числу переходов, которые должны проходить данные для достижения адресата. Маршруты с меньшими значениями выбираются первыми. Это значение может лежать в диапазоне от 1 до 16. |
Type of Route | Задайте тип маршрута - активный или пассивный. Активные маршруты непрерывно обновляются RIP для указания текущего статуса. Пас сивные маршруты - это постоянные записи, задаваемые при инициали зации с помощью IP. |
SNMP Manager Table
В этом поле введите адрес SNMP (Simple Network Management Protocol) управляющей рабочей станции, которая будет получать прерывания SNMP с этого маршрутизатора.
После изменения конфигурации TCP/IP статус протокола в меню Protocols Supported установлен в Enabled (разрешен). Для возврата в основное меню Internetworking Configuration нажмите клавишу Esc. Это позволит вам связать протокол с сетевой платой.
После конфигурирования для сервера параметров TCP/IP вы можете связать этот протокол с одной из плат в созданных ранее конфигурациях. Выберите в меню Internetworking Configuration пункт Bindings и нажмите Enter. Выводится список текущих привязок протоколов/сетевых плат (если они есть).
Чтобы создать новую привязку, нажмите клавишу Ins. Затем выберите протокол TCP/IP и нажмите Enter. В следующем меню выберите одну из конфигурированных сетевых плат.
Выводится меню Binding TCP/IP to an Interface. Заполните это меню в соответствии с приведенным ниже списком параметров. Получить информацию о назначении адресов для данных полей можно с помощью пункта About IP Adresses.
Local IP Address of Interface | Наберите адрес IP, присвоенный данному сетевому интерфейса. |
Subnetwork Mask of Connected Networks | Введите маску подсети, которая должна соответствовать маске, используемой другими узлами сети. Эта маска должна устанавливать каждый бит сетевой части адреса в 1, а каждый бит в номере хост-узла - в 0. |
Permanent WAN Call Destination | Наберите имя адресата глобальной сети, используемое для постоянного подключения. При подключении к локальной сети это поле недоступно. |
Expert Configuration Options | Если вы подсветите это поле, то сможете установить следующие параметры: |
Default Router | Адрес маршрутизатора, куда пакеты посылаются без конкретных маршрутов. |
RIP обычно подставляет эту информацию, так что задавать в этом поле значение не требуется. Будьте аккуратны и не конфигурируйте два маршрутизатора таким образом, что они будут задавать друг друга в качестве используемых по умолчанию. | |
Default Broadcast Address | Адрес маршрутизатора, используемого для циркулярной рассылки по сети. |
Multicast Override IP Address | IP-адрес, в котором IP определяет групповой адрес пакетов. Это переопределяет стандартную обработку групповой адресации. |
Originate Default Route | Определяет, будет ли маршрутизатор объявлять о себе как об используемом по умолчанию маршрутизаторе с помощью RIP. |
Cost of Interface | Число от 1 до 16, определяющее "вес" данного интерфейса. 16 указывает наивысший вес. |
Use "Poison Reverse" | По умолчанию этот параметр запрещен. Это уменьшает сетевой трафик, но может привести к некоторой нестабильности. |
Адрес IP (Internet Protocol Address) - это логический адрес узла, независимый от физического адреса, присвоенного плате сетевого интерфейса ее производителем. Адрес IP не зависит также от конфигурации сети. Независимо от используемого типа сети адрес IP должен иметь одну и ту же форму. Эта форма представляет собой 4-байтовое (32-битовое) значение, идентифицирующее сеть и локальную хост-систему или узел сети. Каждый адрес IP должен быть уникальным и содержать 4 десятичных числа, разделенных точками, например, 128.33.4.76.
Как уже упоминалось, адреса IP не зависят от типа сети. Это означает, что пакеты могут передаваться по различным типам сети. Для каждого типа сети для доставки протокол отображает адрес IP в физический адрес узла. Пакеты содержат адрес IP передающего узла, так что принимающая станция может при необходимости ответить. Адрес IP идентифицирует сеть и передающий узел в сети.
Одним из способов установки адресов IP является присоединение к сообществу DAPRA Internet, которое присвоит вашей сети зарегистрированный адрес Internet. Свяжитесь с информационным центром DDN Network Information Center, входящий в состав SRI International (Менло Парк, шт. Калифорния).
Если вы не хотите официально регистрировать свою сеть, то можете выбрать произвольный номер, соответствующий схеме адресации IP (четыре десятичных числа, разделенных точками).
Четырехбайтовый адрес IP подразделяется на сетевую часть, которая идентифицирует компьютер (узел). Сетевая часть должна быть одинаковой для каждого узла сети, а основная должна быть уникальной. Существует несколько схем этих номеров.
Некоторые адреса резервируются, и старший бит в каждом адресе требует специального идентификационного номера. См. руководство по TCP/IP, которое поставляется с NetWare, или NetWare Multiprotocol Router, где вы найдете более подробную информацию.
Единую сеть можно разбить на несколько подсетей. Для внешних удаленных сетей ваша сеть все равно будет выглядеть как единая сеть с одним сетевым адресом. В разбитой на подсети сети вы можете использовать разные типы носителей и избежать перенасыщения сети, уменьшив в каждой подсети число рабочих станций. При наличии подсетей адрес IP состоит из сетевого адреса, адреса подсети и основного адреса. Основной адрес IP разбивается на адрес подсети и основной адрес.
Выбрав в меню Internetworking Configuration пункт General Node Information, вы можете задать общую информацию о SNMP (Simple Network Management Protocol) или о самой конфигурации. Вы можете задать информацию об аппаратуре, физических адресах и о том, с кем нужно связаться в случае возникновения проблем. Эта информация обычно используется для выявления ошибок подключений.
Для подключения рабочих станций с DOS, OS/2 и Macintosh используется продукт Novell LAN WorkPlace. Точнее, существуют три продукта, которые называются LAN WorkPlace for DOS, LAN WorkPlace for OS/2 и LAN WorkPlace for Macintosh. Все эти продукты обеспечивают комплект протоколов TCP/IP, а также набор других средств.
В процессе установки вы можете использовать многие из тех же параметров, что и при установке TCP/IP на сервере. Адрес IP для каждой рабочей станции должен быть уникален, но следовать адресной схеме инсталлируемых сетей.