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.
<firstname.lastname@example.org> 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:
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.
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.