[comp.protocols.tcp-ip.ibmpc] TCP/IP services for Arcnet

paul@aucs.AcadiaU.ca (Paul Steele) (04/09/91)

I want to thank everyone, especially Rick Beebe from Yale, who helped me
with my problem of providing TCP/IP services to our arcnet users.  While
I haven't gotten everything in place yet, I now have it mostly working.
The key to the whole process is Paul Kranenburg's IPXPKT.  IPXPKT is a
packet driver like all the other ones that are available but its claim to
fame is that it achieves hardware independence by talking to IPX rather
than directly to hardware.  For example, in my situation, NCSA Telnet
now talks to IPXPKT, which in turn talks to IPX, which in turn talks to
the arcnet hardware. I have another setup I will put to use where NCSA
Telnet will talk to IPXPKT, which in turn will talk to the packet driver
version of IPX, which will talk to the Western Digital packet driver and
then the WD8003 ethernet card.  This is necessary for people using FTP
Software's drivers which normally prevents NCSA Telnet from working.
BTW, I got IPXPKT from sun.soe.clarkson.edu in drivers.zip.

Anyway, enough rambling.  Rather than reinventing the wheel so to speak,
I will post the message I recieved from John Baird describing the whole
process in bitter detail.  Note that I initially started out with PCROUTE
but could not get it working, so I switched to the packet driver version
of Phil Karn's ka9q.  I'm not crazy about ka9q, but since it did solve
a big problem for me, I'll give it grudging acceptance.  Here is John
Baird's note.  If anyone needs help implementing the whole thing, drop
me a line.  I'm no expert, but do know a bit more than I used to...

----------------------------------------------------------------------------
IPXPKT


The standard packet drivers allow applications such as Novell and TCP/IP
to share a single ethernet card in a workstation. A user logged onto
a Novell fileserver may run TCP/IP to connect to a TCP/IP host on the
same network. However, there are a number of circumstances in which
this cannot be done:

1. If the workstation is connected to a Novell fileserver or bridge
   rather than the network backbone. Packet drivers are not available
   for most non-ethernet topologies, and Novell servers and bridges will
   only forward IPX packets, not TCP/IP packets which they do not
   recognise.
