Just as with TCP/IP, you must configure your IPX interfaces before you
can use them. The IPX protocol has some unique requirements;
consequently, a special set of configuration tools was developed. We
will use these tools to configure our IPX interfaces and routes.
The IPX protocol assumes that any collection of hosts that can
transmit datagrams to each other without routing belong to the same
IPX network. All hosts belonging to a single Ethernet segment would
all belong to the same IPX network. Similarly (but less intuitively),
both hosts supporting a PPP-based serial link must belong to the IPX
network that is the serial link itself. In an Ethernet environment,
there are a number of different frame types that may be used to carry
IPX datagrams. The frame types represent different Ethernet protocols
and describe differing ways of carrying multiple protocols on the same
Ethernet network. The most common frame types you will encounter are
802.2 and ethernet_II. We'll
talk more about frame types in the next section.
The Linux network devices that currently support the IPX protocol are the
Ethernet and PPP drivers. The Ethernet or PPP interface must be
active before it can be configured for IPX use. Typically, you configure an Ethernet device with both IP and IPX, so the device already exists, but if your
network is IPX only, you need to use the ifconfig to change the Ethernet device status to the following:
Greg Page developed a set of configuration tools for IPX interfaces,
which is a precompiled package in modern distributions and may
also be obtained in source form by anonymous FTP from
https://metalab.unc.edu/ in the
An rc script file usually runs the IPX tools at
boot time. Your distribution may already do this for you if you have
installed the prepackaged software.
Each IPX interface must know which IPX network it belongs to and which
frame type to use for IPX. Each host supporting IPX has at least one
interface that the rest of the network will use to refer to it, known
as the primary interface. The Linux kernel IPX
support provides a means of automatically configuring these
parameters; the ipx_configure command enables or
disables this automatic configuration feature.
With no arguments, the ipx_configure command displays the
current setting of the automatic configuration flags:
Auto Primary Select is OFF
Auto Interface Create is OFF
Both the Auto Primary and Auto Interface flags
are off by default. To set them and enable automatic configuration, you
simply supply arguments like these:
# ipx_configure --auto_interface=on --auto_primary=on
When the - -auto_ primary argument is set to
on, the kernel will automatically ensure that at
least one active interface operates as the primary interface for the
When the - -auto_interface argument is
set to on, the kernel IPX driver will listen to all of the
frames received on the active network interfaces and attempt to determine
the IPX network address and frame type used.
The auto-detection mechanism works well on properly managed networks.
Sometimes network administrators take shortcuts and break rules, and
this can cause problems for the Linux auto-detection code. The most common
example of this is when one IPX network is configured to run over the same
Ethernet with multiple frame types. This is technically an invalid
configuration, as an 802.2 host cannot directly communicate with an
Ethernet-II host and therefore they cannot be on the same IPX network.
The Linux IPX network software listens on the segment to IPX datagrams
transmitted on it. From these, it attempts to identify which network
addresses are in use and which frame type is associated with each. If the
same network address is in use with multiple frame types or on multiple
interfaces, the Linux code detects this as a network address collision
and is unable to determine which is the correct frame type. You will know
this is occurring if you see messages in your system log that look like:
IPX: Network number collision 0x3901ab00
eth0 etherII and eth0 802.3
If you see this problem, disable the auto-detection
feature and configure the interfaces manually using the
command described in the next section.
The ipx_interface command is used to manually add,
modify, and delete IPX capability from an existing network device. You
should use ipx_interface when the automatic
configuration method just described does not work for you, or if you
don't want to leave your interface configuration to
chance. ipx_interface allows you to specify the IPX
network address, primary interface status, and IPX frame type that a
network device will use. If you are creating multiple IPX interfaces,
you need one ipx_interface for each.
The command syntax to add IPX to an existing device is straightforward
and best explained with an example. Let's add IPX to an existing
# ipx_interface add -p eth0 etherII 0x32a10103
The parameters in turn mean:
This parameter specifies that this interface should be a primary interface.
This parameter is optional.
This is the name of the network device to which we are adding IPX support.
This parameter is the frame type, in this case Ethernet-II. This value
may also be coded as 802.2,
802.3, or SNAP.
This is the IPX network address to which this interface belongs.
The following command removes IPX from an interface:
# ipx_interface del eth0 etherII
Lastly, to display the current IPX configuration of a network device,
# ipx_interface check eth0 etherII
The ipx_interface command is explained more fully in its