IPX в Linux HOWTO <author>Kevin Thorpe, <tt/kevin@pricetrak.com/, перевод Alex Ott <tt>ott@phtd.tpu.edu.ru</tt> <date>v2.3, 06 May 1998 <abstract> Этот документ описывает как получить, установить и настроить различные утилиты для операционной системы Linux, которые используют поддержку протокола IPX в ядре Linux. </abstract> </titlepag> <toc> <!-- Begin the document --> <p><bf>Примечание переводчика:</bf> Шлите мне любый комментарии и замечания, даже небольшие. <sect><heading>Введение <p>Этот IPX в Linux HOWTO. Вы должны прочитать Linux NET-3-HOWTO в добавление к этому документу. <sect1><heading>Изменения с предыдущей версии <p> <verb> Изменение автора: Большая благодарность Terry Dawson за работу над этим документом и поздравления с рождением ребенка :-) Добавления: Добавлено краткие сведения об IPX& Это сделано в ответ на много мешающих вопросов с списках рассылки. Исправления/Обновления: Новая версия ncpfs, которая сейчас поддерживает подключение к NDS. Она все еще в стадии бета тестирования и ее использование в вашей стране может быть запрещено из-за использования патентованной технологии. Добавление поддрежки администраторских прав (trustee rights) в mars_nwe. Эта возможность все еще в стадии бета тестирования. </verb> <sect1><heading>Введение <p>Ядро Linux имеет совершенно новую сетевую реализацию по сравнению с другими Unix-подобными операционными системами. Возможность взглянуть по новому на разработку сетевого программного обеспечения ядра привело к тому, что ядро Linux имеет поддержку для ряда протоколов, не относящихся к tcp/ip. Протокол IPX один из тех, кто был включен в ядро. <p>Ядро Linux поддерживает только протокол IPX. Оно еще не поддерживает такие протоколы как IPX/RIP, SAP или NCP, эти протоколы поддерживаются другим программным обеспечением, таким как описано в этом документе. <p>Поддержка IPX первоначально была разработана Alan Cox <tt><alan@lxorguk.ukuu.org.uk></tt> и была значительно расширена Greg Page <tt><greg@caldera.com></tt>. <sect><heading>Отказ от ответственности <p>Я не знаю и не могу знать все что можно знать о сетевом программном обеспечении Linux. Пожалуйста примите к сведению и будьте осторожны, так как этот документ вероятно содержит ошибки. Пожалуйста читайте любые README-файлы, которые включены в различные пакеты программного обеспечения описанные в этом документе для более детальной и правильной информации. Я буду пытаться сохранить этот документ безошибочным и своевременным. Версии программного обеспечения даны текущие во время написания документа. <p>Нет способа, которым я или авторы программного обеспечения, описанного в этом документе, защитили против ваших собственных действий. Если вы настроите это программное обеспечение, даже так как описано в этом документе и это вызовет проблемы в вашей сети, тогда вы должны сами нести ответственность. Я включил это предупреждение потому-что дизайн и настройка сетей IPX не всегда является простый делом и иногда нежелательное взаимодействие с другими маршрутизаторами и файловыми серверами может быть результатом, если вы не спроектировали или настроили правильно вашу сеть. Я также включил это предупреждение, потому-что меня иногда спрашивали люди, несчастные достаточно поскольку они запоминали этот урок трудным путем. <sect><heading>Относящаяся документация <p>Этот документ предполагает, что вы понимаете как построить ядро Linux с правильно выбранными сетевыми опциями и что вы понимаете как пользоваться базовыми сетевыми утилитами, такими как <em>ifconfig</em> и <em>route</em>. Если не понимаете, то вы должны прочитать документ <url url="NET-3-HOWTO.html" name="NET-3-HOWTO"> в добавление к этому документу, как описаны эти утилиты. <p>Другие документы серии Linux HOWTO, которые могут быть полезными при работе с данным документом: <p><url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO">, который описывает детали настройки устройств Ethernet для Linux. <p><url url="PPP-HOWTO.html" name="PPP-HOWTO">, поскольку поддержка IPX доступна в версии 2.2.0d и поздних, реализации PPP в Linux PPP. <sect1><heading>Новые версии этого документа <p>Если ваша копия этого документа, устарела больше чем на два месяца, тогда я рекомендую получить более новую версию. Сетевая поддержка для Linux изменяется очень быстро с новыми расширениями и свойствами, так что и этот документ также изменяется довольно быстро. Последние версии этого документа всегда могут быть получены по анонимному ftp: <p><tt>ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/IPX-HOWTO</tt> или: <tt>ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/IPX-HOWTO{-html.tar,ps,dvi}.gz></tt> через World Wide Web с <url url="http://sunsite.unc.edu/LDP/linux.html" name="Сервер Linux Documentation Project">, на странице: <url url="http://sunsite.unc.edu/LDP/HOWTO/IPX-HOWTO.html" name="IPX-HOWTO"> или прямо от меня, <tt/<kevin@pricetrak.com>/. Он может также посылаться время от времени в группы новостей: <tt/comp.os.linux.networking/, <tt/comp.os.linux.answers/ и <tt/news.answers/. <sect1><heading>Обратная связь <p>Пожалуйста посылайте мне любые комментарии, обновления или пожелания, <tt/<kevin@pricetrak.com>/. Скорее всего я получу feedback, скорее всего я смогу обновить и скорректировать этот документ. Если вы найдете любую проблему с ним, пожалуйста напишите мне, поскольку я могу пропустить информацию посланную в группы новостей. <sect1><heading>Поддержка списка рассылки <p>Существует список рассылки, учрежденный для дискуссий о различных пакетах программного обеспечения IPX для Linux, описанных в этом документе. Вы можете подписаться на них послав сообщение на адрес <tt/`listserv@sh.cvut.cz'/ со строкой <tt/`add linware'/ в теле сообщения. Чтобы послать сообщение в список рассылки, пошлите ваше сообщение на адрес <tt/`linware@sh.cvut.cz'/. Я регулярно просматриваю этот список рассылки. <p>Архив списка рассылки находится на сервере <url url="http://www.kin.vslib.cz/hypermail/linware/" name="www.kin.vslib.cz">. <sect><heading>Некоторые термины, используемые в этом документе <p>Вы будете часто видеть в этом документе термины <tt/client/ and <tt/server/. Обычно они довольно специфичны, но в этом документе я обобщил эти определения до маленьких, так что они обозначают следующее:</p> <p><descrip> <tag>client</tag>Машина или программа, которая инициирует акцию или соединение в целях использования некоторых сервисов или данных. <tag>server</tag>Машина или программа, которая принимает входящие соединения от множества удаленных машин и обеспечивает для них сервисы или данные. </descrip> <p>Эти определения не очень достоверные, но они обеспечивают понимание для одноранговых систем, таких как <em>SLIP</em> или <em>PPP</em>, которые в действительности не имеют клиента и сервера. <p><em/Примечание переводчика:/ Я постарался перевести некоторые термины используя литературу по Novell Netware, но если я где-то ошибся прошу написать мне, адрес в начале документа. <p>Другие термины, которые вы увидите: <p><descrip> <tag/Bindery/ <em/bindery/ -- это специализированная база данных, сохраняющая сетевую конфигурационную информацию на файловом сервере Novell. Клиенты Netware могут запрашивать <em/bindery/ для получения информации о доступных серверах, маршрутизации и пользователях. <tag/Frame Type (Тип фрэйма)/ этот термин используется для описания, что действительный протокол используется для переноса датаграмм IPX (и IP) через ваши сегменты сети ethernet. Существует четыре общих типа: <p><descrip> <tag>Ethernet_II</tag> Это упрощенная версия оригинального стандарта DIX ethernet. Novell выделил формальный идентификатор протокола и это означает, что оба протокола IPX и IP могут сосуществовать в среде Ethernet_II довольно удачно. Протокол является общеиспользуемым в среде Novell и это хороший выбор. <tag>802.3</tag> Это I.E.E.E. протокол, определяющий механизм Carrier Sense Multiple Access with Collision Detection (CSMA/CD, Множественный доступ к среде переноса с определением столкновений ). Он основан на оригинальном стандарте DIX Ethernet, с важным изменением, поле типа (идентификатор протокола) было преобразовано в поле длины. Это является причиной, почему в действительности IPX не должен работать здесь. IEEE 802.3 был спроектирован, чтобы переносить <em>только</em> фреймы IEEE 802.2, но существуют реализации которые используют этот тип для прямого переноса фреймов IPX и это замечательно работает. Избавьтесь от этого типа, только если не пытаетесь взаимодействовать с сетью, которая уже настроена для использования такого типа фреймов. <tag>802.2</tag> Это протокол I.E.E.E., который определяет набор процедур Logical Link Control (Контроль логических связей). Он обеспечивает упрощенный способ, позволяющий различным протоколам сосуществовать, но является довольно ограниченным в этом отношении. Novell использует неофициальную Service Address Point (точку сервисного адреса, подобную идентификатору протокола), но так как любой также использует его, это еще не представляет слишком много проблем. <tag>SNAP</tag> SNAP является Sub Network Access Protocol (Протокол доступа к подсетям). Этот протокол спроектирован для переноса на протоколах 802.3 и 802.2. Он расширяет многопротокольные возможности 802.2 и обеспечивает, некоторую меру совместимости с существующими типами фреймов Ethernet и Ethernet_II. </descrip> <tag/IPX/ Internet Packet eXchange (Межсетевой обмен пакетами) -- это протокол используемый корпорацией Novell для обеспечения межсетевой поддержки для их продукта NetWare(tm). IPX похож по функциональности на IP протокол, используемый в сообществе tcp/ip. <tag/Сетевой адрес IPX/ Это число, которое уникально идентифицирует частную сеть IPX. Обычно системой исчисления для этого числа является шестнадцатиричная. Пример может выглядеть примерно так: <tt/0x23a91002/. <tag/Внутренняя сеть IPX/ Это виртуальная сеть IPX. Она является виртуальной, потому-что оне не соответствует физической сети. Она используется для обеспечения средства уникально идентифицирующего и адресующего особый хост IPX. В общем это полезно для хостов IPX, которые существуют больше чем в одной физической сети IPX, таких как файловые сервера. Адрес кодируется в той же самой форме, что и для физической сети IPX <tag/RIP/ Routing Information Protocol (протокол маршрутной информации) -- это протокол, используемый для автоматического распространения сетевых маршрутов (routes) в сетях IPX. По функциональности сходен с RIP используемым сообществом tcp/ip. <tag/NCP/ NetWare Core Protocol (базовый протокол NetWare) -- протокол сетевой файловой системы, спроектированный корпорацией Novell для своего продукта NetWare(tm). NCP похож по функциональности на NFS, используемый в сообществе tcp/ip. <tag/SAP/ Service Advertisement Protocol (Протокол объявления сервисов) -- это протокол спроектированный корпорацией Novell, который используется для объявления сетевых сервисов в среде NetWare(tm). <tag/Адрес устройства (Hardware address)/ Это число, которое уникально идентифицирует хост в физической сети на уровне доступа к среде (media access layer). Примером этого являются <em/адреса Ethernet/. Адрес Ethernet обычно кодируется шестью шестнадцатиричными значениями, разделенными символом двоеточия, например <tt/00:60:8C:C3:3C:0F/ <tag/маршрут (route)/ <em/маршрут/ это путь, который ваш пакет проходит через сеть чтобы достичь своей цели. </descrip> ???? <sect><heading>Краткое обсуждение топологии сетей IPX <p>Это очень сильно упрощенное объяснение для тех людей, кто только начинает знакомится с IPX. Большие сети вероятно нарушат некоторые правила объясненные здесь. В сложных сетях IPX вы всегда должны проконсультироваться с их администраторами. <p>Сети IPX произвели революцию введя схему нумерованных <em/сетей/, в отличие от схемы IP, которая делает большее ударение на адресе <em/интерфейса/. Сеть -- это набор оборудования, подключенного к одному и тому же сегменту локальной сети и <em/использующий один и тот же тип фрэйма/. Различные типы фрэймов в одном и том же сегменте локальной сети считаются отдельными сетями. <p>Каждой сети должен быть выделен арес, который должен быть уникальным во всей локальной сети. Это обычно выполняется сервером NetWare(tm), но это может быть легко выполнено и Linux. Клиентам IPX этот адрес выдается сервером при запуске, им необходимо только знать правильный тип фрейма. <p>Маршрутизация между двумя сетями обычно выполняется помещением двух сетевых карт в сервер. Этот сервер затем запускает протокол RIP, который хранит таблицу маршрутизации для внутренних сетей. Периодически сервера обмениваются этими таблицами маршрутизации при широковещательных передачах. Внутри короткого промежутка времени каждый сервер 'исследует' топологию внутренней сети. <p>Если вам необходимо только иметь доступ к существующим серверам NetWare, то вы можете использовать команду <tt/ipx_configure/ (раздел 7.1) для автоматического определения интерфейсов IPX, используя широковещательный запрос для того, чтобы найти сервер. Если происходит сбой, или вы хотите обеспечивать сервисы IPX, то вам будет необходимо определить интерфейсы вручную, используя программы <tt/ipx_interface/ или <tt/mars_nwe/. <sect><heading>Файлы в файловой системе <tt>/proc</tt>, относящиеся к IPX <p>Существует некоторое число файлов, относящихся к поддержке IPX в Linux, расположенных в файловой системе <tt>/proc</tt>. Это: <p><descrip> <tag>/proc/net/ipx_interface</tag>Этот файл содержит информацию об настроенных интерфейсах IPX на вашей машине. Они могут быть настроены вручную или могут быть автоматически обнаружены и настроены. <tag>/proc/net/ipx_route</tag>Этот файл содержит список маршрутов (routes), которые существуют в таблице маршрутов IPX. Эти маршруты могут быть добавлены вручную с помощью команд или добавлены автоматически демоном маршрутизации IPX. <tag>/proc/net/ipx</tag>Этот файл содержит список сокетов IPX, которые открыты для использования на машине. </descrip> <sect><heading>IPX утилиты Greg Pages <p>Greg Page <tt/<greg@caldera.com/ из Caldera Incorporated написал набор утилит настройки IPX и расширенную поддержку IPX для ядра Linux. <p>Расширения ядра позволяют сконфигурировать Linux как полномасштабный мост (bridge) или маршрутизатор (router) IPX. Расширенная поддержка IPX была вставлена в основную ветвь дистрибутива ядра Linux, так что вы вероятно уже имеете ее на своей системе. <p>Утилиты сетевой настройки позволяют вам возможность настроить ваши сетевые устройства на поддержку IPX и позволяют вам настроить маршрутизацию IPX и другие услуги под Linux. Сетевые утилиты IPX для Linux доступны с <url url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ipx.tgz" name="sunsite.unc.edu">. <sect1><heading>Более детально об утилитах IPX <p><descrip> <tag>ipx_interface</tag>Эта команда используется для ручного добавления, удаления или проверки возможностей IPX на существующем сетевом устройстве. Обычно сетевым устройством является устройство Ethernet, такое как <tt/eth0/. По крайней мере один интерфейс IPX должен быть назначен <em>первичным (primary)</em> интерфейсом и флаг <em/-p/ программы делает это. Например для того, чтобы добавить устройству Ethernet <tt/eth0/ возможности IPX как первичный интерфейс IPX используя тип фрейма IEEE 802.2 сетевой адрес IPX <tt/39ab0222/ вы должны использовать: <tscreen><verb> # ipx_interface add -p eth0 802.2 0x39ab0222 </verb></tscreen> <p>Если тип фрейма отличается от типа, применяемого серверами NetWare(tm) в этой сети, то они будут прилежно игнорировать вас. Если тип фрейма правильный, но отличаются номера сети, сервера все равно будут игнорировать вас, но будут часто выражать свое недовольство на консоли сервера NetWare. Это гарантирует вам недовольство вашего администратора NetWare и может нарушить работу существующих клиентов NetWare. <p>Если вы получите ошибку во время выполнения этой программы и это случится из-за того, что у вас не настроен протокол tcp/ip, тогда вам необходимо вручную запустить интерфейс <tt/eth0/, используя команду: <tscreen><verb> # ifconfig eth0 up </verb></tscreen> <tag>ipx_configure</tag>Эта команда разрешает или запрещает автоматическую установку конфигурации интерфейсов и первичного интерфейса. Были замечены проблемы при использовании этой команды в сети с машинами под Windows 95. <p><descrip> <tag><tt/--auto_interface/</tag>позволяет выбрать должно ли будет новое сетевое устройство автоматически сконфигурировано как устройство IPX или нет <tag><tt/--auto_primary/</tag>Позволяет выбрать должно ли программное обеспечение IPX автоматически выбирать первичный интерфейс или нет. </descrip> <p>Типичный пример, для разрешения автоматической настройки интерфейсов и автоматического выбора первичного устройства используется следующая комманда: <tscreen><verb> # ipx_configure --auto_interface=on --auto_primary=on </verb></tscreen> <tag>ipx_internal_net</tag>Эта команда позволяет настраивать или убирать адрес внутренней сети. Адрес внутренней сети является опциональным, но когда он настроен, он всегда должен быть первичным интерфейсом. Для настройки сетевого адреса IPX <tt/ab000000/ на узле (node) IPX <tt/1/ вы должны использовать команду: <tscreen><verb> # ipx_internal_net add 0xab000000 1 </verb></tscreen> <tag>ipx_route</tag>Эта команда позволяет вручную модифицировать таблицу маршрутизации IPX. Например, чтобы добавить маршрут на сеть IPX <tt/39ab0222/ через маршрутизатор с номером узла <tt/00608CC33C0F/ в сети IPX <tt/39ab0108/ команда будет выглядеть следующим образом: <tscreen><verb> # ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F </verb></tscreen> </descrip> <sect><heading>Настройка вашей Linux-машины как маршрутизатора IPX <p>Если вы имеете несколько сегментов IPX, и вы желаете создать взаимодействие между ними, то вам необходимы услуги маршрутизатора. В среде Novell существуют 2 вида информации, которые необходимо распространять по сети. Это информация о сетевых маршрутах, распространяемая используя Novell RIP, и информация о сервисах, распространяемая используя Novell SAP. Любой маршрутизатор должен поддерживать оба этих протокола чтобы быть полезным в большинстве случаев. <p>Linux имеет поддержку обоих протоколов и может быть довольно легко настроее, чтобы выполнять функции полномасштабного маршрутизатора Novell. <p>Поддержка IPX в ядре Linux в действительности управляет пакетами IPX пересылаемые через сетевые интерфейсы, но она делает это согласно правилам, закодированным в таблице маршрутизации IPX. Linux необходимы программы реализующие Novell RIP и SAP, чтобы обеспечивать правильность построения таблицы маршрутизации IPX и их периодическое обновление для отражения изменений в сетевом статусе. <p>Volker Lendecke <tt/<lendecke@namu01.gwdg.de>/ разработал демон маршрутизации <em/ipxripd/, который будет делать это. Описанный ниже пакет <em/mars_nwe/ включает альтернативный демон маршрутизации. <p>Вы можете найти <em/ipxripd/ на: <url url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ipxripd-0.7.tgz" name="sunsite.unc.edu"> <p>или на сервере Volkers по адресу: <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ipxripd-0.7.tgz" name="ftp.gwdg.de"> <p>Настройка возможности, чтобы ваша Linux-машина работала как маршрутизатор очень проста. Необходимо сделать следующие шаги: <p><enum> <item>Скомпилировать ваше ядро с поддержкой IPX, Ethernet и <tt>/proc</tt>. <item>Получить, скомпилировать и установить программу демона <em/ipxd/. <item>Загрузить новое ядро и убедиться, что каждая из карт Ethernet была правильно обнаружена и нет конфликтов оборудования. <item>Включить протокол IPX на каждом интерфейсе, используя команду <em/ipx_interface/ описанную выше. <item>Запустить программу демона <em/ipxd/. </enum> <p>Рассмотрим следующую простую сеть: <verb> IPX Addr: 0x01000000 802.2 |--------------------------| | \_________________________ \ Linux Маршрутизатор IPX Addr: 0x02000000 802.2 \ |--------------------------| \ eth0/-----------\ | \--====| | \_________________________ | Таблица | \ eth1| Маршрути- | IPX Addr: 0x03000000 etherII \----====| зации IPX | |--------------------------| | ^ | | eth2| | | \______________________________/====| IPXd | | SAPd | IPX Addr: 0x04000000 etherII eth3| | |--------------------------| /====| | | | \___________/ \______________________________/ </verb> <p>Настройка для вышеуказанной сети должна выглядеть подобно этому: <tscreen><verb> # ipx_interface add eth0 802.2 0x0100000000 # ipx_interface add eth1 802.2 0x0200000000 # ipx_interface add eth2 etherii 0x0300000000 # ipx_interface add eth3 etherii 0x0400000000 # ipxd </verb></tscreen> <p>Затем вам необходимо немного подождать и проверить ваш файл <tt>/proc/net/ipx_route</tt> и вы должны увидеть его заполненным маршрутами IPX относящихся к вашей конфигурации и другими полученными от других маршрутизаторов в сети. <sect1><heading>Необходимо ли мне настраивать внутреннюю сеть? <p>Novell имеет свойство, называемое внутренняя сеть, которое используется для упрощения маршрутизации когда машина имеет больше одного сетевого устройства. Это полезно для файловых серверов, которые подключены к нескольким сетям, так как это означает, что только один маршрут необходим чтобы информационные сообщения о сервисах достигли сервера вне зависимости от того с какой сети идет попытка. <p>В случае конфигурации, когда вы не запустили файловый сервер и ваша машина выступает только в роли маршрутизатора IPX этот вопрос не является легким. Как было отмечено, что конфигурация для IPX/PPP работает `лучше' если вы также настроите внутреннюю сеть. <p>В любом случае это легко сделать, но может потребовать перекомпиляции вашего ядра. Когда вы настраиваете его через <tt/make config/ вы должны ответить <tt/y/ когда вас спросят <tt/Full internal IPX network/ как показано: <tscreen><verb> ... ... Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y ... ... </verb></tscreen> <p>Для настройки интерфейса внутренней сети, используйте команду <em/ipx_internal_net/, описанную ранее в разделе утилит IPX. Главная предосторожность в том что надо убедиться, что сетевой адрес IPX который вы назначили является уникальным в вашей сети и что никакая другая машина или сеть не используют его. <sect><heading>Настройка вашей Linux-машины как клиента NCP <p>Если вы пользователь сети со смешанной технологией, которая включает протоколы IP и IPX, возможно что иногда вам захочется иметь на вашей linux-системе доступ к данным, хранимым на файловом сервере Novell в вашей сети. Novell предлагает пакет NFS сервера для своих серверов, который позволит вам организовать доступ, но если у вас маленький сервер или вы имеете маленькое количество людей, заинтересованных в доступе, может быть трудно оправдать цену коммерческого пакета. <p>Volker Lendecke <tt/<lendecke@namu01.gwdg.de>/ написал модуль ядра Linux для файловой системы, которая поддерживает подмножество Novell NCP, которая позволит вам монтировать тома Novell в файловую систему Linux без других дополнительных продуктов для вашего файлового сервера. Volker назвал пакет <em/ncpfs/ и получил необходимую информацию в основном из книги "Netzwerkprogrammierung in C" Manfred Hill и Ralf Zessin (дополнительные детали о книге находятся в файле README в пакете <em/ncpfs/). <p>Это программное обеспечение заставляет Linux эмулировать обычную рабочую станцию Novell для файловых сервисов. Оно также включает маленькую утилиту печати, которая позволит вам печатать в очереди печати Novell (это документировано позже в разделе Клиент Печати). Пакет <em/ncpfs/ будет работать с файловыми серверами Novell версий 3.x и поздних, он не будет работать с Novell 2.x. Клиент <em/ncpfs/ также будет работать с Novell-совместимыми продуктами, но к сожалению некоторые продукты, объявленные как совместимые не являются достаточно совместимыми. Для использования <em/ncpfs/ с файловыми серверами Novell 4.x, файловый сервер должен работать в режиме эмуляции bindery. Поддержка NDS является недвним добавлением к пакету <em/ncpfs/ и находится в ранней стадии разработки и дополнительно к этому может быть запрещено использовать этот пакет в вашей стране, из-за использования патентованной технологии. <sect1><heading>Где взять <bf/<em/ncpfs//. <p>Последние версии пакета <em/ncpfs/ были спроектированы, чтобы компилироваться с ядром <tt/1.2.13/ или ядрами позже <tt/1.3.71/ (это включает 2.x.x). Если вы не используете ядро ни в одной из этих категорий, тогда вам необходимо обновить ядро. <url url="Kernel-HOWTO.html" name="Kernel-HOWTO"> в деталях описывает как сделать это. <p>Вы можете получить пакет <em/ncpfs/ pпо анонимному ftp с сервера Volker по адресу: <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="ftp.gwdg.de"> или <url url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs" name="sunsite.unc.edu"> или других серверов-зеркал. Текущая версия на время написания была: <tt/ncpfs-2.0.11.tgz/ или <tt/ncpfs-2.2.0.tgz/, которая добавила поддержку NDS. <sect1><heading>Построение <bf/<em/ncpfs// для ядра 1.2.13. <p><descrip> <tag>Скомпилируйте ядро с поддержкой Ethernet и IPX</tag>Первое, что вам необходимо сделать -- убедиться что ваше ядро построено с разрешенной поддержкой IPX. В ядре версии <tt/1.2.13/ вам необходимо убедиться, что вы ответили <tt/Y/ на вопрос: '<tt/The IPX protocol/' как показано: <verb> ... ... Assume subnets are local (CONFIG_INET_SNARL) [y] Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] The IPX protocol (CONFIG_IPX) [n] y * * SCSI support ... ... </verb> <p>Вам также необходимо убедиться, что вы включили соответствующий драйвер для вашей карты Ethernet. Если вы не знаете как сделать это, вам необходимо прочитать документ <url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO">. <p>Вы можете продолжать компиляцию вашего ядра. Помните, что необходимо запустить программу <em/lilo/ для инсталляции ядра, после завершения компиляции. <tag>Разархивируйте программное обеспечение <em/ncpfs/</tag> <verb> # cd /usr/src # tar xvfz ncpfs-2.0.11.tgz # cd ncpfs </verb> <tag>Проверьте Makefile</tag>Если вы намереваетесь использовать <em/kerneld/ для автозагрузки модуля ядра <em/ncpfs/, тогда вы должны раскомментировать строку в <tt/Makefile/, которая ссылается на: <tt/KERNELD/. Если вы не уверены, что знаете что это означает вы должны прочитать <url url="Kernel-HOWTO.html" name="Kernel-HOWTO">, чтобы ознакомить себя с настройкой модулей ядра. <tag>Скомпилируйте пакет <em/ncpfs/</tag>Программное обеспечение должно быть скомпилировано просто без всякой дополнительной настройки: <verb> # make </verb> <tag>Скопируйте утилиты IPX куда-нибудь, если их у вас еще нет</tag> После того как команда <em>make</em> выполнится вы должны найти все необходимые утилиты в директории <tt>ncpfs/bin</tt>. Вы можете использовать: <tscreen><verb> # make install </verb></tscreen> <p>чтобы установить утилиты в выбранные Volker'ом директории. Если вы работаете на системе использующей формат ELF, то вам необходимо перезапустить <tt/`ldconfig -v'/ чтобы убедиться, что разделяемые библиотеки можно найти. <tag>Скопируйте модуль <em>ncpfs.o</em> куда необходимо</tag> Если вы компилировали для ядра <tt/1.2.*/, то вы найдете файл названный <tt/ncpfs.o/ в директории <tt>ncpfs/bin</tt> после выполнения <em>make</em>. Это модуль ядра <em>ncpfs</em>. Вы должны скопировать его куда необходимо. На моей системе <em>debian</em> я скопировал его в директорию <tt>/lib/modules/1.2.13/fs</tt> и добавил <tt/ncpfs/ в файл <tt>/etc/modules</tt>, так что он будет автоматически загружен во время загрузки системы. Если вы используете другой дистрибутив Linux, то вы должны найти место где хранятся модули ядра и скопировать скомпилированный модуль туда, или просто скопировать модуль в вашу директорию <tt>/etc</tt>. Для загрузки модуля вручную вам необходимо выполнить команду: <verb> # insmod ncpfs.o </verb> </descrip> <sect1><heading>Построение <bf><em>ncpfs</em></bf> для ядер 1.3.71++/2.0.*. <p>Для последних версий <em/ncpfs/ вы должны использовать ядро <tt/1.3.71/ или более новое, это включает и ядра <tt/2.0.*/. <p>Если вы намереваетесь использовать ядро версии <tt/1.3.71/ или более новое, тогда исходный код <em>ncpfs</em> для ядра уже включен в стандартный дистрибутив ядра. Вы должны только ответить <tt/Y/ на: <tscreen><verb> Networking options  --> ... ... <*> The IPX protocol ... Filesystems  --> ... ... <*> NCP filesystem support (to mount NetWare volumes) ... </verb></tscreen> <p>Вам все равно необходимо следовать инструкциям по компиляции для ядер <tt/1.2.*/, так как вам нужно скомпилировать утилиты, но там не будет файла модуля ядра. <sect1><heading>Настройка и использование <bf><em>ncpfs</em></bf>. <p><descrip> <tag>Настройка сетевого программного обеспечения IPX</tag>Существует два способа настройки сетевого программного обеспечения IPX. Вы можете вручную настроить всю информацию о вашей сети IPX или можете позволить программному обеспечению определить для себя некие разумные установки с помощью команды: Существует два способа настройки: <tscreen><verb> # ipx_configure --auto_interface=on --auto_primary=on </verb></tscreen> <p>Это должно быть разумным в большинстве случаев, но если это у вас не работает, тогда прочитайте выше раздел 'Утилиты IPX' для настройки вашего программного обеспечения вручную. Однако были замечены проблемы при использовании этой команды в сети с клиентами под Windows 95. <tag>Проверка конфигурации</tag>После того как ваша сеть IPX настроена вы сможете использовать команду <em>slist</em>, для того чтобы увидеть список всех файловых серверов Novell в вашей сети. <verb> # slist </verb> <p>Если комманда <tt>slist</tt> выдает сообщение подобное: <tt/ncp_connect: Invalid argument/, тогда скорее всего ваше ядро не имеет поддержки IPX. Проверьте что вы действительно загрузили соответствующее ядро. При загрузке вы должны видеть сообщения о '<tt/IPX/' и '<tt/ncpfs/' в сообщениях системы. Если комманда <em>slist</em> не показывает список серверов, тогда вам необходимо использовать метод ручной настройки сети. <tag>Монтирование сервера или тома Novell(tm)</tag>Если ваше сетевое программное обеспечение IPX работает нормально, то вы можете сейчас смонтировать том файлового сервера Novell в файловую систему Linux. Комманда <em>ncpmount</em> используется для этих целей и требует, чтобы вы задали по крайней мере следующую информацию: <p><enum> <item>Имя файлового сервера <item>Идентификатор входа файлового сервера. Если для него требуется пароль, то он также необходим вам <item>Точка монтирования, т.е. куда вы хотите примонтировать том. Это должна быть существующая директория на вашей машине. <item>(по необходимости) директория на файловом сервере, которую надо смонтировать. </enum> <p>Существует эквивалентная комманда <em/ncpumount/ для размонтирования смонтированных файловых систем NCP. Файловые системы NCP будут отмонтироваться нормально, если ваша машине будет выключаться корректно, так что вам нет необходимости беспокоиться о размонтировании файловых систем вручную с помощью команды <tt>ncpumount</tt> до выполнения команды <tt>halt</tt> или <tt>shutdown</tt>. <p>Пример команды для монтирования файлового сервера <tt>ACCT_FS01</tt>, с идентификационным именем <tt/guest/ без пароля, в директорию <tt>/mnt/Accounts</tt> должен выглядеть подобным образом: <verb> # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n </verb> <p>Заметим, что использование опции <tt/-n/ указывает. что для входа в систему пароль не требуется. Та же самая процедура с указанием пароля <tt/secret/ должна выглядеть так: <verb> # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret </verb> <p>Если вы не укажете ни опцию <tt/-n/ ни опцию <tt/-P/ у вас запросят пароль. <tag>Проверка монтирования</tag>Если монтирование было успешным, то вы обнаружите том доступным с идентификатором пользователя (userid) для которого производился вход в систему. Вы также можете пересечь структуру директорий и найти другие файлы. В качестве альтернативы вы можете использовать опцию <tt/-V/ для монтирования отдельного тома. <p>Так как NCP не обеспечивает значения uid или gid владельцев фалов, все файлы будут иметь разрешения и владельца присвоенных значениям точки монтирования, учтите это при при разделении смонтированного тома между пользователями Linux. <tag>Настройка автоматического выполнения монтирований</tag>Если вы имеете нужду в постоянно смонтированных томах ncp, тогда вы захотите настроить вышеприведенные команды в ваши <em>rc</em>-файлы, так что все будет выполняться автоматически во время загрузки. Если ваш дистрибутив не обеспечивает некоторый способ настройки IPX, как в debian, тогда я рекомендую поместить эти команды в ваш файл <tt>/etc/rc.local</tt>, если он у вас есть. Вы можете использовать что-то подобное: <tscreen><verb> # # Start the ncp filesystem /sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o # configure the IPX network ipx_configure --auto_interface=on --auto_primary=on # guest login to the Accounting fileserver ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n # </verb></tscreen> <p>Существует другой способ настройки монтирований NCP -- это делается путем создания файла <tt>$HOME/.nwclient</tt>. Этот файл содержит детальную информацию о временных или специфических для пользователя монтирований томов NCP, которые будут выполняться регулярно. Это позволит вам хранить информацию о монтировании, так что вы можете делать их заново не указывая все параметры при каждом монтировании. <p>Формат этого файла довольно простой: <tscreen><verb> # Первая запись - запись 'сервера по умолчанию' и она используется # когда вы не указываете сервер явно. # # Пользователь TERRY входит на файловый сервер DOCS_FS01 с паролем 'password' DOCS_FS01/TERRY password # # Гостевой вход на файловый сервер ACCT_FS01 без пароля ACCT_FS01/GUEST - </verb></tscreen> <p>Для активизации этих монтирований вы можете использовать <tscreen><verb> $ ncpmount /home/terry/docs </verb></tscreen> <p>для монтирования: DOCS_FS01 с идентификатором TERRY в директорию <file>/home/terry/docs</file>. Заметим, что эта запись была выбрана потому что сервер не был указан в команде монтирования. Если будет использоваться следующая команда: <tscreen><verb> $ ncpmount -S ACCT_FS01 /home/terry/docs </verb></tscreen> <p>тогда том для пользователя GUEST на сервере ACCT_FS01 должен будет быть смонтирован. <p><bf>Замечание:</bf> чтобы этот механизм работал, вам необходимо чтобы разрешение на файл <tt>$HOME/.nwclient</tt> было равно <tt/0600/, так что вы для этого должны использовать команду: <tscreen><verb> $ chmod 0600 $HOME/.nwclient </verb></tscreen> <p>Если пользователям не являющимися администратором разрешено использовать этот механизм, тогда команда <em>ncpmount</em> должна быть с установленным Set Userid Root, так что вы должны дать этой команде такое разрешение: <tscreen><verb> # chmod 4755 ncpmount </verb></tscreen> <tag>Попробуйте утилиту <em>nsend</em></tag>утилита для посылки сообщений пользователям Novell также включена в этот пакет, она называется <em>nsend</em> и используется как показано: <verb> # nsend rod hello there </verb> <p>должна послать сообщение "hello there" пользователю вошедшему под именем "rod" на ваш "основной" файловый сервер (первая запись в вашем файле <tt/.nwclient/. Вы можете указать другой файловый сервер, используя тот же самый синтаксис как для команды <em>ncpmount</em>. </descrip> <sect><heading>Настройка вашей Linux машины как сервер NCP. <p>Существует два пакета, которые позволяют Linux обеспечивать функции файлового сервера Novell. Они оба позволяют осуществлять доступ к файлам на вашей Linux машине для пользователей использующих клиентское программное обеспечение Novell NetWare. Пользователи могут присоединять и мапировать файловые системы как локальные диски на их машинах точно также как они могут делать на настоящем файловом сервере Novell. Вы можете хотеть попробовать оба, чтобы увидеть какой лучше отвечает вашим намерениям. <sect1><heading>Пакет <bf><em>mars_nwe</em></bf> <p>Martin Stover <tt/<mstover@freeway.de>/ разработал пакет <em>mars_nwe</em> для того чтобы обеспечить в linux работу файловых сервисов и сервисов печати для клиентов NetWare. <p>В случае если вас удивляет имя, то оно расшифровывается как: <em>mars_nwe</em> это Martin Stovers Netware Emulator (Эмулятор Netware Мартина Стоверса). <sect2><heading>Возможности <bf><em>mars_nwe</em></bf>. <p><em>mars_nwe</em> реализует подмножество полного Novell NCP для файловых сервисов, основанного на дисках bindery и также сервисы печати. Также вероятно что этот пакет содержит ошибки, но много людей используют его и число ошибок постоянно уменьшается с выпуском новых версий. <sect2><heading>Где взять <bf><em>mars_nwe</em></bf>. <p>Вы можете получить <em>mars_nwe</em> с <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="ftp.gwdg.de"> или с <url url="ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/">. <p>Версия в момент написания документа была: <tt/mars_nwe-0.99.pl10.tgz/. <sect2><heading>Построение пакета <em>mars_nwe</em> <p><descrip> <tag>Построение ядра с поддержкой Ethernet и IPX</tag>В ядре версии <tt/1.2.13/ вам необходимо только убедиться, что вы ответили <tt/Y/ на вопрос: '<tt/The IPX protocol/' и <tt/N/ на вопрос: `<tt/Full internal IPX network/' как показано: <verb> ... ... The IPX protocol (CONFIG_IPX) [n] y ... ... Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n ... ... </verb> <p>В более новых ядрах производится подобный процесс, но действительный текст запроса может слегка измениться. <p>Вам также надо убедиться, что вы включили соответствующий драйвер для вашей карты Ethernet. Если вы не знаете как сделать это, вам необходимо прочитать документ <url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO">. <p>Затем вы можете приступить к построению вашего ядра. Помните, что надо запустить команду <em>lilo</em> для установки ядра, когда его компиляция завершится. <tag>Разожмите пакет <em>mars_nwe</em></tag> <tscreen><verb> # cd /usr/src # tar xvfz mars_nwe-0.99.pl10.tgz </verb></tscreen> <tag>Построение <em>mars_nwe</em></tag>Процесс построения пакета очень прост. Первый шаг -- просто запустить <tt/make/, эта команда создаст для вас файл <tt/config.h/. Затем вы должны посмотреть и отредактировать файл <tt/config.h/ если это необходимо. Это позволит настроить такие настройки как, какие директории будут использоваться и максимальное количество сессий и томов, которые будет поддерживать сервер. Самые важные выглядят так: <verb> FILENAME_NW_INI расположение инициализационного файла PATHNAME_PROGS где находятся выполнимые программы поддержки PATHNAME_BINDERY где будут находится файлы 'bindery' PATHNAME_PIDFILES директория, куда будут записываться 'pid' файлы MAX_CONNECTIONS максимальное количество одновременных соединений MAX_NW_VOLS максимальное количество томов, которое будет поддерживать mars_nwe MAX_FILE_HANDLES_CONN максимальное количество открытых файлов на одно соединение WITH_NAME_SPACE_CALLS если вы хотите поддерживать клиентов ncpfs INTERNAL_RIP_SAP хотите ли вы поддерживать маршрутизацию rip/sap с помощью mars_nwe SHADOW_PWD хотите ли вы использовать 'теневые пароли' или нет </verb> <p>Значения по умолчанию должны быть нормальными, но все равно проверьте их. <p>Когда это сделано, выполнение команд: <tscreen><verb> # make # make install </verb></tscreen> <p>построит сервер и установит его в соответствующие директории. Установочный скрипт также устанавливает конфигурационный файл <file>/etc/nwserv.conf</file>. <tag>Настройка сервера</tag>Настройка довольно проста. Вам необходимо отредактировать файл <file>/etc/nwserv.conf</file>. Формат этого файла на первый взгляд может показаться загадочным, но на самом деле он довольно прост. Файл содержит некоторое количество одностроковых настроечных данных. Каждая строка разделена пробелами и начинается с числа, которое обозначает содержимое этой строки. Все символы следующие за символом '<tt/#/' считаются комментарием и игнорируются. Martin обеспечивает пример настроечного файла в пакете, но представлю упрощенный пример как альтернативу для вас. <tscreen><verb> # ТОМА (максимум 5) # Только том SYS является необходимым. Директория содержащая том SYS # должна содержать директории: LOGIN, PUBLIC, SYSTEM, MAIL. # Опция 'i' регистр букв. # Опция 'k' преобразует все имена в запросе NCP в нижний регистр # Опция 'm' обозначает том как сменный (полезно для cdroms и т.п.) # Опция 'r' устанавливает том только для чтения # Опция 'o' показывает, что том является единой файловой системой # Опция 'P' разрешает командам использоваться как файлы # Опция 'O' позволяет использовать использовать пространство имен OS/2 # Опция 'N' разрешает использование пространства имен NFS # По умолчанию в верхнем регистре. # Синтаксис: # 1 <Имя тома> <Путь к тому> <Опции> 1 SYS /home/netware/SYS/ # SYS 1 DATA /home/netware/DATA/ k # DATA 1 CDROM /cdrom kmr # CDROM # ИМЯ СЕРВЕРА # Если не установлено, тогда имя машины linux hostname будет # сконвертировано в верхний регистр и использовано. Этот пункт # является опциональным, если не настроено будеи использовано имя # машины. # Синтаксис: # 2 <Имя сервера> 2 LINUX_FS01 # АДРЕС ВНУТРЕННЕЙ СЕТИ # Адрес внутренней сети IPX это свойство, которое упрощает # маршрутизацию IPX для многосетевых машин (машин, которые имеют # порты больше чем на одной сети IPX). # Синтаксис: # 3 <Адрес внутренней сети> [<Номер узла>] # или: # 3 auto # # Если вы используете 'auto', тогда будет использован IP адрес # вашей машины. ЗАМЕЧАНИЕ: это может быть угрожающим, пожалуйста # будьте уверены, что используете уникальное число. # Адрес имеет длину 4 байта в шестнадцатиричной форме (требуется # лидирующий 0x). 3 0x49a01010 1 # СЕТЕВОЕ УСТРОЙСТВО(А) # Этот раздел настраивает вашу сеть IPX. Если она у вас уже # настроена, вам этот пункт не нужен. Это тоже самое что и # использование утилит ipx_configure/ipx_interface до запуска # сервера. # Синтаксис: # 4 <Номер сети IPX> <имя устройства> <тип фрейма> [<ticks>] # Frame types: ethernet_ii, 802.2, 802.3, SNAP 4 0x39a01010 eth0 802.3 1 # СОХРАНЯТЬ МАРШРУТЫ IPX ПОСЛЕ ОКОНЧАНИЯ РАБОТЫ СЕРВЕРА # Синтаксис: # 5 <флаг> # 0 = не сохранять маршруты, 1 = сохранять маршруты 5 0 # ВЕРСИЯ NETWARE # Синтаксис: # 6 <версия> # 0 = 2.15, 1 = 3.11 6 1 # ОБРАБОТКА ПАРОЛЯ # Настоящие клиенты Novell для DOS поддерживают процедуру, которая # шифрует пароли при их изменении. Вы можете выбрать, хотите ли вы # чтобы ваш сервер поддерживал эту процедуру или нет. # Синтаксис: # 7 <флаг> # <флаг> может быть: # 0 force password encryption. (Клиенты не могут сменить пароль) # 1 force password encryption, разрешить изменение нешифрованного пароля # 7 разрешаются нешифрованные пароли, но не пустые # 8 разрешаются нешифрованные пароли включая пустые # 9 полностью нешифрованные пароли (не работает с OS/2) 7 1 # МИНИМАЛЬНЫЕ ПРАВА GID UID # разрешения используемые для подсоединения без входа. Эти разрешения # будут использоваться для файлов на присоединении к вашему # основному серверу # Синтаксис: # 10 <gid> # 11 <uid> # <gid> <uid> из /etc/passwd, /etc/groups 10 200 11 201 # ПАРОЛЬ АДМИНИСТРАТОРА (SUPERVISOR) # Может быть убран после первого запуска сервера. Сервер зашифрует # эту информацию в файл bindery после запуска. Вы должны избегать # использования пользователя 'root' и вместо этого использовать # другой идентификатор для администрирования файлового сервера mars # # Эта запись читается и шифруется в файлы bindery сервера, так что он # необходим только при первом запуске сервера, чтобы обеспечить # чтобы пароль не украли. # # Синтаксис: # 12 <Идентификатор администратора> <имя пользователя Unix> [<пароль>] 12 SUPERVISOR terry secret # ЗАПИСИ ПОЛЬЗОВАТЕЛЕЙ # Этот раздел ассоциирует идентификаторы NetWare с идентификаторами # пользователей unix. Наличие пароля является опциональным. # Синтаксис: 13 <Идентификатор пользователя> <имя пользователя в Unix> [<пароль>] 13 MARTIN martin 13 TERRY terry # НАСТРОЙКА СИСТЕМЫ "ЛЕНИВОГО" АДМИНИСТРИРОВАНИЯ # Если у вас большое количество пользователей и вы не хотите # беспокоиться использованием индивидуального мапирования # пользовательских имен, как в предыдущем случае, то вы можете # автоматически мапировать идентификаторы mars_nwe в имена # пользователей Linux. Но в настоящее время нет способа использовать # пароли linux, так что все пользователи настроенные таким способом # будут пользоваться единственным паролем, указанным здесь. Я # рекомендую не использовать это до тех пор пока вас перестанет # беспокоить безопасность. # Синтаксис: # 15 <флаг> <общий пароль> # <флаг>: 0 - не делать автоматическое мапирование пользователей # 1 - автоматически мапировать пользователей не указанных выше # 99 - автоматически мапировать всех пользователей этим способом 15 0 duzzenmatta # ПРОВЕРКА РАБОТОСПОСОБНОСТИ # mars_nwe будет автоматически убеждаться, что определенные # директории существуют, если установлен этот флаг # Синтаксис: # 16 <флаг> # <флаг> - 0 для нет, не делать, или 1 для да, делать проверку 16 0 # ОЧЕРЕДИ ПЕЧАТИ # Этот раздел ассоциирует принтера NetWare с принтерами unix. # Директории очередей должны быть созданы вручную до попытки печати. # Директории очередей НЕ являются очередями lpd. # Синтаксис: # 21 <имя очереди> <директория очереди> <команда печати unix> 21 EPSON SYS:/PRINT/EPSON lpr -h 21 LASER SYS:/PRINT/LASER lpr -Plaser # ФЛАГИ ОТЛАДКИ # Обычно они не нужны, но могут быть полезными если вы ищите проблему. # Синтаксис: # <тема отладки> <флаг отладки> # # 100 = IPX KERNEL # 101 = NWSERV # 102 = NCPSERV # 103 = NWCONN # 104 = start NWCLIENT # 105 = NWBIND # 106 = NWROUTED # 0 = запрещает отладку, 1 = разрешает отладку 100 0 101 0 102 0 103 0 104 0 105 0 106 0 # ЗАПУСК NWSERV В ФОНОВОМ РЕЖИМЕ И ИСПОЛЬЗОВАНИЕ ФАЙЛА ПРОТОКОЛА # Синтаксис: # 200 <флаг> # 0 = запуск NWSERV в нормальном режиме и не использовать файл протокола # 1 = запуск NWSERV в фоновом режиме и использовать файл протокола 200 1 # ИМЯ ФАЙЛА ПРОТОКОЛА # Синтаксис: # 201 <файл протокола> 201 /tmp/nw.log # ДОПОЛНЯТЬ ПРОТОКОЛ ИЛИ ПЕРЕЗАПИСЫВАТЬ # Синтаксис: # 202 <флаг> # 0 = добавлять к существующему файлу протокола # 1 = переписывать существующий файл протокола 202 1 # ВРЕМЯ ВЫКЛЮЧЕНИЯ СЕРВЕРА # Этот раздел устанавливает время между выдачей команды SERVER DOWN и # действительным выключением сервера. # Синтаксис: # 210 <время> # в секундах. (по умолчанию 10) 210 10 # ИНТЕРВАЛ МЕЖДУ ПЕРЕДАЧАМИ ШИРОКОВЕЩАТЕЛЬНОЙ ПЕРЕДАЧЕЙ МАРШРУТОВ # Время в секундах между широковещательными передачами сервера. # Синтаксис: # 211 <время> # в секундах. (по умолчанию 60) 211 60 # ИНТЕРВАЛ ПРОТОКОЛИРОВАНИЯ МАРШРУТИЗАЦИИ # Устанавливает сколько широковещательных передач произойдет до # протоколирования маршрутизационной информации. # Синтаксис: # 300 <число> 300 5 # ФАЙЛ ПРОТОКОЛА МАРШРУТИЗАЦИИ # Устанавливает имя файла протокола маршрутизации # Синтаксис: # 301 <имя файла> 301 /tmp/nw.routes # ДОБАВЛЕНИЕ/ПЕРЕЗАПИСЬ МАРШРУТНОЙ ИНФОРМАЦИИ # Устанавливает хотите ли вы добавлять информацию к существующему # файлу протокола, или перезаписывать его. # Синтаксис: # 302 <флаг> # <flag> - 0 для дополнения, 1 для создания/перезаписи 302 1 # WATCHDOG TIMING # Устанавливает хронометраж для наблюдательных сообщений, чтобы # убедиться что сеть жива. # Синтаксис: # 310 <значение> # <значение> = 0 - всегда посылать наблюдательные сообщения # < 0 - (-ve) для запрета наблюдений # > 0 - посылать наблюдательные сообщения при # падении трафика ниже 'n' ticks 310 7 # ФАЙЛ СТАНЦИЙ # Устанавливает имя для файла станций, который определяет для каких # машин этот файловый сервер будет выступать как первичный файловый # сервер. Синтаксис этого файла описан в директории 'examples' исходного # кода пакета. # Синтаксис: # 400 <имя файла> 400 /etc/nwserv.stations # ОБРАБОТКА 'GET NEAREST FILESERVER' # Устанавливает как будет обрабатываться запрос SAP 'Get Nearest # Fileserver' (получить ближайший файловый сервер). # Синтаксис: # 401 <флаг> # <флаг>: 0 - запретить запросы 'Get Nearest Fileserver'. # 1 - файл 'stations' перечисляет исключаемые станции. # 2 - файл 'stations' перечисляет включаемые станции. 401 2 </verb></tscreen> <tag>Запуск сервера</tag>Если вы так настроили сервер, что он полагается на внешние программы для настройки вашей сети и и/или обеспечения функций маршрутизации, тогда вы должны запустить эти программы до запуска сервера. Предполагая, что вы настроили сервер, так что он настроит ваши интерфейсы и будет обеспечивать сервисы маршрутизации, тогда вам необходимо только выполнить команду: <tscreen><verb> # nwserv </verb></tscreen> <tag>Проверка работы сервера</tag>Для тестирования сервера вы первым делом должны попытаться присоединиться и войти с клиента NetWare на вашей сети. Затем вы должны сделать <tt/CAPTURE/ с клиента и попытаться напечатать. Если обе этих вещи работают хорошо, тогда сервер работает. </descrip> <sect1><heading>Пакет <bf><em>lwared</em></bf> <p>Ales Dryak <tt/<A.Dryak@sh.cvut.cz>/ разработал <em>lwared</em> чтобы позволить Linux функционировать как файловый сервер на базе NCP. <p>Ales назвал пакет <em>lwared</em>, сокращение для <em>LinWare Daemon</em>. <sect2><heading>Возможности <bf><em>lwared</em></bf> <p>Сервер <em>lwared</em> обеспечивает подмножество всех функций Novell NCP. Он включает функции сообщений, но не обеспечивает возможности печати. В настоящее время он не совсем хорошо работает с клиентами Windows95 или Windows NT. Сервер <em>lwared</em> полагается на внешние программы для выполнения функций построения и обновления таблиц маршрутизации IPX и таблиц SAP. "Плохие" клиенты могут вызвать падение сервера. Что важно, возможность трансляции имен не была включена. <p>Сервер работает с оболочками NETX и VLM NetWare. <sect2><heading>Получение <bf><em>lwared</em></bf> <p>Пакет <em>lwared</em> может быть построен для любого ядра новее чем <tt/1.2.0/, я рекомендую вам использовать ядро версии <tt/1.2.13/, так как для этого не требуется заплаток (patches) для ядра. Некоторые функциональные возможности IPX изменились в ядрах версии <tt/1.3.*/ и это означает, что требуются заплатки чтобы все работало правильно. Соответствующие заплатки включены в состав новых ядер, так что если вы должны использовать ядра в стадии alpha, вы все равно сможете заставить <em>lwared</em> работать правильно. <p>Вы можете получить пакет <em>lwared</em> по анонимному ftp с: <url url="ftp://klokan.sh.cvut.cz/pub/linux/linware/" name="klokan.sh.cvut.cz"> <p>или с: <url url="ftp://sunsite.unc.edu/pub/Linux/system/network/daemons" name="sunsite.unc.edu"> или серверов-зеркал. Текущая версия в момент написания была: <tt/lwared-0.95.tar.gz/. <sect2><heading>Построение <bf><em>lwared</em></bf> <p><descrip> <tag>Разожмите пакет <em>lwared</em></tag>Выполните что-то подобное этому: <verb> # cd /usr/src # tar xvpfz lwared-0.95.tar.gz </verb> <tag>Построение ядра с поддержкой Ethernet и IPX</tag>Если вы используете alpha версии ядер <tt/1.3.*/, тогда вы должны использовать ядро версии <tt/1.3.17/ или более новое, потому-что прилагаемые заплатки были сделаны для него. Ядра <tt/1.3.*/ старее чем <tt/1.3.17/ требуют ручного исправления для установки (<em>некоторая информация о том как сделать это включена в файл <tt/INSTALL/ в составе пакета</em>). Для установки заплаток для ядра версии <tt/1.3.17/ или более новых вы должны использовать команду: <verb> # make patch </verb> <p>После приложения патчей, если необходимо, следующая вещь которую вам необходимо сделать -- это убедиться что ваше ядро скомпилированно с поддержкой IPX. Для ядра версии <tt/1.2.13/ вам необходимо только убедиться, что вы ответили <tt/Y/ на вопрос: '<tt/The IPX protocol/' как показано: <verb> ... ... Assume subnets are local (CONFIG_INET_SNARL) [y] Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] The IPX protocol (CONFIG_IPX) [n] y * * SCSI support ... ... </verb> <p>В более новых ядрах процесс сходен, но текст запроса может незначительно измениться. <p>Вам также будет необходимо проверить, что вы включили соответствующий драйвер для вашей карты Ethernet. Если вы не знаете как сделать это, тогда вы должны прочитать документ <url url="Ethernet-HOWTO.html" name="Ethernet-HOWTO">. <p>Затем вы можете продолжать построение вашего ядра. Помните, что необходимо запустить <em>lilo</em> для установки ядра, после окончания процесса компиляции. <tag>Компиляция и установка <em>lwared</em></tag>Для компиляции <em>lwared</em> вы должны сначала проверить, и если необходимо отредактировать, файл <tt>server/config.h</tt>. Этот файл содержит различные настройки, которые будут управлять поведением вашего сервера при запуске. Значения по умолчанию достаточно разумны, но вы можете проверить, что указанные директории для файлов протокола и файлов настройки соответствуют вашей системе. <verb> # make depend # make # make install </verb> <p>Я заметил, что '<tt/make depend/' жалуется на то что не нашла файл <tt/float.h/ на моей системе, но все равно работает. Я также нашел, что когда я пытался компилировать с gcc <tt/2.6.3/, я изменил строку: <verb> #include <net/route.h> </verb> <p>на <verb> #include <net/if_route.h> </verb> <p>в <tt>lib/ipxkern.c</tt>, так как файл иногда меняет имя. <p>'<tt/make install/' будет пытаться установить сервер и программы демонов маршрутизации в вашу директорию <tt>/usr/sbin</tt>, программу <em>lwpasswd</em> в директорию <tt>/usr/bin</tt>, программы работы с IPX будут установлены в директорию <tt>/sbin</tt> и справочные страницы будут установлены в директорию <tt>/usr/man</tt>. Если любое из этих директорий не подходят для вашей системы, то вы должны отредактировать файл <tt/Makefile/ и изменить конечные директории на нужные. </descrip> <sect2><heading>Настройка и использование <bf><em>lwared</em></bf> <p><descrip> <tag>Настройка сети IPX</tag>Первая вещь которую вы должны сделать -- это настройка ваших интерфейсов Ethernet для поддержки сетей IPX, которые ваш сервер будет поддерживать. Для того чтобы сделать это вам необходимо знать сетевые адреса IPX для каждого из сегментов LAN, какие устройства Ethernet (<tt/eth0/, <tt/eth1/ etc.) находятся на каком сегменте, какой тип фреймов (<tt/802.3/, <tt/EtherII/ etc.) использует каждый сегмент LAN и какой адрес внутренней сети должен использовать ваш сервер (это необходимо только если ваш сервер будет обслуживать больше одного сегмента LAN). Настройка для сервера, который находится в двух непохожих сегментах с сетевыми адресами IPX равными <tt/23a91300/ и <tt/23a91301/ и адресом внутренней сети <tt/bdefaced/ может выглядеть так: <verb> # ipx_internal_net add BDEFACED 1 # ipx_interface add eth0 802.3 23a91300 # ipx_interface add eth1 etherii 23a91301 </verb> <tag>Запуск демонов маршрутизации</tag>Программное обеспечение ядра в действительности делает только перекладывание пакетов IPX, также как и для IP, но ядро требует дополнительных программ для управления обновлением таблицы маршрутизации. Для IPX требуются два демона и оба поставляются с <em>lwared</em>: <em>ipxripd</em> управляет маршрутизационной информацией IPX, а <em>ipxsapd</em> управляет информацией SAP. Для запуска демонов вам только необходимо указать место где они могут писать свои файлы протокола: <verb> # ipxripd /var/adm/ipxrip # ipxsapd /var/adm/ipxsap </verb> <tag>Настройка сервера <em>lwared</em></tag>Существует два файла, которые вы должны настроить вручную чтобы разрешить пользователям входить на ваш сервер <em>lwared</em>. Это: <p><descrip> <tag><tt>/etc/lwpasswd</tt></tag>Это место где хранится информация о пользователях LinWare. программа <em>lwpasswd</em> используется для работы с записями. В простейшем случае файл <tt>/etc/lwpasswd</tt> выглядит следующим образом: <verb> ales: terryd: guest: </verb> <p>Этот формат является простым списком идентификаторов входа с последующим символом ':' и затем шифрованная версия пароля для входа. Здесь есть несколько дополнений: отсутствие шифрованного пароля означает вход без пароля, пользователи LinWare должны быть зарегестрированы в Linux, так что любой пользователь кроме записи в файле <tt>/etc/lwpasswd</tt> также должен иметь запись в <tt>/etc/passwd</tt> и только пользователь <tt/root/ является пользователем, который может менять пароль для других пользователей LinWare. Если вы вошли в систему как <tt/root/ то вы можете сменить пароль пользователя LinWare как это показано: <verb> # lwpasswd rodg Changing password for RODG Enter new password: Re-type new password: Password changed. </verb> <tag><tt>/etc/lwvtab</tt></tag>Этот файл содержит таблицу томов LinWare и хранить информацию о том какие директории будут доступны для пользователей LinWare (этот файл похож по природе на файл NFS <tt>/etc/exports</tt>). Простой пример формата этого файла: <verb> SYS /lwfs/sys DATA /lwfs/data HOME /home </verb> <p>Формат очень прост: После имени тома через пробел следует экспортируемая директория Linux. Вы должны иметь <bf>по крайней мере</bf> запись для тома <tt/SYS/, чтобы запустить сервер. Если вы намереваетесь для ваших DOS клиентов использовать сервер LinWare как первичный файловый сервер, тогда вы должны создать стандартную структуру директорий тома <tt/SYS/ в директории экспортируемой как ваш том <tt/SYS/. Так как эти файлы являются патентованными и авторскими правами на них владеет корпорация Novell, вы дожны иметь на них лицензию. Если ваши пользователи будут использовать файловый сервер Novell как первичный сервер, то это не является необходимым. </descrip> <tag>Запуск сервера <em>lwared</em></tag>tada! <verb> # lwared </verb> <p>Это выглядит разочаровывающе, не так ли? Ok, у вас есть вопрос? Какое имя сервера будет присвоено? Если вы запустите сервер как показано выше, то имя сервера LinWare будет присвоено на основе имени возвращенного командой Linux <em>hostname</em>. Если вы хотите какое-то другое имя, тогда вы можете задать имя сервера при его старте, например команда: <verb> # lwared -nlinux00 </verb> <p>должна запустить сервер с именем <tt/linux00/. <tag>Тестирование сервера <em>lwared</em></tag>Самая первая вещь для проверки -- это то что ваш сервер LinWare появился в выводе команды <em>slist</em> запущенной с клиента DOS на вашей сети. Программа <em>slist</em> хранится на томе <tt/SYS/ файлового сервера Novell, так что вы должны сделать это с какой-то машины уже подключенной куда-нибудь. Если это не произошло, то проверьте что запущены <em>ipxsapd</em> и <em>lwared</em>. Если выполнение команды <em>slist</em> прошло удачно, то попытайтесь подключиться к серверу и замапировать том: <verb> C:> attach linux00/ales ... ... C:> map l:=linux00/data: C:> l: </verb> <p>Вы должны затем нормально обращаться с новым мапированием также как с другими. Разрешения на файлы которые вы будете иметь, будут основаны на разрешениях, которые разрешены вашими правами на <em>linux</em>, которые являются параллельными вашему идентификатору LinWare. </descrip> <sect><heading>Настройка машины под Linux как клиента печати Novell <p>Пакет <em/ncpfs/ включает две маленькие программы, которые позволяю вам производить печать с вашей Linux-машины на принтер подключенный к серверу печати Novell. Команда <em>nprint</em> позволяет вам печатать файл на очередь печати NetWare. Команда <em>pqlist</em> позволяет вам выводить список доступных очередей печати на сервере NetWare. <p>Для получения и установки этих команд просто следуйте описанным ранее инструкциям относящимся к клиенту NCP. <p>Обе команды требуют чтобы вы указали имя пользователя и пароль, так что вы можете нормально рассматривать создание некоторых скриптов чтобы сделать задачу печати более легкой. <p>Пример может выглядеть так: <tscreen><verb> # pqlist -S ACCT_FS01 -U guest -n # nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt </verb></tscreen> <p>Синтаксис схож с синтаксисом команды <em>ncpmount</em>. Вышеприведенные примеры предполагают, что файловый сервер <tt/ACCT_FS01/ имеет пользователя <tt/guest/ без пароля, очередь печати называемая <tt/LASER/ существует и пользователю <tt/guest/ разрешено печатать в нее. <p>На моих машинах с Linux у меня имеется короткий скрипт на командном языке для каждого из принтеров Novell. Они могут быть использованы как фильтры печати, для того, чтобы можно было печатать используя стандартную систему печати Linux. <sect><heading>Настройка вашей Linux-машины как сервера печати Novell <p>Программа, которая позволяет вашей Linux-машине выступать как сервер печати в сети Netware включена в пакет <em/ncpfs/. Для инструкций о том как получить и построить пакет, следуйте информации выше, в разделе `Клиент Netware'. Альтернативная поддержка включена в пакет <em/mars_nwe/. <sect1><heading>Непременные условия <p>Настройка довольно проста, но полагается на то что вы уже выполнили настройку принтеров и они работают под Linux. Описание процесса настройки дается в <url url="Printing-HOWTO.html" name="Printing-HOWTO">. <sect1><heading>Настройка <p>Кагда у вас есть работающая конфигурация принтеров, и вы построили и установили утилиту <em/pserver/, то вам необходимо добавить команды ее запуска в ваши <tt/rc/-файлы. <p>Точно какая команда будет использоваться будет завесить от того как вы хотите управлять ею, но простейшая форма подобная следующей будет работать: <tscreen><verb> # pserver -S ACCT_01 -U LASER -P secret -q LASERJET </verb></tscreen> <p>Этот пример говорит утилите <em/pserver/ войти на файловый сервер <tt/ACCT_01/ с именем пользователя <tt/LASER/ и паролем <tt/secret/ и брать задания из очереди печати <tt/LASERJET/. Когда входящее задание печати будет переслано то будет использоваться команда печати по умолчанию <em/lpr/ для переноса задания печати на демон печати Linux. Очередь печати должна быть уже определена на файловом сервере и пользователь должен иметь привелегии оператора для этой очереди. <p>Вы можете использовать, если хотите, любую команду Linux для принятия и печати задания печати. Аргумент <tt/-c/ позволяет вам указать точную команду печати. Например: <tscreen><verb> # pserver -S ACCT_01 -U LASER -P secret -q LASERJET -c "lpr -Plaserjet" </verb></tscreen> <p>должен работать также как предыдущий пример за исключением того, что он будет посылать задания на конфигурацию <tt/laserjet/ из <em/printcap/ вместо конфигурации по умолчанию. <sect><heading>Обзор команд пользователя и администрирования <em/ncpfs/ <p>Недавние версии пакета <em/ncpfs/ Volker'а, включают набор пользовательских команд и команд администрирования, которые вы сможете использовать. Эти утилиты компилируются и устанавливаются как часть инсталляционного процесса <em/ncpfs/, так что если у вас их еще нет, то следуйте инструкциям приведенным выше в разделе 'Клиент Novell' для построения и установки утилит. <p>Детальная информация приведена в поставляемых справочных страницах, но я приведу короткое описание этих команд: <sect1><heading>Команды пользователя <p><descrip> <tag/ncopy/Network Copy - позволяет эффективно копировать файлы используя функцию копирования Netware вместо копирования по сети. <tag/nprint/Network Print - позволяет вам печатать файл на очередь печати Netware на сервере Netware. <tag/nsend/Network Send - позволяет вам послать сообщение другим пользователям на сервере Netware. <tag/nwbols/List Bindery Objects - позволяет вам увидеть содержимое bindery на сервере Netware. <tag/nwboprops/List Properties of a Bindery Object - позволяет вам просмотреть свойства объекта bindery Netware. <tag/nwbpset/Set Bindery Property - позволяет вам установить свойства объекта bindery Netware. <tag/nwbpvalues/Print Netware Bindery Objects Property Contents - позволяет вам напечатать содержимое свойства bindery Netware. <tag/nwfsinfo/Fileserver Information - печатает некоторую общую информацию о сервере Netware. <tag/nwpasswd/Netware Password - позволяет вам сменить пароль пользователя Netware. <tag/nwrights/Netware Rights - показывает список прав ассоциированных с отдельным файлом или директорией. <tag/nwuserlist/Userlist - перечисляет пользователей в настоящее время подключенных к файловому серверу Netware. <tag/pqlist/Print Queue List - показывает содержимое очереди печати Netware. <tag/slist/Server List - показывает список известных серверов Netware. </descrip> <sect1><heading>Утилиты администрирования <p><descrip> <tag/nwbocreate/Create a Bindery Object - позволяет вам создать объект bindery Netware. <tag/nwborm/Remove Bindery Object - позволяет вам удалить обьект bindery Netware. <tag/nwbpadd/Add Bindery Property - позволяет вам установить значение существующего свойства объекта bindery Netware. <tag/nwbpcreate/Create Bindery Property - позволяет вам создать новое свойство для существующего объекта bindery Netware. <tag/nwbprm/Remove Bindery Property - позволяет удалить свойство из объекта bindery Netware. <tag/nwgrant/Grant Trustee Rights - позволяет вам установить попечительские (trustee) права на директорию на файловом сервере Netware. <tag/nwrevoke/Revoke Trustee Rights - позволяет вам удалить попечительские права с директории на файловом сервере Netware. </descrip> <sect><heading>Настройка PPP для поддержки IPX <p>Новые версии <em>pppd</em>, демона PPP для Linux, имеют поддержку, которая позволит вам переносить пакеты IPX через последовательные соединения PPP. Вам необходим по крайней мере демон версии <tt/ppp-2.2.0d/. Смотрите <url url="PPP-HOWTO.html" name="PPP-HOWTO"> для детальной информации о том где найти его. При компиляции <em>pppd</em> вы должны убедиться что вы разрешили поддержку IPX добавив следующие две строки: <tscreen><verb> IPX_CHANGE = 1 USE_MS_DNS = 1 </verb></tscreen> <p>в файл: <tt>/usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux</tt>. <p><tt/IPX_CHANGE/ настраивает поддержку IPX в PPP. Определение <tt/USE_MS_DNS/ позволяет машинам с Microsoft Windows95 делать Name Lookups (Поиск Имен). <p>Настоящий фокус чтобы заставить это все работать -- это знание как настраивать демона. <p>Существует много способов настройки, но я опишу только два о которых я получил какую-то информацию. Я никогда не пытался сделать это, так что рассматривайте это раздел как экспериментальный, и если у вас что-то получится дайте мне знать. <sect1><heading>Настройка сервера IPX/PPP <p>Первая вещь которую вам нужно сделать это настроить вашу Linux-машину как сервер IP/PPP. Не паникуйте. Это не так трудно. Далее, следуйте инструкциям в <url url="PPP-HOWTO.html" name="PPP-HOWTO"> и все должно быть ok. Когда вы сделаете это есть несколько простых изменений, которые вам нужны чтобы заставить работать IPX на той же конфигурации. <sect2><heading>Первые шаги <p>Один из первых шагов которые вы должны сделать -- это настройка вашей Linux машины как маршрутизатора IPX, как это описано в соответствующем разделе выше в этом документе. Вам не нужно использовать команду <em/ipx_route/ для интерфейса <tt/ppp/ потому-что <em/pppd/ сам настроит это для вас как он это делает с IP. Когда у вас запущен демон <em/ipxd/ он сам будеи автоматически определять любые новые интерфейсы IPX и распространять маршруты для них. В этом случае ваша машина будет видна другим машинам автоматически при подсоединении. <sect2><heading>Дизайн <p>Когда вы работаете как сервер, то вы несете ответственность за назначение сетевых адресов на каждое PPP-соединение, когда оно установлено. Это важный вопрос, каждое PPP-соединение будет являться сетью IPX и должно иметь уникальный сетевой адрес IPX. Это означает, что вы должны решить как вы будете назначать адреса и какими они будут. Простое решение заключается в выделении одного сетевого адреса IPX на каждое последовательное устройство, которое будет поддерживать IPX/PPP. Вы можете выдавать сетевые адреса IPX основанные на идентификаторе подключающегося пользователя, но я не вижу особенно хорошей причины чтобы делать это. <p>Я буду предполагать что у вас это сделано, и что вы имеете два последовательных устройства (модема), которые вы будете использовать. Адреса которые я присвоил в этом примере следующие: <tscreen><verb> устройство Сетевой адрес IPX ------  ------------------ ttyS0 0xABCDEF00 ttyS1 0xABCDEF01 </verb></tscreen> <sect2><heading>Настройка <em>pppd</em>. <p>Настройте ваш файл <tt>/etc/ppp/options.ttyS0</tt> как показано: <tscreen><verb> ipx-network 0xABCDEF00 ipx-node 2:0 ipxcp-accept-remote </verb></tscreen> <p>и ваш файл <tt>/etc/ppp/options.ttyS1</tt> как: <tscreen><verb> ipx-network 0xABCDEF01 ipx-node 3:0 ipxcp-accept-remote </verb></tscreen> <p>Это скажет <em>pppd</em> выделить соответствующий сетевой адрес IPX для соединения когда оно установлено, установить номер локального узла в <tt/2/ или <tt/3/ и позволит удаленному узлу переписать номер удаленного узла в тот который ему нужен. Заметим что каждый из этих узлов являются шестнадцатиричными числами и требуется <tt/0x/ а начале сетевого адреса, но не требуется в начале адреса узла. <p>Существуют другие места в которых эта информация может быть настроена. Если вы имеете только один модем, то запись должна быть расположена в файле <tt>/etc/ppp/options</tt>. В других случаях эта информация может быть передана через командную строку <em>pppd</em>. <sect2><heading>Проверка настройки сервера <p>Для проверки настройки сервера вам необходим уже работающий клиент. Когда клиент подсоединяется, входит в систему и запустится <em>pppd</em>, то он присвоит сетевой адрес, проверьте номер узла клиента этого сервера и согласуете номера узлов клиентов. Когда это будет выполнено и после того как <em>ipxd</em> определит новый интерфейс, клиент сможет устанавливать соединения IPX с удаленными машинами. <sect1><heading>Настройка клиента IPX/PPP <p>В настройке клиента необходимость настройки вашей Linux-машины как маршрутизатора IPX зависит от того имеете ли вы локальную сеть для которой вы хотите выступать как маршрутизатор или нет. Если у вас автономная машина, подключенная к серверу IPX/PPP, то вам нет необходимости запускать <em>ipxd</em>, но если у вас есть локальная сеть и вы хотите чтобы все машины в этой сети могли использовать IPX/PPP маршрутизацию, то вы должны настроить и запустить <em>ipxd</em> как описано. Эта настройка более проста потому-что у вас нет множественных последовательных устройств, которые необходимо настраивать. <sect2><heading>Настройка <em>pppd</em> <p>Простейшая конфигурация это такая, которая позволяет серверу обеспечивать всю информацию о настройке сети IPX. Эта конфигурация должна быть совместимой с конфигурацией сервера, описанной выше. <p>Далее вам необходимо добавить некоторые опции в ваш файл <tt>/etc/ppp/options</tt>: <tscreen><verb> ipxcp-accept-network ipxcp-accept-remote ipxcp-accept-local </verb></tscreen> <p>Эти опции говорят <em>pppd</em> полностью работать пассивно и принимать все настроечные детали от сервера. Вы можете установить значения по умолчанию для серверов, которые не обеспечивают эти детали добавлением записей <tt/ipx-network/ и <tt/ipx-node/ сходных с конфигурацией сервера. <sect2><heading>Тестирование клиента IPX/PPP <p>Для тестирования клиента вам необходим работающий сервер к которому можно подключиться. После того как вы подключились и запустился <tt>pppd</tt> вы должны увидеть детали настройки IPX на вашем устройстве <tt/ppp0/ когда вы запустите команду <em>ifconfig</em> и вы должны мочь использовать <em>ncpmount</em>. <p>Я не уверен должны ли вы добавлять маршруты IPX вручную, чтобы достичь удаленного файлового сервера. Вероятно да. Если кто-нибудь запустит такую конфигурацию сообщите мне я буду благодарен. <sect><heading>Тунелирование IPX через IP <p>Многие из вас бывают в ситуации когда у вас имеется две локальных сети Novell только с IP соединением между ними. Вы можете спросить, "Как играть в многопользовательскую игру DOOM для DOS через такое расположение?" Andreas Godzina <tt/<ag@agsc.han.de>/ имеет ответ на этот вопрос в виде <em>ipxtunnel</em>. <p><em>ipxtunnel</em> обеспечивает похожее на мост (bridge) свойство для IPX позволяя пакетам IPX быть включенными в датаграммы tcp/ip, так что они могут переносится tcp/ip соединением. Программа следит за пакетами IPX и когда пакет приходит она заталкивает его в датаграмм tcp/ip и перенаправляет его на удаленную машину, адрес IP которой вы укажете. Конечно для того чтобы это работало на машине на которую вы направляете инкапсулированные пакеты IPX также должна быть запущена копия той же версии <em>ipxtunnel</em> как и у вас. <sect1><heading>Получение <em>ipxtunnel</em> <p>Вы можете получить <em>ipxtunnel</em> с <url url="ftp://sunsite.unc.edu/pub/Linux/system/network/daemons" name="sunsite.unc.edu"> или серверов-зеркал. <sect1><heading>Построение <em>ipxtunnel</em> <p><em>ipxtunnel</em> для меня строился просто используя следующие команды: <tscreen><verb> # cd /usr/src # tar xvfz .../ipxtunnel.tgz # cd ipxtunnel # make </verb></tscreen> <sect1><heading>Настройка <em>ipxtunnel</em> <p>Настройка <em>ipxtunnel</em> довольно проста. Допустим, что машина вашего друга называется <tt/gau.somewhere.com/ а ваша машина называется <tt/gim.sw.edu/. <em>ipxtunnel</em> использует конфигурационный файл называемый <tt>/etc/ipxtunnel.conf</tt>. Этот файл позволяет указать порт UDP по умолчанию для использования в соединении tcp/ip, куда посылать инкапсулированные данные и на каком локальном интерфейсе должен слушать <em>ipxtunnel</em> и на который отправлять пакеты IPX. <p>Простой конфигурационный файл должен выглядеть примерно так: <tscreen><verb> # # /etc/ipxtunnel.conf для gim.sw.edu # # Порт UDP для использования: (по умолчанию 7666) port 7777 # # Удаленная машина на которую отправлять пакеты IPX: (нет значения по умолчанию) remote gau.somewhere.com # # Локальные интерфейсы на которых искать пакеты IPX: (по умолчанию eth0) interface eth0 interface eth1 </verb></tscreen> <p>Очевидно, что другая машина должна иметь сходный конфигурационный файл указывая эту машину как <tt/удаленную/. <sect1><heading>Тестирование и использование <em>ipxtunnel</em> <p><em>ipxtunnel</em> работает <bf>подобно</bf> мосту IPX, так что сети IPX на другом конце соединения вероятно должны быть теже самыми. Andreas никогда не тестировал <em>ipxtunnel</em> в среде, которая в действительности поддерживает файловые сервера Novell, так что если вы попробуете сделать это в среде с файловыми серверами Novell, то дайте знать Andreas работает это или нет. <p>Если <em>ipxtunnel</em> работает вы должны смочь запустить вашу машину с DOOM на каждом конце соединения работающего в режиме IPX и вы должны видеть друг друга. <p>Andreas использовал этот код только через высокоскоростные линии и он не делал никаких объявлений о производительности при связи на низких скоростях. Дайте ему знать что работает у вас а что нет. <sect><heading>Коммерческая поддержка IPX для Linux. <sect1><heading>Caldera'a Network Desktop <p>Caldera Inc., производит дистрибутив Linux, который содержит диапазон коммерчески поддерживаемых расширений, включая полнофункциональную поддержку клиента Novell NetWare. Основа дистрибутива это хорошо известный дистрибутив Red Hat Linux и Caldera добавила к нему свой продукт "Network Desktop". Поддержка NetWare обеспечивает полнофункциональный клиент Novell NetWare, построенный на технологии, лицензированной у Novell Corporation. Клиент обеспечивает полный клиентский доступ к файловым серверам Novell 3.x и 4.x и включает таких возможностей как NetWare Directory Service (NDS) и RSA кодирование. <p>Вы можете получить намного больше информации и информацию о приобретении с: <url url="http://www.caldera.com/" name="Web Сервер Caldera Inc">. <p>Если вы работаете внутри среды Netware 4.x и/или NDS, то сетевой клиент Caldera единственное доступное решение. <p>Если вы имеете критические коммерческие приложения для поддержки Novell для Linux, то продукт Caldera должен быть тем на что вы должны обратить внимание. <sect><heading>Некоторые часто задаваемые вопросы (FAQ) <p><descrip> <tag>Где я могу найти коммерчески поддерживаемое программное обеспечение IPX для Linux?</tag>Caldera Corporation предлагает полностью лицензированного и полностью поддерживаемого клиента Netware 3.x и 4.x. Вы можете получить информацию о нем с <url url="http://www.caldera.com/" name="Web-сервера Caldera Inc">. <tag>Работает ли программное обеспечение IPX с Arcnet/Token Ring/и т.п.?</tag>Программное обеспечение Linux для поддержки IPX работает с интерфейсами ArcNet Token Ring. Я еще не слышал о ком-нибудь пробовавшем его с AX.25. Настройка такая же как настройка для ethernet за исключением того, что вы должны подставлять где необходимо соответствующие имена вместо 'eth0' и соответствующие адреса оборудования. <tag>Как я могу настроить больше одного интерфейса IPX?</tag>Если у вас больше одного сетевого интерфейса, то вы должны использовать команду <em>ipx_interface</em> для ручной настройки каждого интерфейса, вы не должный использовать `plug n play' настройку. <tag>Как я могу выбрать адреса IPX?</tag>Работа сети IPX сходна, но не одинакова, с работой сети IP. Главное отличие в способе использования адресов. IPX не использует концепцию подсетей и так что типы ассоциаций которые у вас есть между сетевыми адресами и сетями являются разными. Правила довольно просты: <p><itemize> <item>Каждый сетевой адрес IPX должен быть уникальным в глобальной сети (WAN). Это включает адрес внутренней сети. Много организаций использующих IPX в глобальных сетях имеют некоторый сорт стандарта адресации, которому вы должны следовать. <item>Каждая машина в индивидуальной сети должна иметь уникально присвоенный адрес. В случае сети на основе ethernet это не трудно, так как каждая карта имеет уникальный адрес. В случае IPX/PPP это означает, что вы должны убедиться, что вы выделили уникальные адреса на все машины в сети, независимо от того к какому концу соединения они подключены. Адрес машины может быть не уникальным в пределах глобальной сети, поскольку сетевой адрес используемый в комбинации с адресом машины уникально идентифицируют машину. </itemize> <tag>Что такое тип фрейма, какой тип я должен использовать?</tag>Существуют различные типы фреймов через которые вы можете работать с IPX. Наиболее общие из них описаны в разделе 'Общие термины' этого документа (Подраздел `<tt/Типы фреймов/'). <p>Если вы устанавливаете вашу машину в существующую сеть, тогда вы должны использовать тот тип, который уже используется, для того чтобы вы могли взаимодействовать с другими машинами в сети, но если вы устанавливаете совершенно новую сеть, то вы можете использовать любой из приведенного ряда протоколов для переноса потоков IPX. Моя рекомендация если вы настраиваете совершенно новую сеть и вам необходимо переносить потоки и IP и IPX, то использовать тип фрейма <tt/Ethernet_II/. <tag>Моя машина с Windows95 не работает с автоопределением типа фрейма?</tag>Вероятно да, может не работать. Я мог бы здесь сделать злобный комментарий, но вместо этого я просто предполагаю что вы должны использовать ручную настройку типа фреймов вместо автоматической. Это вероятно самый лучший способ. <tag>Почему я получаю сообщение `invalid argument' когда я настраиваю IPX?</tag>Вы вероятно не запустили ядро с поддержкой IPX, либо перекомпилируйте ядро, или дважды проверьте что вы действительно использовали lilo для установки и запуска нового ядра. <tag>Почему я получаю сообщение `package not installed' когда я настраиваю IPX?</tag>Вы вероятно не запустили ядро, которое поддерживает IPX, либо перекомпилируйте ядро, или дважды проверьте что вы действительно использовали lilo для установки и запуска нового ядра. <tag>Почему я получаю сообщение `IPX support not in kernel' от <em/pppd/?</tag>Вы вероятно скомпилировали IPX как модуль и не обеспечили чтобы модуль загружался до запуска <em/pppd/. <tag>Как я могу экспортировать по NFS смонтированную файловую систему NCP ?</tag>Для использования NFS для экспорта файловой системы NCP вы должны монтировать ее используя опцию <tt/-V/ команды <em>ncpmount</em>. Эта опция разрешает вам монтировать только один том файлового сервера вместо обычного монтирования всех томов. Когда вы делаете это ваш демон NFS позволит вам экспортировать эту файловую систему обычным способом. <tag>Почему не работает slist, когда у меня установлена внутренняя сеть в mars_nwe?</tag>Вы должны разрешить функцию 'get nearest server'. Так что запись 401 в файле <tt>/etc/nwserv.conf</tt> должна быть равна 0, до тех пор пока у вас нет причины не отвечать на запрос 'get nearest servers'. Если вы просто хотите заставить работать slist и не отвечать на каждый запрос 'get nearest server', то включите адрес внутренней сети и номер узла в файл <tt>/etc/nwserv.stations</tt> и установите запись в файле <tt>/etc/nwserv.conf</tt>? в значение 2. <tag>Работает ли пакет ncpfs с mars_nwe?</tag>Код Martin'а и Volker'а медлено начали сближаться. Недавние версии <em>mars_nwe</em> имеют опцию разрешающую ему работать с <em>ncpfs</em>. Вы должны разрешить опцию <tt/WITH_NAME_SPACE_CALLS/ в файле <tt/config.h/ пакета <em>mars_nwe</em>. <tag>Есть ли какое-нибудь свободное программное обеспечение для DOS для работы с mars_nwe?</tag>Хитрый вопрос заслуживает хитрого ответа. Я рад что вы спросили, Martin имеет пакет который он распространяет параллельно со своим пакетом <em>mars_nwe</em>, который предлагает поддержку свободного клиента DOS для сервера <em>mars_nwe</em>. Вы можете найти его на тех же серверах что и сам сервер, и он будет называться <tt/mars_dosutils-0.01.tgz/. Он включает исходный код на C для таких программ как <em>slist.exe</em>, <em>login.exe</em>, <em>map.exe</em> и т.п. Исходный код может быть откомпилирован с помощью Borland(tm) C. </descrip> <sect><heading>Сообщение об авторских правах <p>IPX-HOWTO это руководство по программному обеспечению поддерживающему протокол IPX в Linux. Авторские права Terry Dawson, 1995. <p>Эта программа является свободной; вы можете распространять и/или модифицировать ее под действием терминов изложенных в GNU General Public License опубликованной Free Software Foundation; либо версии Лицензии, или (на ваш вкус) любой более поздней версии. <p>Эта программа распространяется в надежде, что она будет полезной, но БЕЗ ВСЯКОЙ ГАРАНТИИ; даже без намечаемой гарантии ТОРГОВОЙ СПОСОБНОСТИ или СОСТОЯНИЯ ЗДОРОВЬЯ ДЛЯ ОСОБЫХ ЦЕЛЕЙ. Смотрите GNU General Public License для более детальной информации. <p>Вы должны распространять копию GNU General Public License вместе с этой программой; если нет, то пишите: Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. <sect><heading>Разное и благодарности <p>Terry Dawson <tt/<terry@perf.no.itg.telstra.com.au>/ за оригинальный документ. <p>David E. Storey <tt/<dave@tamos.gmu.edu>/ и Volker Lendecke <tt/<lendecke@namu01.gwdg.de>/ обоим за сильно помогшим поставкой мне информации для этого документа. Gilbert Callaghan <tt/<gilbert@pokey.inviso.com>/, David Higgins <tt/<dave@infra.com>/ и Chad Robinson <tt/<chadr@brtgate.brttech.com>/ каждому представившему информацию о настройке IPX/PPP. Bennie Venter <tt/<bjv@Gil-galad.paradigm-sa.com>/ поставившему некоторую полезную информацию относящуюся к типам фреймов. Christopher Wall <tt/<vergil@idir.net/ сделавшему несколько полезных предложений для улучшения читабельности и компоновки документа. Axel Boldt <tt/<boldt@math.ucsb.edu>/ сделавшему несколько полезных предложений и отзывов. Erik D. Olson <tt/<eriko@wrq.com>/ обеспечившему несколько полезных отзывов и информацию о настройке PPP для IPX. Brian King <tt/<root@brian.library.dal.ca>/ представившему вопросы для раздела часто задаваемых вопросов (FAQ). <p>"NetWare" -- зарегистрированная торговая марка <url url="http://www.novell.com/" name="Novell Corporation">. "Caldera" -- зарегистрированная торговая марка <url url="http://www.caldera.com/" name="Caldera Corporation">. <p>С уважением <tt/Kevin Thorpe/. <p><tt/<kevin@pricetrak.com>/ </article>