2. Packet drivers are not available for all ethernet cards e.g.
   Univation (we still have a few which haven't yet died).

A solution to the above problems has been developed by Paul Kranenburg of
Leiden University in Holland. His IPXPKT program is a packet driver which
sends
and receives packets via Novell's IPX.COM rather than directly from the
network
card. It receives packets from an application, adds the IPX headers and
passes
them to IPX for transmission. It also does the converse i.e. receives packets
from IPX, strips off the IPX header and forwards the packet to the
application.

IPXPKT allows any application configured with a packet driver interface
(e.g. NCSA Telnet) to function from any workstation anywhere on a Novell
network regardless of the network topology.

A typical network setup might be:

                   +-------------+        +----------+   +--------+
                   | IPX <-> IP  |        | Unix Box |   |   VAX  |
                   |router using |        |  TCP/IP  |   | TCP/IP |
                   |   IPXPKT    |        |          |   |        |
                   +-------------+        +----------+   + -------+
     Ethernet          |     |                  |             |
   ----------------------------------------------------------------------
          |
      +----------+
      |  Novell  |    Arcnet, token ring, ethernet or whatever
      |fileserver|---------------------------------------------------
      |          |             |                         |
      +----------+       +------------+             +------------+
                         |    work    |             |    work    |
                         |   station  |             |   station  |
                         |      1     |             |      2     |
                         +------------+             +------------+


Because the packets are transmitted by IPX.COM, IPXPKT works on any
topology supported by Netware. Version 2 of IPXPKT allows packets to
be transmitted through Novell fileservers and bridges.

The IPX <-> IP router on the network backbone receives the IPX packets,
strips
off the IPX headers and retransmits Ethernet II packets which can be picked
up
by TCP/IP hosts. Additional software is required in the router to route the
packets between the two interfaces. Phil Karn's NET.EXE is commonly used, but
PCROUTE configured for one or two packet driver interfaces is an alternative.
NET.EXE is available via anonymous FTP from THUMPER.BELLCORE.COM
(128.96.41.1).

An autoexec.bat for the IPX <-> IP router is:

    wd8003e 0x60 0x7 0x360 0xd000
    ipx
    ipxpkt 0x61
    net

NET is configured to use two Packet driver interfaces. The first sends and
receives Ethernet II packets via the wd8003e packet driver which uses the WD
Ethernet card configured to IRQ 7 and I/O Base 360h. The second sends and
receives Ethernet II packets via IPXPKT using software interupt 0x61. IPXPKT
sends and receives packets via IPX.COM, wrapping IPX headers around packets
to
be transmitted before passing them to IPX.COM, and stripping off IPX headers
from packets received from IPX.COM before passing them to NET. IPX.COM is
configured to match the second Ethernet card in the router.

Note that NET could be configured to communicate with the first WD card
directly. I got it working first using the packet driver, and haven't
bothered to change it.

The configuration I'm using for the second ethernet card is:

LAN Option: WD Star/Ethercard PLUS v2.11.3 (111188)
Hardware configuration: IRQ=3, I/O Base=280h, ram at C400:0 for 8k, no DMA

NET requires a configuration file named AUTOEXEC.NET. An example is:

ip address [138.75.30.1]
hostname ipxrouter
#
# Our VAX cluster and link to Canterbury use the network 138.75.10.0
# Workstations using WD cards on the network backbone also use 138.75.10.0
# All other Novell w/s (GNET, Univation etc) use 138.75.30.0
#
# This router uses the address 138.75.10.11 on the VAX side and 138.75.30.1
# on the IPXPKT side
#
attach packet 0x60 wd0 15  1500 [138.75.10.11]
ifconfig wd0 ipaddress 138.75.10.11 netmask 0xffffff00 broadcast
138.75.10.255
#
attach packet 0x61 pkt 15 1500 [138.75.30.1]
ifconfig pkt ipaddress 138.75.30.1 netmask 0xffffff00 broadcast 138.75.30.255
#
route add [138.75.30]/24 pkt
route add [138.75.10]/24 wd0
#
arp add [138.75.30.255] ether ff:ff:ff:ff:ff:ff
arp add [138.75.10.255] ether ff:ff:ff:ff:ff:ff
#
start rip
#
rip add [138.75.30.255] 30
rip add [138.75.10.255] 30
#
ip ttl 60
#
tcp window 1024
#
tcp mss 1024
#
start echo
start discard

As mentioned above, version 2.0 or higher of IPXPKT must be used to
establish connections with TCP/IP hosts through Novell servers or
bridges. If version 2.0 is not in the packet driver distribution set
(it wasn't in the 6.0a set), it can be obtained from Leiden University.
Send a message to archive-server@cs.leidenuniv.nl containing
'send source ipxpkt.asm' as the first and only line.

To assemble IPXPKT, you will need the packet driver distribution and
Borland's Turbo Assembler. Issue the following commands

tasm head           ;head.asm is in the packet driver distribution
tasm ipxpkt         ;requires defs.asm from the packet driver distribution
tasm tail           ;tail.asm is from the packet driver distribution
tlink head ipxpkt tail
exe2bin head.exe ipxpkt.com

Once the router is functioning, any application which uses a packet driver
may be run from anywhere on the network. The bat file I use to run
NCSA's FTP is:

   @echo off
   map w:=sys:ncsa
   w:ncsacfg
   if not errorlevel 1 goto skip
   w:marknet f:marknet.mrk
   w:ipxpkt 0x60
   :skip
   w:ftpbin %1
   del config.tel
   if exist f:marknet.mrk w:relnet f:marknet.mrk

The program ncsacfg creates config.tel in the users current directory. It
uses the workstations network address and physical station number to
determine whether or not ipxpkt is needed, and concocts a unique IP
address accordingly. Note that this program is specific to Lincoln's setup.
Marknet and Relnet are used to remove ipxpkt from memory.

John Baird
j.baird@lincoln.ac.nz

--------------------------------------------------------------------------


---
Paul Steele       Acadia University, Wolfville, NS Canada B0P 1X0
Systems Analyst   Paul@ace.AcadiaU.CA          (902) 542-2201x587

-- 
Paul H. Steele     UUCP:     {uunet|watmath|utai}!cs.dal.ca!aucs!Paul
Acadia University  Internet: Paul@aucs.AcadiaU.CA (131.162.1.51)
Wolfville, NS  CANADA  B0P 1X0   (902) 542-2201x587