На сегодняшний день 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После этого пересоберите ядро, установите его и перегружайтесь.
Просто распакуйте архив ipxrt.tgz
, наберите 'make'.
После сборки можно записать файл IPXrouted в каталог /usr/sbin
.
Параметры для команды 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 используется для установки таблиц маршрутизации и отвечает на 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
Для поддержки четырех типов фреймов можно использовать драйвер if_ef. Пока он требует приложения небольшого патча к ядру (это относится только к FreeBSD 3.4, версии 4.x и 5.0 содержат его в основной поставке. Более подробные инструкции можно найти в дистрибутиве: ifef-1.4.tar.gz
netstat -rn
, ifconfig -a
и кофигурацию сервера NetWare.
Незабудьте указать версию FreeBSD.