Previous Next Contents

7. 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 propogated around the network. They are the network routing information propogated using Novell RIP, and the service advertisement information propogated 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 Novell RIP to ensure that the IPX routing table is built correctly and updated periodically to reflect changes in the network status. The lwared package described in the "NCP Server" section later includes software that implements a Novell RIP daemon and a Novell SAP daemon. Alternatively you could look at ftp.ists.pwr.wroc.pl as it also has some daemons that might be useful for you.

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 IPX and SAP daemon programs.
  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 IPX and SAP daemon programs.

Consider the following simple network:

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

The configuration for the above network would look like:

# ipx_interface add eth0 802.2 0x0100000000
# ipx_interface add eth0 802.2 0x0200000000
# ipx_interface add eth0 etherii 0x0300000000
# ipx_interface add eth0 etherii 0x0400000000
# ipxripd
# ipxsapd

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.


Previous Next Contents