Документ описывает процедуру установки и настройки набора утилит Novell  для поддержки  стека протокола TCP/IP на кассовой станции.  С более подробной информацией по сетевому клиенту NetWare можно ознакомиться здесь

Введение

Данный стек протокола TCP/IP используется для поддержки различных Ethernet устройств компании UCS (на данный момент поддержка реализована для интерфейсных Ethernet-плат принтеров TM200, Star 600-700 серии и Epson TM-88IV с помощью библиотеки MPLEX.DLL). Набор утилит не предоставляет необходимого сервиса для полноценной поддержки сети, поэтому для нормальной загрузки R-Keeper требуется установленный стандартный пакет Microsoft Workgroup Add-on с поддержкой протокола NetBEUI - дальнейшее описание подразумевает, что пакет установлен в директорию C:\NET и нормально загружается. 

Необходимые файлы

Для установки потребуются следующие файлы:

  • LSL.COM - интерфейс уровня канальной поддержки
  • ODINSUP.COM -  протокольный стек ODI, который служит интерфейсом между NDIS и сетевыми драйверами NetWare Client
  • TCPIP.EXE -  транспортный интерфейс для сетевого сервиса более высокого уровня
  • NET.CFG - специальный текстовый файл, который содержит значения параметров конфигурации для драйверов
  • Сетевой драйвер ODI для вашей сетевой карты.
  • Некоторые полезные, но не обязательные, утилиты - например, ping.exe

Данные файлы можно скачать с центрального фтп сервера в директории dealers/r-keeper/Tools/TCPIP/Novell
Сетевой драйвер ODI, как правило, идет в комплекте с драйверами к сетевой карте и располагается в директории типа NETWARE\DOSODI или NWCLIENT\DOS (могут быть и другие директории - см. описание содержимого набора драйверов для вашей сетевой карты)

Настройка Microsoft Workgroup Add-on

Т.к. мы планируем использовать сетевой драйвер ODI, необходимо удалить загрузку существующего NDIS драйвера сетевой карты. Для этого открываем файл C:\NET\SYSTEM.INI и в разделе [network drivers] удаляем строку netcard=<ndis-драйвер>, где <ndis-драйвер> - NDIS драйвер текущей сетевой карты (например, для RTL8139 это rtsnd.dos)

Если при установке пакета Microsoft Workgroup Add-on вы указали использовать полный редиректор (Full Redirector), возможно (наверняка) для загрузки протокола TCP/IP не хватит памяти. Поэтому рекомендуется использовать базовый редиректор (Basic Redirector) - для этого в файле C:\NET\SYSTEM.INI в разделе [network] найдите строку preferredredir=full и замените ее на preferredredir=basic. Если в файле также есть строка autostart=full,,server, замените ее на строку autostart=server
В итоге должен получиться следующий конфигурационный файл SYSTEM.INI (на примере для сетевой карты на базе RTL8139) - различия выделены в правой колонке специальным образом:

Таблица 1. Различия в конфигурационном файле SYSTEM.INI

Оригинальный файл SYSTEM.INI

Модифицированный файл SYSTEM.INI

[network]
filesharing=yes
printsharing=no
autologon=no
computername=UNIT89
lanroot=C:\NET
username=UNIT
workgroup=WORKGROUP
reconnect=no
directhost=no
dospophotkey=N
lmlogon=0
logondomain=WORKGROUP
preferredredir=full
autostart=full,,server
maxconnections=8

[network drivers]
netcard=rtsnd.dos
transport=ndishlp.sys,*netbeui
devdir=C:\NET
LoadRMDrivers=yes

[Password Lists]
*Shares=C:\NET\Shares.PWL
UNIT=C:\NET\UNIT.PWL
[network]
filesharing=yes
printsharing=no
autologon=no
computername=UNIT89
lanroot=C:\NET
username=UNIT
workgroup=WORKGROUP
reconnect=no
directhost=no
dospophotkey=N
lmlogon=0
logondomain=WORKGROUP
preferredredir=basic
autostart=server
maxconnections=8

[network drivers]
netcard=rtsnd.dos
transport=ndishlp.sys,*netbeui
devdir=C:\NET
LoadRMDrivers=yes

[Password Lists]
*Shares=C:\NET\Shares.PWL
UNIT=C:\NET\UNIT.PWL

Также необходимо переопределить существующие к NDIS драйверу привязки в файле C:\NET\PROTOCOL.INI . Для удобства различия показаны в виде таблицы (на примере для сетевой карты на базе RTL8139) - различия выделены в правой колонке специальным образом:

Таблица 2. Различия в конфигурационном файле PROTOCOL.INI

Файл PROTOCOL.INI до изменений

Файл PROTOCOL.INI  после изменений

[network.setup]
version=0x3110
netcard=RTL8139,1,RTL8139,1
transport=ms$ndishlp,MS$NDISHLP
transport=ms$netbeui,MS$NETBEUI
lana0=RTL8139,1,ms$netbeui
lana1=RTL8139,1,ms$ndishlp

