home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / DOC / HOWTO / OTHER_FO / SGML / IPX_HOWT.GZ / IPX-HOWTO.sgml
Encoding:
SGML Document  |  1996-06-02  |  64.4 KB  |  1,683 lines

  1. <!doctype linuxdoc system>
  2.  
  3. <!-- This is the Linux IPX-HOWTO, please forward any comments or suggestions
  4.      to the author: terry@perf.no.itg.telecom.com.au
  5.  -->
  6.  
  7. <article>
  8.  
  9. <!-- Title information -->
  10.  
  11. <title>Linux IPX-HOWTO
  12. <author>Terry Dawson, <tt>terry@perf.no.itg.telecom.com.au</tt>
  13. <date>v2.0, 1 June 1996
  14.  
  15. <abstract>
  16. This document aims to describe how to obtain, install and configure various
  17. tools available for the the Linux operating system that use the Linux kernel
  18. IPX protocol support.
  19. </abstract>
  20.  
  21. <!-- Table of contents -->
  22. <toc>
  23.  
  24. <!-- Begin the document -->
  25.  
  26. <sect><heading>Introduction.
  27.  
  28. <p>
  29. This is the Linux IPX-HOWTO. You should read the Linux NET-2-HOWTO in
  30. conjunction with this document.
  31.  
  32. <sect1><heading>Changes from the previous release.
  33.  
  34. <p>
  35. <verb>
  36. Additions:
  37.     FAQ section - thanks to Gregory Steuck, Volker Lendecke, Alan Cox
  38.     PPP section - thanks Gilbert, David, and Chad.
  39.     details of 'linware' list.
  40.     ipx_internal_net to router section - comments ?
  41.  
  42. Corrections/Updates:
  43.     Copyright is now GNU GPL version 2.0
  44.     Updated location of Greg's IPX tools.
  45.     Suggest Volkers ipxd in place of old daemons.
  46.     Updated locations of Volkers ftp site location.
  47.     Updated versions of ncpfs and mars_nwe.
  48. </verb>
  49.  
  50. <sect1><heading>Introduction.
  51.  
  52. <p>
  53. The Linux Kernel has a completely new network implementation as compared
  54. to other Unix like operating systems. The ability to take a fresh approach
  55. to developing the kernel networking software has led to the Linux kernel
  56. having support for a range of non tcp/ip protocols being built. The IPX
  57. protocol is one of those that have been included. 
  58.  
  59. The Linux kernel supports the IPX protocol only. It does not yet support
  60. protocols such as IPX/RIP, SAP or NCP, these are supported by other software
  61. such as that documented elsewhere in this document.
  62.  
  63. The IPX support was originally developed by Alan Cox
  64. <tt><ialan@iifeak.swan.ac.uk></tt> and has been significantly enhanced by
  65. Greg Page <tt><greg@caldera.com></tt>.
  66.  
  67. <sect><heading>Disclaimer.
  68.  
  69. <p>
  70. I do not and cannot know everything there is to know about the Linux network
  71. software. Please accept and be warned that this document probably does contain
  72. errors. Please read any README files that are included with any of the various
  73. pieces of software described in this document for more detailed and accurate
  74. information. I will attempt to keep this document as error-free and up-to-date
  75. as possible. Versions of software are current as at time of writing.
  76. <p>
  77. In no way do I or the authors of the software in this document offer protection
  78. against your own actions. If you configure this software, even as described in
  79. this document and it causes problems on your network then you alone must
  80. carry the responsibility. I include this warning because IPX network design
  81. and configuration is not always a simple matter and sometimes undesirable
  82. interaction with other routers and fileservers can result if you do not design
  83. or configure your network carefully. I also include this warning because I
  84. was asked to by someone unfortunate enough to have discovered this lesson the
  85. hard way.
  86.  
  87. <sect><heading>Related Documentation.
  88.  
  89. <p>
  90. This document presumes you understand how to build a Linux kernel with
  91. the appropriate networking options selected and that you understand how
  92. to use the basic network tools such as <em>ifconfig</em> and <em>route</em>.
  93. If you do not, then you should read the <url url="http://sunsite.unc.edu/mdw/HOWTO/NET-2-HOWTO.html" name="NET-2-HOWTO">
  94. in conjunction with this document as it describes these.
  95. <p>
  96. Other Linux HOWTO documents that might be useful are:
  97. <p>
  98. The <url url="http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html"
  99. name="Ethernet-HOWTO">, which describes the details of configuring an
  100. Ethernet device for Linux.
  101.  
  102. The <url url="http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html"
  103. name="PPP-HOWTO"> as IPX support is available for version 2.2.0d and later of
  104. the Linux PPP implementation.
  105.  
  106. <sect1><heading>New versions of this document.
  107.  
  108. <p>
  109. If your copy of this document is more than two months old then I strongly
  110. recommend you obtain a newer version. The networking support for Linux is
  111. changing very rapidly with new enhancements and features, so this document
  112. also changes fairly frequently. The latest released version of this document
  113. can always be retrieved by anonymous ftp from:
  114.  
  115. <bf>sunsite.unc.edu</bf>
  116. <tscreen><verb>
  117. /pub/Linux/docs/HOWTO/IPX-HOWTO
  118. </verb></tscreen>
  119. or:
  120. <tscreen><verb>
  121. /pub/Linux/docs/HOWTO/other-formats/IPX-HOWTO{-html.tar,ps,dvi}.gz
  122. </verb></tscreen>
  123.  
  124. via the World Wide Web from the
  125. <url url="http://sunsite.unc.edu/mdw/linux.html"
  126. name="Linux Documentation Project Web Server">, at page:
  127. <url url="http://sunsite.unc.edu/mdw/HOWTO/IPX-HOWTO.html" name="IPX-HOWTO">
  128. or directly from me, <tt><terry@perf.no.itg.telecom.com.au></tt>. It may
  129. also be posted to the newsgroups: <tt>comp.os.linux.networking</tt>,
  130. <tt>comp.os.linux.answers</tt> and <tt>news.answers</tt> from time to time.
  131.  
  132. <sect1><heading>Feedback.
  133.  
  134. <p>
  135. Please send any comments, updates, or suggestions to me,
  136. <tt><terry@perf.no.itg.telecom.com.au></tt>. The sooner I get feedback, the
  137. sooner I can update and correct this document. If you find any problems
  138. with it, please mail me directly as I now very rarely read the newsgroups.
  139. You might also catch me as <em>terryd</em> on the <tt>#linpeople</tt> IRC
  140. channel on the <tt>undernet</tt> IRC network.
  141.  
  142. <sect1><heading>Mailing list support.
  143.  
  144. <p>
  145. There is a mailing list established for discussion of the various Linux
  146. IPX software packages described in this document. You can subscribe to it
  147. by sending a mail message to <tt>listserv@sh.cvut.cz</tt> with
  148. <tt>add linware</tt> in the body of the message. To post to the list your
  149. send your mail to <tt>linware@sh.cvut.cz</tt>.
  150. <p>
  151. The mailing list is archived at
  152. <url url="http://www.kin.vslib.cz/hypermail/linware/" name="www.kin.vslib.cz">.
  153.  
  154. <sect><heading>Some of the terms used in this document.
  155.  
  156. <p>
  157. You will often see the terms <tt>client</tt> and <tt>server</tt> used in this
  158. document. They are normally fairly specific terms but in this document I have
  159. generalized their definitions a little so that they mean the following:
  160. <descrip>
  161. <tag>client</tag>The machine or program that initiates an action or a
  162. connection for the purpose of gaining use of some service or data.
  163. <tag>server</tag>The machine or program that accepts incoming connections from
  164. multiple remote machines and provides a service or data to those.
  165. </descrip>
  166.  
  167. These definitions are not very reliable either, but they provide a means of
  168. distinguishing the ends of peer to peer systems such as <em>SLIP</em> or
  169. <em>PPP</em> which truly do not actually have clients and servers.
  170. <p>
  171. Other terms you will see are:
  172. <descrip>
  173. <tag>IPX</tag>Internet Packet eXchange is a protocol used by the Novell
  174. corporation to provide internetworking support for their NetWare(tm) product.
  175. IPX is similar in functionality to the IP protocol used by the tcp/ip community.
  176. <tag>IPX network address</tag>This is a number which uniquely identifies
  177. a particular IPX network. The usual notation for this address is in
  178. hexadecimal. An example might look like: 0x23a91002
  179. <tag>IPX Internal network</tag>This is a virtual IPX network. It is virtual
  180. because it does not correspond to a physical network. This is used to provide
  181. a means of uniquely identifying and addressing a particular IPX host. This
  182. is generally only useful to IPX hosts that exist on more than one physical
  183. IPX network such as fileservers. The address is coded in the same form as
  184. for a physical IPX network.
  185. <tag>RIP</tag>Routing Information Protocol is a protocol used to automatically
  186. propagate network routes in an IPX network. It is functionally similar to the
  187. RIP used within the tcp/ip community.
  188. <tag>NCP</tag>NetWare Core Protocol is a networked filesystem protocol designed
  189. by the Novell Corporation for their NetWare(tm) product. NCP is functionally
  190. similar to the NFS used in the tcp/ip community.
  191. <tag>SAP</tag>Service Advertisement Protocol is a protocol designed by the
  192. Novell Corporation that is used to advertise network services in a NetWare(tm)
  193. environment.
  194. <tag>Hardware address</tag>This is a number that uniquely identifies a host
  195. in a physical network at the media access layer. Examples of this are
  196. <em>Ethernet Addresses</em>. An Ethernet address is generally coded as
  197. six hexadecimal values separated by colon characters eg. 00:60:8C:C3:3C:0F
  198. <tag>route</tag>The <em>route</em> is the path that your packets take
  199. through the network to reach their destination.
  200. </descrip>
  201.  
  202. <sect><heading>The IPX related files in the <tt>/proc</tt> filesystem.
  203.  
  204. <p>
  205. There are a number of files related to the Linux IPX support that are located
  206. within the <tt>/proc</tt> filesystem. They are:
  207.  
  208. <descrip>
  209. <tag>/proc/net/ipx_interface</tag>This file contains information about the IPX
  210. interfaces configured on your machine. These may have been configured manually
  211. by command or automatically detected and configured.
  212. <tag>/proc/net/ipx_route</tag>This file contains a list of the routes that
  213. exist in the IPX routing table. These routes may have been added manually by
  214. command or automatically by an IPX routing daemon.
  215. <tag>/proc/net/ipx</tag>This file is a list of the IPX sockets that are
  216. currently open for use on the machine.
  217. </descrip>
  218.  
  219. <sect><heading>Greg Pages IPX tools.
  220.  
  221. <p>
  222. Greg Page <tt><greg@caldera.com></tt> of Caldera Incorporated has written
  223. a suite of IPX configuration tools and enhanced the Linux IPX kernel support.
  224. <p>
  225. The kernel enhancements allow linux to be configured as a fully featured
  226. IPX bridge or router. The enhanced IPX support has already been fed back into
  227. the mainstream kernel distribution so you will probably already have it.
  228. <p>
  229. The network configuration tools provide you with the capability to configure
  230. your network devices to support IPX and allow you to configure IPX routing
  231. and other facilities under Linux. The Linux IPX network tools are available
  232. from:
  233. <url url="ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ncpfs/ipx.tgz"
  234.     name="sunsite.unc.edu">.
  235.  
  236. <sect1><heading>The IPX tools in more detail.
  237.  
  238. <p>
  239. <descrip>
  240. <tag>ipx_interface</tag>This command is used to manually add, delete or check
  241. ipx capability to an existing network device. Normally the network device
  242. would be an Ethernet device such at <tt>eth0</tt>. At least one IPX interface
  243. must be designated the <em>primary</em> interface and the <em>-p</em> flag
  244. to this command does this. For example to enable Ethernet device <tt>eth0</tt>
  245. for IPX capability as the primary IPX interface using the IEEE 802.2 frame type
  246. and IPX network address <tt>39ab0222</tt> you would use:
  247. <tscreen><verb>
  248. # ipx_interface add -p eth0 802.2 0x39ab0222
  249. </verb></tscreen>
  250.  
  251. <tag>ipx_configure</tag>This command enables or disables the automatic setting
  252. of the interface configuration and primary interface settings. The
  253. <tt>--auto_interface</tt> argument allows you to select whether new network
  254. devices should be automatically configured as IPX devices or not. The
  255. <tt>--auto_primary</tt> argument allows you to select whether the IPX software
  256. should automatically select a primary interface or not. A typical example
  257. of this commands use would be to enable both automatic interface configuration
  258. and automatic primary interface setting:
  259. <tscreen><verb>
  260. # ipx_configure --auto_interface=on --auto_primary=on
  261. </verb></tscreen>
  262.  
  263. <tag>ipx_internal_net</tag>This command allows you to configure or deconfigure
  264. an internal network address. An internal network address is optional, but when
  265. it is configured it will always be the primary interface. To configure an
  266. IPX network address of <tt>ab000000</tt> on IPX node <tt>1</tt>
  267. you would use:
  268. <tscreen><verb>
  269. # ipx_internal_net add 0xab000000 1
  270. </verb></tscreen>
  271.  
  272. <tag>ipx_route</tag>The command allows you to manually modify the IPX routing
  273. table. For example to add a route to IPX network <tt>39ab0222</tt> via
  274. a router with node number <tt>00608CC33C0F</tt> on IPX network
  275. <tt>39ab0108</tt>:
  276. <tscreen><verb>
  277. # ipx_route add 0x39ab0222 0x39ab0108 0x00608CC33C0F
  278. </verb></tscreen>
  279. </descrip>
  280.  
  281. <sect><heading>Configuring your Linux machine as an IPX router.
  282.  
  283. <p>
  284. If you have a number of IPX segments that you wish to internetwork you
  285. need the services of a router. In the Novell environment there are two
  286. pieces of information which are necessary to be propagated around the network.
  287. They are the network routing information propagated using Novell RIP, and
  288. the service advertisement information propagated using Novell SAP. Any
  289. router must support both of these protocols to be useful in most situations.
  290. <p>
  291. Linux has support for both of these protocols and can be fairly easily
  292. made to function as a fully Novell compliant router.
  293. <p>
  294. The Linux kernel IPX support actually manages the IPX packet forwarding
  295. across interfaces, but it does this according to the rules coded into the
  296. IPX routing table. Linux needs a program to implement the Novell RIP and SAP
  297. to ensure that the IPX routing table is built correctly and updated periodically
  298. to reflect changes in the network status.
  299. <p>
  300. Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt> has developed a routing
  301. daemon that will do this for you.
  302. <p>
  303. You can find <em>ipxripd</em> at:
  304.  
  305. <url url="ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ipxripd-0.7.tgz"
  306.     name="sunsite.unc.edu">
  307.  
  308. or at Volkers home site at:
  309.  
  310. <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/ipxripd-0.7.tgz"
  311.     name="ftp.gwdg.de">
  312. <p>
  313. Configuring your Linux machine to act as a router is very straightforward.
  314. The steps you must take are:
  315. <enum>
  316. <item>Build your kernel with IPX, Ethernet and <tt>/proc</tt> support.
  317. <item>Obtain, compile and install the <em>ipxd</em> daemon program.
  318. <item>Boot the new kernel and ensure that each of the Ethernet cards has
  319. been properly detected and there are no hardware conflicts.
  320. <item>Enable the IPX protocol on each of the interfaces using the
  321. <em>ipx_interface</em> command described above.
  322. <item>Start the <em>ipxd</em> daemon program.
  323. </enum>
  324. <p>
  325. Consider the following simple network:
  326.  
  327. <verb>
  328.  IPX Addr: 0x01000000  802.2
  329. |--------------------------|
  330.               |
  331.               \_________________________
  332.                                         \          Linux Router
  333.  IPX Addr: 0x02000000  802.2             \
  334. |--------------------------|              \   eth0/-----------\
  335.               |                            \--====|           |
  336.               \_________________________          | IPX route |
  337.                                         \     eth1|  Table    |
  338.  IPX Addr: 0x03000000  etherII           \----====|    ^      |
  339. |--------------------------|                      |    |      |
  340.               |                               eth2|  IPXd     |
  341.               \______________________________/====|           |
  342.                                                   |  SAPd     |
  343.  IPX Addr: 0x04000000  etherII                eth3|           |
  344. |--------------------------|                 /====|           |
  345.               |                              |    \___________/
  346.               \______________________________/
  347. </verb>
  348. <p>
  349. The configuration for the above network would look like:
  350. <tscreen><verb>
  351. # ipx_interface add eth0 802.2 0x0100000000
  352. # ipx_interface add eth1 802.2 0x0200000000
  353. # ipx_interface add eth2 etherii 0x0300000000
  354. # ipx_interface add eth3 etherii 0x0400000000
  355. # ipxd
  356. </verb></tscreen>
  357. <p>
  358. You should then wait a moment or two and check your
  359. <tt>/proc/net/ipx_route</tt> file and you should see it populated with
  360. the IPX routes relevant to your configuration and any learned from any other
  361. routers in the network.
  362.  
  363. <sect1><heading>Do I need to configure an internal network ?
  364.  
  365. <p>
  366. Novell has a feature called an internal network, which it uses to simplify
  367. routing in situations where a host has more than one network device connected.
  368. This is useful in the case of a fileserver connected to multiple networks
  369. as it means that only one route needs to be advertised to reach the server
  370. regardless of which network you are attempting from.
  371. <p>
  372. In the case of a configuration where you are not running a fileserver and
  373. your machine acting only as an IPX router the question is not as simple to
  374. answer. It has been reported that configuring for IPX/PPP works `better' if
  375. you also configure an internal network.
  376. <p>
  377. In any case it is easy to do, but may require a rebuild of your kernel.
  378. When you are working through the kernel <tt>make config</tt> you must answer
  379. <tt>Y</tt> when asked <tt>Full internal IPX network</tt> as illustrated:
  380.  
  381. <tscreen><verb>
  382.  ...
  383.  ...
  384. Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] y
  385.  ...
  386.  ...
  387. </verb></tscreen>
  388. <p>
  389. To configure the internal network interface, use the <em>ipx_internal_net</em>
  390. command described earlier in the IPX tools section. The main precaution to
  391. take is to ensure that they IPX network address you assign is unique on your
  392. network and that no other machine or network is using it.
  393.  
  394. <sect><heading>Configuring your Linux machine as an NCP client.
  395.  
  396. <p>
  397. If you are a user of a mixed technology network that comprises both IP and IPX
  398. protocols it is likely that at some time or another you have wanted to have
  399. your Linux machine access data stored on a Novell fileserver on your
  400. network. Novell have long offered an NFS server package for their
  401. fileservers that would allow this, but if you are a small site or have only
  402. a small number of people interested in doing this it is difficult to justify
  403. the cost of the commercial package.
  404.  
  405. Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt> has written a Linux
  406. filesystem kernel module that supports a limited subset of the Novell NCP
  407. that will allow you to mount Novell volumes into your Linux filesystem
  408. without requiring any additional products for your fileserver. The software
  409. causes Linux to emulate a normal Novell workstation for file services. It also
  410. includes a small print utility that allows you to print to Novell print
  411. queues. Because this is a limited subset it does not work very well with any
  412. of the Novell fileserver emulators described later in this document.
  413.  
  414. Volker has called the package <em>ncpfs</em> and derived the necessary
  415. information mainly from the book "Netzwerkprogrammierung in C" by
  416. Manfred Hill and Ralf Zessin (further details of the book are contained within
  417. the README file in the <em>ncpfs</em> package). Volker also used the IPX tools
  418. written by Greg Page <tt><greg@caldera.com></tt>.
  419.  
  420. <sect1><heading>Obtaining <bf><em>ncpfs</em></bf>.
  421.  
  422. <p>
  423. The latest <em>ncpfs</em> package was designed to be built against the version
  424. <tt>1.2.13</tt> kernel or kernels later than <tt>1.3.71</tt> so you if you are
  425. not using a kernel in either of these categories it then you should obtain
  426. one and use it.
  427. <p>
  428. You can obtain the <em>ncpfs</em> package by anonymous ftp from
  429. Volker's home site at:
  430. <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="ftp.gwdg.de">
  431. or
  432. <url url="ftp://sunsite.unc.edu/pub/Linux/system/Filesystems/ncpfs"
  433.     name="sunsite.unc.edu"> 
  434. or mirror sites. The current version at the time of writing was:
  435. <tt>ncpfs-0.24.tgz</tt>
  436.  
  437. <sect1><heading>Building <bf><em>ncpfs</em></bf> for kernels 1.2.*.
  438.  
  439. <p>
  440. <descrip>
  441. <tag>Build a kernel with Ethernet and IPX support</tag>The first thing you
  442. need to do is ensure that your kernel has been built with IPX support enabled.
  443. In the <tt>1.2.13</tt> version kernel you need only ensure that you have
  444. answered <tt>Y</tt> to the question: '<tt>The IPX protocol</tt>' as
  445. illustrated:
  446. <verb>
  447.  ...
  448.  ...
  449. Assume subnets are local (CONFIG_INET_SNARL) [y] 
  450. Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n] 
  451. The IPX protocol (CONFIG_IPX) [n] y
  452. *
  453. * SCSI support
  454.  ...
  455.  ...
  456. </verb>
  457. You will also need to ensure that you include an appropriate driver for your
  458. Ethernet card. If you do not know how to do this then you should read the
  459. <url url="http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html"
  460. name="Ethernet-HOWTO">.
  461. <p>
  462. You can then proceed to build your kernel. Make sure you remember to run
  463. <em>lilo</em> to install it when you have finished.
  464.  
  465.  
  466. <tag>Untar the <em>ncpfs</em> software</tag>
  467. <verb>
  468. # cd /usr/src
  469. # tar xvfz ncpfs-0.24.tgz
  470. # cd ncpfs
  471. </verb>
  472.  
  473. <tag>Make the <em>ncpfs</em> software</tag>The software should compile cleanly
  474. with no configuration necessary:
  475. <verb>
  476. # make
  477. </verb>
  478.  
  479. <tag>Copy the IPX tools somewhere useful if you don't already have them.
  480. </tag>After the <em>make</em> has completed you should find all of the tools
  481. you need in the <tt>ncpfs/bin</tt> directory. You can use <tt>make install</tt>
  482. to install the tools in Volkers choice of directories, but I prefer to place
  483. them in different directories. I use the following commands to copy them
  484. to my preferred directories:
  485. <verb>
  486. # cd bin
  487. # cp ncp* pserver /usr/local/sbin
  488. # cp nwmsg /sbin
  489. # cp ../ipxdump/ipxdump ../ipxdump/ipxparse /usr/local/sbin
  490. # cp ncopy nprint nsend nwfsinfo pqlist slist /usr/local/bin
  491. </verb>
  492. <bf>note:</bf> the <em>nwmsg</em> command must  be installed in the
  493. <tt>/sbin</tt> because it is invoked by the <em>kerneld</em> daemon if you
  494. are running it. If you want to change the location of it then you need to
  495. edit the <tt>/usr/src/linux/include/linux/ncp_fs.h</tt> file and change
  496. the <tt>NCP_MSG_COMMAND</tt> definition.
  497. <p>
  498. If you do not already have Greg Pages IPX tools installed then you should
  499. also do the following:
  500. <verb>
  501. # cp ipx* /usr/local/sbin
  502. </verb>
  503.  
  504. <tag>Copy the <em>ncpfs.o</em> module somewhere useful if necessary.</tag>
  505. If you are compiling for a <tt>1.2.*</tt> kernel then you will find a file
  506. called <tt>ncpfs.o</tt> in the <tt>ncpfs/bin</tt> directory after the
  507. <em>make</em> has completed. This is the <em>ncpfs</em> kernel module.
  508. You should copy this somewhere useful. On my <em>debian</em> system I have
  509. copied it to the <tt>/lib/modules/1.2.13/fs</tt> directory and added
  510. <tt>ncpfs</tt> to the <tt>/etc/modules</tt> file so that it will be
  511. automatically started at boot time. If you are using some other distribution
  512. you should find where it keeps its modules and copy it there, or just copy it
  513. to your <tt>/etc</tt> directory. To load the modules manually you need to use
  514. the command:
  515. <verb>
  516. # insmod ncpfs.o
  517. </verb>
  518.  
  519. </descrip>
  520.  
  521. <sect1><heading>Building <bf><em>ncpfs</em></bf> for kernels 1.3.71++.
  522.  
  523. <p>
  524. For the latest version of <em>ncpfs</em> you must use kernel <tt>1.3.71</tt>
  525. or newer. If you want to use older <tt>1.3.*</tt> kernels then you must locate
  526. a version of <em>ncpfs</em> like <em>ncpfs-0.12.tgz</em>.
  527. <p>
  528. If you intend using a kernel that is version <tt>1.3.71</tt> or newer then the
  529. <em>ncpfs</em> kernel code has been included in the standard kernel
  530. distribution. You need only answer <tt>Y</tt> to:
  531. <tscreen><verb>
  532.  ...
  533.  ...
  534. The IPX protocol ?
  535.  ...
  536.  ...
  537. NCP filesystem support (to mount NetWare volumes) ?
  538.  ...
  539.  ...
  540. </verb></tscreen>
  541. <p>
  542. You will still need to follow the instructions for building for kernels
  543. <tt>1.2.*</tt> so that you can build the tools but there will not be a module
  544. file for you to install.
  545.  
  546. <sect1><heading>Configuring and using <bf><em>ncpfs</em></bf>.
  547.  
  548. <p>
  549.  
  550. <descrip>
  551. <tag>Configure the IPX network software</tag>There are two ways of configuring
  552. the IPX network software. You can manually configure all of your IPX network
  553. information or you can choose to let the software determine for itself some
  554. reasonable settings. In most installations the automatic method will work
  555. ok. If it doesn't work for you then read the 'IPX tools' section below to
  556. configure your software manually:
  557. <verb>
  558. # ipx_configure --auto_interface=on --auto_primary=on
  559. </verb>
  560.  
  561. <tag>Test the configuration</tag>After your IPX network is configured you
  562. should be able to use the <em>slist</em> command to see a list of all of
  563. the Novell fileserver on your network:
  564. <verb>
  565. # slist
  566. </verb>
  567. If the slist command displays a message like:
  568. <tt>ncp_connect: Invalid argument</tt> then your kernel probably does not
  569. support IPX. Check that you have actually booted off the appropriate kernel.
  570. If the <em>slist</em> command does not list all of your fileservers then
  571. you may need to use the manual network configuration method.
  572.  
  573. <tag>Mount a Novell(tm) volume.</tag>If your IPX network software is working
  574. ok you should now be able to mount a Novell fileserver volume into your
  575. Linux filesystem. The <em>ncpmount</em> command is used for this purpose
  576. and requires that you specify at least the following information:
  577. <enum>
  578. <item>The fileserver name
  579. <item>The fileserver login id. If it has a password you will also need that.
  580. <item>The mount point ie. where you want the mount to go.
  581. </enum>
  582.  
  583. An example command to mount fileserver <tt>ACCT_FS01</tt>, with a login id of 
  584. <tt>guest</tt> with no password, under the <tt>/mnt/Accounts</tt> directory
  585. might look like the following:
  586. <verb>
  587. # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
  588. </verb>
  589. Note the use of the <tt>-n</tt> option to indicate that no password is
  590. required for the login. The same login specifying a password of <tt>secret</tt>
  591. would look like:
  592. <verb>
  593. # ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -P secret
  594. </verb>
  595. If you don't specify either the <tt>-n</tt> or the <tt>-P</tt> options you
  596. will be prompted for a password.
  597.  
  598. <tag>Check the mount</tag>If the mount is successful you will find the
  599. volumes accessible to the userid used for login listed as directories under
  600. the mount point. You should then also be able to traverse the directory
  601. structure to find other files. Because NCP does not provide uid or gid
  602. ownership of files, all of the files will have the permission and ownership
  603. assigned to the mount point directory, keep this in mind when sharing
  604. mounts between Linux users.
  605.  
  606. <tag>Test printing</tag>You can test to see if printing works using the
  607. <em>nprint</em> command. The <em>nprint</em> command allows you to print
  608. to a file to a NetWare print queue. The <em>pqlist</em> command allows you
  609. the list the available print queues on a NetWare server. Both commands
  610. require that you supply username and password so you might normally
  611. consider building some shell scripts to make the task of printing easier.
  612. An example might look like:
  613. <tscreen><verb>
  614. # pqlist -S ACCT_FS01 -U guest -n
  615. # nprint -S ACCT_FS01 -q LASER -U guest -n filename.txt
  616. </verb></tscreen>
  617. The login syntax is similar to the <em>ncpmount</em> command. The examples
  618. above assume that fileserver <tt>ACCT_FS01</tt> has a <tt>guest</tt> account
  619. with no password, that a print queue called <tt>LASER</tt> exists and that
  620. <tt>guest</tt> is allowed to print to it.
  621.  
  622. <tag>Configure mounts to be automatically performed.</tag>If you have some
  623. need to permanently have an ncp mount then you will want to configure the
  624. commands above into your <em>rc</em> files so that they occur automatically
  625. at boot time. I recommend you place them in your <tt>/etc/rc.local</tt> file
  626. if you have one. I have placed them in a file called <tt>NetWare</tt> in
  627. my <tt>/etc/init.d</tt> directory and created appropriate symbolic links
  628. into my <tt>/etc/rc2.d</tt> directory to cause it to be started. You might
  629. use something like:
  630. <tscreen><verb>
  631. #
  632. # Start the ncp filesystem
  633. /sbin/insmod /lib/modules/1.2.13/fs/ncpfs.o
  634.  
  635. # configure the IPX network
  636. ipx_configure --auto_interface=on --auto_primary=on
  637.  
  638. # guest login to the Accounting fileserver
  639. ncpmount -S ACCT_FS01 /mnt/Accounts -U guest -n
  640.  
  641. #
  642. </verb></tscreen>
  643. There is another means of configuring NCP mounts and that is by building
  644. a <tt>$HOME/.nwclient</tt> file. This file contains details of temporary
  645. or user specific NCP mounts that would be performed regularly. It allows
  646. you to store the details of mounts so that you can recreate them without
  647. having to specify all of the detail each time.
  648. <p>
  649. Its format is quite straightforward:
  650. <tscreen><verb>
  651. # The first entry is the 'preferred server' entry and is
  652. # used whenever you do not specify a server explicitly.
  653. #
  654. # User TERRY login to DOCS_FS01 fileserver with password 'password'
  655. DOCS_FS01/TERRY password
  656. #
  657. # Guest login to the ACCT_FS01 fileserver with no password.
  658. ACCT_FS01/GUEST -
  659. </verb></tscreen>
  660. To activate these mounts you could use:
  661. <tscreen><verb>
  662. $ ncpmount /home/terry/docs
  663. </verb></tscreen>
  664. to mount: DOCS_FS01 with a login of TERRY under the /home/terry/docs
  665. directory. Note that this entry was chosen because no fileserver was
  666. specified in the mount command. If the following command were used:
  667. <tscreen><verb>
  668. $ ncpmount -S ACCT_FS01 /home/terry/docs
  669. </verb></tscreen>
  670. then a GUEST login to ACCT_FS01 would be mounted there instead.
  671. <p>
  672. <bf>Note:</bf> for this mechanism to work the permissions of the
  673. <tt>$HOME/.nwclient</tt> file must be <tt>0600</tt> so you would
  674. need to use the command:
  675. <tscreen><verb>
  676. $ chmod 0600 $HOME/.nwclient
  677. </verb></tscreen>
  678. If non-root users are to be allowed to use this mechanism then
  679. the <em>ncpmount</em> command must be Set Userid Root, so you
  680. would need to give it permissions:
  681. <tscreen><verb>
  682. # chmod 4755 ncpmount
  683. </verb></tscreen>
  684.  
  685. <tag>Try out the <em>nsend</em> utility</tag>a utility to send messages
  686. to Novell users is also included in the package, it is called <em>nsend</em>
  687. and is used as follows:
  688. <verb>
  689. # nsend rod hello there
  690. </verb>
  691. would send the message "hello there" to a logged in user "rod" on your
  692. "primary" fileserver (the first one appearing in your <tt>.nwclient</tt>
  693. file. You can specify another fileserver with the same syntax as for the
  694. <em>ncpmount</em> command.
  695.  
  696. </descrip>
  697.  
  698. <sect><heading>Configuring your Linux machine as an NCP server.
  699.  
  700. <p>
  701. There are two packages available that allow Linux to provide the functions of
  702. a Novell Fileserver. They both allow you to share files on your linux
  703. machine with users using Novell NetWare client software. Users can attach and
  704. map filesystems to appear as local drives on their machines just as they would
  705. to a real Novell fileserver. You may want to try both to see which best
  706. serves your intended purpose.
  707.  
  708. <sect1><heading>The <bf><em>mars_nwe</em></bf> package.
  709.  
  710. <p>
  711. Martin Stover <tt><mstover@freeway.de></tt> developed <em>mars_nwe</em>
  712. to enable linux to provide both file and print services for NetWare clients.
  713. <p>
  714. In case you are wondering about the name: <em>mars_nwe</em> is Martin Stovers
  715. Netware Emulator.
  716.  
  717. <sect2><heading>Capability of <bf><em>mars_nwe</em></bf>.
  718.  
  719. <p>
  720. <em>mars_nwe</em> implements a subset of the full Novell NCP for file services,
  721. disk based bindery and also print services. It is likely to contain bugs but
  722. there are many people using it now and the number of bugs is steadily
  723. decreasing as new versions are released.
  724.  
  725. <sect2><heading>Obtaining <bf><em>mars_nwe</em></bf>.
  726.  
  727. <p>
  728. You can obtain <em>mars_nwe</em> from
  729. <url url="ftp://ftp.gwdg.de/pub/linux/misc/ncpfs/" name="ftp.gwdg.de">. The
  730. current version at the time of writing was: <tt>mars_nwe-0.97.pl6.tgz</tt>.
  731.  
  732. <sect2><heading>Building the <em>mars_nwe</em> package.
  733.  
  734. <p>
  735. <descrip>
  736. <tag>Build a kernel with Ethernet and IPX Support</tag>In the <tt>1.2.13</tt>
  737. version kernel you need only ensure that you have answered <tt>Y</tt> to the
  738. question: '<tt>The IPX protocol</tt>' and <tt>N</tt> to the question:
  739. '<tt>Full internal IPX network</tt>' as illustrated:
  740. <verb>
  741.  ...
  742.  ...
  743. The IPX protocol (CONFIG_IPX) [n] y
  744.  ...
  745.  ...
  746. Full internal IPX network (CONFIG_IPX_INTERN) [N/y/?] n
  747.  ...
  748.  ...
  749. </verb>
  750. In newer kernels a similar process is adopted but the actual text of the prompt
  751. may have changed slightly.
  752. <p>
  753. You will also need to ensure that you include an appropriate driver for your
  754. Ethernet card. If you do not know how to do this then you should read the
  755. <url url="http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html"
  756. name="Ethernet-HOWTO">.
  757. <p>
  758. You can then proceed to build your kernel. Make sure you remember to run
  759. <em>lilo</em> to install it when you have finished.
  760.  
  761. <tag>Untar the <em>mars_nwe</em> package.</tag>
  762. <tscreen><verb>
  763. # cd /usr/src
  764. # tar xvfz mars_nwe-0.97.pl6.tgz
  765. </verb></tscreen>
  766.  
  767. <tag>Make <em>mars_nwe</em>.</tag>To make the package is very simple. First
  768. you should look at and edit the <tt>config.h</tt> file if necessary. It
  769. allows you to configure items such as the installation directories that will
  770. be used and the maximum number of sessions and volumes that the server will
  771. support. The really important entries to look at are:
  772. <verb>
  773. FILENAME_NW_INI       the location of the initialisation file
  774. PATHNAME_PROGS        where the executable support programs will be found.
  775. PATHNAME_BINDERY      where the 'bindery' files will go.
  776. PATHNAME_PIDFILES     the directory for the 'pid' files to be written.
  777. MAX_CONNECTIONS       the maximum number of simultaneous connections allowed.
  778. MAX_NW_VOLS           the maximum number of volumes mars_nwe will support.
  779. MAX_FILE_HANDLES_CONN the maximum number of open files per connection.
  780. WITH_NAME_SPACE_CALLS if you want to support ncpfs clients.
  781. INTERNAL_RIP_SAP      whether you want mars_nwe to provide rip/sap routing.
  782. </verb>
  783.  
  784. When this is done:
  785. <tscreen><verb>
  786. # make
  787. # make install
  788. </verb></tscreen>
  789.  
  790. will build the servers and install them in the appropriate directory. The
  791. installation script also installs the configuration file
  792. <tt>/etc/nwserv.conf</tt>.
  793.  
  794. <tag>Configure the server.</tag>Configuration is fairly simple. You need to
  795. edit the <tt>/etc/nwserv.conf</tt> file. The format of this file may at first
  796. look a little cryptic, but it is fairly straightforward. The file contains a
  797. number of single line configuration items. Each line is whitespace delimited
  798. and begins with a number that indicates the contents of the line. All
  799. characters following a '<tt>#</tt>' character are considered a comment and
  800. ignored. Martin supplies an example configuration file in the package,
  801. but I'll present what I consider to be a simplified example to offer an
  802. alternative for you.
  803.  
  804. <tscreen><verb>
  805. # VOLUMES (max. 5)
  806. # Only the SYS volume is compulsory. The directory containing the SYS
  807. # volume must contain the directories: LOGIN, PUBLIC, SYSTEM, MAIL.
  808. # The 'k' option converts all filenames in NCP requests to lowercase.
  809. # The 'm' option marks the volume as removable (useful for cdroms etc.)
  810. # The 'r' option set the volume to read-only.
  811. # The 'o' option indicates the volume is a single mounted filesystem.
  812. # The 'P' option allows commands to be used as files.
  813. # The default is upper case.
  814. # Syntax:
  815. #    1 <Volumename> <Volumepath>   <Options>
  816.  
  817. 1   SYS         /home/netware/SYS/               # SYS
  818. 1   DATA        /home/netware/DATA/      k       # DATA
  819. 1   CDROM       /cdrom                   kmr     # CDROM
  820.  
  821. # SERVER NAME
  822. # If not set then the linux hostname will be converted to upper case
  823. # and used. This is optional, the hostname will be used if this is not
  824. # configured.
  825. # Syntax:
  826. #    2 <Servername>
  827.  
  828. 2   LINUX_FS01
  829.  
  830. # INTERNAL NETWORK ADDRESS
  831. # The Internal IPX Network Address is a feature that simplifies IPX routing
  832. # for multihomed hosts (hosts that have ports on more than one IPX network).
  833. # Syntax:
  834. #    3 <Internal Network Address> [<Node Number>]
  835. # or:
  836. #    3 auto
  837. #
  838. # If you use 'auto' then your host IP address will be used. NOTE: this may
  839. # be dangerous, please be sure you pick a number unique to your network.
  840.  
  841. 3   0x49a01010  1
  842.  
  843.  
  844. # NETWORK DEVICE(S)
  845. # This entry configures your IPX network. If you already have your
  846. # IPX network configured then you do not need this. This is the same as
  847. # using ipx_configure/ipx_interface before you start the server.
  848. # Syntax:
  849. #    4 <IPX Network Number> <device_name> <frametype> [<ticks>]
  850. #                         Frame types: ethernet_ii, 802.2, 802.3, SNAP
  851.  
  852. 4  0x39a01010  eth0  802.3  1
  853.  
  854. # SAVE IPX ROUTES AFTER SERVER IS DOWNED
  855. # Syntax:
  856. #    5 <flag>
  857. #       0 = don't save routes, 1 = do save routes
  858.  
  859. 5 0
  860.  
  861. # NETWARE VERSION
  862. # Syntax:
  863. #    6 <version>
  864. #      0 = 2.15, 1 = 3.11
  865.  
  866. 6 1
  867.  
  868. # PASSWORD HANDLING
  869. # Real Novell DOS clients support a feature which encypts your
  870. # password when changing it. You can select whether you want your
  871. # mars server to support this feature or not.
  872. # Syntax
  873. #    7 <flag>
  874. #    <flag> is:
  875. #        0 to force password encryption. (Clients can't change password)
  876. #        1 force password encryption, allow unencrypted password change.
  877. #        7 allow non-encrypted password but no empty passwords.
  878. #        8 allow non-encrypted password including empty passwords.
  879. #        9 completely unencrypted passwords (doesn't work with OS/2)
  880.  
  881. 7 1
  882.  
  883. # MINIMAL GID UID rights
  884. # permissions used for attachments with no login. These permissions
  885. # will be used for the files in your primary server attachment.
  886. # Syntax:
  887. #    10 <gid>
  888. #    11 <uid>
  889. #    <gid> <uid> are from /etc/passwd, /etc/groups
  890.  
  891. 10  200
  892. 11  201
  893.  
  894. # SUPERVISOR password
  895. # May be removed after the server is started once. The server will
  896. # encrypt this information into the bindery file after it is run.
  897. # You should avoid using the 'root' user and instead use another
  898. # account to administer the mars fileserver.
  899. #
  900. # This entry is read and encrypted into the server bindery files, so
  901. # it only needs to exist the first time you start the server to ensure
  902. # that the password isn't stolen.
  903. #
  904. # Syntax:
  905. #    12 <Supervisor-Login> <Unix username> [<password>]
  906.  
  907. 12  SUPERVISOR  terry  secret
  908.  
  909. # USER ACCOUNTS
  910. # This associates NetWare logins with unix accounts. Password are
  911. # optional.
  912. # Syntax:
  913.      13 <User Login> <Unix Username> [<password>]
  914.  
  915. 13  TERRY  terry  
  916. 13  MAR    mar
  917.  
  918. # LAZY SYSTEM ADMIN CONFIGURATION
  919. # If you have a large numbers of users and could not be bothered using
  920. # type 13 individual user mappings, you can automatically map mars_nwe
  921. # logins to linux user names. BUT, there is currently no means of making
  922. # use of the linux login password so all users configured this way are
  923. # will use the single password supplied here. My recommendation is not
  924. # to do this unless security is absolutely no concern to you.
  925. # Syntax:
  926. #    15 <flag> <common-password>
  927. #    <flag> is: 0  - don't automatically map users.
  928. #               1  - do automatically map users not configured above.
  929. #               99 - automatically map every user in this way.
  930.  
  931. 15  0  duzzenmatta
  932.  
  933. # SANITY CHECKING
  934. # mars_nwe will automatically ensure that certain directories exist if
  935. # you set this flag.
  936. # Syntax:
  937. #    16 <flag>
  938. #    <flag> is 0 for no, don't, or 1 for yes, do.
  939.  
  940. 16  0
  941.  
  942. # PRINT QUEUES
  943. # This associates NetWare printers with unix printers. The queue
  944. # directories must be created manually before printing is attempted.
  945. # The queue directories are NOT lpd queues.
  946. # Syntax:
  947. #    21 <queue_name> <queue_directory> <unix_print_cmd>
  948.  
  949. 21  EPSON  SYS:/PRINT/EPSON lpr -h
  950. 21  LASER  SYS:/PRINT/LASER lpr -Plaser
  951.  
  952. # DEBUG FLAGS
  953. # Syntax:
  954. #    <debug_item> <debug_flag>
  955. #
  956. #    100 = IPX KERNEL
  957. #    101 = NWSERV
  958. #    102 = NCPSERV
  959. #    103 = NWCONN
  960. #    104 = start NWCLIENT
  961. #    105 = NWBIND
  962. #    106 = NWROUTED
  963. #                 0 = disable debug, 1 = enable debug
  964.  
  965. 100 0
  966. 101 0
  967. 102 0
  968. 103 0
  969. 104 0
  970. 105 0
  971. 106 0
  972.  
  973. # RUN NWSERV IN BACKGROUND AND USE LOGFILE
  974. # Syntax:
  975. #    200 <flag>
  976. #        0 = run NWSERV in foreground and don't use logfile
  977. #        1 = run NWSERV in background and use logfile
  978.  
  979. 200  1
  980.  
  981. # LOGFILE NAME
  982. # Syntax:
  983. #    201 <logfile>
  984.  
  985. 201  /tmp/nw.log
  986.  
  987. # APPEND LOG OR OVERWRITE
  988. # Syntax:
  989. #    202 <flag>
  990. #        0 = append to existing logfile
  991. #        1 = overwrite existing logfile
  992.  
  993. 202  1
  994.  
  995. # SERVER DOWN TIME
  996. # This item sets the time after a SERVER DOWN is issued that the
  997. # server really goes down.
  998. # Syntax:
  999. #    210 <time>
  1000. #        in seconds. (defaults 10)
  1001.  
  1002. 210  10
  1003.  
  1004. # ROUTING BROADCAST INTERVAL
  1005. # The time is seconds between server broadcasts
  1006. # Syntax:
  1007. #    211 <time>
  1008. #        in seconds. (defaults 60)
  1009.  
  1010. 211  60
  1011.  
  1012. # ROUTING LOGGING INTERVAL
  1013. # Set how many broadcasts take place before logging of routing
  1014. # information occurs.
  1015. # Syntax:
  1016. #    300  <number>
  1017.  
  1018. 300  5
  1019.  
  1020. # ROUTING LOGFILE
  1021. # Set the name of the routing logfile
  1022. # Syntax:
  1023. #    301 <filename>
  1024.  
  1025. 301  /tmp/nw.routes
  1026.  
  1027. # ROUTING APPEND/OVERWRITE
  1028. # Set whether you want to append to an existing log file or
  1029. # overwrite it.
  1030. # Syntax:
  1031. #    302 <flag>
  1032. #        <flag> is 0 for append, 1 for create/overwrite
  1033.  
  1034. 302  1
  1035.  
  1036. # WATCHDOG TIMING
  1037. # Set the timing for watchdog messages that ensure the network is
  1038. # still alive.
  1039. # Syntax:
  1040. #    310 <value>
  1041. #        <value> =   0 - always send watchdogs
  1042. #                  < 0 - (-ve) for disable watchdogs
  1043. #                  > 0 - send watchdogs when network traffic
  1044. #                        drops below 'n' ticks
  1045.  
  1046. 310  7
  1047.  
  1048. # STATION FILE
  1049. # Set the filename for the stations file which determine which
  1050. # machines this fileserver will act as the primary fileserver for.
  1051. # The syntax of this file is described in the 'examples' directory
  1052. # of the source code.
  1053. # Syntax:
  1054. #    400 <filename>
  1055.  
  1056. 400  /etc/nwserv.stations
  1057.  
  1058. # GET NEAREST FILESERVER HANDLING
  1059. # Set how SAP Get Nearest Fileserver Requests are handled.
  1060. # Syntax:
  1061. #    401 <flag>
  1062. #        <flag> is: 0 - disable 'Get Nearest Fileserver' requests.
  1063. #                   1 - The 'stations' file lists stations to be excluded.
  1064. #                   2 - The 'stations' file lists stations to be included.
  1065.  
  1066. 401  2
  1067. </verb></tscreen>
  1068.  
  1069. <tag>Start the server</tag>If you've configured the server to expect external
  1070. programs to configure your network and/or provide the routing function then
  1071. you should start those before starting the server. Presuming you have
  1072. configured the server so that itwill configure your interfaces for you and
  1073. provide the routing services you need only issue the command:
  1074. <tscreen><verb>
  1075. # nwserv
  1076. </verb></tscreen>
  1077.  
  1078. <tag>Test the server</tag>To test the server you should first try to attach
  1079. and login from a NetWare client on your network. You then set a
  1080. <tt>CAPTURE</tt> from the client and attempt a print. If both of these are
  1081. successful then the server is working.
  1082. </descrip>
  1083.  
  1084. <sect1><heading>The <bf><em>lwared</em></bf> package.
  1085.  
  1086. <p>
  1087. Ales Dryak <tt><A.Dryak@sh.cvut.cz></tt> developed <em>lwared</em> to allow
  1088. Linux to function as an NCP based fileserver.
  1089. <p>
  1090. Ales has called the package <em>lwared</em>, an abbreviation for <em>LinWare
  1091. Daemon</em>.
  1092.  
  1093. <sect2><heading>Capability of <bf><em>lwared</em></bf>.
  1094.  
  1095. <p>
  1096. The <em>lwared</em> server is capable of providing a subset of the full
  1097. function of the Novell NCP. It incorporates messaging but it does not provide
  1098. any printing facilities at all. It does not currently work very well with
  1099. either Windows95 or Windows NT clients. The <em>lwared</em> server relies
  1100. on external programs to build and update the IPX routing and SAP tables.
  1101. Misbehaving clients can cause the server to crash. Importantly, filename
  1102. translation facilities have not been included.
  1103. <p>
  1104. The server does work for NETX and VLM NetWare shells.
  1105.  
  1106. <sect2><heading>Obtaining <bf><em>lwared</em></bf>
  1107.  
  1108. <p>
  1109. The <em>lwared</em> package can be built for any kernel newer than
  1110. <tt>1.2.0</tt>, I recommend you use version <tt>1.2.13</tt> as no kernel
  1111. patches are required if you do. Some of the IPX functionality has changed
  1112. with the version <tt>1.3.*</tt> kernels and this means that patches are
  1113. now required to make it work properly. Appropriate patches are included for
  1114. the new kernels, so if you must use an alpha kernel you should still be able
  1115. to get <em>lwared</em> to work properly for you.
  1116. <p>
  1117. You can obtain the <em>lwared</em> package by anonymous ftp from:
  1118. <url url="ftp://klokan.sh.cvut.cz/pub/linux/linware/"
  1119.     name="klokan.sh.cvut.cz">
  1120.  
  1121. or from:
  1122.  
  1123. <url url="ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons"
  1124.     name="sunsite.unc.edu">
  1125. or mirror sites. The current version at the time of writing was:
  1126. <tt>lwared-0.95.tar.gz</tt>
  1127.  
  1128. <sect2><heading>Building <bf><em>lwared</em></bf>
  1129.  
  1130. <p>
  1131. <descrip>
  1132. <tag>Untar the <em>lwared</em>package</tag>Something like:
  1133. <verb>
  1134. # cd /usr/src
  1135. # tar xvpfz lwared-0.95.tar.gz
  1136. </verb>
  1137.  
  1138. <tag>Build a kernel with Ethernet and IPX support</tag>
  1139. If you are using an alpha <tt>1.3.*</tt> kernel then you should try and use
  1140. kernel version <tt>1.3.17</tt> or newer because the supplied patches were built
  1141. against it. <tt>1.3.*</tt> kernels older than <tt>1.3.17</tt> will require
  1142. hand patching to install. (<em>some information on how to do this is included
  1143. in the <tt>INSTALL</tt> file in the package.</em>). To install the patches
  1144. against a <tt>1.3.17</tt> kernel or newer you should try:
  1145. <verb>
  1146. # make patch
  1147. </verb>
  1148. <p>
  1149. After applying the patches if necessary, the next thing you need to do is
  1150. ensure that your kernel has been built with IPX support enabled. In the
  1151. <tt>1.2.13</tt> version kernel you need only ensure that you have answered
  1152. <tt>Y</tt> to the question: '<tt>The IPX protocol</tt>' as 
  1153. illustrated:
  1154. <verb>
  1155.  ...
  1156.  ...
  1157. Assume subnets are local (CONFIG_INET_SNARL) [y]
  1158. Disable NAGLE algorithm (normally enabled) (CONFIG_TCP_NAGLE_OFF) [n]
  1159. The IPX protocol (CONFIG_IPX) [n] y
  1160. *
  1161. * SCSI support
  1162.  ...
  1163.  ...
  1164. </verb>
  1165. In newer kernels a similar process is adopted by the actual text of the prompt
  1166. may have changed slightly.
  1167. <p>
  1168. You will also need to ensure that you include an appropriate driver for your
  1169. Ethernet card. If you do not know how to do this then you should read the
  1170. <url url="http://sunsite.unc.edu/mdw/HOWTO/Ethernet-HOWTO.html"
  1171. name="Ethernet-HOWTO">.
  1172. <p>
  1173. You can then proceed to build your kernel. Make sure you remember to run
  1174. <em>lilo</em> to install it when you have finished.
  1175.  
  1176. <tag>Compile and install <em>lwared</em>.</tag>To compile <em>lwared</em> you
  1177. should first check, edit if necessary, the <tt>server/config.h</tt> file. This
  1178. file contains various settings that will govern the way your server will
  1179. behave when it is running. The defaults are reasonable, though you might want
  1180. to check that the directories specified for the log files and configuration
  1181. files suit your system.
  1182. <verb>
  1183. # make depend
  1184. # make
  1185. # make install
  1186. </verb>
  1187. I found that the '<tt>make depend</tt>' complained about not finding the
  1188. <tt>float.h</tt> file on my system but appeared to work anyway.
  1189. I also found that when I tried compiling with gcc <tt>2.6.3</tt> I found
  1190. I had to change the line:
  1191. <verb>
  1192. #include <net/route.h>
  1193. </verb>
  1194. to
  1195. <verb>
  1196. #include <net/if_route.h>
  1197. </verb>
  1198. in <tt>lib/ipxkern.c</tt> as this file changed name sometime.
  1199. <p>
  1200. The '<tt>make install</tt>' will attempt to install the server and routing
  1201. daemon programs into your <tt>/usr/sbin</tt> directory, the <em>lwpasswd</em>
  1202. program into your <tt>/usr/bin</tt> directory, the IPX utility programs will
  1203. be installed into your <tt>/sbin</tt> directory and last but not least the
  1204. manual pages will go into the <tt>/usr/man</tt> directory structure. If any
  1205. of these locations are not suitable for your system then you should edit
  1206. the relevant <tt>Makefile</tt> and change the target directories to suit.
  1207.  
  1208. </descrip>
  1209.  
  1210. <sect2><heading>Configuring and using <bf><em>lwared</em></bf>
  1211.  
  1212. <p>
  1213. Now the fun bit!
  1214.  
  1215. <descrip>
  1216. <tag>Configuring the IPX network</tag>The first thing you must do is configure
  1217. your Ethernet interfaces to support the IPX networks your server will support.
  1218. To do this you will need to know the IPX network addresses for each of your
  1219. LAN segments, which Ethernet device (<tt>eth0</tt>, <tt>eth1</tt> etc.) is
  1220. on which segment, what frame type (<tt>802.3</tt>, <tt>EtherII</tt> etc.) each
  1221. LAN segment uses and what Internal Network address your server should use
  1222. (this is really needed if your server will service more than one LAN segment).
  1223. A configuration for a server that is on two dis-similar segments with IPX
  1224. network addresses <tt>23a91300</tt> and <tt>23a91301</tt> and internal network
  1225. address <tt>bdefaced</tt> might look like:
  1226. <verb>
  1227. # ipx_internal_net add BDEFACED 1
  1228. # ipx_interface add eth0 802.3 23a91300
  1229. # ipx_interface add eth1 etherii 23a91301
  1230. </verb>
  1231.  
  1232. <tag>Start the routing daemons</tag>The kernel software itself actually does
  1233. the IPX packet forwarding as it does for IP, but the kernel requires additional
  1234. programs to manage the routing table updates. In the case of IPX two daemons
  1235. are needed and both are supplied with <em>lwared</em>: <em>ipxripd</em> manages
  1236. the IPX routing information and <em>ipxsapd</em> manages the SAP information.
  1237. To start the daemons you need only specify the location of where they should
  1238. write their log messages:
  1239. <verb>
  1240. # ipxripd /var/adm/ipxrip
  1241. # ipxsapd /var/adm/ipxsap
  1242. </verb>
  1243.  
  1244. <tag>Configure the <em>lwared</em> server</tag>There are two files that you
  1245. must manually configure to allow user login to your <em>lwared</em> server.
  1246. They are:
  1247.  
  1248. <p>
  1249. <descrip>
  1250. <tag><tt>/etc/lwpasswd</tt></tag>This is where LinWare user account
  1251. information is kept. The <em>lwpasswd</em> program is to keep it up to date.
  1252. In its simplest form the <tt>/etc/lwpasswd</tt> file looks like:
  1253. <verb>
  1254. ales:
  1255. terryd:
  1256. guest:
  1257. </verb>
  1258. Its format is a simple list of login id followed by a ':' character and then
  1259. the encrypted version of the login passwd. A couple of important caveats here:
  1260. No encrypted password means no password, LinWare users must have Linux
  1261. accounts, that is any user you place in <tt>/etc/lwpasswd</tt> must also
  1262. appear in <tt>/etc/passwd</tt> and <tt>root</tt> is the only account that can
  1263. change the password of another LinWare user. If you are logged in as
  1264. <tt>root</tt> you can change the password of a LinWare user as this transcript
  1265. demonstrates:
  1266. <verb>
  1267. # lwpasswd rodg
  1268. Changing password for RODG
  1269. Enter new password: 
  1270. Re-type new password: 
  1271. Password changed.
  1272. </verb>
  1273. <tag><tt>/etc/lwvtab</tt></tag>This is the LinWare volume tables and it stores
  1274. information about what directories should be made available to LinWare users
  1275. (this file is similar in nature to the NFS <tt>/etc/exports</tt> file). A
  1276. simple example of its format is as follows:
  1277. <verb>
  1278. SYS             /lwfs/sys
  1279. DATA            /lwfs/data
  1280. HOME            /home
  1281. </verb>
  1282. The format is simple: Volume name followed by whitespace followed by Linux
  1283. directory to export. You must have at <bf>least</bf> an entry for the
  1284. <tt>SYS</tt> volume for the server to start. If you intend your DOS based
  1285. users to be able use your LinWare server as their primary server then you must
  1286. install a standard <tt>SYS</tt> volume directory structure underneath the
  1287. directory you export as your <tt>SYS</tt> volume. Since these files are
  1288. proprietary and copyright to the Novell corporation you should have a license
  1289. for these. If you users will be using a Novell fileserver as their primary
  1290. server then this will not be necessary.
  1291. </descrip>
  1292.  
  1293. <tag>Start the <em>lwared</em> server.</tag>tada!
  1294. <verb>
  1295. # lwared
  1296. </verb>
  1297. It is almost an anticlimax isn't it ? Ok so you've got a question, right?
  1298. What is the fileserver name that is being advertised ? If you started the
  1299. server as shown then the LinWare server name being advertised will be
  1300. based on what is returned by the Linux <em>hostname</em>. If you'd like it
  1301. to be something else then you can give the server the name when you start
  1302. it, for example:
  1303. <verb>
  1304. # lwared -nlinux00
  1305. </verb>
  1306. would start the server with the name <tt>linux00</tt>.
  1307.  
  1308. <tag>Test the <em>lwared</em> server.</tag>The very first thing to test is
  1309. that your LinWare server appears in an <em>slist</em> from a DOS client
  1310. on your network. The <em>slist</em> program is stored on the <tt>SYS</tt>
  1311. volume of a Novell fileserver so you must do this from a machine that is
  1312. already logged in somewhere. If this is not successful then check that
  1313. <em>ipxsapd</em> and <em>lwared</em> are both running. If the <em>slist</em>
  1314. is successful then you should try attaching to the server and mapping
  1315. a volume:
  1316. <verb>
  1317. C:> attach linux00/ales
  1318.  ...
  1319.  ...
  1320. C:> map l:=linux00/data:
  1321. C:> l:
  1322. </verb>
  1323. You should then be able to treat the new map just like any other map. The
  1324. file permissions you will have will be based on those allowed to the
  1325. <em>linux</em> account that parallels your LinWare login.
  1326.  
  1327. </descrip>
  1328.  
  1329. <sect><heading>Configuring PPP for IPX support.
  1330.  
  1331. <p>
  1332. New versions of the <em>pppd</em> PPP daemon for Linux have support that
  1333. allows you to carry IPX packets across a PPP serial link. You need at least
  1334. version <tt>ppp-2.2.0d</tt> of the daemon. See the
  1335. <url url="http://sunsite.unc.edu/mdw/HOWTO/PPP-HOWTO.html" name="PPP-HOWTO">
  1336. for details on where to find it. When you compile <em>pppd</em> you must
  1337. ensure you enable the IPX support by adding the following two lines:
  1338.  
  1339. <tscreen><verb>
  1340. IPX_CHANGE = 1
  1341. USE_MS_DNS = 1
  1342. </verb></tscreen>
  1343.  
  1344. to: <tt>/usr/src/linux/pppd-2.2.0f/pppd/Makefile.linux</tt>.
  1345. <p>
  1346. The <tt>IPX_CHANGE</tt> is what configures the IPX support into PPP.
  1347. The <tt>USE_MS_DNS</tt> define allows Microsoft Windows95 machines to do
  1348. Name Lookups.
  1349. <p>
  1350. The real trick to getting it to work in knowing how to configure it.
  1351. <p>
  1352. There are many ways of doing this, but I'm only going to describe the two that
  1353. I've received any information on. I've tried neither yet, so consider this
  1354. section experimental, and if you get something to work, please let me know.
  1355.  
  1356. <sect1><heading>Configuring an IPX/PPP server.
  1357.  
  1358. <p>
  1359. The first thing you need to do is configure your Linux machine as an IP/PPP
  1360. server. When you have this done there are a couple of simple  modifications
  1361. you need to make to get IPX working over the same configuration.
  1362.  
  1363. <sect2><heading>First steps.
  1364.  
  1365. <p>
  1366. Unless all you want to do is connect to your linux machine supporting the
  1367. ppp dialin, and even then perhaps, you must configure your linux machine
  1368. as an IPX router as described earlier. You won't need to use the
  1369. <em>ipx_route</em> command because <em>pppd</em> will configure these for you
  1370. as it does for IP. When you have the <em>ipxd</em> daemon running it will
  1371. automatically detect any new IPX interfaces and propogates routes for them.
  1372. This is what you will need so that other machines will know about the client
  1373. machines that connect.
  1374. <sect2><heading>Design.
  1375.  
  1376. <p>
  1377. When you are running as a server it will normally be your responsibility
  1378. to assign network address to each of the PPP links when they are established.
  1379. This is an important point, each PPP link will be an IPX network and will have
  1380. a unique IPX network address. This means that you must decide how you will
  1381. allocate addresses and what what they will be. A simple convention is to
  1382. allocate one IPX network address to each serial device that will support
  1383. IPX/PPP. You could allocate IPX network addresses based on the login id
  1384. of the connecting user, but I don't see any particularly good reason to do
  1385. so.
  1386. <p>
  1387. I will assume that this is what you have done, and that there are two serial
  1388. devices (modems) that we will use. The addresses I've assigned in this
  1389. contrived example are:
  1390. <tscreen><verb>
  1391. device IPX Network Address
  1392. ------ -------------------
  1393. ttyS0  0xabcdef00
  1394. ttyS1  0xabcdef01
  1395. </verb></tscreen>
  1396.  
  1397. <sect2><heading>Configure <em>pppd</em>.
  1398. <p>
  1399. Configure your <tt>/etc/ppp/options.ttyS0</tt> file as follows:
  1400.  
  1401. <tscreen><verb>
  1402. ipx-network abcdef00
  1403. ipx-node 2:0
  1404. ipxcp-accept-remote
  1405. </verb></tscreen>
  1406.  
  1407. and your <tt>/etc/ppp/options.ttyS1</tt> file as:
  1408.  
  1409. <tscreen><verb>
  1410. ipx-network abcdef01
  1411. ipx-node 3:0
  1412. ipxcp-accept-remote    
  1413. </verb></tscreen>
  1414.  
  1415. These will ask <em>pppd</em> to allocate the appropriate IPX network addresses
  1416. to the link when the link is established, set the local node number to
  1417. <tt>2</tt> or <tt>3</tt> and will let the remote node overwrite what the
  1418. remote node number with what it thinks it is. Note that each of the addresses
  1419. are hexadecimal numbers but that no <tt>0x</tt> is required.
  1420. <p>
  1421. There are other places this information could be configured. If you have only
  1422. one dialin modem then an entry could go into the <tt>/etc/ppp/options</tt>
  1423. file. Alternatively this information can be passed on the command line to
  1424. <em>pppd</em>.
  1425.  
  1426. <sect2><heading>Test the server configuration.
  1427.  
  1428. <p>
  1429. To test the configuration you will need to have a client configuration that
  1430. is known to work. When the caller dials in, logs in and <em>pppd</em> starts
  1431. it will assign the network address, advise the client of the servers node
  1432. number and negotiate the clients node number. When this has completed, and
  1433. after <em>ipxd</em> has detected the new interface the client should be able
  1434. to establish IPX connections to remote hosts.
  1435.  
  1436. <sect1><heading>Configuring an IPX/PPP client.
  1437.  
  1438. <p>
  1439. In a client configuration, whether or not you configure your Linux machine
  1440. as an IPX router depends on whether you have a local LAN that you wish to
  1441. act as an IPX router for. If you are a standalone machine connecting to an
  1442. IPX/PPP dialin server then you won't need to run <em>ipxd</em>, but if you
  1443. have a LAN and wish all of the machines on the LAN to make use of the
  1444. IPX/PPP route then you must configure and run <em>ipxd</em> as described.
  1445. This configuration is much simpler because you do not have multiple serial
  1446. devices to configure.
  1447.  
  1448. <sect2><heading>Configuring <em>pppd</em>
  1449.  
  1450. <p>
  1451. The simplest configuration is one that allows the server to supply all of
  1452. the IPX network configuration information. This configuration would be
  1453. compatible with the server configuration described above.
  1454. <p>
  1455. Again you need to add options to your <tt>/etc/ppp/options</tt> file,
  1456. they are:
  1457. <tscreen><verb>
  1458. ipxcp-accept-network
  1459. ipxcp-accept-remote
  1460. ipxcp-accept-local
  1461. </verb></tscreen>
  1462.  
  1463. These options tell <em>pppd</em> to act completely passively and accept
  1464. all of the configuration details from the server. You could supply default
  1465. values here for servers that don't supply details by adding
  1466. <tt>ipx-network</tt> and <tt>ipx-node</tt> entries similar to the server
  1467. configuration.
  1468.  
  1469. <sect2><heading>Testing the IPX/PPP client.
  1470.  
  1471. <p>
  1472. To test the client you will need a known working server to dial into. After
  1473. you have dialled in and pppd has run you should see the IPX details configured
  1474. on your <tt>ppp0</tt> device when you run the <em>ifconfig</em> command and
  1475. you should be able to use <em>ncpmount</em>.
  1476. <p>
  1477. I'm not sure whether you will have to manually add IPX routes so that you
  1478. can reach distant fileserver or not. This seems likely. If anyone running
  1479. this configuration could tell me I'd be grateful.
  1480.  
  1481. <sect><heading>IPX tunnel over IP
  1482.  
  1483. <p>
  1484. Many of you will be in a situation where you have two Novell Local Area Netorks
  1485. with only an IP connection between them. How do you play multiplayer deathmatch
  1486. DOOM for DOS via this arrangement you might ask ? Andreas Godzina
  1487. <tt><ag@agsc.han.de></tt> has an answer for you in the form of
  1488. <em>ipxtunnel</em>.
  1489. <p>
  1490. <em>ipxtunnel</em> provides a bridge-like facility for IPX by allowing
  1491. IPX packets to be encapsulated with tcp/ip datagrams so that they can
  1492. be carried by a tcp/ip connection. It listens for IPX packets and when it
  1493. hears one it wraps it within a tcp/ip datagram and routes it to a remote
  1494. IP address that you specify. For this to work of course the machine that
  1495. you route the encapsulated IPX must also be running a copy of the same
  1496. version of <em>ipxtunnel</em> as you.
  1497.  
  1498. <sect1><heading>Obtaining <em>ipxtunnel</em>
  1499.  
  1500. <p>
  1501. You can obtain <em>ipxtunnel</em> from
  1502. <url url="ftp://sunsite.unc.edu/pub/Linux/system/Network/daemons"
  1503.         name="sunsite.unc.edu">
  1504. or mirror sites.
  1505.  
  1506. <sect1><heading>Building <em>ipxtunnel</em>
  1507.  
  1508. <p>
  1509. <em>ipxtunnel</em> built cleanly for me using the following commands:
  1510. <tscreen><verb>
  1511. # cd /usr/src
  1512. # tar xvfz .../ipxtunnel.tgz
  1513. # cd ipxtunnel
  1514. # make
  1515. </verb></tscreen>
  1516.  
  1517. <sect1><heading>Configuring <em>ipxtunnel</em>
  1518.  
  1519. <p>
  1520. Configuration for <em>ipxtunnel</em> is easy. Lets say that your friends
  1521. machine is <tt>gau.somewhere.com</tt> and your machine is called
  1522. <tt>gim.sw.edu</tt>. <em>ipxtunnel</em> uses a configuration file called
  1523. <tt>/etc/ipxtunnel.conf</tt>. This file allows you to specify the default UDP
  1524. port to use for the tcp/ip connection, where to send the encapsulated data
  1525. and which of your local interfaces <em>ipxtunnel</em> should listen on
  1526. and deliver IPX packets to.
  1527. <p>
  1528. A simple configuration file would look like the following:
  1529. <tscreen><verb>
  1530. #
  1531. # /etc/ipxtunnel.conf for gim.sw.edu
  1532. #
  1533. # The UDP port to use:                       (default 7666)
  1534. port 7777
  1535. #
  1536. # The remote machine to send IPX packets to: (no default)
  1537. remote gau.somewhere.com
  1538. #
  1539. # The local interfaces to listen for IPX on: (default eth0)
  1540. interface eth0
  1541. interface eth1
  1542. </verb></tscreen>
  1543. Obviously the other machine would have a similar configuration file specifying
  1544. this machine as a <tt>remote</tt> host.
  1545.  
  1546. <sect1><heading>Testing and using <em>ipxtunnel</em>
  1547.  
  1548. <p>
  1549. <em>ipxtunnel</em> acts <bf>like</bf> an IPX bridge, so the IPX networks
  1550. at either end of the link should probably be the same. Andreas has never
  1551. tested the <em>ipxtunnel</em> in an environment that actually supports
  1552. Novell file servers so if you do try this in a real environment let Andreas
  1553. know if it works or not.
  1554. <p>
  1555. If the <em>ipxtunnel</em> is working you should be able to start your
  1556. DOOM machines up at each end of the link running IPX mode and they should
  1557. see each other.
  1558. <p>
  1559. Andreas has only used this code over good high speed lines and he makes no
  1560. claim as to its performance when your link is low speed. Again, let him
  1561. know what works for you and what doesn't.
  1562.  
  1563.  
  1564. <sect><heading>Commercial IPX support for Linux.
  1565.  
  1566. <p>
  1567. Caldera Inc., produce a Linux distribution that features a range of
  1568. commercially supported enhancements including fully functional Novell NetWare
  1569. client support. The base distribution is the well respected Red Hat Linux
  1570. Distribution and Caldera have added their "Network Desktop" products to this.
  1571. The NetWare support provides a fully featured Novell NetWare client built on
  1572. technology licensed from Novell Corporation. The client provides full client
  1573. access to Novell 3.x and 4.x fileservers and includes features such as NetWare
  1574. Directory Service (NDS) and RSA encryption.
  1575. <p>
  1576. You can obtain much more information and ordering details from the:
  1577. <url url="http://www.caldera.com/" name="Caldera Inc Web Server">.
  1578. <p>
  1579. If you work within a Netware 4.x and/or NDS environment then the Caldera
  1580. Netware Client is the only solution available.
  1581. <p>
  1582. If you have a business critical application for Novell support for Linux
  1583. then the Caldera product should be something you take a close look at.
  1584.  
  1585. <sect><heading>Some Frequently Asked Questions
  1586.  
  1587. <p>
  1588. <descrip>
  1589. <tag>Where can I find commercially supported IPX software for Linux ?
  1590. </tag>The Caldera Corporation offers a fully licensed and fully supported
  1591. Netware 3.x and 4.x client. You can obtain information about it from the
  1592. <url url="http://www.caldera.com/" name="Caldera Inc Web Server">.
  1593.  
  1594. <tag>Does the IPX software work with Arcnet/Token Ring/etc. ?
  1595. </tag>The Linux IPX software does work with ArcNet and Token Ring interfaces.
  1596. I haven't heard of anyone trying it with AX.25 yet. Configuration is the same
  1597. as for configuring for ethernet except you will have to substitute appropriate
  1598. device names in place of 'eth0' and appopriate hardware addresses where
  1599. necessary.
  1600.  
  1601. <tag>How do I configure more than one IPX interface ?
  1602. </tag>If you have more than one interface in your machine you should use the
  1603. <em>ipx_interface</em> command to manually configure each one, you should not
  1604. use the `plug n play' configuration.
  1605.  
  1606. <tag>Why do I get the message `invalid argument' when I configure IPX ?
  1607. </tag>You are probably not running a kernel that supports IPX, either recompile
  1608. your kernel so it does, or double check that you have actually used lilo to
  1609. install and run the new kernel.
  1610.  
  1611. <tag>Why do I get the message `package not installed' when I configure IPX ?
  1612. </tag>You are probably not running a kernel that supports IPX, either recompile
  1613. your kernel so it does, or double check that you have actually used lilo to
  1614. install and run the new kernel.
  1615.  
  1616. <tag>How do I NFS export a mounted NCP filesystem ?
  1617. </tag>To use NFS to export an NCP filesystem you must mount it using the
  1618. <em>ncpmount</em> <tt>-V</tt> option. This option allows you to mount only
  1619. one volume of a fileserver instead of the usual mounting of all of them.
  1620. When you do this your NFS daemon will allow you to export that filesystem in
  1621. the usual way.
  1622.  
  1623. <tag>Does ncpfs package work with mars_nwe ?
  1624. </tag>Martin and Volker's code is slowly beginning to converge. Recent versions
  1625. of <em>mars_nwe</em> have an option to enable it to work with <em>ncpfs</em>.
  1626. You must enable the <tt>WITH_NAME_SPACE_CALLS</tt> in the <em>mars_nwe</em>
  1627. <tt>config.h</tt> file.
  1628.  
  1629. <tag>Is there any free DOS software to work with mars_nwe ?
  1630. </tag>A contrived question deserves a contrived answer. I'm glad you asked,
  1631. Martin has a package that he distributes alongside his <em>mars_nwe</em>
  1632. package that offers free DOS client support for the <em>mars_nwe</em> server.
  1633. You can find it at the same sites as the server, and it will be called
  1634. <tt>mars_dosutils-0.01.tgz</tt>. It includes C source code for programs such
  1635. as <em>slist.exe</em>, <em>login.exe</em>, <em>map.exe</em> etc. The source
  1636. is compilable with Borland(tm) C.
  1637.  
  1638. </descrip>
  1639.  
  1640. <sect><heading>Copyright Message.
  1641.  
  1642. <p>
  1643. The IPX-HOWTO, a guide to software supporting the IPX protocol for Linux.
  1644. Copyright (c) 1995 Terry Dawson.
  1645.  
  1646. This program is free software; you can redistribute it and/or modify it under
  1647. the terms of the GNU General Public License as published by the Free Software
  1648. Foundation; either version 2 of the License, or (at your option) any later
  1649. version.
  1650.  
  1651. This program is distributed in the hope that it will be useful, but WITHOUT
  1652. ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
  1653. FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
  1654.  
  1655. You should have received a copy of the GNU General Public License along with
  1656. this program; if not, write to the:
  1657.  
  1658. Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  1659.  
  1660. <sect><heading>Miscellaneous and Acknowledgements.
  1661.  
  1662. <p>
  1663. David E. Storey <tt><dave@tamos.gmu.edu></tt> and
  1664. Volker Lendecke <tt><lendecke@namu01.gwdg.de></tt>
  1665. both assisted greatly by supplying me with information for this document.
  1666. Gilbert Callaghan <tt><gilbert@pokey.inviso.com></tt>,
  1667. David Higgins <tt><dave@infra.com></tt> and
  1668. Chad Robinson <tt><chadr@brtgate.brttech.com></tt> each contributed
  1669. information on configuring IPX/PPP.
  1670. <p>
  1671. "NetWare" is a registered trademark of the
  1672. <url url="http://www.novell.com/" name="Novell Corporation">.
  1673. "Caldera" is a registered trademark of the
  1674. <url url="http://www.caldera.com/" name="Caldera Corporation">.
  1675.  
  1676.  
  1677. <p>regards
  1678. <tt>Terry Dawson, vk2ktj.</tt>
  1679. <p>
  1680. <tt><terry@perf.no.itg.telecom.com.au></tt>
  1681.  
  1682. </article>
  1683.