home *** CD-ROM | disk | FTP | other *** search
/ Freelog Special Edition 1: Linux / CD1.iso / doc / HOWTO / IPX-HOWTO < prev    next >
Text File  |  1998-10-14  |  80KB  |  2,443 lines

  1.   Linux IPX-HOWTO
  2.   Terry Dawson, terry@perf.no.itg.telstra.com.au
  3.   v2.2, 29 March 1997
  4.  
  5.   This document aims to describe how to obtain, install and configure
  6.   various tools available for the the Linux operating system that use
  7.   the Linux kernel IPX protocol support.
  8.   ______________________________________________________________________
  9.  
  10.   Table of Contents
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction.
  68.  
  69.      1.1 Changes from the previous release.
  70.      1.2 Introduction.
  71.  
  72.   2. Disclaimer.
  73.  
  74.   3. Related Documentation.
  75.  
  76.      3.1 New versions of this document.
  77.      3.2 Feedback.
  78.      3.3 Mailing list support.
  79.  
  80.   4. Some of the terms used in this document.
  81.  
  82.   5. The IPX related files in the
  83.  
  84.   6. Greg Pages IPX tools.
  85.  
  86.      6.1 The IPX tools in more detail.
  87.  
  88.   7. Configuring your Linux machine as an IPX router.
  89.  
  90.      7.1 Do I need to configure an internal network ?
  91.  
  92.   8. Configuring your Linux machine as an NCP client.
  93.  
  94.      8.1 Obtaining
  95.      8.2 Building
  96.      8.3 Building
  97.      8.4 Configuring and using
  98.  
  99.   9. Configuring your Linux machine as an NCP server.
  100.  
  101.      9.1 The
  102.         9.1.1 Capability of
  103.         9.1.2 Obtaining
  104.         9.1.3 Building the
  105.      9.2 The
  106.         9.2.1 Capability of
  107.         9.2.2 Obtaining
  108.         9.2.3 Building
  109.         9.2.4 Configuring and using
  110.  
  111.   10. Configuring your Linux machine as a Novell Print Client.
  112.  
  113.   11. Configuring your Linux machine as a Novell Print Server.
  114.  
  115.      11.1 Prerequisites
  116.      11.2 Configuration
  117.  
  118.   12. An overview of the
  119.  
  120.      12.1 User commands.
  121.      12.2 Administration tools.
  122.  
  123.   13. Configuring PPP for IPX support.
  124.  
  125.      13.1 Configuring an IPX/PPP server.
  126.         13.1.1 First steps.
  127.         13.1.2 Design.
  128.         13.1.3 Configure
  129.         13.1.4 Test the server configuration.
  130.      13.2 Configuring an IPX/PPP client.
  131.         13.2.1 Configuring
  132.         13.2.2 Testing the IPX/PPP client.
  133.   14. IPX tunnel over IP
  134.  
  135.      14.1 Obtaining
  136.      14.2 Building
  137.      14.3 Configuring
  138.      14.4 Testing and using
  139.  
  140.   15. Commercial IPX support for Linux.
  141.  
  142.      15.1 Caldera'a Network Desktop
  143.  
  144.   16. Some Frequently Asked Questions
  145.  
  146.   17. Copyright Message.
  147.  
  148.   18. Miscellaneous and Acknowledgements.
  149.  
  150.  
  151.  
  152.   ______________________________________________________________________
  153.  
  154.   1.  Introduction.
  155.  
  156.   This is the Linux IPX-HOWTO. You should read the Linux NET-3-HOWTO in
  157.   conjunction with this document.
  158.  
  159.  
  160.   1.1.  Changes from the previous release.
  161.  
  162.  
  163.  
  164.   Additions:
  165.           Added some Frame Type information
  166.  
  167.   Corrections/Updates:
  168.           0x is required for IPX network address in /etc/ppp/options
  169.           Versions and locations up to date.
  170.           Some shuffling around, abstracted Printing and admin tools.
  171.  
  172.  
  173.  
  174.  
  175.   1.2.  Introduction.
  176.  
  177.   The Linux Kernel has a completely new network implementation as
  178.   compared to other Unix like operating systems. The ability to take a
  179.   fresh approach to developing the kernel networking software has led to
  180.   the Linux kernel having support for a range of non tcp/ip protocols
  181.   being built. The IPX protocol is one of those that have been included.
  182.  
  183.   The Linux kernel supports the IPX protocol only. It does not yet
  184.   support protocols such as IPX/RIP, SAP or NCP, these are supported by
  185.   other software such as that documented elsewhere in this document.
  186.  
  187.   The IPX support was originally developed by Alan Cox
  188.   <alan@lxorguk.ukuu.org.uk> and has been significantly enhanced by Greg
  189.   Page <greg@caldera.com>.
  190.  
  191.  
  192.   2.  Disclaimer.
  193.  
  194.   I do not and cannot know everything there is to know about the Linux
  195.   network software. Please accept and be warned that this document
  196.   probably does contain errors. Please read any README files that are
  197.   included with any of the various pieces of software described in this
  198.   document for more detailed and accurate information. I will attempt to
  199.   keep this document as error-free and up-to-date as possible. Versions
  200.   of software are current as at time of writing.
  201.  
  202.   In no way do I or the authors of the software in this document offer
  203.   protection against your own actions. If you configure this software,
  204.   even as described in this document and it causes problems on your
  205.   network then you alone must carry the responsibility. I include this
  206.   warning because IPX network design and configuration is not always a
  207.   simple matter and sometimes undesirable interaction with other routers
  208.   and fileservers can result if you do not design or configure your
  209.   network carefully. I also include this warning because I was asked to
  210.   by someone unfortunate enough to have discovered this lesson the hard
  211.   way.
  212.  
  213.  
  214.   3.  Related Documentation.
  215.  
  216.   This document presumes you understand how to build a Linux kernel with
  217.   the appropriate networking options selected and that you understand
  218.   how to use the basic network tools such as ifconfig and route.  If you
  219.   do not, then you should read the NET-3-HOWTO <NET-3-HOWTO.html> in
  220.   conjunction with this document as it describes these.
  221.  
  222.   Other Linux HOWTO documents that might be useful are:
  223.  
  224.   The Ethernet-HOWTO <Ethernet-HOWTO.html>, which describes the details
  225.   of configuring an Ethernet device for Linux.
  226.  
  227.   The PPP-HOWTO <PPP-HOWTO.html> as IPX support is available for version
  228.   2.2.0d and later of the Linux PPP implementation.
  229.  
  230.  
  231.   3.1.  New versions of this document.
  232.  
  233.   If your copy of this document is more than two months old then I
  234.   strongly recommend you obtain a newer version. The networking support
  235.   for Linux is changing very rapidly with new enhancements and features,
  236.   so this document also changes fairly frequently. The latest released
  237.   version of this document can always be retrieved by anonymous ftp
  238.   from:
  239.  
  240.   sunsite.unc.edu
  241.  
  242.  
  243.        /pub/Linux/docs/HOWTO/IPX-HOWTO
  244.  
  245.  
  246.  
  247.  
  248.   or:
  249.  
  250.  
  251.        /pub/Linux/docs/HOWTO/other-formats/IPX-HOWTO{-html.tar,ps,dvi}.gz
  252.  
  253.  
  254.  
  255.  
  256.   via the World Wide Web from the Linux Documentation Project Web Server
  257.   <http://sunsite.unc.edu/LDP/linux.html>, at page: IPX-HOWTO
  258.   <http://sunsite.unc.edu/LDP/HOWTO/IPX-HOWTO.html> or directly from me,
  259.   <terry@perf.no.itg.telstra.com.au>. It may also be posted to the
  260.   newsgroups: comp.os.linux.networking, comp.os.linux.answers and
  261.   news.answers from time to time.
  262.  
  263.  
  264.  
  265.   3.2.  Feedback.
  266.  
  267.   Please send any comments, updates, or suggestions to me,
  268.   <terry@perf.no.itg.telstra.com.au>. The sooner I get feedback, the
  269.   sooner I can update and correct this document. If you find any
  270.   problems with it, please mail me directly as I now very rarely read
  271.   the newsgroups.
  272.  
  273.  
  274.   3.3.  Mailing list support.
  275.  
  276.   There is a mailing list established for discussion of the various
  277.   Linux IPX software packages described in this document. You can
  278.   subscribe to it by sending a mail message to `listserv@sh.cvut.cz'
  279.   with `add linware' in the body of the message. To post to the list
  280.   your send your mail to `linware@sh.cvut.cz'.
  281.  
  282.   The mailing list is archived at www.kin.vslib.cz
  283.   <http://www.kin.vslib.cz/hypermail/linware/>.
  284.  
  285.  
  286.   4.  Some of the terms used in this document.
  287.  
  288.   You will often see the terms client and server used in this document.
  289.   They are normally fairly specific terms but in this document I have
  290.   generalized their definitions a little so that they mean the
  291.   following:
  292.  
  293.      client
  294.         The machine or program that initiates an action or a connection
  295.         for the purpose of gaining use of some service or data.
  296.  
  297.      server
  298.         The machine or program that accepts incoming connections from
  299.         multiple remote machines and provides a service or data to
  300.         those.
  301.  
  302.   These definitions are not very reliable either, but they provide a
  303.   means of distinguishing the ends of peer to peer systems such as SLIP
  304.   or PPP which truly do not actually have clients and servers.
  305.  
  306.   Other terms you will see are:
  307.  
  308.      Bindery
  309.         The bindery is a specialised database storing network
  310.         configuration information on a Novell fileserver. Netware
  311.         clients may query the bindery to obtain information on available
  312.         services, routing and user information.
  313.  
  314.      Frame Type
  315.         is a term used to describe that actual protocol used to carry
  316.         the IPX (and IP) datagrams across your ethernet style network
  317.         segments. There are four common ones. They are:
  318.  
  319.         Ethernet_II
  320.            This is a refined version of the original DIX ethernet
  321.            standard. Novell has been allocated a formal protocol id and
  322.            this means that both IPX and IP can coexist happily in an
  323.            Ethernet_II environment quite happily. This is commonly used
  324.            in Novell environments and is a good choice.
  325.  
  326.         802.3
  327.            This is an I.E.E.E. protocol defining a Carrier Sense
  328.            Multiple Access with Collision Detection (CSMA/CD) mechanism.
  329.            It was based on the original DIX Ethernet standard, with an
  330.            important modification, the type (protocol id) field was
  331.            converted into a length field instead. It is for this reason
  332.            that IPX really shouldn't be run here. IEEE 802.3 was
  333.            designed to carry IEEE 802.2 frames only but there are
  334.            implementations that use it to carry IPX frames directly and
  335.            remarkably it does work. Avoid it unless you are trying to
  336.            interwork with a network already configured to use it.
  337.  
  338.         802.2
  339.            This is an I.E.E.E. protocol that defines a set of Logical
  340.            Link Control procedures. It provides a simplistic way of
  341.            allowing different protocols to coexist, but is quite limited
  342.            in this respect. Novell uses an unofficial Service Address
  343.            Point (like a protocol id) but since everyone else uses it as
  344.            well, that hasn't yet presented too much of a problem.
  345.  
  346.         SNAP
  347.            SNAP is the Sub Network Access Protocol. This protocol is
  348.            designed ride on top of 802.3 and 802.2. It expands the
  349.            multiprotocol capability of 802.2 and provides some measure
  350.            of compatability with existing Ethernet and Ethernet_II frame
  351.            types.
  352.  
  353.  
  354.      IPX
  355.         Internet Packet eXchange is a protocol used by the Novell
  356.         corporation to provide internetworking support for their
  357.         NetWare(tm) product.  IPX is similar in functionality to the IP
  358.         protocol used by the tcp/ip community.
  359.  
  360.      IPX network address
  361.         This is a number which uniquely identifies a particular IPX
  362.         network. The usual notation for this address is in hexadecimal.
  363.         An example might look like: 0x23a91002.
  364.  
  365.      IPX Internal network
  366.         This is a virtual IPX network. It is virtual because it does not
  367.         correspond to a physical network. This is used to provide a
  368.         means of uniquely identifying and addressing a particular IPX
  369.         host. This is generally only useful to IPX hosts that exist on
  370.         more than one physical IPX network such as fileservers. The
  371.         address is coded in the same form as for a physical IPX network.
  372.  
  373.      RIP
  374.         Routing Information Protocol is a protocol used to automatically
  375.         propagate network routes in an IPX network. It is functionally
  376.         similar to the RIP used within the tcp/ip community.
  377.  
  378.      NCP
  379.         NetWare Core Protocol is a networked filesystem protocol
  380.         designed by the Novell Corporation for their NetWare(tm)
  381.         product. NCP is functionally similar to the NFS used in the
  382.         tcp/ip community.
  383.  
  384.      SAP
  385.         Service Advertisement Protocol is a protocol designed by the
  386.         Novell Corporation that is used to advertise network services in
  387.         a NetWare(tm) environment.
  388.  
  389.      Hardware address
  390.         This is a number that uniquely identifies a host in a physical
  391.         network at the media access layer. Examples of this are Ethernet
  392.         Addresses. An Ethernet address is generally coded as six
  393.         hexadecimal values separated by colon characters eg.
  394.         00:60:8C:C3:3C:0F
  395.  
  396.  
  397.      route
  398.         The route is the path that your packets take through the network
  399.         to reach their destination.
  400.  
  401.  
  402.   5.  The IPX related files in the /proc  filesystem.
  403.  
  404.   There are a number of files related to the Linux IPX support that are
  405.   located within the /proc filesystem. They are:
  406.  
  407.  
  408.      /proc/net/ipx_interface
  409.         This file contains information about the IPX interfaces
  410.         configured on your machine. These may have been configured
  411.         manually by command or automatically detected and configured.
  412.  
  413.      /proc/net/ipx_route
  414.         This file contains a list of the routes that exist in the IPX
  415.         routing table. These routes may have been added manually by
  416.         command or automatically by an IPX routing daemon.
  417.  
  418.      /proc/net/ipx
  419.         This file is a list of the IPX sockets that are currently open
  420.         for use on the machine.
  421.  
  422.  
  423.   6.  Greg Pages IPX tools.
  424.  
  425.   Greg Page <greg@caldera.com of Caldera Incorporated has written a
  426.   suite of IPX configuration tools and enhanced the Linux IPX kernel
  427.   support.
  428.  
  429.   The kernel enhancements allow linux to be configured as a fully
  430.   featured IPX bridge or router. The enhanced IPX support has already
  431.   been fed back into the mainstream kernel distribution so you will
  432.   probably already have it.
  433.  
  434.   The network configuration tools provide you with the capability to
  435.   configure your network devices to support IPX and allow you to
  436.   configure IPX routing and other facilities under Linux. The Linux IPX
  437.   network tools are available from: sunsite.unc.edu
  438.   <ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ipx.tgz>.
  439.  
  440.  
  441.   6.1.  The IPX tools in more detail.
  442.  
  443.  
  444.      ipx_interface
  445.         This command is used to manually add, delete or check ipx
  446.         capability to an existing network device. Normally the network
  447.         device would be an Ethernet device such at eth0. At least one
  448.         IPX interface must be designated the primary interface and the
  449.         -p flag to this command does this. For example to enable
  450.         Ethernet device eth0 for IPX capability as the primary IPX
  451.         interface using the IEEE 802.2 frame type and IPX network
  452.         address 39ab0222 you would use:
  453.  
  454.  
  455.           # ipx_interface add -p eth0 802.2 0x39ab0222
  456.  
  457.  
  458.  
  459.  
  460.      If you get an error while running this program and you happen to
  461.      not have already configured tcp/ip, then you will find that you
  462.      need to manually start the eth0 interface using the command:
  463.           # ifconfig eth0 up
  464.  
  465.  
  466.  
  467.  
  468.  
  469.      ipx_configure
  470.         This command enables or disables the automatic setting of the
  471.         interface configuration and primary interface settings.
  472.  
  473.         --auto_interface
  474.            allows you to select whether new network devices should be
  475.            automatically configured as IPX devices or not.
  476.  
  477.         --auto_primary
  478.            allows you to select whether the IPX software should
  479.            automatically select a primary interface or not.
  480.  
  481.         A typical example would be to enable both automatic interface
  482.         configuration and automatic primary interface setting with the
  483.         following command:
  484.  
  485.  
  486.           # ipx_configure --auto_interface=on --auto_primary=on
  487.  
  488.  
  489.  
  490.  
  491.  
  492.      ipx_internal_net
  493.         This command allows you to configure or deconfigure an internal
  494.         network address. An internal network address is optional, but
  495.         when it is configured it will always be the primary interface.
  496.         To configure an IPX network address of ab000000 on IPX node 1
  497.         you would use:
  498.  
  499.  
  500.           # ipx_internal_net add 0xab000000 1
  501.  
  502.  
  503.  
  504.  
  505.  
  506.      ipx_route
  507.         The command allows you to manually modify the IPX routing table.
  508.         For example to add a route to IPX network 39ab0222 via a router
  509.         with node number 00608CC33C0F on IPX network 39ab0108:
  510.  
  511.  
  512.           # ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F
  513.  
  514.  
  515.  
  516.  
  517.  
  518.   7.  Configuring your Linux machine as an IPX router.
  519.  
  520.   If you have a number of IPX segments that you wish to internetwork you
  521.   need the services of a router. In the Novell environment there are two
  522.   pieces of information which are necessary to be propagated around the
  523.   network.  They are the network routing information propagated using
  524.   Novell RIP, and the service advertisement information propagated using
  525.   Novell SAP. Any router must support both of these protocols to be
  526.   useful in most situations.
  527.  
  528.  
  529.   Linux has support for both of these protocols and can be fairly easily
  530.   made to function as a fully Novell compliant router.
  531.  
  532.   The Linux kernel IPX support actually manages the IPX packet
  533.   forwarding across interfaces, but it does this according to the rules
  534.   coded into the IPX routing table. Linux needs a program to implement
  535.   the Novell RIP and SAP to ensure that the IPX routing table is built
  536.   correctly and updated periodically to reflect changes in the network
  537.   status.
  538.  
  539.   Volker Lendecke <lendecke@namu01.gwdg.de> has developed a routing
  540.   daemon that will do this for you.
  541.  
  542.   You can find ipxripd at:
  543.  
  544.   sunsite.unc.edu
  545.   <ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/ipxripd-0.7.tgz>
  546.  
  547.   or at Volkers home site at:
  548.  
  549.   ftp.gwdg.de <ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ipxripd-0.7.tgz>
  550.  
  551.   Configuring your Linux machine to act as a router is very
  552.   straightforward.  The steps you must take are:
  553.  
  554.   1. Build your kernel with IPX, Ethernet and /proc support.
  555.  
  556.   2. Obtain, compile and install the ipxd daemon program.
  557.  
  558.   3. Boot the new kernel and ensure that each of the Ethernet cards has
  559.      been properly detected and there are no hardware conflicts.
  560.  
  561.   4. Enable the IPX protocol on each of the interfaces using the
  562.      ipx_interface command described above.
  563.  
  564.   5. Start the ipxd daemon program.
  565.  
  566.   Consider the following simple network:
  567.  
  568.  
  569.    IPX Addr: 0x01000000  802.2
  570.   |--------------------------|
  571.                 |
  572.                 \_________________________
  573.                                           \          Linux Router
  574.    IPX Addr: 0x02000000  802.2             \
  575.   |--------------------------|              \   eth0/-----------\
  576.                 |                            \--====|           |
  577.                 \_________________________          | IPX route |
  578.                                           \     eth1|  Table    |
  579.    IPX Addr: 0x03000000  etherII           \----====|    ^      |
  580.   |--------------------------|                      |    |      |
  581.                 |                               eth2|  IPXd     |
  582.                 \______________________________/====|           |
  583.                                                     |  SAPd     |
  584.    IPX Addr: 0x04000000  etherII                eth3|           |
  585.   |--------------------------|                 /====|           |
  586.                 |                              |    \___________/
  587.                 \______________________________/
  588.  
  589.  
  590.  
  591.   The configuration for the above network would look like:
  592.  
  593.  
  594.  
  595.   # ipx_interface add eth0 802.2 0x0100000000
  596.   # ipx_interface add eth1 802.2 0x0200000000
  597.   # ipx_interface add eth2 etherii 0x0300000000
  598.   # ipx_interface add eth3 etherii 0x0400000000
  599.   # ipxd
  600.  
  601.  
  602.  
  603.  
  604.   You should then wait a moment or two and check your
  605.   /proc/net/ipx_route file and you should see it populated with the IPX
  606.   routes relevant to your configuration and any learned from any other
  607.   routers in the network.
  608.  
  609.  
  610.   7.1.  Do I need to configure an internal network ?
  611.  
  612.   Novell has a feature called an internal network, which it uses to
  613.   simplify routing in situations where a host has more than one network
  614.   device connected.  This is useful in the case of a fileserver
  615.   connected to multiple networks as it means that only one route needs
  616.   to be advertised to reach the server regardless of which network you
  617.   are attempting from.
  618.  
  619.   In the case of a configuration where you are not running a fileserver
  620.   and your machine acting only as an IPX router the question is not as
  621.   simple to answer. It has been reported that configuring for IPX/PPP
  622.   works `better' if you also configure an internal network.
  623.  
  624.   In any case it is easy to do, but may require a rebuild of your
  625.   kernel.  When you are working through the kernel make config you must
  626.   answer y when asked Full internal IPX network as illustrated:
  627.  
  628.  
  629.  
  630.          ...
  631.          ...
  632.         Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y
  633.          ...
  634.          ...
  635.  
  636.  
  637.  
  638.  
  639.   To configure the internal network interface, use the ipx_internal_net
  640.   command described earlier in the IPX tools section. The main
  641.   precaution to take is to ensure that they IPX network address you
  642.   assign is unique on your network and that no other machine or network
  643.   is using it.
  644.  
  645.  
  646.   8.  Configuring your Linux machine as an NCP client.
  647.  
  648.   If you are a user of a mixed technology network that comprises both IP
  649.   and IPX protocols it is likely that at some time or another you have
  650.   wanted to have your Linux machine access data stored on a Novell
  651.   fileserver on your network. Novell have long offered an NFS server
  652.   package for their fileservers that would allow this, but if you are a
  653.   small site or have only a small number of people interested in doing
  654.   this it is difficult to justify the cost of the commercial package.
  655.  
  656.   Volker Lendecke <lendecke@namu01.gwdg.de> has written a Linux
  657.   filesystem kernel module that supports a subset of the Novell NCP that
  658.   will allow you to mount Novell volumes into your Linux filesystem
  659.   without requiring any additional products for your fileserver.  Volker
  660.   has called the package ncpfs and derived the necessary information
  661.   mainly from the book "Netzwerkprogrammierung in C" by Manfred Hill and
  662.   Ralf Zessin (further details of the book are contained within the
  663.   README file in the ncpfs package).
  664.  
  665.   The software causes Linux to emulate a normal Novell workstation for
  666.   file services. It also includes a small print utility that allows you
  667.   to print to Novell print queues (This is documented in the Print
  668.   Client section later).  The ncpfs package will work with Novell
  669.   fileservers of version 3.x and later, it will not work the Novell 2.x.
  670.   The ncpfs client will also work with close Novell compatible products,
  671.   but unfortunately some products that claim to be compatible aren't
  672.   compatible enough. To use ncpfs with Novell 4.x fileservers, the
  673.   fileserver must be configured to operate in bindery emulation mode,
  674.   because ncpfs does not yet support the NDS.
  675.  
  676.  
  677.  
  678.   8.1.  Obtaining ncpfs .
  679.  
  680.   The latest ncpfs package was designed to be built against the version
  681.   1.2.13 kernel or kernels later than 1.3.71 (this includes 2.x.x).  If
  682.   you not using a kernel in either of these categories then you will
  683.   have to upgrade your kernel. The Kernel-HOWTO <Kernel-HOWTO.html>
  684.   describes how to do this in detail.
  685.  
  686.   You can obtain the ncpfs package by anonymous ftp from Volker's home
  687.   site at: ftp.gwdg.de <ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/> or
  688.   sunsite.unc.edu
  689.   <ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs> or mirror
  690.   sites. The current version at the time of writing was:
  691.   ncpfs-2.0.10.tgz
  692.  
  693.  
  694.   8.2.  Building ncpfs  for kernel 1.2.13.
  695.  
  696.  
  697.      Build a kernel with Ethernet and IPX support
  698.         The first thing you need to do is ensure that your kernel has
  699.         been built with IPX support enabled.  In the 1.2.13 version
  700.         kernel you need only ensure that you have answered Y to the
  701.         question: 'The IPX protocol' as illustrated:
  702.  
  703.          ...
  704.          ...
  705.         Assume subnets are local (CONFIG_INET_SNARL) [y]
  706.         Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
  707.         The IPX protocol (CONFIG_IPX) [n] y
  708.         *
  709.         * SCSI support
  710.          ...
  711.          ...
  712.  
  713.  
  714.      You will also need to ensure that you include an appropriate driver
  715.      for your Ethernet card. If you do not know how to do this then you
  716.      should read the Ethernet-HOWTO <Ethernet-HOWTO.html>.
  717.  
  718.      You can then proceed to build your kernel. Make sure you remember
  719.      to run lilo to install it when you have finished.
  720.  
  721.  
  722.      Untar the ncpfs software
  723.  
  724.  
  725.  
  726.  
  727.         # cd /usr/src
  728.         # tar xvfz ncpfs-2.0.10.tgz
  729.         # cd ncpfs
  730.  
  731.  
  732.  
  733.  
  734.      Check the Makefile
  735.         If you intend to use kerneld to autoload the ncpfs kernel module
  736.         then you must uncomment the line in the Makefile that refers to:
  737.         KERNELD. If you are unsure what this means then you should read
  738.         the Kernel-HOWTO <Kernel-HOWTO.html> to familiarise yourself
  739.         with kernel module configuration.
  740.  
  741.  
  742.      Make the ncpfs software
  743.         The software should compile cleanly with no other configuration
  744.         necessary:
  745.  
  746.         # make
  747.  
  748.  
  749.  
  750.  
  751.      Copy the IPX tools somewhere useful if you don't already have them.
  752.         After the make has completed you should find all of the tools
  753.         you need in the ncpfs/bin directory. You can use:
  754.  
  755.  
  756.  
  757.           # make install
  758.  
  759.  
  760.  
  761.  
  762.      to install the tools in Volkers choice of directories. If you are
  763.      running on an ELF based system then you will need to rerun
  764.      `ldconfig -v' to ensure that the shared library is able to be
  765.      found.
  766.  
  767.  
  768.      Copy the ncpfs.o module somewhere useful if necessary.
  769.         If you are compiling for a 1.2.* kernel then you will find a
  770.         file called ncpfs.o in the ncpfs/bin directory after the make
  771.         has completed. This is the ncpfs kernel module.  You should copy
  772.         this somewhere useful. On my debian system I have copied it to
  773.         the /lib/modules/1.2.13/fs directory and added ncpfs to the
  774.         /etc/modules file so that it will be automatically started at
  775.         boot time. If you are using some other distribution you should
  776.         find where it keeps its modules and copy it there, or just copy
  777.         it to your /etc directory. To load the modules manually you need
  778.         to use the command:
  779.  
  780.         # insmod ncpfs.o
  781.  
  782.  
  783.  
  784.  
  785.  
  786.   8.3.  Building ncpfs  for kernels 1.3.71++/2.0.*.
  787.  
  788.   For the latest version of ncpfs you must use kernel 1.3.71 or newer,
  789.   this includes the 2.0.* kernels.
  790.  
  791.   If you intend using a kernel that is version 1.3.71 or newer then the
  792.   ncpfs kernel code has been included in the standard kernel
  793.   distribution. You need only answer Y to:
  794.  
  795.  
  796.        Networking options  --->
  797.            ...
  798.            ...
  799.            <*> The IPX protocol
  800.            ...
  801.        Filesystems  --->
  802.            ...
  803.            ...
  804.            <*> NCP filesystem support (to mount NetWare volumes)
  805.            ...
  806.  
  807.  
  808.  
  809.  
  810.   You will still need to follow the instructions for building for
  811.   kernels 1.2.* so that you can build the tools but there will not be a
  812.   module file for you to install.
  813.  
  814.  
  815.   8.4.  Configuring and using ncpfs .
  816.  
  817.  
  818.      Configure the IPX network software
  819.         There are two ways of configuring the IPX network software. You
  820.         can manually configure all of your IPX network information or
  821.         you can choose to let the software determine for itself some
  822.         reasonable settings using the command:
  823.  
  824.  
  825.  
  826.           # ipx_configure --auto_interface=on --auto_primary=on
  827.  
  828.  
  829.  
  830.  
  831.      This should be reasonable in most circumstances, but if it doesn't
  832.      work for you then read the 'IPX tools' section above to configure
  833.      your software manually.
  834.  
  835.  
  836.      Test the configuration
  837.         After your IPX network is configured you should be able to use
  838.         the slist command to see a list of all of the Novell fileserver
  839.         on your network:
  840.  
  841.         # slist
  842.  
  843.  
  844.      If the slist command displays a message like: ncp_connect: Invalid
  845.      argument then your kernel probably does not support IPX. Check that
  846.      you have actually booted off the appropriate kernel.  When you boot
  847.      you should see messages about 'IPX' and 'ncpfs' in the system
  848.      startup messages. If the slist command does not list all of your
  849.      fileservers then you may need to use the manual network configura-
  850.      tion method.
  851.  
  852.  
  853.      Mount a Novell(tm) volume.
  854.         If your IPX network software is working ok you should now be
  855.         able to mount a Novell fileserver volume into your Linux
  856.         filesystem. The ncpmount command is used for this purpose and
  857.         requires that you specify at least the following information:
  858.  
  859.         1. The fileserver name
  860.  
  861.         2. The fileserver login id. If it has a password you will also
  862.            need that.
  863.  
  864.         3. The mount point ie. where you want the mount to go. This will
  865.            be an existing directory on your machine.
  866.  
  867.         There is an equivalent ncpumount command to unmount a mounted
  868.         NCP filesystem. The NCP filesystems will be unmounted cleanly if
  869.         you shutdown your machine normally, so you needn't worry about
  870.         ncpumounting your filesystems manually before a halt or
  871.         shutdown.
  872.  
  873.         An example command to mount fileserver ACCT_FS01, with a login
  874.         id of guest with no password, under the /mnt/Accounts directory
  875.         might look like the following:
  876.  
  877.         # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
  878.  
  879.  
  880.      Note the use of the -n option to indicate that no password is
  881.      required for the login. The same login specifying a password of
  882.      secret would look like:
  883.  
  884.      # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret
  885.  
  886.  
  887.      If you don't specify either the -n or the -P options you will be
  888.      prompted for a password.
  889.  
  890.  
  891.      Check the mount
  892.         If the mount is successful you will find the volumes accessible
  893.         to the userid used for login listed as directories under the
  894.         mount point. You should then also be able to traverse the
  895.         directory structure to find other files. Because NCP does not
  896.         provide uid or gid ownership of files, all of the files will
  897.         have the permission and ownership assigned to the mount point
  898.         directory, keep this in mind when sharing mounts between Linux
  899.         users.
  900.  
  901.  
  902.      Configure mounts to be automatically performed.
  903.         If you have some need to permanently have an ncp mount then you
  904.         will want to configure the commands above into your rc files so
  905.         that they occur automatically at boot time. If your distribution
  906.         doesn't already provide some way of configuring IPX like debian
  907.         then I recommend you place them in your /etc/rc.local file if
  908.         you have one. You might use something like:
  909.  
  910.  
  911.           #
  912.           # Start the ncp filesystem
  913.           /sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
  914.  
  915.           # configure the IPX network
  916.           ipx_configure --auto_interface=on --auto_primary=on
  917.  
  918.           # guest login to the Accounting fileserver
  919.           ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
  920.  
  921.           #
  922.  
  923.  
  924.  
  925.      There is another means of configuring NCP mounts and that is by
  926.      building a $HOME/.nwclient file. This file contains details of tem-
  927.      porary or user specific NCP mounts that would be performed regu-
  928.      larly. It allows you to store the details of mounts so that you can
  929.      recreate them without having to specify all of the detail each
  930.      time.
  931.  
  932.      Its format is quite straightforward:
  933.  
  934.  
  935.           # The first entry is the 'preferred server' entry and is
  936.           # used whenever you do not specify a server explicitly.
  937.           #
  938.           # User TERRY login to DOCS_FS01 fileserver with password 'password'
  939.           DOCS_FS01/TERRY password
  940.           #
  941.           # Guest login to the ACCT_FS01 fileserver with no password.
  942.           ACCT_FS01/GUEST -
  943.  
  944.  
  945.  
  946.  
  947.      To activate these mounts you could use:
  948.  
  949.  
  950.           $ ncpmount /home/terry/docs
  951.  
  952.  
  953.  
  954.  
  955.      to mount: DOCS_FS01 with a login of TERRY under the
  956.      /home/terry/docs directory. Note that this entry was chosen because
  957.      no fileserver was specified in the mount command. If the following
  958.      command were used:
  959.  
  960.  
  961.           $ ncpmount -S ACCT_FS01 /home/terry/docs
  962.  
  963.  
  964.  
  965.  
  966.      then a GUEST login to ACCT_FS01 would be mounted there instead.
  967.  
  968.      Note: for this mechanism to work the permissions of the
  969.      $HOME/.nwclient file must be 0600 so you would need to use the
  970.      command:
  971.  
  972.  
  973.           $ chmod 0600 $HOME/.nwclient
  974.  
  975.  
  976.  
  977.  
  978.      If non-root users are to be allowed to use this mechanism then the
  979.      ncpmount command must be Set Userid Root, so you would need to give
  980.      it permissions:
  981.  
  982.  
  983.           # chmod 4755 ncpmount
  984.  
  985.  
  986.  
  987.  
  988.  
  989.      Try out the nsend utility
  990.         a utility to send messages to Novell users is also included in
  991.         the package, it is called nsend and is used as follows:
  992.  
  993.         # nsend rod hello there
  994.  
  995.  
  996.      would send the message "hello there" to a logged in user "rod" on
  997.      your "primary" fileserver (the first one appearing in your
  998.      .nwclient file. You can specify another fileserver with the same
  999.      syntax as for the ncpmount command.
  1000.  
  1001.  
  1002.  
  1003.   9.  Configuring your Linux machine as an NCP server.
  1004.  
  1005.   There are two packages available that allow Linux to provide the
  1006.   functions of a Novell Fileserver. They both allow you to share files
  1007.   on your linux machine with users using Novell NetWare client software.
  1008.   Users can attach and map filesystems to appear as local drives on
  1009.   their machines just as they would to a real Novell fileserver. You may
  1010.   want to try both to see which best serves your intended purpose.
  1011.  
  1012.  
  1013.   9.1.  The mars_nwe  package.
  1014.  
  1015.   Martin Stover <mstover@freeway.de> developed mars_nwe to enable linux
  1016.   to provide both file and print services for NetWare clients.
  1017.  
  1018.   In case you are wondering about the name: mars_nwe is Martin Stovers
  1019.   Netware Emulator.
  1020.  
  1021.  
  1022.   9.1.1.  Capability of mars_nwe .
  1023.  
  1024.   mars_nwe implements a subset of the full Novell NCP for file services,
  1025.   disk based bindery and also print services. It is likely to contain
  1026.   bugs but there are many people using it now and the number of bugs is
  1027.   steadily decreasing as new versions are released.
  1028.  
  1029.  
  1030.   9.1.2.  Obtaining mars_nwe .
  1031.  
  1032.   You can obtain mars_nwe from ftp.gwdg.de
  1033.   <ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/> or from
  1034.   <ftp://sunsite.unc.edu/pub/Linux/system/filesystems/ncpfs/>.
  1035.  
  1036.   The version current at the time of writing was: mars_nwe-0.98.pl8.tgz.
  1037.  
  1038.  
  1039.   9.1.3.  Building the mars_nwe  package.
  1040.  
  1041.  
  1042.      Build a kernel with Ethernet and IPX Support
  1043.         In the 1.2.13 version kernel you need only ensure that you have
  1044.         answered Y to the question: 'The IPX protocol' and N to the
  1045.         question: `Full internal IPX network' as illustrated:
  1046.  
  1047.          ...
  1048.          ...
  1049.         The IPX protocol (CONFIG_IPX) [n] y
  1050.          ...
  1051.          ...
  1052.         Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
  1053.          ...
  1054.          ...
  1055.  
  1056.  
  1057.      In newer kernels a similar process is adopted but the actual text
  1058.      of the prompt may have changed slightly.
  1059.  
  1060.      You will also need to ensure that you include an appropriate driver
  1061.      for your Ethernet card. If you do not know how to do this then you
  1062.      should read the Ethernet-HOWTO <Ethernet-HOWTO.html>.
  1063.  
  1064.      You can then proceed to build your kernel. Make sure you remember
  1065.      to run lilo to install it when you have finished.
  1066.  
  1067.  
  1068.      Untar the mars_nwe package.
  1069.  
  1070.  
  1071.           # cd /usr/src
  1072.           # tar xvfz mars_nwe-0.98.pl3.tgz
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.      Make mars_nwe.
  1079.         To make the package is very simple.  The first step is to simply
  1080.         run make, this will create a config.h file for you. Next you
  1081.         should look at and edit the config.h file if necessary. It
  1082.         allows you to configure items such as the installation
  1083.         directories that will be used and the maximum number of sessions
  1084.         and volumes that the server will support. The really important
  1085.         entries to look at are:
  1086.  
  1087.         FILENAME_NW_INI       the location of the initialisation file
  1088.         PATHNAME_PROGS        where the executable support programs will be found.
  1089.         PATHNAME_BINDERY      where the 'bindery' files will go.
  1090.         PATHNAME_PIDFILES     the directory for the 'pid' files to be written.
  1091.         MAX_CONNECTIONS       the maximum number of simultaneous connections allowed.
  1092.         MAX_NW_VOLS           the maximum number of volumes mars_nwe will support.
  1093.         MAX_FILE_HANDLES_CONN the maximum number of open files per connection.
  1094.         WITH_NAME_SPACE_CALLS if you want to support ncpfs clients.
  1095.         INTERNAL_RIP_SAP      whether you want mars_nwe to provide rip/sap routing.
  1096.         SHADOW_PWD            whether you use shadow passwords or not.
  1097.  
  1098.  
  1099.  
  1100.      The defaults will probably be ok but you should check anyway.
  1101.  
  1102.      When this is done:
  1103.  
  1104.  
  1105.           # make
  1106.           # make install
  1107.  
  1108.  
  1109.  
  1110.  
  1111.      will build the servers and install them in the appropriate
  1112.      directory. The installation script also installs the configuration
  1113.      file /etc/nwserv.conf.
  1114.  
  1115.  
  1116.      Configure the server.
  1117.         Configuration is fairly simple. You need to edit the
  1118.         /etc/nwserv.conf file. The format of this file may at first look
  1119.         a little cryptic, but it is fairly straightforward. The file
  1120.         contains a number of single line configuration items. Each line
  1121.         is whitespace delimited and begins with a number that indicates
  1122.         the contents of the line. All characters following a '#'
  1123.         character are considered a comment and ignored. Martin supplies
  1124.         an example configuration file in the package, but I'll present
  1125.         what I consider to be a simplified example to offer an
  1126.         alternative for you.
  1127.  
  1128.  
  1129.  
  1130.  
  1131.  
  1132.  
  1133.  
  1134.  
  1135.  
  1136.  
  1137.  
  1138.  
  1139.  
  1140.  
  1141.  
  1142.  
  1143.  
  1144.  
  1145.  
  1146.  
  1147.  
  1148.  
  1149.  
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.      # VOLUMES (max. 5)
  1190.      # Only the SYS volume is compulsory. The directory containing the SYS
  1191.      # volume must contain the directories: LOGIN, PUBLIC, SYSTEM, MAIL.
  1192.      # The 'i' option ignores case.
  1193.      # The 'k' option converts all filenames in NCP requests to lowercase.
  1194.      # The 'm' option marks the volume as removable (useful for cdroms etc.)
  1195.      # The 'r' option set the volume to read-only.
  1196.      # The 'o' option indicates the volume is a single mounted filesystem.
  1197.      # The 'P' option allows commands to be used as files.
  1198.      # The 'O' option allows use of the OS/2 namespace
  1199.      # The 'N' option allows use of the NFS namespace
  1200.      # The default is upper case.
  1201.      # Syntax:
  1202.      #    1 <Volumename> <Volumepath>   <Options>
  1203.  
  1204.      1   SYS         /home/netware/SYS/               # SYS
  1205.      1   DATA        /home/netware/DATA/      k       # DATA
  1206.      1   CDROM       /cdrom                   kmr     # CDROM
  1207.  
  1208.      # SERVER NAME
  1209.      # If not set then the linux hostname will be converted to upper case
  1210.      # and used. This is optional, the hostname will be used if this is not
  1211.      # configured.
  1212.      # Syntax:
  1213.      #    2 <Servername>
  1214.  
  1215.      2   LINUX_FS01
  1216.  
  1217.      # INTERNAL NETWORK ADDRESS
  1218.      # The Internal IPX Network Address is a feature that simplifies IPX routing
  1219.      # for multihomed hosts (hosts that have ports on more than one IPX network).
  1220.      # Syntax:
  1221.      #    3 <Internal Network Address> [<Node Number>]
  1222.      # or:
  1223.      #    3 auto
  1224.      #
  1225.      # If you use 'auto' then your host IP address will be used. NOTE: this may
  1226.      # be dangerous, please be sure you pick a number unique to your network.
  1227.      # Addresses are 4byte hexadecimal (the leading 0x is required).
  1228.  
  1229.      3   0x49a01010  1
  1230.  
  1231.  
  1232.      # NETWORK DEVICE(S)
  1233.      # This entry configures your IPX network. If you already have your
  1234.      # IPX network configured then you do not need this. This is the same as
  1235.      # using ipx_configure/ipx_interface before you start the server.
  1236.      # Syntax:
  1237.      #    4 <IPX Network Number> <device_name> <frametype> [<ticks>]
  1238.      #                         Frame types: ethernet_ii, 802.2, 802.3, SNAP
  1239.  
  1240.      4  0x39a01010  eth0  802.3  1
  1241.  
  1242.      # SAVE IPX ROUTES AFTER SERVER IS DOWNED
  1243.      # Syntax:
  1244.      #    5 <flag>
  1245.      #       0 = don't save routes, 1 = do save routes
  1246.  
  1247.      5 0
  1248.  
  1249.      # NETWARE VERSION
  1250.      # Syntax:
  1251.      #    6 <version>
  1252.      #      0 = 2.15, 1 = 3.11
  1253.  
  1254.      6 1
  1255.      # PASSWORD HANDLING
  1256.      # Real Novell DOS clients support a feature which encypts your
  1257.      # password when changing it. You can select whether you want your
  1258.      # mars server to support this feature or not.
  1259.      # Syntax
  1260.      #    7 <flag>
  1261.      #    <flag> is:
  1262.      #        0 to force password encryption. (Clients can't change password)
  1263.      #        1 force password encryption, allow unencrypted password change.
  1264.      #        7 allow non-encrypted password but no empty passwords.
  1265.      #        8 allow non-encrypted password including empty passwords.
  1266.      #        9 completely unencrypted passwords (doesn't work with OS/2)
  1267.  
  1268.      7 1
  1269.  
  1270.      # MINIMAL GID UID rights
  1271.      # permissions used for attachments with no login. These permissions
  1272.      # will be used for the files in your primary server attachment.
  1273.      # Syntax:
  1274.      #    10 <gid>
  1275.      #    11 <uid>
  1276.      #    <gid> <uid> are from /etc/passwd, /etc/groups
  1277.  
  1278.      10  200
  1279.      11  201
  1280.  
  1281.      # SUPERVISOR password
  1282.      # May be removed after the server is started once. The server will
  1283.      # encrypt this information into the bindery file after it is run.
  1284.      # You should avoid using the 'root' user and instead use another
  1285.      # account to administer the mars fileserver.
  1286.      #
  1287.      # This entry is read and encrypted into the server bindery files, so
  1288.      # it only needs to exist the first time you start the server to ensure
  1289.      # that the password isn't stolen.
  1290.      #
  1291.      # Syntax:
  1292.      #    12 <Supervisor-Login> <Unix username> [<password>]
  1293.  
  1294.      12  SUPERVISOR  terry  secret
  1295.  
  1296.      # USER ACCOUNTS
  1297.      # This associates NetWare logins with unix accounts. Password are
  1298.      # optional.
  1299.      # Syntax:
  1300.           13 <User Login> <Unix Username> [<password>]
  1301.  
  1302.      13  MARTIN martin
  1303.      13  TERRY  terry
  1304.  
  1305.      # LAZY SYSTEM ADMIN CONFIGURATION
  1306.      # If you have a large numbers of users and could not be bothered using
  1307.      # type 13 individual user mappings, you can automatically map mars_nwe
  1308.      # logins to linux user names. BUT, there is currently no means of making
  1309.      # use of the linux login password so all users configured this way are
  1310.      # will use the single password supplied here. My recommendation is not
  1311.      # to do this unless security is absolutely no concern to you.
  1312.      # Syntax:
  1313.      #    15 <flag> <common-password>
  1314.      #    <flag> is: 0  - don't automatically map users.
  1315.      #               1  - do automatically map users not configured above.
  1316.      #               99 - automatically map every user in this way.
  1317.  
  1318.      15  0  duzzenmatta
  1319.  
  1320.      # SANITY CHECKING
  1321.      # mars_nwe will automatically ensure that certain directories exist if
  1322.      # you set this flag.
  1323.      # Syntax:
  1324.      #    16 <flag>
  1325.      #    <flag> is 0 for no, don't, or 1 for yes, do.
  1326.  
  1327.      16  0
  1328.  
  1329.      # PRINT QUEUES
  1330.      # This associates NetWare printers with unix printers. The queue
  1331.      # directories must be created manually before printing is attempted.
  1332.      # The queue directories are NOT lpd queues.
  1333.      # Syntax:
  1334.      #    21 <queue_name> <queue_directory> <unix_print_cmd>
  1335.  
  1336.      21  EPSON  SYS:/PRINT/EPSON lpr -h
  1337.      21  LASER  SYS:/PRINT/LASER lpr -Plaser
  1338.  
  1339.      # DEBUG FLAGS
  1340.      # These are not normally needed, but may be useful if are you debugging
  1341.      # a problem.
  1342.      # Syntax:
  1343.      #    <debug_item> <debug_flag>
  1344.      #
  1345.      #    100 = IPX KERNEL
  1346.      #    101 = NWSERV
  1347.      #    102 = NCPSERV
  1348.      #    103 = NWCONN
  1349.      #    104 = start NWCLIENT
  1350.      #    105 = NWBIND
  1351.      #    106 = NWROUTED
  1352.      #                 0 = disable debug, 1 = enable debug
  1353.  
  1354.      100 0
  1355.      101 0
  1356.      102 0
  1357.      103 0
  1358.      104 0
  1359.      105 0
  1360.      106 0
  1361.  
  1362.      # RUN NWSERV IN BACKGROUND AND USE LOGFILE
  1363.      # Syntax:
  1364.      #    200 <flag>
  1365.      #        0 = run NWSERV in foreground and don't use logfile
  1366.      #        1 = run NWSERV in background and use logfile
  1367.  
  1368.      200  1
  1369.  
  1370.      # LOGFILE NAME
  1371.      # Syntax:
  1372.      #    201 <logfile>
  1373.  
  1374.      201  /tmp/nw.log
  1375.  
  1376.      # APPEND LOG OR OVERWRITE
  1377.      # Syntax:
  1378.      #    202 <flag>
  1379.      #        0 = append to existing logfile
  1380.      #        1 = overwrite existing logfile
  1381.  
  1382.      202  1
  1383.  
  1384.      # SERVER DOWN TIME
  1385.      # This item sets the time after a SERVER DOWN is issued that the
  1386.      # server really goes down.
  1387.      # Syntax:
  1388.      #    210 <time>
  1389.      #        in seconds. (defaults 10)
  1390.  
  1391.      210  10
  1392.  
  1393.      # ROUTING BROADCAST INTERVAL
  1394.      # The time is seconds between server broadcasts
  1395.      # Syntax:
  1396.      #    211 <time>
  1397.      #        in seconds. (defaults 60)
  1398.  
  1399.      211  60
  1400.  
  1401.      # ROUTING LOGGING INTERVAL
  1402.      # Set how many broadcasts take place before logging of routing
  1403.      # information occurs.
  1404.      # Syntax:
  1405.      #    300  <number>
  1406.  
  1407.      300  5
  1408.  
  1409.      # ROUTING LOGFILE
  1410.      # Set the name of the routing logfile
  1411.      # Syntax:
  1412.      #    301 <filename>
  1413.  
  1414.      301  /tmp/nw.routes
  1415.  
  1416.      # ROUTING APPEND/OVERWRITE
  1417.      # Set whether you want to append to an existing log file or
  1418.      # overwrite it.
  1419.      # Syntax:
  1420.      #    302 <flag>
  1421.      #        <flag> is 0 for append, 1 for create/overwrite
  1422.  
  1423.      302  1
  1424.  
  1425.      # WATCHDOG TIMING
  1426.      # Set the timing for watchdog messages that ensure the network is
  1427.      # still alive.
  1428.      # Syntax:
  1429.      #    310 <value>
  1430.      #        <value> =   0 - always send watchdogs
  1431.      #                  < 0 - (-ve) for disable watchdogs
  1432.      #                  > 0 - send watchdogs when network traffic
  1433.      #                        drops below 'n' ticks
  1434.  
  1435.      310  7
  1436.  
  1437.      # STATION FILE
  1438.      # Set the filename for the stations file which determine which
  1439.      # machines this fileserver will act as the primary fileserver for.
  1440.      # The syntax of this file is described in the 'examples' directory
  1441.      # of the source code.
  1442.      # Syntax:
  1443.      #    400 <filename>
  1444.  
  1445.      400  /etc/nwserv.stations
  1446.  
  1447.      # GET NEAREST FILESERVER HANDLING
  1448.      # Set how SAP Get Nearest Fileserver Requests are handled.
  1449.      # Syntax:
  1450.      #    401 <flag>
  1451.      #        <flag> is: 0 - disable 'Get Nearest Fileserver' requests.
  1452.      #                   1 - The 'stations' file lists stations to be excluded.
  1453.      #                   2 - The 'stations' file lists stations to be included.
  1454.  
  1455.      401  2
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.      Start the server
  1462.         If you've configured the server to expect external programs to
  1463.         configure your network and/or provide the routing function then
  1464.         you should start those before starting the server. Presuming you
  1465.         have configured the server so that itwill configure your
  1466.         interfaces for you and provide the routing services you need
  1467.         only issue the command:
  1468.  
  1469.  
  1470.           # nwserv
  1471.  
  1472.  
  1473.  
  1474.  
  1475.  
  1476.      Test the server
  1477.         To test the server you should first try to attach and login from
  1478.         a NetWare client on your network. You then set a CAPTURE from
  1479.         the client and attempt a print. If both of these are successful
  1480.         then the server is working.
  1481.  
  1482.  
  1483.   9.2.  The lwared  package.
  1484.  
  1485.   Ales Dryak <A.Dryak@sh.cvut.cz> developed lwared to allow Linux to
  1486.   function as an NCP based fileserver.
  1487.  
  1488.   Ales has called the package lwared, an abbreviation for LinWare
  1489.   Daemon.
  1490.  
  1491.  
  1492.   9.2.1.  Capability of lwared .
  1493.  
  1494.   The lwared server is capable of providing a subset of the full
  1495.   function of the Novell NCP. It incorporates messaging but it does not
  1496.   provide any printing facilities at all. It does not currently work
  1497.   very well with either Windows95 or Windows NT clients. The lwared
  1498.   server relies on external programs to build and update the IPX routing
  1499.   and SAP tables.  Misbehaving clients can cause the server to crash.
  1500.   Importantly, filename translation facilities have not been included.
  1501.  
  1502.   The server does work for NETX and VLM NetWare shells.
  1503.  
  1504.  
  1505.   9.2.2.  Obtaining lwared
  1506.  
  1507.   The lwared package can be built for any kernel newer than 1.2.0, I
  1508.   recommend you use version 1.2.13 as no kernel patches are required if
  1509.   you do. Some of the IPX functionality has changed with the version
  1510.   1.3.* kernels and this means that patches are now required to make it
  1511.   work properly. Appropriate patches are included for the new kernels,
  1512.   so if you must use an alpha kernel you should still be able to get
  1513.   lwared to work properly for you.
  1514.  
  1515.   You can obtain the lwared package by anonymous ftp from:
  1516.   klokan.sh.cvut.cz <ftp://klokan.sh.cvut.cz/pub/linux/linware/>
  1517.  
  1518.  
  1519.   or from:
  1520.  
  1521.   sunsite.unc.edu
  1522.   <ftp://sunsite.unc.edu/pub/Linux/system/network/daemons> or mirror
  1523.   sites. The current version at the time of writing was:
  1524.   lwared-0.95.tar.gz
  1525.  
  1526.  
  1527.   9.2.3.  Building lwared
  1528.  
  1529.  
  1530.      Untar the lwaredpackage
  1531.         Something like:
  1532.  
  1533.         # cd /usr/src
  1534.         # tar xvpfz lwared-0.95.tar.gz
  1535.  
  1536.  
  1537.  
  1538.  
  1539.      Build a kernel with Ethernet and IPX support
  1540.         If you are using an alpha 1.3.* kernel then you should try and
  1541.         use kernel version 1.3.17 or newer because the supplied patches
  1542.         were built against it. 1.3.* kernels older than 1.3.17 will
  1543.         require hand patching to install. (some information on how to do
  1544.         this is included in the INSTALL file in the package.). To
  1545.         install the patches against a 1.3.17 kernel or newer you should
  1546.         try:
  1547.  
  1548.         # make patch
  1549.  
  1550.  
  1551.  
  1552.      After applying the patches if necessary, the next thing you need to
  1553.      do is ensure that your kernel has been built with IPX support
  1554.      enabled. In the 1.2.13 version kernel you need only ensure that you
  1555.      have answered Y to the question: 'The IPX protocol' as illustrated:
  1556.  
  1557.       ...
  1558.       ...
  1559.      Assume subnets are local (CONFIG_INET_SNARL) [y]
  1560.      Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
  1561.      The IPX protocol (CONFIG_IPX) [n] y
  1562.      *
  1563.      * SCSI support
  1564.       ...
  1565.       ...
  1566.  
  1567.  
  1568.      In newer kernels a similar process is adopted by the actual text of
  1569.      the prompt may have changed slightly.
  1570.  
  1571.      You will also need to ensure that you include an appropriate driver
  1572.      for your Ethernet card. If you do not know how to do this then you
  1573.      should read the Ethernet-HOWTO <Ethernet-HOWTO.html>.
  1574.  
  1575.      You can then proceed to build your kernel. Make sure you remember
  1576.      to run lilo to install it when you have finished.
  1577.  
  1578.  
  1579.      Compile and install lwared.
  1580.         To compile lwared you should first check, edit if necessary, the
  1581.         server/config.h file. This file contains various settings that
  1582.         will govern the way your server will behave when it is running.
  1583.         The defaults are reasonable, though you might want to check that
  1584.         the directories specified for the log files and configuration
  1585.         files suit your system.
  1586.  
  1587.         # make depend
  1588.         # make
  1589.         # make install
  1590.  
  1591.  
  1592.      I found that the 'make depend' complained about not finding the
  1593.      float.h file on my system but appeared to work anyway.  I also
  1594.      found that when I tried compiling with gcc 2.6.3 I found I had to
  1595.      change the line:
  1596.  
  1597.      #include <net/route.h>
  1598.  
  1599.  
  1600.      to
  1601.  
  1602.      #include <net/if_route.h>
  1603.  
  1604.  
  1605.      in lib/ipxkern.c as this file changed name sometime.
  1606.  
  1607.      The 'make install' will attempt to install the server and routing
  1608.      daemon programs into your /usr/sbin directory, the lwpasswd program
  1609.      into your /usr/bin directory, the IPX utility programs will be
  1610.      installed into your /sbin directory and last but not least the
  1611.      manual pages will go into the /usr/man directory structure. If any
  1612.      of these locations are not suitable for your system then you should
  1613.      edit the relevant Makefile and change the target directories to
  1614.      suit.
  1615.  
  1616.  
  1617.  
  1618.   9.2.4.  Configuring and using lwared
  1619.  
  1620.   Now the fun bit!
  1621.  
  1622.  
  1623.      Configuring the IPX network
  1624.         The first thing you must do is configure your Ethernet
  1625.         interfaces to support the IPX networks your server will support.
  1626.         To do this you will need to know the IPX network addresses for
  1627.         each of your LAN segments, which Ethernet device (eth0, eth1
  1628.         etc.) is on which segment, what frame type (802.3, EtherII etc.)
  1629.         each LAN segment uses and what Internal Network address your
  1630.         server should use (this is really needed if your server will
  1631.         service more than one LAN segment).  A configuration for a
  1632.         server that is on two dis-similar segments with IPX network
  1633.         addresses 23a91300 and 23a91301 and internal network address
  1634.         bdefaced might look like:
  1635.  
  1636.         # ipx_internal_net add BDEFACED 1
  1637.         # ipx_interface add eth0 802.3 23a91300
  1638.         # ipx_interface add eth1 etherii 23a91301
  1639.  
  1640.  
  1641.  
  1642.  
  1643.      Start the routing daemons
  1644.         The kernel software itself actually does the IPX packet
  1645.         forwarding as it does for IP, but the kernel requires additional
  1646.         programs to manage the routing table updates. In the case of IPX
  1647.         two daemons are needed and both are supplied with lwared:
  1648.         ipxripd manages the IPX routing information and ipxsapd manages
  1649.         the SAP information.  To start the daemons you need only specify
  1650.         the location of where they should write their log messages:
  1651.         # ipxripd /var/adm/ipxrip
  1652.         # ipxsapd /var/adm/ipxsap
  1653.  
  1654.  
  1655.  
  1656.  
  1657.      Configure the lwared server
  1658.         There are two files that you must manually configure to allow
  1659.         user login to your lwared server.  They are:
  1660.  
  1661.  
  1662.  
  1663.         /etc/lwpasswd
  1664.            This is where LinWare user account information is kept. The
  1665.            lwpasswd program is to keep it up to date.  In its simplest
  1666.            form the /etc/lwpasswd file looks like:
  1667.  
  1668.            ales:
  1669.            terryd:
  1670.            guest:
  1671.  
  1672.  
  1673.         Its format is a simple list of login id followed by a ':' char-
  1674.         acter and then the encrypted version of the login passwd. A cou-
  1675.         ple of important caveats here: No encrypted password means no
  1676.         password, LinWare users must have Linux accounts, that is any
  1677.         user you place in /etc/lwpasswd must also appear in /etc/passwd
  1678.         and root is the only account that can change the password of
  1679.         another LinWare user. If you are logged in as root you can
  1680.         change the password of a LinWare user as this transcript demon-
  1681.         strates:
  1682.  
  1683.         # lwpasswd rodg
  1684.         Changing password for RODG
  1685.         Enter new password:
  1686.         Re-type new password:
  1687.         Password changed.
  1688.  
  1689.  
  1690.  
  1691.         /etc/lwvtab
  1692.            This is the LinWare volume tables and it stores information
  1693.            about what directories should be made available to LinWare
  1694.            users (this file is similar in nature to the NFS /etc/exports
  1695.            file). A simple example of its format is as follows:
  1696.  
  1697.            SYS             /lwfs/sys
  1698.            DATA            /lwfs/data
  1699.            HOME            /home
  1700.  
  1701.  
  1702.         The format is simple: Volume name followed by whitespace fol-
  1703.         lowed by Linux directory to export. You must have at least an
  1704.         entry for the SYS volume for the server to start. If you intend
  1705.         your DOS based users to be able use your LinWare server as their
  1706.         primary server then you must install a standard SYS volume
  1707.         directory structure underneath the directory you export as your
  1708.         SYS volume. Since these files are proprietary and copyright to
  1709.         the Novell corporation you should have a license for these. If
  1710.         you users will be using a Novell fileserver as their primary
  1711.         server then this will not be necessary.
  1712.  
  1713.  
  1714.      Start the lwared server.
  1715.         tada!
  1716.  
  1717.         # lwared
  1718.  
  1719.  
  1720.      It is almost an anticlimax isn't it ? Ok so you've got a question,
  1721.      right?  What is the fileserver name that is being advertised ? If
  1722.      you started the server as shown then the LinWare server name being
  1723.      advertised will be based on what is returned by the Linux hostname.
  1724.      If you'd like it to be something else then you can give the server
  1725.      the name when you start it, for example:
  1726.  
  1727.      # lwared -nlinux00
  1728.  
  1729.  
  1730.      would start the server with the name linux00.
  1731.  
  1732.  
  1733.      Test the lwared server.
  1734.         The very first thing to test is that your LinWare server appears
  1735.         in an slist from a DOS client on your network. The slist program
  1736.         is stored on the SYS volume of a Novell fileserver so you must
  1737.         do this from a machine that is already logged in somewhere. If
  1738.         this is not successful then check that ipxsapd and lwared are
  1739.         both running. If the slist is successful then you should try
  1740.         attaching to the server and mapping a volume:
  1741.  
  1742.         C:> attach linux00/ales
  1743.          ...
  1744.          ...
  1745.         C:> map l:=linux00/data:
  1746.         C:> l:
  1747.  
  1748.  
  1749.      You should then be able to treat the new map just like any other
  1750.      map. The file permissions you will have will be based on those
  1751.      allowed to the linux account that parallels your LinWare login.
  1752.  
  1753.  
  1754.  
  1755.   10.  Configuring your Linux machine as a Novell Print Client.
  1756.  
  1757.   The ncpfs package includes two small programs that allow you to handle
  1758.   printing from you Linux machine to a printer attached to a Novell
  1759.   print server.  The nprint command allows you to print to a file to a
  1760.   NetWare print queue. The pqlist command allows you the list the
  1761.   available print queues on a NetWare server.
  1762.  
  1763.   To obtain and install these commands just follow the instructions
  1764.   relating to the NCP client described earlier.
  1765.  
  1766.   Both commands require that you supply username and password so you
  1767.   might normally consider building some shell scripts to make the task
  1768.   of printing easier.
  1769.  
  1770.   An example might look like:
  1771.  
  1772.  
  1773.        # pqlist -S ACCT_FS01 -U guest -n
  1774.        # nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
  1775.  
  1776.  
  1777.  
  1778.  
  1779.   The login syntax is similar to the ncpmount command. The examples
  1780.   above assume that fileserver ACCT_FS01 has a guest account with no
  1781.   password, that a print queue called LASER exists and that guest is
  1782.   allowed to print to it.
  1783.   11.  Configuring your Linux machine as a Novell Print Server.
  1784.  
  1785.   A program to allow your Linux machine to act as a print server on a
  1786.   Netware network is included in the ncpfs package. For instructions on
  1787.   how to obtain and build, it follow the directions in the `Netware
  1788.   client' section above.
  1789.  
  1790.  
  1791.  
  1792.   11.1.  Prerequisites
  1793.  
  1794.   Configuration is quite straightforward but relies on you already
  1795.   having your printer configuration completed and working under Linux.
  1796.   This is covered in the Printing-HOWTO <Printing-HOWTO.html> in some
  1797.   depth.
  1798.  
  1799.  
  1800.   11.2.  Configuration
  1801.  
  1802.   When you have a working printer configuration, and you have built and
  1803.   installed the pserver utility then you need to add commands to start
  1804.   it into your rc files.
  1805.  
  1806.   Exactly what command will use will depend on depend on exactly how you
  1807.   want it to operate, but in its simplest form something like the
  1808.   following will work:
  1809.  
  1810.  
  1811.  
  1812.        # pserver -S ACCT_01 -U LASER -P secret -q LASERJET
  1813.  
  1814.  
  1815.  
  1816.  
  1817.   This example asks the pserver utility to login in to the ACCT_01
  1818.   fileserver with username LASER and password secret and to take jobs
  1819.   from the LASERJET print queue. When an incoming print job is received
  1820.   it will use the default print command of lpr to feed the print job to
  1821.   the Linux print daemon.
  1822.  
  1823.   You could if you wished use any Linux command to accept and print the
  1824.   print job. The -c argument allows you to specify the exact print
  1825.   command.  For example:
  1826.  
  1827.  
  1828.        # pserver -S ACCT_01 -U LASER -P secret -q LASERJET -c "lpr -Plaserjet"
  1829.  
  1830.  
  1831.  
  1832.  
  1833.   would do exactly the same as the previous example except it would send
  1834.   the job to the laserjet printcap configuration instead of the default
  1835.   one.
  1836.  
  1837.  
  1838.   12.  An overview of the ncpfs  user and adminstration commands
  1839.  
  1840.   Recent versions of Volker's ncpfs package include a range of user and
  1841.   administration commands that you might want to use. The tools are
  1842.   built and installed as part of the ncpfs installation process, so if
  1843.   you haven't already, follow the instructions supplied in the Novell
  1844.   Client section above to build and install them.
  1845.  
  1846.   Detailed information is available in the supplied man pages but a
  1847.   brief summary of the commands is as follows;
  1848.  
  1849.   12.1.  User commands.
  1850.  
  1851.  
  1852.      ncopy
  1853.         Network Copy - allows efficient file copies to be performed by
  1854.         using a Netware function rather than a copy across the network.
  1855.  
  1856.      nprint
  1857.         Network Print - allows you to print a file to a Netware print
  1858.         queue on a Netware server.
  1859.  
  1860.      nsend
  1861.         Network Send - allows you to send messages to other users on a
  1862.         Netware server.
  1863.  
  1864.      nwbols
  1865.         List Bindery Objects - allows you to list the bindery contents
  1866.         of a Netware server.
  1867.  
  1868.      nwboprops
  1869.         List Properties of a Bindery Object - allows you to the
  1870.         properties of a Netware bindery object.
  1871.  
  1872.      nwbpset
  1873.         Set Bindery Property - allows you to set the properties of a
  1874.         Netware bindery object.
  1875.  
  1876.      nwbpvalues
  1877.         Print Netware Bindery Objects Property Contents - allows you to
  1878.         print the contents of a Netware bindery property.
  1879.  
  1880.      nwfsinfo
  1881.         Fileserver Information - prints some summary information about a
  1882.         Netware server.
  1883.  
  1884.      nwpasswd
  1885.         Netware Password - allows you to change a Netware users
  1886.         password.
  1887.  
  1888.      nwrights
  1889.         Netware Rights - displays the rights associated with a
  1890.         particular file or directory.
  1891.  
  1892.      nwuserlist
  1893.         Userlist - lists the users currently logged into a Netware
  1894.         fileserver.
  1895.  
  1896.      pqlist
  1897.         Print Queue List - displays the contents of a Netware print
  1898.         queue.
  1899.  
  1900.      slist
  1901.         Server List - displays a list of know Netware fileserver.
  1902.  
  1903.  
  1904.   12.2.  Administration tools.
  1905.  
  1906.  
  1907.      nwbocreate
  1908.         Create a Bindery Object - allows you to create a Netware bindery
  1909.         object.
  1910.  
  1911.      nwborm
  1912.         Remove Bindery Object - allows you to delete a Netware bindery
  1913.         object.
  1914.  
  1915.      nwbpadd
  1916.         Add Bindery Property - allows you to set the value of an
  1917.         existing property of a Netware bindery object.
  1918.  
  1919.      nwbpcreate
  1920.         Create Bindery Property - allows you to create a new property
  1921.         for an existing Netware bindery object.
  1922.  
  1923.      nwbprm
  1924.         Remove Bindery Property - allows you to remove a property from a
  1925.         Netware bindery object.
  1926.  
  1927.      nwgrant
  1928.         Grant Trustee Rights - allows you to assign trustee rights to a
  1929.         directory on a Netware fileserver.
  1930.  
  1931.      nwrevoke
  1932.         Revoke Trustee Rights - allows you to remove trustee rights from
  1933.         a directory on a Netware fileserver.
  1934.  
  1935.  
  1936.  
  1937.   13.  Configuring PPP for IPX support.
  1938.  
  1939.   New versions of the pppd PPP daemon for Linux have support that allows
  1940.   you to carry IPX packets across a PPP serial link. You need at least
  1941.   version ppp-2.2.0d of the daemon. See the PPP-HOWTO <PPP-HOWTO.html>
  1942.   for details on where to find it. When you compile pppd you must ensure
  1943.   you enable the IPX support by adding the following two lines:
  1944.  
  1945.  
  1946.  
  1947.        IPX_CHANGE = 1
  1948.        USE_MS_DNS = 1
  1949.  
  1950.  
  1951.  
  1952.  
  1953.   to: /usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux.
  1954.  
  1955.   The IPX_CHANGE is what configures the IPX support into PPP.  The
  1956.   USE_MS_DNS define allows Microsoft Windows95 machines to do Name
  1957.   Lookups.
  1958.  
  1959.   The real trick to getting it to work in knowing how to configure it.
  1960.  
  1961.   There are many ways of doing this, but I'm only going to describe the
  1962.   two that I've received any information on. I've tried neither yet, so
  1963.   consider this section experimental, and if you get something to work,
  1964.   please let me know.
  1965.  
  1966.  
  1967.   13.1.  Configuring an IPX/PPP server.
  1968.  
  1969.   The first thing you need to do is configure your Linux machine as an
  1970.   IP/PPP server. Don't panic! This isn't difficult. Again, follow the
  1971.   instructions in the PPP-HOWTO <PPP-HOWTO.html> and you should be
  1972.   pretty much ok. When you have this done there are a couple of simple
  1973.   modifications you need to make to get IPX working over the same
  1974.   configuration.
  1975.  
  1976.  
  1977.   13.1.1.  First steps.
  1978.  
  1979.   One of the first steps you must take is to configure your linux
  1980.   machine as an IPX router as described in the appropriate section
  1981.   earlier in this document.  You won't need to use the ipx_route command
  1982.   for the ppp interface because pppd will configure these for you as it
  1983.   does for IP. When you have the ipxd daemon running it will
  1984.   automatically detect any new IPX interfaces and propogates routes for
  1985.   them. In this way your dialup hosts will be seen by other machines
  1986.   automatically when they connect.
  1987.  
  1988.  
  1989.  
  1990.   13.1.2.  Design.
  1991.  
  1992.   When you are running as a server it will normally be your
  1993.   responsibility to assign network address to each of the PPP links when
  1994.   they are established.  This is an important point, each PPP link will
  1995.   be an IPX network and will have a unique IPX network address. This
  1996.   means that you must decide how you will allocate addresses and what
  1997.   what they will be. A simple convention is to allocate one IPX network
  1998.   address to each serial device that will support IPX/PPP. You could
  1999.   allocate IPX network addresses based on the login id of the connecting
  2000.   user, but I don't see any particularly good reason to do so.
  2001.  
  2002.   I will assume that this is what you have done, and that there are two
  2003.   serial devices (modems) that we will use. The addresses I've assigned
  2004.   in this contrived example are:
  2005.  
  2006.  
  2007.  
  2008.        device IPX Network Address
  2009.        ------ -------------------
  2010.        ttyS0  0xABCDEF00
  2011.        ttyS1  0xABCDEF01
  2012.  
  2013.  
  2014.  
  2015.  
  2016.  
  2017.   13.1.3.  Configure pppd .
  2018.  
  2019.   Configure your /etc/ppp/options.ttyS0 file as follows:
  2020.  
  2021.  
  2022.  
  2023.        ipx-network 0xABCDEF00
  2024.        ipx-node 2:0
  2025.        ipxcp-accept-remote
  2026.  
  2027.  
  2028.  
  2029.  
  2030.   and your /etc/ppp/options.ttyS1 file as:
  2031.  
  2032.  
  2033.  
  2034.        ipx-network 0xABCDEF01
  2035.        ipx-node 3:0
  2036.        ipxcp-accept-remote
  2037.  
  2038.  
  2039.  
  2040.  
  2041.   These will ask pppd to allocate the appropriate IPX network addresses
  2042.   to the link when the link is established, set the local node number to
  2043.   2 or 3 and will let the remote node overwrite what the remote node
  2044.   number with what it thinks it is. Note that each of the addresses are
  2045.   hexadecimal numbers and that 0x is required at the start of the
  2046.   network address, but not required at the start of the node address.
  2047.   There are other places this information could be configured. If you
  2048.   have only one dialin modem then an entry could go into the
  2049.   /etc/ppp/options file. Alternatively this information can be passed on
  2050.   the command line to pppd.
  2051.  
  2052.  
  2053.   13.1.4.  Test the server configuration.
  2054.  
  2055.   To test the configuration you will need to have a client configuration
  2056.   that is known to work. When the caller dials in, logs in and pppd
  2057.   starts it will assign the network address, advise the client of the
  2058.   servers node number and negotiate the clients node number. When this
  2059.   has completed, and after ipxd has detected the new interface the
  2060.   client should be able to establish IPX connections to remote hosts.
  2061.  
  2062.  
  2063.   13.2.  Configuring an IPX/PPP client.
  2064.  
  2065.   In a client configuration, whether or not you configure your Linux
  2066.   machine as an IPX router depends on whether you have a local LAN that
  2067.   you wish to act as an IPX router for. If you are a standalone machine
  2068.   connecting to an IPX/PPP dialin server then you won't need to run
  2069.   ipxd, but if you have a LAN and wish all of the machines on the LAN to
  2070.   make use of the IPX/PPP route then you must configure and run ipxd as
  2071.   described.  This configuration is much simpler because you do not have
  2072.   multiple serial devices to configure.
  2073.  
  2074.  
  2075.   13.2.1.  Configuring pppd
  2076.  
  2077.   The simplest configuration is one that allows the server to supply all
  2078.   of the IPX network configuration information. This configuration would
  2079.   be compatible with the server configuration described above.
  2080.  
  2081.   Again you need to add some options to your /etc/ppp/options file, they
  2082.   are:
  2083.  
  2084.  
  2085.        ipxcp-accept-network
  2086.        ipxcp-accept-remote
  2087.        ipxcp-accept-local
  2088.  
  2089.  
  2090.  
  2091.  
  2092.   These options tell pppd to act completely passively and accept all of
  2093.   the configuration details from the server. You could supply default
  2094.   values here for servers that don't supply details by adding ipx-
  2095.   network and ipx-node entries similar to the server configuration.
  2096.  
  2097.  
  2098.   13.2.2.  Testing the IPX/PPP client.
  2099.  
  2100.   To test the client you will need a known working server to dial into.
  2101.   After you have dialled in and pppd has run you should see the IPX
  2102.   details configured on your ppp0 device when you run the ifconfig
  2103.   command and you should be able to use ncpmount.
  2104.  
  2105.   I'm not sure whether you will have to manually add IPX routes so that
  2106.   you can reach distant fileserver or not. This seems likely. If anyone
  2107.   running this configuration could tell me I'd be grateful.
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.   14.  IPX tunnel over IP
  2114.  
  2115.   Many of you will be in a situation where you have two Novell Local
  2116.   Area Netorks with only an IP connection between them. How do you play
  2117.   multiplayer deathmatch DOOM for DOS via this arrangement you might ask
  2118.   ? Andreas Godzina <ag@agsc.han.de> has an answer for you in the form
  2119.   of ipxtunnel.
  2120.  
  2121.   ipxtunnel provides a bridge-like facility for IPX by allowing IPX
  2122.   packets to be encapsulated with tcp/ip datagrams so that they can be
  2123.   carried by a tcp/ip connection. It listens for IPX packets and when it
  2124.   hears one it wraps it within a tcp/ip datagram and routes it to a
  2125.   remote IP address that you specify. For this to work of course the
  2126.   machine that you route the encapsulated IPX must also be running a
  2127.   copy of the same version of ipxtunnel as you.
  2128.  
  2129.  
  2130.   14.1.  Obtaining ipxtunnel
  2131.  
  2132.   You can obtain ipxtunnel from sunsite.unc.edu
  2133.   <ftp://sunsite.unc.edu/pub/Linux/system/network/daemons> or mirror
  2134.   sites.
  2135.  
  2136.  
  2137.   14.2.  Building ipxtunnel
  2138.  
  2139.   ipxtunnel built cleanly for me using the following commands:
  2140.  
  2141.  
  2142.        # cd /usr/src
  2143.        # tar xvfz .../ipxtunnel.tgz
  2144.        # cd ipxtunnel
  2145.        # make
  2146.  
  2147.  
  2148.  
  2149.  
  2150.  
  2151.   14.3.  Configuring ipxtunnel
  2152.  
  2153.   Configuration for ipxtunnel is easy. Lets say that your friends
  2154.   machine is gau.somewhere.com and your machine is called gim.sw.edu.
  2155.   ipxtunnel uses a configuration file called /etc/ipxtunnel.conf. This
  2156.   file allows you to specify the default UDP port to use for the tcp/ip
  2157.   connection, where to send the encapsulated data and which of your
  2158.   local interfaces ipxtunnel should listen on and deliver IPX packets
  2159.   to.
  2160.  
  2161.   A simple configuration file would look like the following:
  2162.  
  2163.  
  2164.        #
  2165.        # /etc/ipxtunnel.conf for gim.sw.edu
  2166.        #
  2167.        # The UDP port to use:                       (default 7666)
  2168.        port 7777
  2169.        #
  2170.        # The remote machine to send IPX packets to: (no default)
  2171.        remote gau.somewhere.com
  2172.        #
  2173.        # The local interfaces to listen for IPX on: (default eth0)
  2174.        interface eth0
  2175.        interface eth1
  2176.  
  2177.  
  2178.  
  2179.   Obviously the other machine would have a similar configuration file
  2180.   specifying this machine as a remote host.
  2181.  
  2182.  
  2183.   14.4.  Testing and using ipxtunnel
  2184.  
  2185.   ipxtunnel acts like an IPX bridge, so the IPX networks at either end
  2186.   of the link should probably be the same. Andreas has never tested the
  2187.   ipxtunnel in an environment that actually supports Novell file servers
  2188.   so if you do try this in a real environment let Andreas know if it
  2189.   works or not.
  2190.  
  2191.   If the ipxtunnel is working you should be able to start your DOOM
  2192.   machines up at each end of the link running IPX mode and they should
  2193.   see each other.
  2194.  
  2195.   Andreas has only used this code over good high speed lines and he
  2196.   makes no claim as to its performance when your link is low speed.
  2197.   Again, let him know what works for you and what doesn't.
  2198.  
  2199.  
  2200.  
  2201.   15.  Commercial IPX support for Linux.
  2202.  
  2203.  
  2204.  
  2205.  
  2206.   15.1.  Caldera'a Network Desktop
  2207.  
  2208.   Caldera Inc., produce a Linux distribution that features a range of
  2209.   commercially supported enhancements including fully functional Novell
  2210.   NetWare client support. The base distribution is the well respected
  2211.   Red Hat Linux Distribution and Caldera have added their "Network
  2212.   Desktop" products to this.  The NetWare support provides a fully
  2213.   featured Novell NetWare client built on technology licensed from
  2214.   Novell Corporation. The client provides full client access to Novell
  2215.   3.x and 4.x fileservers and includes features such as NetWare
  2216.   Directory Service (NDS) and RSA encryption.
  2217.  
  2218.   You can obtain much more information and ordering details from the:
  2219.   Caldera Inc Web Server <http://www.caldera.com/>.
  2220.  
  2221.   If you work within a Netware 4.x and/or NDS environment then the
  2222.   Caldera Netware Client is the only solution available.
  2223.  
  2224.   If you have a business critical application for Novell support for
  2225.   Linux then the Caldera product should be something you take a close
  2226.   look at.
  2227.  
  2228.  
  2229.   16.  Some Frequently Asked Questions
  2230.  
  2231.  
  2232.      Where can I find commercially supported IPX software for Linux ?
  2233.         The Caldera Corporation offers a fully licensed and fully
  2234.         supported Netware 3.x and 4.x client. You can obtain information
  2235.         about it from the Caldera Inc Web Server
  2236.         <http://www.caldera.com/>.
  2237.  
  2238.  
  2239.      Does the IPX software work with Arcnet/Token Ring/etc. ?
  2240.         The Linux IPX software does work with ArcNet and Token Ring
  2241.         interfaces.  I haven't heard of anyone trying it with AX.25 yet.
  2242.         Configuration is the same as for configuring for ethernet except
  2243.         you will have to substitute appropriate device names in place of
  2244.         'eth0' and appopriate hardware addresses where necessary.
  2245.      How do I configure more than one IPX interface ?
  2246.         If you have more than one interface in your machine you should
  2247.         use the ipx_interface command to manually configure each one,
  2248.         you should not use the `plug n play' configuration.
  2249.  
  2250.  
  2251.      How do I choose IPX addresses ?
  2252.         IPX networking is similar, but not identical to, IP networking.
  2253.         A major difference is the way that addresses are used. IPX does
  2254.         not use the concept of subnetworking and so the sort of
  2255.         associations that you have between network addresses and
  2256.         networks is different. The rules are fairly simple:
  2257.  
  2258.      o  Every IPX network address must be unique on a wide area network.
  2259.         This includes Internal Network Addresses. Many organisations
  2260.         using IPX over a wide area network will have some sort of
  2261.         addressing standard that you should follow.
  2262.  
  2263.      o  Every Host address on an individual network must be unique. This
  2264.         means that every host on each IPX network must have a uniquely
  2265.         assigned address. In the case of ethernet network this isn't
  2266.         difficult as the cards each have a unique address. In the case
  2267.         of IPX/PPP this means you must ensure that you allocate unique
  2268.         addresses to all hosts on the network, irrespective of which end
  2269.         of the link(s) they are connected. Host address do not need to
  2270.         be unique across a wide area network as the network address is
  2271.         used in combination with the host address to uniquely identify a
  2272.         host.
  2273.  
  2274.  
  2275.      What are frame types, which should I use ?
  2276.         There are a variety of frame types in use over which you can run
  2277.         IPX.  The most common of these are described in the 'common
  2278.         terms' section of this document (under the `Frame Type entry').
  2279.  
  2280.         If you are installing your machine on an existing network then
  2281.         you must use whatever is already in use to allow you to
  2282.         interwork with the other hosts on the network, but if the
  2283.         installation is a brand new network you can use any of a range
  2284.         of protocols to carry  your IPX traffic. My recommendation if
  2285.         you are configuring a brand new network and you need to carry
  2286.         both IPX and IP traffic is to use the Ethernet_II frame type.
  2287.  
  2288.  
  2289.      My Windows95 machines mess up my frame type autodetection ?
  2290.         Apparently they can, yeah. I could make nasty comments, but
  2291.         instead I'll just suggest that you use the manual frame type
  2292.         configuration instead of the automatic one. It is probably the
  2293.         better way anyway.
  2294.  
  2295.  
  2296.      Why do I get the message `invalid argument' when I configure IPX ?
  2297.         You are probably not running a kernel that supports IPX, either
  2298.         recompile your kernel so it does, or double check that you have
  2299.         actually used lilo to install and run the new kernel.
  2300.  
  2301.  
  2302.      Why do I get the message `package not installed' when I configure
  2303.         IPX ?
  2304.         You are probably not running a kernel that supports IPX, either
  2305.         recompile your kernel so it does, or double check that you have
  2306.         actually used lilo to install and run the new kernel.
  2307.  
  2308.  
  2309.      Why do I get the message `IPX support not in kernel' from pppd ?
  2310.         You've probably compiled IPX as a module and not ensured that it
  2311.         was loaded before started pppd.
  2312.  
  2313.  
  2314.      How do I NFS export a mounted NCP filesystem ?
  2315.         To use NFS to export an NCP filesystem you must mount it using
  2316.         the ncpmount -V option. This option allows you to mount only one
  2317.         volume of a fileserver instead of the usual mounting of all of
  2318.         them.  When you do this your NFS daemon will allow you to export
  2319.         that filesystem in the usual way.
  2320.  
  2321.  
  2322.      Why doesn't slist work when I have an internel network with
  2323.         mars_nwe ?
  2324.         You must have the get nearest server enabled.  That is, entry
  2325.         401 in /etc/nwserv.conf should be 0 unless you have a reason for
  2326.         not responding to get nearest servers.  If you just want slist
  2327.         to work and not respond to every get nearest server request,
  2328.         include your internal network and node number in
  2329.         /etc/nwserv.stations and set entry 401 in /etc/nwserv.conf to 2.
  2330.  
  2331.  
  2332.      Does ncpfs package work with mars_nwe ?
  2333.         Martin and Volker's code is slowly beginning to converge. Recent
  2334.         versions of mars_nwe have an option to enable it to work with
  2335.         ncpfs.  You must enable the WITH_NAME_SPACE_CALLS in the
  2336.         mars_nwe config.h file.
  2337.  
  2338.  
  2339.      Is there any free DOS software to work with mars_nwe ?
  2340.         A contrived question deserves a contrived answer. I'm glad you
  2341.         asked, Martin has a package that he distributes alongside his
  2342.         mars_nwe package that offers free DOS client support for the
  2343.         mars_nwe server.  You can find it at the same sites as the
  2344.         server, and it will be called mars_dosutils-0.01.tgz. It
  2345.         includes C source code for programs such as slist.exe,
  2346.         login.exe, map.exe etc. The source is compilable with
  2347.         Borland(tm) C.
  2348.  
  2349.  
  2350.  
  2351.   17.  Copyright Message.
  2352.  
  2353.   The IPX-HOWTO, a guide to software supporting the IPX protocol for
  2354.   Linux.  Copyright (c) 1995 Terry Dawson.
  2355.  
  2356.   This program is free software; you can redistribute it and/or modify
  2357.   it under the terms of the GNU General Public License as published by
  2358.   the Free Software Foundation; either version 2 of the License, or (at
  2359.   your option) any later version.
  2360.  
  2361.   This program is distributed in the hope that it will be useful, but
  2362.   WITHOUT ANY WARRANTY; without even the implied warranty of
  2363.   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  2364.   General Public License for more details.
  2365.  
  2366.   You should have received a copy of the GNU General Public License
  2367.   along with this program; if not, write to the:
  2368.  
  2369.   Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
  2370.   USA.
  2371.  
  2372.  
  2373.   18.  Miscellaneous and Acknowledgements.
  2374.  
  2375.   David E. Storey <dave@tamos.gmu.edu> and Volker Lendecke
  2376.   <lendecke@namu01.gwdg.de> both assisted greatly by supplying me with
  2377.   information for this document.  Gilbert Callaghan
  2378.   <gilbert@pokey.inviso.com>, David Higgins <dave@infra.com> and Chad
  2379.   Robinson <chadr@brtgate.brttech.com> each contributed information on
  2380.   configuring IPX/PPP.  Bennie Venter <bjv@Gil-galad.paradigm-sa.com>
  2381.   contributed some useful information relating to frame types.
  2382.   Christopher Wall <vergil@idir.net contributed some useful suggestions
  2383.   to improve the readability and layout of the document.  Axel Boldt
  2384.   <boldt@math.ucsb.edu> contributed some useful suggestions and
  2385.   feedback.  Erik D. Olson <eriko@wrq.com> provided some useful feedback
  2386.   and information on configuring PPP for IPX.  Brian King
  2387.   <root@brian.library.dal.ca> contributed a question for the FAQ
  2388.   section.
  2389.  
  2390.   "NetWare" is a registered trademark of the Novell Corporation
  2391.   <http://www.novell.com/>.  "Caldera" is a registered trademark of the
  2392.   Caldera Corporation <http://www.caldera.com/>.
  2393.  
  2394.  
  2395.  
  2396.   regards Terry Dawson, VK2KTJ.
  2397.  
  2398.   <terry@perf.no.itg.telstra.com.au>
  2399.  
  2400.  
  2401.  
  2402.  
  2403.  
  2404.  
  2405.  
  2406.  
  2407.  
  2408.  
  2409.  
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417.  
  2418.  
  2419.  
  2420.  
  2421.  
  2422.  
  2423.  
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.