Довольно подробная статья о настройке ядра и сетевых служб FreeBSD для работы с Novell NetWare по протоколу IPX
Автор:
Разместил: slayer   Дата: 2006-07-03 14:34
Комментарии: (0)   Рейтинг:
Файл-серверы под управлением Novell NetWare до сих пор широко используются, несмотря на значительное уменьшение интереса к ним. Они довольно неприхотливы к железу и их производительность и надежность на сегодняшний день остаются на высоте.

Часто возникает необходимость в рамках одной локальной сети <подружить> сервер под управлением FreeBSD и сервер под управлением Novell NetWare, который работает по протоколу IPX (конечно версии NetWare начиная с четвертой поддерживают и TCP/IP, но большинство системных администраторов предпочитают использовать <родной> для NetWare IPX).

Для того чтобы из FreeBSD получить доступ к ресурсам сервера NetWare необходимы следующие элементы:

Поддержка протокола IPX в ядре FreeBSD
Поддержка формата пакетов Ethernet 802.3 и/или 802.2
Клиент для Novell Directory Services - для доступа к файлам на сервере NetWare

Добавление поддержки IPX в ядро

Добавьте строчку option IPX в ваш файл конфигурации ядра, затем скомпилируйте новое ядро и установите его.

Добавление поддержки формата пакетов Ethernet 802.3 и 802.2

Пакеты, передаваемые, по сети в среде Ethernet могут иметь несколько различных форматов заголовка пакета. Для реализации протоколов TCP/IP используются пакеты формата EtherNet_II, а для IPX в Novell NetWare используются форматы Ethernet 802.3 и/или 802.2.

Для поддержки этих типов пакетов во FreeBSD существует специальный модуль ядра - if_ef.ko (справку по нему можно посмотреть с помощью команды man ef). Написал этот модуль наш соотечественник - Борис Попов и начиная с версии FreeBSD 4.0 он включен в дистрибутив системы. По адресу: http://people.freebsd.org/~bp/ можно найти его описание процесса установки IPX на FreeBSD.

При загрузке этот модуль создает несколько виртуальных сетевых интерфейсов, каждый из которых отвечает за свой формат пакета. Для примера, предположим, что у вас в системе установлен один сетевой адаптер и во FreeBSD соответствующий ему драйвер назвается rl0 (у меня карточка на чипе RealTek 8039)

Выведем с помошью команды ifconfig -a список всех сетевых адаптеров в системе и их настройки.

rl0: flags=8843 mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:30:4f:0a:f4:b4
lo0: flags=8049 mtu 16384
inet 127.0.0.1 netmask 0xff000000


После того как вы загрузите драйвер if_ef с помошью команды kldload if_ef.ko результат вывода ifconfig -a изменится:

rl0: flags=8843 mtu 1500
inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
ether 00:30:4f:0a:f4:b4
rl0f0: flags=8842 mtu 1500
ether 00:30:4f:0a:f4:b4
rl0f1: flags=8843 mtu 1500
ether 00:30:4f:0a:f4:b4
rl0f2: flags=8843 mtu 1500
ether 00:30:4f:0a:f4:b4
rl0f3: flags=8842 mtu 1500
ether 00:30:4f:0a:f4:b4
lo0: flags=8049 mtu 16384
inet 127.0.0.1 netmask 0xff000000


Модуль if_ef добавляет <виртуальные> сетевые карты соответствующие разным форматам кадра:

rl0f0 - соответствует Ethernet_II
rl0f1 - Novell Ethernet_802.3
rl0f2 - Ethernet_802.2
rl0f3 - Ethernet_802.2/SNAP


Чтобы эти <виртуальные> адаптеры появлялись в системе при каждой загрузке добавьте в файл /boot/loader.conf строчку if_ef_load="YES".

Конфигурирование протокола IPX

До этого момента в моей системе был установлен только протокол TCP/IP и строчки файла /etc/rc.conf отвечающие за конфигурирование сетевых протоколов выглядели следующим образом:

