IPX - how to configure



Введение

На сегодняшний день FreeBSD обеспечивает полную поддержку IPX протокола начиная с версии 3.2-release. Для 2.2.8 требуется установить исправленный IPX стек. Вместе с FreeBSD поставляется только IPX стек и демон IPXrouted который отрабатывает SAP/RIP протоколы и поддерживает таблицу маршрутизации.

Ниже описан процесс установки и конфигурации IPX протокола. Кому-то описание может показаться излишне подробным, однако оно базируется на реальных вопросах.

Последние версии

Устанавливать обновления IPX-стека и демона IPXrouted имеет смысл только для версии 2.2.8. Для FreeBSD версий 3.x и 4.x все изменения отражаются в cvs-repository.

Установка

Ядро

Будем считать, что c файлами находящимися в каталоге sys/i386/conf вы знакомы. Если нет, то обратитесь к соответствующему разделу handbook.

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

options         IPX
После этого пересоберите ядро, установите его и перегружайтесь.

IPXrouted (только для 2.2.8)

Просто распакуйте архив ipxrt.tgz, наберите 'make'. После сборки можно записать файл IPXrouted в каталог /usr/sbin.


Конфигурация

ifconfig

Параметры для команды ifconfig можно указать в файле rc.conf, например

ifconfig_ed0_ipx="ipx 0x102"
а можно и вручную. В любом случае синтаксис команды следующий:
ifconfig ifname ipx netnum[.nodenum]
где netnum номер IPX-сетки (про nodenum будет сказано ниже).

IPX протокол можно сконфигурировать на любом ethernet интерфейсе или на lo0. В последнем случае создается так называемая internal net. Выбор номера сети различается для случая когда в сети нет NetWare-подобных серверов и когда есть. В первом случае выбор может быть произвольным (стоит лишь избегать номера 1 и 0). Во втором случае нужно использовать тот номер сети, который был установлен при конфигурации фрейма Ethernet_II на сервере NetWare. Следует заметить, что в кофигурационных файлах NetWare номера сетей указываются в шестнадцатиричном виде.

Внутреннюю сетку следует конфигурировать только в том случае, если на данной машине будет работать сервер Mars_nwe.

Например, на интерфейсе ed2 hex-номер сетки 101 и нам нужна внутренняя, сеть 0xBEBE:

ifconfig ed2 ipx 0x101
ifconfig lo0 ipx 0xbebe.1
Номер хоста 1 во второй строке обязателен и нежелательно устанавливать его другим. Если все отработало нормально, то по команде netstat -fipx -r получим примерно следующее:
IPX:                                                                  
Destination        Gateway            Flags     Refs     Use     Netif
bebe.*             bebe.1             U           2       10       lo0
101.*              101.4095002233     U           9    28059       ed2
Если в колонке Gateway будет написано 101.*, то в команде ifconfig параметр nodenum нужно установить равным MAC-адресу ethernet-карты.

IPXrouted

Демон IPXrouted используется для установки таблиц маршрутизации и отвечает на SAP/RIP запросы. Он должен быть запущен после конфигурации всех интерфейсов и до любого IPX приложения. На клиентской машине его можно запустить с ключиком -q, что-бы избавиться от лишних RIP-пакетов.

Если в сети есть другие сервера NetWare и на них сконфигурирован фрейм Ethernet_II, то через некоторое время в таблице роутинга появятся новые записи:

IPX:
Destination        Gateway            Flags     Refs     Use     Netif
bebe.*             bebe.1             U           2       10       lo0
101.*              101.4095002233     U           9    28118       ed2
501a5db7.*         101.8c7249d1a      UG          0        0       ed2
9da8aa54.*         101.8c7249d1a      UG          0     2521       ed2


Поддержка всех типов ethernet-фреймов

Для поддержки четырех типов фреймов можно использовать драйвер if_ef. Пока он требует приложения небольшого патча к ядру (это относится только к FreeBSD 3.4, версии 4.x и 5.0 содержат его в основной поставке. Более подробные инструкции можно найти в дистрибутиве: ifef-1.4.tar.gz


Драйвера с "плохой" репутацией

Известно, что некоторые драйвера для ethernet-карт содержат большое количество ошибок, а некоторые не поддерживают IPX протокол. Ниже приведен список таких драйверов:

FAQ

Q: Записи о роутинге исчезают через 3-5 мин. после запуска IPXrouted
A: Это говорит о том, что сервер NetWare не рассылает SAP/RIP броадкасты. Нужно загрузить утилиту inetcfg (NetWare 4.x) и посмотреть в меню Bindings опции для SAP/RIP протоколов.
Q: Ничего не работает !
A: Значит вы где-то ошиблись.
Q: Все проверил и все равно ничего не работает !
A: Тогда напишите мне письмо и приложите к нему вывод команд netstat -rn, ifconfig -a и кофигурацию сервера NetWare. Незабудьте указать версию FreeBSD.