IPX - how to configure



Introduction

At this moment FreeBSD includes support for IPX/SPX protocol and SAP/RIP daemon. All major changes merged to -stable and -current branches. Patched versions of IPX stack and IPXrouted daemon provided here. Files ipx*.tgz contains source code of IPX-stack and they are replacement for contens of sys/netipx/ directory. IPXrouted daemon have a single version for all FreeBSD branches and placed in ipxrt.tgz file.

Configuration

Kernel

I assume that you know what to do with files in sys/i386/conf directory, if not, please take a look at handbook.

Rebuild kernel if it's not done yet with the following:

options         IPX

IPXrouted (2.2.8 only)

Just unpack contens of ipxrt.tgz and type 'make'. Old IPXrouted can be replaced with a new one in the /usr/sbin directory.


Configuration

ifconfig

Arguments for ifconfig command can be specified via rc.conf file:

ifconfig_ed0_ipx="ipx 0x102"
or entered by hands. In any case syntax for ifconfig as following:
ifconfig ifname ipx netnum[.nodenum]
where netnum is network number for IPX network.

IPX protocol can be configured on any ethernet interface, or on loopback (lo0) interface. In last case you configure internal net. There two cases for select IPX network number. First - when there is no NetWare-like servers on the network, so you can select any number (except for the number 0x1). Second - when you already have Novell's server on same ethernet, in this case select network number exactly the same as on NetWare server for Ethernet_II frame.

There is no need to setup internal network for non server configurations. Example for hexadecimal network number 101 on ed2 interface, and internal network with number 0xBEBE:

ifconfig ed2 ipx 0x101
ifconfig lo0 ipx 0xbebe.1
Number '1' on second line is mandatory and shouldn't be changed. If the interfaces configured properly, netstat -fipx -r shows following:
IPX:                                                                  
Destination        Gateway            Flags     Refs     Use     Netif
bebe.*             bebe.1             U           2       10       lo0
101.*              101.4095002233     U           9    28059       ed2
If you've got 101.* instead of 101.4095002233 in the Gateway column, this means that interface isn't configured right way. In this case set parameter nodenum to MAC-address of ethernet-card.

IPXrouted

IPXrouted daemon handles SAP/RIP requests and responses. It should be runned after interface configuration and before any IPX-application. On client only mashine, I recomend to run it with -q switch to get rid of RIP-packets.

If your network contains another NetWare servers and they have configured Ethernet_II frame for IPX network you'll get new routes to them:

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


Support for multiple ethernet frame types

if_ef driver provides support for four basic ethernet frame types. This driver included in the 4.x and -current branches of FreeBSD. Patches for version 3.4 included in the distribution archive. Please read README file in the distribution archive: ifef-1.4.tar.gz

FAQ

Q: Routes to NetWare servers disappear in 3-5 mins. after startup of IPXrouted.
A: This mean that the NetWare server doesn't send SAP/RIP broadcasts via Ethernet_II frame. Use inetcfg utility (hint: item Bindings).