network_interfaces="lo0 rl0"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"


Необходимо добавить в него инструкции для настройки протокола IPX

network_interfaces="lo0 rl0 rl0f1 rl0f2"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_rl0f1_ipx="ipx 0x96CB468C"
ifconfig_rl0f2_ipx="ipx 0xB1AFF7EE"
ipxrouted_enable="YES"


Обратите внимание на формат команд:

ifconfig_rl0f1_ipx="ipx 0x96CB468C" - означает, что мы конфигурируем протокол IPX на <виртуальном> сетевом адаптере rl0f1, который передает пакеты в формате Novell Ethernet_802.3 и для этого адаптера необходимо использовать номер сети 0x96CB468C (номера сетей устанавливаются администратором при настройке Novell NetWare).

ipxrouted_enable="YES" - команда загрузки демона IPX Routed, который отвечает за построение таблицы маршрутиризации пакетов IPX.

Также важно не забыть добавить в список network_interfaces имена двух новых адаптеров.

Для того чтобы наши изменения вступили в силу, нужно находясь в каталоге /etc дать команду: netstart.

Установка клиента Novell NetWare для FreeBSD

Клиент для Novell NetWare - это библиотека NCPLIB. Ее можно загрузить с сайта автора (ее тоже написал Борис Попов) по адресу http://people.freebsd.org/~bp/ncpl.html

Последняя версия этой библиотеки - 1.3.4, ее то мы и используем.

Распакуем исходные тексты библиотеки: tar -zxvf ncplib-1.3.4.tar.gz. Далее войдем в каталог ncplib-1.3.4, скомпилируем: (командой make) и установим ее (командой make install).

Библиотека NCPLIB содержит в себе специальный модуль ядра для доступа к томам NetWare через сеть - nwfs.ko. Его нужно загрузить командой kldload nwfs.ko. Также, чтобы он автоматически загружался при старте системы нужно добавить в файл /boot/loader.conf строку nwfs_load="YES".

Сейчас все готово к проверке соединения с сервером NetWare:

Дайте команду: ipxping -с 4 NW_SERVER, где NW_SERVER имя Вашего сервера NetWare. Вы должны увидеть что- то похожее на следующее:

Ping NW_SERVER (338b7777.1H.9086H): 8 data bytes
8 bytes received: seq=0 time=0.231 ms
8 bytes received: seq=1 time=0.211 ms
8 bytes received: seq=2 time=0.216 ms
8 bytes received: seq=3 time=0.202 ms

--- NW_SERVER ping statistics ---
4 packets sent, 4 received, 0% packets loss
round-trip min/avg/max = 0.202/0.215/0.231


Эта команда - ping по протоколу IPX.

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

Конфигурирование клиента

Создайте на сервере NetWare пользователя и задайте ему пароль, к примеру пользователя FREEBSD с паролем 123.

Создайте в Вашем домашнем каталоге файл .nwfsrc (первый символ его имени - точка), следующего содержания:

[NW_SERVER:FREEBSD]
password=123
retry_count=10
timeout=5
access_mode=0700
sig_level=0
bindery=no


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

Монтирование томов NetWare под FreeBSD

Создайте в своем домашнем каталоге пустой каталог -точку монтирования, к примеру nw.

Дайте команду mount_nwfs /NW_SERVER:FREEBSD/VOL nw

По этой команде том VOL на сервере NW_SERVER будет смонтирован в каталог nw, причем для входа на сервер NetWare будет использован пользователь FREEBSD, пароль которого хранится в файле .nwfsrc. Конечно, при этом том VOL должен существовать.

После этого вы сможете выполнять операции над файлами находящимися сервере NetWare стандартными для FreeBSD способами.

В конце работы с файлами на сервере дайте команду umount nw, чтобы отключится от него.

Источник http://www.unixdoc.ru/index.php?mode=2&podmode=1&arcicle_id=79

Автор Александр Михайлов, alexm@rtr.spb.ru