[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP

[RTL8139]
DriverName=rtsnd$
Medium=_10Half

[MS$NDISHLP]
DriverName=ndishlp$
BINDINGS=RTL8139

[MS$NETBEUI]
DriverName=netbeui$
SESSIONS=40
NCBS=80
BINDINGS=RTL8139
LANABASE=0

[network.setup]
version=0x3110
netcard=RTL8139,1,RTL8139,1
transport=ms$ndishlp,MS$NDISHLP
transport=ms$netbeui,MS$NETBEUI
lana0=RTL8139,1,ms$netbeui
lana1=RTL8139,1,ms$ndishlp

[protman]
DriverName=PROTMAN$
PRIORITY=MS$NDISHLP

[RTL8139]
DriverName=rtsnd$
Medium=_10Half

[MS$NDISHLP]
DriverName=ndishlp$
BINDINGS=RTSODI

[MS$NETBEUI]
DriverName=netbeui$
SESSIONS=40
NCBS=80
BINDINGS=RTSODI
LANABASE=0

Как видно из примера, мы переопределили привязки - вместо существующего драйвера (RTL8139) мы указали ODI-драйвер (RTSODI), который служит интерфейсом между протоколом NDIS и сетевыми драйверами NetWare Client. Также мы убрали из файла PROTOCOL.INI некоторую информацию, которая относится в протоколу NDIS (раздел [network.setup] )

Примечание: имена драйверов в PROTOCOL.INI не могут начинаться с цифры. Поэтому перед именами драйверов, которые начинаются с цифр, помещайте x . Например, если драйвер называется 3C503.COM, то необходимо указать BINDINGS = x3C503

Модификация файла NET.CFG

Файл NET.CFG является основным конфигурационным файлом клиента NetWare. Более подробную информацию о параметрах и принципе форматирования файла  см. по ссылке.

В таблице ниже приведен пример файла NET.CFG с комментариями (на примере использования ODI-драйвера для сетевой карты на базе RTL8139 ). Вы должны заменить имя ODI-драйвера (в примере RTSODI) именем вашего сетевого ODI-драйвера

Таблица 3. Пример конфигурационного файла NET.CFG

Пример файла NET.CFGКомментарии

Link Support
MEMPOOL 4096
BUFFERS 8 2048
 
Link Driver RTSODI
Frame Ethernet_802.3
Frame Ethernet_802.2
Frame ETHERNET_II
Frame ETHERNET_SNAP 

PROTOCOL ODINSUP
BIND RTSODI
BUFFERED


PROTOCOL TCPIP 
BIND RTSODI
IP_ADDRESS 172.31.32.89
IP_NETMASK 255.255.255.0

Раздел Link Support является необязательным. В нем можно определить размер пакетов, передаваемых через LSL с помощью параметра BUFFERS число размер буфера, где число - число буферов1.

Строка Link Driver RTSODI  определяет привязку к ODI-драйверу сетевой карты - замените его именем вашего сетевого ODI-драйвера. Далее определяются поддерживаемые типы фрейма для программы ODINSUP.  Обязательными являются значения Ethernet_802.2, ETHERNET_II и ETHERNET_SNAP

В разделе PROTOCOL ODINSUP определяется привязка ODINSUP к одному или нескольким сетевым ODI-драйверам. Параметр BUFFERED выделяет в памяти двойной объем буферов для данных, необходимых протокольному стеку NDIS

В разделе PROTOCOL TCPIP определяется привязка стека протокола TCP/IP к сетевому драйверу ODI и определяются  IP-адрес и маска подсети вашей рабочей станции.
Примечание: можно использовать IP-адрес не обязательно из той же подсети, что и общая локальная сеть. Главное, чтобы IP-адрес был из той же подсети, что и контроллеры Ethernet

Также в файле NET.CFG можно определить другие параметры, специфичные для конкретного ODI-драйвера сетевой карты. Например, ODI-драйвер для карты на базе RTL8139 позволяет указать параметр MEDIUM для  определения скорости и режима передачи :

  • MEDIUM AUTO       - режим определяется автоматически
  • MEDIUM 10HALF   - режим 10M/HalfDuplex
  • MEDIUM 10FULL   - режим 10M/Fullduplex
  • MEDIUM 100HALF - режим 100M/HalfDuplex
  • MEDIUM 100FULL - режим 100M/Fullduplex

Важно: При редактировании файла NET.CFG необходимо делать отступы, а также следовать другим требованиям формата. Более подробно см ссылку

Модификация системных файлов DOS

Для успешного запуска транспорта Novell TCP/IP требуется модифицировать файл AUTOEXEC.BAT (конфигурационный файл CONFIG.SYS не требует модификации). Для удобства приведем изменения в виде таблицы (различия выделены в правой колонке специальным образом):

Таблица 4. Модификация файла AUTOEXEC.BAT

Оригинальный файл AUTOEXEC.BATМодифицированный файл AUTOEXEC.BAT

@echo on
prompt $p$g
path=c:\util;c:\drdos;c:\nc;c:\vc;c:\net;c:\touchkit
mode com1:96,N,8,1,r
vga#font
dtime
share
net start
SET TKT1=3E8 10
TPANEL.EXE -m -1
cd \rkclient.77g
dmove buf rkclient.77g
;cor
rkeeper6
stop
nc

@echo on
prompt $p$g
path=c:\util;c:\drdos;c:\nc;c:\vc;c:\net;c:\touchkit
mode com1:96,N,8,1,r
vga#font
dtime
share
net initialize /dynamic
cd \novell
lsl.com
rtsodi.com
odinsup.com
tcpip.exe
net start
SET TKT1=3E8 10
TPANEL.EXE -m -1
cd \rkclient.77g
dmove buf rkclient.77g
;cor
rkeeper6
stop
nc


Важно: обратите внимание на команду net initialize /dymamic - ее необходимо указывать именно в таком виде (с ключом /dynamic) для исключения проблем с памятью.

Примечание: в данном примере подразумевается, что мы создали на диске каталог Novell и скопировали в него необходимые файлы . Также не забывайте, что необходимо заменить имя ODI-драйвера (в примере rtsodi.com) именем драйвера вашей сетевой карты

Проверка системы

После того, как все действия выполнены, можно перегрузить станцию и проверить работоспособность. Как и до изменений, рабочая станция должна предоставлять свои сетевые ресурсы (если они определены) и должна откликаться на команду ping любого компьютера из той же подсети. С рабочей станции тоже можно запустить программу ping.exe (входить в набор), использую следующий синтаксис:

PING Hostname [ /R[N] /Tn /Nn /Pn [ /Ln | /Sn [ /In ] ]

Где: 

  • Hostname - имя или IP-адрес (разделенный точками) удаленного хоста
  • /R[N] - разрешить трассировку маршрута (разрешение имени хоста отключено)
  • /Tn - время ожидание ответа от удаленного хоста в сек. По умолчанию равен 2
  • /Nn - кол-во отправляемых пакетов. По умолчанию равен 1, при значении 0 - отправлять постоянно
  • /Pn - время между пакетами в сек. Обычно пакеты отправляются сразу же после того, как получен ответ от удаленного хоста. По умолчанию равен 0
  • /Ln - размер пакетов - используется для пакетов постоянной длины ( мин = 12, макс = 8192 ). По умолчанию равен 12. 
  • /Sn - начальный размер пакета. Используется для пакетов переменной длины ( мин = 12, макс = 8192  )
  • /In - размер приращения пакета. Используется для пакетов переменной длины. По умолчанию 1 

 Например,  PING 192.168.0.1 /N10 /P1 /L1024
Примечание для секции LINK SUPPORT файла NET.CFG


Транспорт TCP/IP использует функции управления буфером, предоставляемые драйвером LSL. Раздел  LINK SUPPORT файла NET.CFG включает в себя параметры, которые определяют количество и размеры буферов для TCP/IP протокола (IPX не использует эти буферы).

Стандартная конфигурация - параметры, устанавливаемые по умолчанию при инсталляции:

LINK SUPPORT
BUFFERS 8 1500
MEMPOOL 4096 

BUFFERS число [размер]Link to BUFFERS число [размер]

Параметр BUFFERS контролирует кол-во и размер буферов получаемых пакетов. Кол-во буферов по умолчанию - 8, размер по умолчанию -1500. Можно уменьшить количество буферов, если используется последовательное TCP-соединение. Если используется несколько соединений TCP, можно увеличить количество буферов для лучшей производительности (например, при совместном использовании RKSHARE и управлении Ethernet-устройством). Размер буфера зависит от топологии конфигурации.

MEMPOOL размерLink to MEMPOOL размер

Параметр MEMPOOL контролирует размер внутреннего буфера-отправки, используемого TCP/IP. TCP отправляет данные, копируя их в этот буфер перед отправкой на удаленную систему. Размер по умолчанию составляет 4096 байт. Может понадобиться увеличить размер MEMPOOL при общении с удаленными хостами TCP, которые предоставляют больший размер принимаемого кадра и задержку подтверждений.

Дополнительные параметрыLink to Дополнительные параметры

Если вы настраиваете несколько сетевых плат или планируете использовать несколько стеков протоколов, можно установить два дополнительных параметра для настройки необходимой поддержки LSL.

1 - Файлы клиента NetWare для DOS не могут использовать для коммуникационных буферов более 64 Кб памяти - это означает, что объем, равный числу буферов, умноженному на размер буфера (плюс размер заголовка 5К), не может быть больше 65 536 байтов.