  Netware-HOWTO
  Lauri Tischler ltischler@fipower.pp.fi
  rev.0.2 30 Mar 1995
  updated for DOSEMU 1.2.0, 28 Sep 2003, Bart Oldeman

  This document tryes to descibe how to connect to Novell Netware
  servers from Linux.

  1.  Introduction

  Due to the limited scope of this note, it is not a real HOWTO, not
  even a 'mini-HOWTO'.	You might call it a 'nano-HOWTO' if you like.

  In most sites the Netware is really just an extension to PC's running
  DOS and DOS applications (Windows is JUST another DOS-application),
  the Netware providing fileserver and printing support.

  I will concentrate on getting the connection via DOSEMU only.

  My everyday network is a Netware network with 3 servers and appr. 110
  PC's connected to it.	It is TOTALLY Dos/Windows environment, running
  Novell standard Ethernet_802.3 frames, very ordinary REAL LIFE setup.

  Tested Environment :

  o  LinuxBox 486DX2/66, 17Meg Ram + 20 Meg Swap,  two ESDI disks 340Mb
     and 320 Mb (Linux InSide), Netcard SMC Elite Ultra.

  o  Linux 1.2.2,  Dosemu pre0.53.55.

  o  Netware 3.11 on all servers,  SMC Elite 32 EISA on main server.

  The following may or may not work on Your pile of iron.


  2.  Netware Requirements.

  One of the main questions is What Is the Ethernet Frame Type your
  Netware uses.


  2.1.	Frametype Ethernet_II.

  For IP-connectivity Novell has always used Ethernet_II frametype.
  Some sites use Ethernet_II for IPX _and_ IP  (good for them).	This is
  also easiest case to connect to Netware, you also get IP-connectivity
  between your linuxboxes if/when they are located in separate segments.
  For IP-connectivity you need to load TCPIP.NLM in your server and
  define FORWARD=YES on loadline.  You also need to BIND the IP to your
  server networkcards with proper IP-address.  In general if you need
  any kind of IP-connection to Netware Server (NFS, BOOTPD, FTPD) you
  _must_ use Ethernet_II frame.


  2.2.	Frametype Ethernet_802.3.

  Traditionally Novell has used Ethernet_802.3 for IPX protocol. That is
  _before_ the Netvare 4.0x and various VLM stuff.   In this case you
  can't communicate with other linuxboxes if they are located on
  separate segments because Netware will not route IP-protocol on 802.3
  frames.  You can however connect to Netware server as an isolated
  workstation.





  2.3.	Frametype Ethernet_802.2.

  New Novell practice is to recommend the Ethernet_802.2 frame for IPX.
  The 802.2 is actually the default frametype unless otherwise declared
  (in server autoexec.ncf and workstation net.cfg files). This is also
  the worst case because the dosemu packetdrivers do not support this
  frametype.  You can still connect using direct-IPX approach.


  I would recommend that you load the Ethernet_II frame in your server
  in ANY CASE because that makes the care-and-feeding-and-development
  much easier in the longrun.

  There has been some worried noises about messing up the IP-traffic on
  Ethernet_II if you run IPX on Ethernet_II frames at the same time.
  There is no problem in running both protocols on same frame and cable,
  it is done all the time on many sites (RTFM - Novell TCP/IP Docs) 8-).

  This how I do both frames and protocols on single card and cable .

  load SMCE32 port=6810 Name=First  Frame=Ethernet_802.3  ; 'novell' frame
  load SMCE32 port=6810 Name=Second Frame=Ethernet_II	; 'normal' frame
  bind ipx to First Net=E1
  bind ipx to Second Net=E2


  So I actually run IPX on both frames, Ethernet_802.3 on logical net E1
  and Ethernet_II logical net E2.  All on one card and cable.


  3.  Making The Connection.

  There are basically two methods for making the connection between the
  Linuxbox and Netware server, The Direct-IPX or Packet Drivers.


  3.1.	The Direct-IPX.

  Make sure that you have the IPX support compiled in to your kernel.

  Within DosEmu, in directory ipxutils, there are some utilities which
  are necessary.  At the time of this writing the compiling of those
  utilities was not automatic,	so it may be necessary to go to
  directory ipxutils and run 'make'.

  Check that in your 'dosemu.conf' file you have 'ipx_support' enabled.
  $_ipxsupport = (on)

  Now you need to enable the ipxinterface.  To do that you execute
  following command :

	  ipx_interface add -p eth0 802.3


  Instead of 'eth0' you can give some other Id in case your ethernetcard
  is somewhere else.

  The last parameter, ie. 802.3, depends on what type of ethernetframe
  runs on your network.	Possibe values are 802.2,  802.3  and EtherII.
  Check with your Netware Administrator if you are not sure.  You may
  wish to add the above mentioned command into your rc.local file.

  Now start the dosemu session and load the Netware shell, NETX.  The
  NETX is the only TSR necessary to run the connection, no LSL, no
  Packetdrivers nor IPXODI.


  Pros.

  o  Connection is reasonably fast,  about 2.41666.. times faster then
     packetdrivers.

  o  This is the ONLY way to connect if you are using Ethernet_802.2
     frame.

  Cons.

  o  SPX support is still missing, this means that some software will
     not run, like Intel LanDesk Inventory, Novell Remote Console,
     Netware Access Services,  I'm sure there are more	8=(

  o  The connection drops dead after about 15 min of idletime.	I
     suspect that it has something to do with 'watchdog packets' from
     the server not getting proper answer.  Maybe some IPX/SPX guru will
     look into this.
 
  o  DPMI in combination with direct IPX is broken as of DOSEMU 1.2.0.


  3.2.	The Packet Driver (IPX).

  As a driver you should use PDETHER which is an ipx-to-packet driver
  shim, but masquerading as an ODI compliant driver.  There also exists
  an older driver PDIPX, technology represented by PDIPX is no longer
  supported by Novell. A driver named IPXPD is more likely to work
  than PDIPX.

  The Packet Driver uses build-in packetdriver interface which means
  that the IPX-SUPPORT in Kernel and in DOSEMU is NOT needed.  When
  configuring the Kernel you can define IPX-SUPPORT (n), this is
  actually the default case.

  Corresponding parameter for DOSEMU is found in the NETWORKING SUPPORT
  section of dosemu.conf/.dosemurc.  There you just leave the line
  $_ipxsupport = (off) commented out.	(see below)

  The use of the second configuration parameter $_novell_hack is
  explained in detail in later paragraphs.

  #************************* NETWORKING SUPPORT *****************************
  #
  #    Turn the following option 'on' if you require IPX/SPX emulation.
  #    Therefore, there is no need to load IPX.COM within the DOS session.
  #    The following option does not emulate LSL.COM, IPXODI.COM, etc.
  #    NOTE: MUST HAVE IPX PROTOCOL ENABLED IN KERNEL !!
  # $_ipxsupport = (off)
  #
  #    Enable Novell 8137->raw 802.3 translation hack in new packet
  #    driver.

  $_pktdriver = (on)
  # $_novell_hack = (off)

  There are various versions of packetdriver PDETHER floating around, at
  least the one which is in
  /tsx-11.mit.edu/pub/linux/ALPHA/dosemu/Development/pdether103.tgz
  works.

  PDETHER in its native mode understands only Ethernet_II frames, by
  enabling the dosemu.conf parameter pktdriver novell_hack it can be
  fooled to use Ethernet_802.3 frames instead.

  Because PDETHER is an ODI driver, you load..





      LSL (at least version 2.20; older versions may crash)
      PDETHER or IPXPD or PDIPX
      IPXODI
      NETX


  Because PDETHER is an ODI driver, there must be corresponding section
  in your net.cfg file.	Here is a snippet of my NET.CFG

  Link Support
	  Buffers 4 1514
	  MemPool 2048

  Link Driver PDETHER
	  Int 60
	  FRAME Ethernet_II

  NetWare DOS Requester
	  FIRST NETWORK DRIVE	= F
	  SHOW DOTS		= ON
	  SET STATION TIME	= ON
	  PREFERRED SERVER	= HOME
	  FILE HANDLES		= 40
	  LOCAL PRINTERS	  = 1



  The packetdrivers support only Ethernet_802.3 and Ethernet_II frames.
  If you are unlucky enough to use Ethernet_802.2 frame, your only
  change is to use direct-IPX interface (unless you can persuade the
  system admin to add Ethernet_II frames to your network 8=)).

  Do NOT CHANGE line 'FRAME Ethernet_II' in Link Driver PDETHER section,
  instead enable or disable the 'pkdriver novell_hack' in 'dosemu.conf'

  $_pktdriver = (on)
  $_novell_hack = (on)            If you have Ethernet_802.3

  # $_novell_hack = (off)	  If you have Ethernet_II

  Read the PDETHER.DOC for further info.


  4.  Speed Of Connection

  Here is some benchmarking I did with testprogram TESTNET.EXE,
  available somewhere in NetWire.  It tests the network transfer speed.

  I can saturate my ethernet with two stations running at full tilt.
  Maximum aggregate speed is appr. 900 kilobytes/sec.

  I'm using SMC Elite 32 EISA board in Server and SMC Elite Ultra in
  workstation.

			  NETX
  Dos6.2		  620
  DosEmu (directIPX)	290
  DosEmu (pktdrv)	 120


  The figures denote transferspeed in kilobytes/second.

  Few months ago I had a NE2000 clone in my box, with DOS6.2/NETX it
  would run to appr. 460 kbs.  I could live with that.



  5.  NFS and Other Connectivity.

  It is possible to access Netware server and services from Linux
  directly by using various commercial supportpackages to get Unix
  filesystem and/or printing services.

  o  Netware-NFS.

  o  Netware Flex-IP.

  o  Nov*iX from FireFox.

  o  Charon, shareware SMTP-gateway and printservices.

  There also exists a freeware NFS connectivity using SOSS package,
  below is a contribution from a fellow netter, Andrew J. Anderson,
  andrew@db.erau.edu.

  --- message begins ---


  I am currently using a package called "soss" (Son of Stan's Server)
  that turns a DOS PC into an NFS server.  I am using this to export
  NetWare volumes to my Linux box so that I can have multi-user access
  to several CD-ROM packages.  I will continue using this until multiple
  logins from DOSEmu becomes a reality.	The speed of this setup depends
  on the speed of the PC that is running the NFS server package.
  Currently, I am using a 286 with 4 Megs of RAM being used as a disk
  cache.  If I remember correctly, I can get about 50K/s across this
  setup.  I tested a 486DX-33 with 8 megs and got about 250- 300K/s
  transfer.  I am hoping to get about 500K/s with a 486DX2-66 with 16
  megs of RAM.	Not blazingly fast, but good enough.

  So if you play with drive mappings under DOSEmu using LREDIR, you
  could setup a scheme where each user had a mapping to their home
  directory on the Novell side.	There is potential for security risk in
  doing that because SOSS doesn't have much in the way of security built
  in, but I am using part of my NetWare volumes as "overflow" space when
  my Linux drives fill up -- as they so often do! :)

  --- message ends ---	Thanks Andrew..

  I have no personal experience with any of the packages mentioned
  above, I'm sure that there are a lot of other useful packages
  floating around.  Please mail me, so I can add them to possible future
  incarnations of this note.


  6.  History.

  6.1.	Revision 0.1.

  Written with great haste and enthusiasm. Contained some mistakes for
  which I was promptly flamed 8:).  Some reports of success were also
  received.

  6.2.	Revision 0.2.

  Known errors corrected and new sections added.

  Any additions for this HOWTO are humbly accepted and if relevant to
  great cause will be added to later revisions.




  7.  Begin Legalese.

  Unless otherwise stated, Linux HOWTO documents are copyrighted by
  their respective authors. Linux HOWTO documents may be reproduced and
  distributed in whole or in part, in any medium physical or electronic,
  as long as this copyright notice is retained on all copies. Commercial
  redistribution is allowed and encouraged; however, the author would
  like to be notified of any such distributions.

  All translations, derivative works, or aggregate works incorporating
  any Linux HOWTO documents must be covered under this copyright notice.
  That is, you may not produce a derivative work from a HOWTO and impose
  additional restrictions on its distribution. Exceptions to these rules
  may be granted under certain conditions; please contact the Linux
  HOWTO coordinator at the address given below.

  In short, we wish to promote dissemination of this information through
  as many channels as possible. However, we do wish to retain copyright
  on the HOWTO documents, and would like to be notified of any plans to
  redistribute the HOWTOs.

  If you have questions, please contact Greg Hankings, the Linux HOWTO
  coordinator, at greg.hankings@cc.gatech.edu. You may finger this
  address for phone number and additional contact information.

  End Legalese.

  Happy Netting.  Lauri Tischler,  ltischler@fipower.pp.fi
