Next Previous Contents

8. Configuring your Linux machine as an IPX router.

If you have a number of IPX segments that you wish to internetwork you need the services of a router. In the Novell environment there are two pieces of information which are necessary to be propagated around the network. They are the network routing information propagated using Novell RIP, and the service advertisement information propagated using Novell SAP. Any router must support both of these protocols to be useful in most situations.

Linux has support for both of these protocols and can be fairly easily made to function as a fully Novell compliant router.

The Linux kernel IPX support actually manages the IPX packet forwarding across interfaces, but it does this according to the rules coded into the IPX routing table. Linux needs a program to implement the Novell RIP and SAP to ensure that the IPX routing table is built correctly and updated periodically to reflect changes in the network status.

Volker Lendecke <> has developed a routing daemon ipxripd that will do this for you. The mars_nwe package mentioned later includes an alternative routing daemon.

You can find ipxripd at:

or at Volkers home site at:

Configuring your Linux machine to act as a router is very straightforward. The steps you must take are:

  1. Build your kernel with IPX, Ethernet and /proc support.
  2. Obtain, compile and install the ipxd daemon program.
  3. Boot the new kernel and ensure that each of the Ethernet cards has been properly detected and there are no hardware conflicts.
  4. Enable the IPX protocol on each of the interfaces using the ipx_interface command described above.
  5. Start the ipxd daemon program.

Consider the following simple network:

 IPX Addr: 0x01000000  802.2
                                        \          Linux Router
 IPX Addr: 0x02000000  802.2             \
|--------------------------|              \   eth0/-----------\
              |                            \--====|           |
              \_________________________          | IPX route |
                                        \     eth1|  Table    |
 IPX Addr: 0x03000000  etherII           \----====|    ^      |
|--------------------------|                      |    |      |
              |                               eth2|  IPXd     |
              \______________________________/====|           |
                                                  |  SAPd     |
 IPX Addr: 0x04000000  etherII                eth3|           |
|--------------------------|                 /====|           |
              |                              |    \___________/

The configuration for the above network would look like:

# ipx_interface add eth0 802.2 0x0100000000
# ipx_interface add eth1 802.2 0x0200000000
# ipx_interface add eth2 etherii 0x0300000000
# ipx_interface add eth3 etherii 0x0400000000
# ipxd

You should then wait a moment or two and check your /proc/net/ipx_route file and you should see it populated with the IPX routes relevant to your configuration and any learned from any other routers in the network.

8.1 Do I need to configure an internal network ?

Novell has a feature called an internal network, which it uses to simplify routing in situations where a host has more than one network device connected. This is useful in the case of a fileserver connected to multiple networks as it means that only one route needs to be advertised to reach the server regardless of which network you are attempting from.

In the case of a configuration where you are not running a fileserver and your machine acting only as an IPX router the question is not as simple to answer. It has been reported that configuring for IPX/PPP works `better' if you also configure an internal network.

In any case it is easy to do, but may require a rebuild of your kernel. When you are working through the kernel make config you must answer y when asked Full internal IPX network as illustrated:

 Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y

To configure the internal network interface, use the ipx_internal_net command described earlier in the IPX tools section. The main precaution to take is to ensure that they IPX network address you assign is unique on your network and that no other machine or network is using it.

Next Previous Contents