IPX Routing

Linux als IPX-Router zu verwenden, ist leider nicht ganz so einfach, wie dies bei TCP der Fall ist. Zuerst muß man sich das Paket ipx.tar.bz2 besorgen.

tar xfj ipx.tar.bz2
cd ipx-1.0
make
make install

Danach legen wir die Datei /etc/rc.d/init.d/ipx an. Dort werden die Daten wie Frametyp, Schnittstelle und Netzadresse festgelegt.

#!/bin/sh
#
# ipx       Bring up/down IPX networking
#

IPX_AUTO_PRIMARY=on
IPX_AUTO_INTERFACE=on
IPX_CONFIGURED=yes

IPX_DEVICE0=eth0
IPX_DEVICE1=eth1
IPX_FRAME0=802.3
IPX_FRAME1=802.3
IPX_NETNUM0=0x10000000
IPX_NETNUM1=0x20000000

case "$1" in
start)
  ipx_interface add -p ${IPX_DEVICE0}  ${IPX_FRAME0} ${IPX_NETNUM0}
  ipx_interface add ${IPX_DEVICE1} ${IPX_FRAME1} ${IPX_NETNUM1}
  ipx_configure --auto_primary=${IPX_AUTO_PRIMARY} --auto_interface=${IPX_AUTO_INTERFACE}
  ipxd
  ;;
stop)
  ipx_configure --auto_primary=off --auto_interface=off
  ipx_interface delall
  Pid=`ps aux|grep ipxd | head -n 1 | awk '{print $2}'`
  kill $Pid
  ;;
*)
  echo "Usage: network {start|stop}"
  exit 1
esac

exit 0

Mit dem Befehl ifconfig kann überprüfen werden, ob das IPX-Protokoll ordentlich den Netzwerkschnittstellen zugewiesen wurde.

krypton:~ >ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:CB:58:03:D8
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          IPX/Ethernet 802.3 addr:10000000:0000CB5803D8
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:277 errors:0 dropped:0 overruns:0 frame:0
          TX packets:507 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:5

eth1      Link encap:Ethernet  HWaddr 00:00:CB:58:03:D3
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          IPX/Ethernet 802.3 addr:20000000:0000CB5803D3
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:242 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:10

ippp0     Link encap:Point-to-Point Protocol
          inet addr:192.168.0.1  P-t-P:192.168.0.99  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:30

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:3924  Metric:1
          RX packets:308 errors:0 dropped:0 overruns:0 frame:0
          TX packets:308 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0

Das Programm ipxd, welches im Skript benutzt wird, stellt automatisch fest, welche Routen gesetzt werden müssen. Zwei bis drei Sekunden nach dem Programmstart kann man nachschauen, ob das funktioniert hat.

krypton:~ >cat /proc/net/ipx_route
Network    Router_Net   Router_Node
20000000   Directly     Connected
10000000   Directly     Connected