home *** CD-ROM | disk | FTP | other *** search
/ Pegasus Win & OS/2 Edition / Pegasus_Win_OS2.iso / os2 / network / tcpstart.txt < prev    next >
Encoding:
Text File  |  1993-06-01  |  82.7 KB  |  1,996 lines

  1. =============================================================================
  2.  
  3. Document: ftp-os2.nmsu.edu:/pub/os2/2.0/network/tcpstart.txt
  4.  
  5. Guide to getting started with OS/2 networking using IBM's TCP/IP software
  6.  
  7. =============================================================================
  8. Recent Changes
  9.  
  10. Feb 28 1993 Fixed advice for routed, FTP security (thanks, Andre Asselin!).
  11.             Added some tuning ideas.  Added lprmon BUFSIZE caution.
  12. Feb 22 1993 Fixed phone numbers, added SLIP appendix.  Fixed year to 1993!
  13. Feb 02 1993 Added Netware appendix, tuning hints, other hints and insertions.
  14. Jan 27 1993 Added IBM ordering phone numbers.
  15. Jan 20 1993 Minor hints on getting most recent CSDs from Hobbes
  16. Jan 12 1993 Removed incorrect advice to fix up XWindow host X0.hosts file.
  17. Dec 16 1992 Numbered sections, added table of contents.
  18.             Fixed up LAPS section to avoid premature quitting with "OK".
  19. Dec 15 1992 Added suggestion to run lpd in foreground with -b -c flags.
  20.             Reminder to usually leave "network Adapter Address" blank.
  21.             Minor rehash to avoid recommending doing a full-screen inetd.
  22.  
  23. =============================================================================
  24. Table of Contents (find sections by searching for the parenthesized number)
  25.  
  26. (0) Purpose and introduction 
  27. (1) Request for more information
  28. (2) Some terminology
  29. (3) Selecting parts of the IBM TCP/IP packages
  30. (4) Preparing to hook up to a TCP/IP network
  31. (5) Installing IBM's TCP/IP Package
  32. (6) Installing the driver for the network adapter
  33. (7) Initial tryout
  34. (8) Downloading CSDs (bug fixes)
  35. (9) A few reminders
  36. (10) Security concerns
  37. (11) Tuning your setup
  38. (12) Good luck
  39. (A1) Appendix I: Coexistence of TCP/IP with Netware
  40. (A2) Appendix II: Supplementary information on SLIP
  41.  
  42. =============================================================================
  43.  
  44. ----------------------------
  45. (0) Purpose and introduction
  46. ----------------------------
  47.  
  48. The purpose of this document is to: 
  49.  
  50. 1) Orient someone who has heard a bit about networking on OS/2, but
  51. can't yet hold an entire conversation in three to five letter
  52. networking acronyms ("So, Bob, how's TCP/IP coming along today?" "Well,
  53. Jane, NFS if fine, but I'm having trouble with FTP."  "Have you
  54. installed the CSDs?"  "Yes, but can you ping over SLIP before sending a
  55. job to LPD?"....).
  56.  
  57. 2) Help a new networker install the IBM TCP/IP networking package and
  58. some of its more popular additional modules.
  59.  
  60.  
  61. I'm no networking pro, but I've managed to start a working network
  62. system using OS/2 and IBM's TCP/IP offerings.  It took me long enough
  63. to sort it all out.  I hope I can save someone else the trouble.
  64.  
  65. I make no guarantees that the following is entirely correct!  It's
  66. based on my experiences.  PLEASE correct me by mailing me your comments
  67. if you find anything misleading or wrong.  Please send me additional
  68. hints based on your own experiences that you feel would be helpful to
  69. put into this document.
  70.  
  71. -Dean
  72. --
  73. Dean Pentcheff  (Internet: dean2@tbone.biol.scarolina.edu) (803) 777-8998
  74. Department of Biology, University of South Carolina, Columbia SC 29205
  75.  
  76.  
  77. --------------------------------
  78. (1) Request for more information
  79. --------------------------------
  80.  
  81. Please let me know of improvements I can make to this document!
  82. Notable gaping holes that I notice (hint, hint) are:
  83.  
  84. 1) Performance tuning - success stories and failure stories are
  85. both equally welcome.
  86.  
  87. 2) Other useful network software - surely some net.geeks have some
  88. nifty utilities and addons that make a networked OS/2 system more of a
  89. joy.
  90.  
  91. 3) Tricks and tips that you've discovered.
  92.  
  93.  
  94. --------------------
  95. (2) Some terminology
  96. --------------------
  97.  
  98. TCP/IP is the name of a communications protocol - it defines a way for
  99. computers to chat with each other.
  100.  
  101. PC/TCP is a particular product (?) that uses TCP/IP on a PC.  It is not
  102. addressed in this document - you may have heard about it from DOS
  103. systems.  The programs described here do what PC/TCP on DOS does (and
  104. more).
  105.  
  106. Ethernet is a specific hardware protocol for computer communications.
  107. For example, a 3Com 3C503 card is a (very cheap and popular, if not
  108. screamingly fast) Ethernet board for PCs.  Using it (and appropriate
  109. software) you can connect a PC to an Ethernet TCP/IP network.  TCP/IP
  110. is just one of many communication protocols that can run atop
  111. Ethernet.  For example, a Novell Netware network running the IPX
  112. protocol could run on the same Ethernet - same hardware, just different
  113. protocols.
  114.  
  115. Token-Ring is another hardware protocol in common use.  IBM's TCP/IP
  116. package supports both Ethernet and Token-Ring network adapters.
  117.  
  118. FTP is a "file transfer protocol" that runs on top of TCP/IP (there are
  119. implementations of FTP for pretty much any computer that can talk
  120. TCP/IP, making it a lingua franca for file exchange - it's not pretty
  121. but it works).
  122.  
  123. Telnet is a defined way for TCP/IP-speaking computers to set up
  124. terminal sessions between each other so that you can actually log onto
  125. a remote computer and interact with your account there.
  126.  
  127. SLIP stands for serial line IP.  It defines a way that you can
  128. connect to a TCP/IP network over a serial line (via a phone modem,
  129. for example).  Serial communications is slower than a direct network
  130. connection, but can sometimes be useful.  IBM's TCP/IP packages does
  131. support SLIP.  
  132.  
  133. CSD is IBM's word for a publicly distributed bug fix package.  Note
  134. that CSDs obsolete prior CSDs.  That is, application of any later CSD
  135. will take care of everything that was done by earlier CSDs.  You don't
  136. have to apply the whole chronological string of CSDs, just the most
  137. recent one.  God help you if you install an earlier CSD over a later
  138. one (IBM sure won't help).
  139.  
  140.  
  141. ----------------------------------------------
  142. (3) Selecting parts of the IBM TCP/IP packages
  143. ----------------------------------------------
  144.  
  145. IBM sells a bunch of pieces, many of which are optional, for TCP/IP
  146. networking.  Following is a brief summary of them.  Note that all of
  147. the following come with both 1.2 Mb 5-1/4" and 1.44 Mb 3-1/2" disks in
  148. the same package (you don't need to specify medium).
  149.  
  150. -- TCP/IP Base Program (Part #02G6968).  Price: US$131.  You need this
  151. in order to use any of the other following parts.  It gives you the
  152. software to connect your Ethernet or Token Ring card to a network, plus
  153. a few character-oriented programs (Telnet, FTP, ping, etc.).  It's sort
  154. of equivalent to the public domain NCSA Telnet package for DOS.
  155.  
  156. -- NFS Kit (Part #02G6970).  Price: US$95.  This gives your OS/2 system
  157. the ability to serve as both a client and a server for sharing disk
  158. space using Sun's NFS (Network File System) protocol.  In other words,
  159. you can mount disks over the network that are physically attached to
  160. other minicomputers or OS/2 systems as though they were attached to
  161. your computer.  Conversely, you can make parts of your OS/2 computer's
  162. disks available for sharing by others.  With this package (along with
  163. the Base Program), you've got the makings of a small local area network
  164. that can share disk space and printers.
  165.  
  166. -- X-Windows System (Part #02G6980).  Price: US$95.  This gives your
  167. OS/2 system the ability to display output (and relay input) to X
  168. programs running on other computers.  X-Windows is a standardized way
  169. for programs (mostly on Unix-based systems) to put graphics on the
  170. screen and interact with the user.  X terminology is a bit peculiar:
  171. the program doing the work is called the "client"; the program doing
  172. the display is called the "server".  This package allows your OS/2
  173. system to be an "X server", but not an "X client": you can display and
  174. interact with X programs running elsewhere, but you can't run an X
  175. program on your OS/2 system and have its results displayed elsewhere.
  176.  
  177. -- X.25 Networking (Part #?).  Enables X.25 communications from your
  178. OS/2 system.  I have no exposure to this product, so I won't comment.
  179. I assume you'll know if you need it.
  180.  
  181. -- Source code and programming packages.  If you're ordering these you
  182. sure as hell don't need me giving you hints on what to do.
  183.  
  184. And finally, where to order.  Peculiarly, IBM often seems unaware
  185. that they sell this product.  So far, people have had the best
  186. luck with calling: 1-800-IBM-2-YOU (1-800-436-2968).  Another IBM
  187. order line (1-800-IBM-CALL) apparently knows about the product
  188. but likes to charge you more money (?!).  
  189.  
  190.  
  191. --------------------------------------------
  192. (4) Preparing to hook up to a TCP/IP network
  193. --------------------------------------------
  194.  
  195. Once you have the TCP/IP base package, you can be a full-blown node on
  196. the Internet.  To do that, you _must_ contact a local system
  197. adminstrator on the network to which you will physically connect your
  198. OS/2 machine.  He or she must give you an Internet number.  Choosing
  199. one at random is unlikely to work and is exceedingly antisocial (since
  200. it may well disrupt others' use of the network).
  201.  
  202. You can probably select your own cute name for your machine, unless
  203. there is an iron-fisted net administrator who enforces a naming
  204. convention.  As examples, our lab works on crab behavior, so our PCs
  205. are called "fiddler" and "cancer".  The last place I worked had a lot
  206. of people working on marine larvae, so they had "cypris", "zoea",
  207. "actinula", etc.
  208.  
  209. When you decide on a name and send it to your Local Network Guru, also
  210. ask the following questions:
  211.  
  212.         What will my machine's full Internet name be (e.g.
  213.         fiddler.biol.scarolina.edu for the machine at which I'm
  214.         sitting)?
  215.  
  216.         What is my IP address (e.g. 123.234.221.112 as a totally
  217.         fictitious example)?
  218.  
  219.         Is this network subnetted?  If so, what's the subnet mask
  220.         (e.g.  255.255.0.0)?
  221.  
  222.         Is there a non-default broadcast address?  If so, what is it?
  223.  
  224.         What is the IP address of a default router for me to use?
  225.  
  226.         What are the IP addresses of three domain nameservers?
  227.  
  228. And, before you start the software installation, do yourself a favor.
  229. Open up your machine and take a good look at the network adapter card.
  230. Write down any strap or switch options that are set.  You'll probably
  231. need them later when you do the software configuration of the driver
  232. for TCP/IP.
  233.  
  234.  
  235. -----------------------------------
  236. (5) Installing IBM's TCP/IP Package
  237. -----------------------------------
  238.  
  239. All the documentation comes with the Base Program.  The other packages
  240. just consist of a folder with disks.
  241.  
  242. It is not initially clear how to proceed, so here's enough to get you
  243. going:
  244.  
  245. Begin with the manual "TCP/IP Version 1.2.1 for OS/2 (Refresh):
  246. Installation and Maintenance".  You install the TCP/IP software first,
  247. then the specific driver software for your Ethernet or Token Ring board.
  248.  
  249. There's a nice little configuration program called ICAT (Installation
  250. and Configuration Automation Tool).  As per instructions, stick in disk
  251. 1 and run ICAT from an OS/2 command line.
  252.  
  253. Push the "Install" button first.  It will give you the opportunity to
  254. install any/all of the options you've ordered (base package, NFS,
  255. X-Windows, X.25, and source packages).  Check off whatever boxes you
  256. want and feed disks as requested.  Go ahead and install everything
  257. you've got.
  258.  
  259. Once everything has been copied to disk, push the "Configure" button of
  260. ICAT.  Now comes the fun stuff.  I'm assuming you have the
  261. documentation, so I'll just give you some hints based on what I did.
  262. There's a numbered list of 6 configuration things to do.  We'll run
  263. down the list.
  264.  
  265. 1.  Configure Network Interface Parameters.  You probably only have one
  266. Ethernet or Token Ring board in your computer, so you only have to fill
  267. in half this screen (the other half is for another board - and up to
  268. two more on a "Next Screen").  Your IP address is whatever was issued
  269. to you by your Friendly Local Network Adminstrator.  If he/she told you
  270. anything about a "Subnet Mask", enter it appropriately.  Leave
  271. "Broadast" and "Destination Address" blank (unless you've been
  272. explicitly instructed otherwise).  For that matter, leave the rest of
  273. the screen untouched unless told otherwise.  Don't forget to check the
  274. little "Enabled" box in the top left corner.  When done, press the
  275. "Menu" button to return to the main Configure menu.
  276.  
  277. 2.  X.25 Parameters.  You're on your own here (I haven't done this),
  278. but it looks straightforward - stick in your IP address.
  279.  
  280. 3.  SLIP Parameters.  This is if you're going to use a serial port for
  281. access, instead of a network adapter (SLIP = Serial Line Internet
  282. Protocol).  Fill in the IP address, and the rest is like setting up the
  283. dialer in a communications program.
  284.  
  285. 4.  Automatic Starting of Services.  Again, the following are
  286. reasonable defaults if (a) you haven't been told otherwise; and (b) you
  287. have the software involved.
  288.  
  289.         DO enable the inetd super server - this is one program which
  290.         runs all the time and spawns off some of the other network
  291.         service programs on an as-needed basis.  This way they don't
  292.         all have to be started at once.
  293.  
  294.         If you want yourself or others to be able to Telnet into this
  295.         machine, enable the Telnet server (BUT SEE NOTES BELOW - THIS
  296.         CAN BE A REAL SECURITY RISK).  This does not influence your
  297.         ability to telnet out of this machine to other machines.
  298.  
  299.         If you want to be able to access files on this machine from
  300.         other machines using the FTP protocol, enable the FTP server.
  301.         This does not influence your ability to use FTP on your machine
  302.         to access other machines.  (SEE NOTES BELOW - THIS IS A
  303.         POTENTIAL SECURITY RISK).
  304.  
  305.         Unless you know otherwise, DO NOT enable TFTP.
  306.  
  307.         I lean towards not enabling rexec and rsh unless there's a
  308.         compelling reason to do so.  THESE ARE A REAL SECURITY RISK.
  309.         Again, this does not affect your ability to rexec or rsh from
  310.         your OS/2 machine to other machines.
  311.  
  312.         If you are going to make a printer attached to your computer
  313.         available to other computers (i.e. your machine will be a
  314.         network print server), enable the lpd server.  NOTE: To prevent
  315.         lpd from printing a banner and control file before each
  316.         document, set lpd to run in the "Foreground" (not via inetd),
  317.         and type in "-b -c" (without the quotes) in the blank for
  318.         arguments.  This is particularly important if you have a
  319.         Postscript printer (since the banner and control files are in
  320.         ASCII, not Postscript, they will mysteriously stuff the
  321.         printer).
  322.  
  323.         If you've got the X-Windows stuff, enable it (leave the
  324.         "Parameters" as it is).
  325.  
  326.         If you're into online typing to people, enable Talk, but
  327.         honestly, why not just use the phone?
  328.  
  329.         Enable the NFS Server if you want other people to access your
  330.         hard disk (SEE SECURITY NOTES BELOW).
  331.  
  332.         Enable NFSCTL if you want to be able to mount other machines'
  333.         disks (but note that they must allow you to do so).
  334.  
  335.         If you have the IP address of a default router on your network,
  336.         you can skip enabling the automatic routing server "routed".
  337.         If you couldn't get such an address from the Local NetNerd, go
  338.         ahead and enable the automatic routing server "routed".  (See
  339.         some further remarks on this below in the "Tuning" section.)
  340.  
  341.         FINALLY, if you're going to receive mail directly onto your
  342.         machine, enable "sendmail".  If you're already receiving mail
  343.         on another machine, this is FAR more trouble than it's worth
  344.         (in my opinion).  With the other software you've got, you'll
  345.         easily be able to read your mail on another machine, so why
  346.         bother with all the sendmail setup stuff (which is relatively
  347.         fierce)?
  348.  
  349. 5.  Configure Services.  I'm going to give hints based on my slightly
  350. net.paranoid approach.  See the security notes below for some details.
  351.  
  352.         Put one and only one entry in the FTP Access Protection:
  353.         anonymous.  (But see further notes in the "Security concerns"
  354.         section below.)
  355.  
  356.         If you're doing X-Windows, X Host Authorization gets the name
  357.         of the machine(s) on which your X "clients" (e.g. main
  358.         programs) will run.
  359.  
  360.         In the X Client Display Variable, enter your OS/2 machine's IP
  361.         address (or Internet name, whichever).  Not the name of the
  362.         host to which you will be connecting, but this very OS/2
  363.         machine's address.  Follow the IP address or machine name with
  364.         ":0" (without the quotes of course).  For example, I entered:
  365.         fiddler.biol.scarolina.edu:0
  366.  
  367.         Fill in the timezone in standard Unixoid format.  See page 95
  368.         of the manual for some of the more popular timezones.
  369.  
  370.         If you will use another machine's printer, enter that machine's
  371.         name and its printer's name.
  372.  
  373.         If you took my advice on rexec, enter nothing in the rexec
  374.         username and password.
  375.  
  376.         Enter nothing in the password field for telnet (BUT SEE THE
  377.         SECURITY NOTES BELOW).
  378.  
  379.         Enter your machine's name in the Hostname field (just the very
  380.         first part of the name: "fiddler" in the case of
  381.         "fiddler.biol.scarolina.edu").  Enter the rest of the name in
  382.         the Domain Name field ("biol.scarolina.edu").
  383.  
  384.         Type in (correctly!) the IP numbers of the (up to) three local
  385.         nameserver machines your Always Cheerful Network Adminstrator
  386.         gave you.
  387.  
  388. 6.  Routing Information.  If you have the IP address of a default
  389. router, enter it here.  Follow the keypress instructions to insert an
  390. entry.  Toggle the "Route Type" field using space, leave "Route
  391. Destination" blank, type in the IP address into "Router", and leave
  392. "Metric count" at 1.  If you do _not_ have the IP address of a default
  393. router, make sure you enabled the "routed" daemon.  Then check below in
  394. the "Tuning" section to see how you can find out your default router's
  395. address later, insert it here, and dispense with "routed."
  396.  
  397. When this is done, go ahead and "Exit" all the way out of the ICAT
  398. program, reassuring it that you really do want it to write this stuff
  399. to disk as it quits.
  400.  
  401.  
  402. -------------------------------------------------
  403. (6) Installing the driver for the network adapter
  404. -------------------------------------------------
  405.  
  406. Once you finish with all that nonsense, you will realize that you
  407. haven't told the software anything about the network adapter you've got.
  408. Time to turn to the "LAN Adapter and Protocol Support Introduction and
  409. Configuration Guide".  Cram in the LAPS disk, and, from an OS/2 command
  410. prompt, start up the "LAPS" program from the floppy.
  411.  
  412. The following discussion assumes you will be using a network adapter
  413. card (either Ethernet or Token-Ring).  If you will be using SLIP (IP
  414. over a serial line), I suspect things may be a bit different, but I
  415. don't know, I've never tried (as in: "Can you play the violin?"  "I
  416. don't know, I've never tried").  See Appendix A2 below for some
  417. supplementary information on SLIP.  I don't use it, so I haven't tested
  418. this, but give it a whirl.  For now, we'll continue to assume that
  419. you're using a network adapter card...
  420.  
  421. First do the "install" to copy in the software.  Next, go to the
  422. configuration part.
  423.  
  424. What you do is simple: pick one from column A and one from column B.  In
  425. fact, IBM has made it simpler still - there's only one choice in column
  426. B (but you still have to explicitly pick it).  Choose your network
  427. adapter from the Network Adapters list (select and "Add" it).  (If your
  428. network adapter isn't on the list, see the remarks a few paragraphs
  429. below here.)  Then choose the only choice (IBM TCP/IP) from column B.
  430. You've now declared that your network adapter number 0 (the first one)
  431. is of a particular type, and it will run TCP/IP.
  432.  
  433. Now highlight the adapter name in the Current Configuration window and
  434. press "Edit".  Now's your chance to make sure that the hardware options
  435. on your adapter match up with the software's idea of them.  Change
  436. anything that needs changing.  When in doubt, leave it as it was.
  437. Notably, you should probably leave the "Network Adapter Address"
  438. blank.  That number is supplied by the board hardware unless you enter
  439. an overriding number here.
  440.  
  441. Once you're done with the configuration, press "OK" and the proper
  442. configuration will be copied in.
  443.  
  444.  
  445. What if your network adapter isn't "supported"?  That is, you didn't see
  446. it on the LAPS list.  Odds are good that it really is supported.  First
  447. of all, check the documentation - your adapter may emulate an adapter
  448. that is in the LAPS list.  If so, you're home free.  If not, you need to
  449. get hold of an "NDIS driver" for your adapter.  There may be one on a
  450. disk that came with the card.  Alternatively, you may be able to find
  451. one on the ftp-os2.nmsu.edu archive (see the section on downloading CSDs
  452. in this document to see how to access the archive).
  453.  
  454. Once you've got the NDIS driver, you'll need to do a little hand editing
  455. of some configuration information.  The following description is edited
  456. from some advice posted to the Usenet group comp.os.os2.networking by
  457. Kai-Uwe Rommel (rommel@Informatik.TU-Muenchen.DE) regarding the popular
  458. 3Com Etherlink III card (a very fast, excellent Ethernet card, by the
  459. way).  I haven't done this myself, so I don't know how easy it will be
  460. to adapt these instructions to other cards, but take a look at this and
  461. see how it goes...
  462.  
  463.         NDIS drivers for DOS and OS/2 come included with the Etherlink
  464.         III card. I'm not sure if the LAPS install program of the TCP/IP
  465.         package allows "other cards" to be installed, but otherwise
  466.         simply install the Etherlink II drivers first. Then, before
  467.         rebooting, copy ELNK3.OS2 from the Etherlink III driver floppy
  468.         to the same location where ELNKII.OS2 is and replace ELNKII.OS2
  469.         in config.sys by ELNK3.OS2. In the protocol.ini in \IBMCOM, add
  470.  
  471.                 [ELNK3_nif]
  472.                 DriverName = ELNK3$
  473.  
  474.         right below the [ELNKII_nif] section and replace
  475.  
  476.                 Bindings = ELNKII_nif
  477.  
  478.         in the [TCPIP_nif] section by
  479.  
  480.                 Bindings = ELNK3_nif
  481.  
  482.         and it should work after rebooting. You may want to boot DOS and
  483.         run the 3C509 program from the Etherlink III driver disk to set
  484.         up the card to use an IRQ > 8 (i.e. IRQ 10, for example) and set
  485.         the "client type" to a better suited one (you can choose DOS
  486.         client, Windows or OS/2 client or server). If you install the
  487.         Etherlink III in EISA machines, run the 3C509 program to switch
  488.         the card into EISA mode (yes it has one although it is an ISA
  489.         card) and use the EISA setup program and the config files on the
  490.         Etherlink III driver disk to configure it. See Appendix E in the
  491.         Etherlink III manual.
  492.  
  493.  
  494. ------------------
  495. (7) Initial tryout
  496. ------------------
  497.  
  498. Are ya feelin' lucky?  Hope so.  Quit out of LAPS.  Do the standard
  499. OS/2 Shutdown.  Make sure your network adapter is actually plugged into
  500. a network.  Cross fingers and toes.  Start up OS/2.
  501.  
  502. It will take much longer to boot as five zillion networking programs
  503. crank up.  Lots of them will put screens up as they come on.  Once
  504. things are up, you can minimize these screens.  Meanwhile, they will
  505. tell you of your progress.
  506.  
  507. If things really choke and you don't get a boot, well, you knew the job
  508. was dangerous when you took it.  Get an OS/2 guru to boot from a floppy
  509. for you and REM out the line in "startup.cmd" that says "CALL
  510. C:\TCPIP\BIN\TCPSTART.CMD".
  511.  
  512. Assuming things more-or-less come up, try things out.  First, from an
  513. OS/2 command line, try a ping to yourself.  In my case, that's "ping
  514. fiddler.biol.scarolina.edu".  You should get a series of one-liners
  515. once a second informing you that you've sent 64 bytes to yourself and
  516. received it.  Press Control-C to quit that.  If, after you enter your
  517. ping command, you get nothing (the command just hangs there), you've
  518. got a problem: you're unable to find yourself.  Check your machine name
  519. and Internet number using ICAT, and make sure your network adapter
  520. board is properly set up, and the correct parameters are set using
  521. LAPS.
  522.  
  523. One thing you'll want to try (but DON'T) is to double-click on the cute
  524. little INETD icon.  Don't do it.  You'll get a textmode screen with
  525. Inetd's potential clients listed.  That's it.  No menus.  No nothing.
  526. It makes you feel like DOS is back.  Press Alt-Tab or Alt-Esc to get
  527. the hell out of there.  Memorize this, because one day you'll do it
  528. accidentally anyway.  
  529.  
  530. Try telnetting to your local host.  Try an FTP file transfer.  Once FTP
  531. file transfers work, I advise you to take the following step next,
  532. before doing much more playing.
  533.  
  534. Note: unless you've started telnetd and/or ftpd (or have them set
  535. to start from inetd), don't try to telnet and/or ftp to yourself!
  536.  
  537.  
  538. --------------------------------
  539. (8) Downloading CSDs (bug fixes)
  540. --------------------------------
  541.  
  542. My system almost-kinda-sorta worked (flakey is the word that comes to
  543. mind).  Following application of the bug fixes, it works very
  544. smoothly.  So, to avoid wasting time, apply the bug fixes early.
  545. Following is the scoop on how to do this.
  546.  
  547. DON'T BE INTIMIDATED BY THE LENGTH OF THIS SECTION!  Because the CSDs
  548. change with time, this section is verbose to cover different
  549. contingencies.  It's really quite straightforward in practice.  Install
  550. the bug fixes - you'll be very happy you did.
  551.  
  552. 1.  For neatness' sake, make a subdirectory called "csd" (well, don't
  553. listen to me about it, call it "rosebud" if you want).  Do a "cd" to
  554. that directory (all this is done from an OS/2 command line).
  555.  
  556. 2.  Give the command:  ftp ftp-os2.nmsu.edu
  557.  
  558. 3.  If that doesn't work ("host unknown" or "network unknown") you've
  559. got a problem with domain name resolution.  Maybe routed.exe isn't
  560. running?  Ignore that for now, but fix it later.  Try giving the
  561. command:  ftp 128.123.35.151
  562.  
  563. 4.  Log in as user anonymous, with your full login (joe@ace.b.c.edu) as
  564. password.  Yeah, you don't really have a user name ("joe") since you're
  565. on a single-user machine.  Make one up.  For my machine, for example,
  566. I might enter "dean@fiddler.biol.scarolina.edu" (without the quotes).
  567.  
  568. 5.  Give something like the following FTP commands [things in square
  569. brackets are my comments, not parts of the commands]:
  570.  
  571.         binary 
  572.         cd pub/os2/2.0/patches 
  573.         get tcpcsd.base1.zip            [base TCP/IP package patches] 
  574.         get tcpcsd.base2.zip 
  575.         get tcpcsd.nfs.zip              [if you've got NFS] 
  576.         get tcpcsd.pmx.zip              [if you've got X-Windows] 
  577.         get progcsd.zip                 [if you've got programming toolkit]
  578.         get x25csd.zip                  [if you've got X.25]
  579.         get tcpcsd.txt                  [description file which may be there]
  580.         cd /pub/os2/2.0/archivers 
  581.         get unz50x32.exe                [Info-ZIP unzipper for unpacking] 
  582.         bye
  583.  
  584. Of course, this will be out of date soon.  Just look for the most recent
  585. CSD packages in the directory and snarf them.  Likewise for the Info-Zip
  586. unzipper.  You should also check the directories "/pub/os2/new" and
  587. "/pub/uploads": new uploads go there first and may not have made it to
  588. the patches directory yet.  If there are several different CSDs for
  589. products you have, download them all.  Unpack them (see below) each
  590. separately on your machine and check the comments in the installation
  591. scripts for the latest date.
  592.  
  593. 6.  Unpack the suckers.  First just run unz50x32.  It will unpack itself
  594. into the unzip program.  Each CSD release seems to be slightly
  595. differently packaged, so I'll just give some general guidelines here.
  596. You can probably install them from your hard disk, without having to
  597. copy them onto floppies (though they are usually designed to be
  598. installed from floppies).  Make a subdirectory for each type of CSD (for
  599. example, I made subdirectories "base", "nfs", and "pmx") under the
  600. directory where you have the zip files.  Then unpack each bundle into
  601. its appropriate subdirectory.  For example, to unpack the Base packages
  602. above, I'd do the following:
  603.  
  604.         mkdir base
  605.         cd base
  606.         ..\unzip  ..\tcpcsd.base1
  607.         ..\unzip  ..\tcpcsd.base2
  608.  
  609. Normally, the unzipping leads to the creation of 5-50 updated programs
  610. and files, one of which is an installation script (ending in ".cmd").
  611. In some cases, the zip files will unzip into one or two monolithic
  612. ".exe" programs.  These aren't really standalone programs, but are
  613. self-unpacking zip files.  If, when you're done unpacking the first
  614. level of zip files, you only have one or two huge ".exe" files and you
  615. DO NOT HAVE ANY FILES THAT END IN ".CMD" (i.e. you don't have an
  616. installation script yet), check to see if the couple of huge programs
  617. are actually zip files in disguise.  To do that, run the listing
  618. function of unzip.exe.  For example, to check a hypothetical file
  619. "basecsd.exe", try running:
  620.  
  621.         ..\unzip  -v  basecsd.exe
  622.  
  623. If the unzip program barfs, it's not a zip file.  If you get a nice
  624. listing of lots of files, you can unzip the archive by simply running
  625. the program.  For example:
  626.  
  627.         basecsd
  628.  
  629. Don't do any of this fussing if there's a ".cmd" file in the directory
  630. from your inital unzipping - that's probably the installation script
  631. which will take care of the next level of unzipping for you.
  632.  
  633. 7.  Check the installation scripts.  I've found two types.  One is a
  634. pretty elaborate script that quite neatly checks your system out and
  635. installs the CSDs from the hard drive directory.  These longer scripts
  636. are over 100 lines long.  If there are just a few files that need
  637. copying, there may be a short script instead.  In some cases, these
  638. short scripts are "hardwired" to copy from the A: drive (tacky!).  A
  639. quick edit of any offending lines takes care of the problem.  For
  640. example, changing the line:
  641.  
  642.         copy 'A:nfsctl.exe' BASE'\bin\nfsctl.exe'
  643.  
  644. to read:
  645.  
  646.         copy 'nfsctl.exe' BASE'\bin\nfsctl.exe'
  647.  
  648. converts the command so that it will run from the hard drive instead of
  649. needing to be put on a floppy.
  650.  
  651. 8.  Now you've got your CSDs (bug fixes) on disk, ready to install.  You
  652. have to first REM out a couple of lines in your startup scripts, then
  653. reboot.  Otherwise, OS/2 will refuse to let you update programs that are
  654. currently running.  Using your favorite editor, edit your c:\config.sys.
  655. Find the line that runs CNTRL.EXE.  Insert REM (followed by a space)
  656. before it.  Save the file (as Plain Text, if you're asked).  I found
  657. that I also had to edit the file c:\startup.cmd and REM out the line
  658. that reads "CALL C:\TCPIP\BIN\TCPSTART.CMD".
  659.  
  660. Now reboot.
  661.  
  662. Why not do all this before even rebooting once?  Because applying the
  663. CSD depends on a lot of networking environment that is set up in the
  664. main config.sys file, so you've got to have booted with the networking
  665. stuff installed but REMed out for the CSD to apply properly.
  666.  
  667. 9.  Each CSD has its own handy install script.  Go to each CSD's
  668. subdirectory and run the something-or-other.CMD file.  For the Base
  669. Package it's basecsd.cmd; for NFS it's nfscsd.cmd; for X-Windows it's
  670. installx.cmd (thanks for the consistency, guys).  Or it may be called
  671. something new and exciting.  Basically all that these do is copy over a
  672. bunch of new versions of programs on top of the old ones.  As far as I
  673. can tell, they don't meddle with initialization setups.  [Late note on
  674. that - one of the newer CSDs does install a new xinit.cmd, but quite
  675. politely informs you that it is moving your old one to "xinitbak.cmd".]
  676.  
  677. 10. With your trusty editor, remove the REMs from config.sys and
  678. startup.cmd.
  679.  
  680. 11. Reboot OS/2 to a far less bugfull networking setup.
  681.  
  682.  
  683. -------------------
  684. (9) A few reminders
  685. -------------------
  686.  
  687. If you want to mount part of a Unix box's disk, the Unix machine will
  688. need an entry in its /etc/exports file describing what you're allowed
  689. to mount.  Similarly, your OS/2 system's \tcpip\etc\exports file will
  690. have to list systems you allow to mount your disks (SEE SECURITY NOTES
  691. BELOW).
  692.  
  693. If you want to redirect printer output from your machine to an LPD
  694. program on some other machine, you'll have to start up an lprmon process
  695. for each of the printer ports you wish to redirect.  See the manual for
  696. the syntax.  The trick is where to put the startup commands.  If you
  697. don't mind seeing the lprmon windows appear at boot time, edit the file
  698. \startup.cmd and insert the command(s) there.  That's a better solution
  699. than putting them in \tcpip\bin\tcpstart.cmd, since tcpstart.cmd gets
  700. clobbered if you rerun ICAT to reconfigure your setup.  If you are going
  701. to edit your tcpstart.cmd file anyway (see the section below on tuning
  702. for reasons you might do that), go ahead and stick them into
  703. tcpstart.cmd.
  704.  
  705. Note that there's a weirdness associated with lprmon: it apparently
  706. cannot monitor a port that has a larger-than-default buffer size.  So
  707. make sure that you check the PRINTMONBUFSIZE in your \config.sys.  For
  708. any port(s) on which you will run lprmon make sure that the buffer size
  709. is left on the default setting (134).  For example, a vanilla version
  710. should be: PRINTMONBUFSIZE=134,134,134
  711.  
  712.  
  713. ----------------------
  714. (10) Security concerns
  715. ----------------------
  716.  
  717. You are now a node on the Internet (assuming you've hooked up to an
  718. Internet-worked network).  That means you have to be security conscious.
  719. You don't have to be an international bank to be chosen as a victim.
  720. There really are people out there trying to break into whatever
  721. computers they can.  You don't want to leave yourself open to that.
  722.  
  723. Furthermore, if your computer is ever broken into, you stand a far
  724. better chance of getting sympathetic help if you didn't leave it wide
  725. open in the first place.  If I leave my door open and someone walks in
  726. and takes things, they are still doing wrong, but I'd be more likely to
  727. get sympathetic help had I locked the door.
  728.  
  729. I will outline the approach I've taken to setting up our OS/2 systems.
  730. I AM NOT A UNIX OR NETWORK SECURITY EXPERT.  Just for good measure, I'll
  731. say that again:  I AM NOT A UNIX OR NETWORK SECURITY EXPERT.  I've done
  732. enough reading to know that (a) it matters; and (b) security holes can
  733. be very subtle.  So don't necessarily believe what I'm recommending.  I
  734. welcome comments (but I will not open a debate on the morality of
  735. computer breakins).
  736.  
  737. 1.  Enable Telnet but only with the real password option.  The default
  738. password option offered is very weak.  It requires a single password
  739. that is readable by anyone who has access to the system.  VERY WEAK.
  740. But, buried deep is a better solution.  On page 72-73 of the
  741. Installation and Maintenance Manual is the description of how to set up
  742. telnet to require a Unix-style password file.  Now, Unix-style passwords
  743. are far from hyper-secure, but they're better than a clear-text
  744. "password"!  Perversely, IBM doesn't provide you with a program to make
  745. the passwd file: you'll need to copy an /etc/passwd file from a Unix
  746. host.  But you've probably got a login on a Unix machine - you can use
  747. its password file.
  748.  
  749. Follow the directions to install the passwd file and shuffle in a
  750. different version of the login.exe program on OS/2.
  751.  
  752. In general, don't depend on any of the so-called "passwords" that appear
  753. in environmental varibles.  World-visible passwords are a (bad) joke.
  754.  
  755. 2.  Disable incoming FTP except for the very restricted "anonymous"
  756. account.  Your TRUSERS file should look like this:
  757.  
  758.         user:  anonymous
  759.         rd:    c:\anonymous
  760.         wr:    c:\anonymous
  761.  
  762. Make sure to create the directory c:\anonymous.  Someone can stuff your
  763. system by filling disk's c:\anonymous directory with garbage, but that's
  764. relatively benign.  If that's a problem, remove "c:\anonymous" from the
  765. "wr:" field.  How can anyone FTP a file into your machine if you don't
  766. even let them have ftp write access to "\anonymous"?  With this setup, a
  767. really trusted user can have an entry in the Unix-style passwd file.
  768. Then she or he can telnet into your machine and run FTP on your machine
  769. to suck the file in.
  770.  
  771. Don't have anything else in the TRUSERS file.  The idea of unencoded
  772. passwords is ludicrous.
  773.  
  774. [Supplementary note added later:] Perhaps the above approach is a
  775. little harsh.  It turns out that FTP will not allow reading or writing
  776. of the TRUSERS file.  Hence, you _could_ put other entries into the
  777. TRUSERS file and an FTP-logged-in person couldn't pilfer the TRUSERS
  778. file itself.  NOTE however, that TRUSERS will be accessible to any NFS
  779. or Telnet users, so passwords there are still available.  You decide.
  780. Personally, it makes me too nervous.
  781.  
  782. 3.  Don't enable the rexecd server.  It depends on clear-text passwords
  783. in the environment or in the NETRC file.  People can Telnet in through
  784. the passwd-protected telnet, then execute the command.  Same goes for
  785. the rshd server.
  786.  
  787. Come on.  Do you really want Joe Unwashed-behind-the-ears to be able to
  788. do "rexec yourmachine del c:\*"?  And then giggle a bit.  Yup, that
  789. could happen.
  790.  
  791. 4.  Don't enable the TFTP daemon "tftpd" unless you really need it for
  792. some obscure reason.  FTP does the job.
  793.  
  794. 5.  Vanilla NFS is well known to be full of security holes.  You'll
  795. notice the tight security demanded by the Unix host: give it a UID and
  796. GID number and that's who you are.  Cute.  I'd be very wary about giving
  797. write permission to my disk.
  798.  
  799. REMEMBER: THERE ARE NO ACCESS CONTROLS ONCE SOMEONE HAS ACCESS TO YOUR
  800. OS/2 SYSTEM.  No files are protected from reading or deletion.  Once
  801. someone is into your system, they can happily read any of your setup
  802. files in \tcpip\etc (which could [if you're naive] contain real live
  803. readable passwords).  They can also read your \config.sys and
  804. tcpstart.cmd files, in case they missed a password or two.
  805.  
  806. The only people I want to have write access to my system are people
  807. who've passed the (really minimal!) test of having logged in past the
  808. Telnet-with-Unix-style-passwords.
  809.  
  810.  
  811. ----------------------
  812. (11) Tuning your setup
  813. ----------------------
  814.  
  815. Following are a few hints and suggestions that may help your networking
  816. system work better.  Where I remembered, I've attributed suggestions to
  817. the people who suggested them.  In most cases, these suggestions
  818. appeared on the Usenet newsgroup comp.os.os2.networking.  I have edited
  819. many/most of these for conciseness and format, so I'm to blame if I've
  820. screwed them up (sorry).  My apologies to those whom I forgot!
  821.  
  822.  
  823. 1. If you edit any of the installation scripts yourself, note that IBM
  824. uses an undocumented syntax.  They use "attrib file parameters" instead
  825. of "attrib parameters file".  This works fine unless you use 4OS2 (a
  826. command-line enhancer).  If you do, start up an unenhanced cmd shell
  827. first.  (mathelmr@nuscc.nus.sg (Helmer Aslaksen))
  828.  
  829.  
  830. 2. After the initial thrill wears off, you'll wish there was some way to
  831. get OS/2 to stick all the networking windows into the Minimized Window
  832. Folder automatically at boot time.  Following is a scheme for doing so.
  833. The basic idea is to stop tcpstart.cmd from being run in the
  834. \startup.cmd script (running it as a "Startup" folder object instead)
  835. and get all the programs started minimized, instead of as normal
  836. windows.  (sip1@midway.uchicago.edu (Timothy F. Sipples),
  837. mathelmr@nuscc.nus.sg (Helmer Aslaksen), others)
  838.  
  839.         A) Edit \startup.cmd and put a REM in front of the line that
  840.         runs the tcpstart.cmd script.  Add an "exit" to the end of the
  841.         \startup.cmd file (if you want its window to vanish, too).
  842.         In fact, if nothing else is started in that file, just move
  843.         it to \startup.old and forget about it.
  844.  
  845.         B) From the desktop, open the "OS/2 System" object, then the
  846.         "Startup" object within that.
  847.  
  848.         C) From the "Drives" object, open up directories until you have
  849.         an icon view of the \tcpip\bin directory.  Click the right mouse
  850.         button once on the \tcpstart.cmd script.  Using the resulting
  851.         popup menu, create a shadow of the object, selecting the
  852.         "Startup" window to be its location.  The reason for doing A-C
  853.         is that things in the "Startup" folder start up late enough in
  854.         the boot process that they start after the Minimized Window
  855.         Viewer is in place.  Otherwise, you get icons across the bottom
  856.         of the desktop (eeeeww!).
  857.  
  858.         D) Now edit the file \tcpip\bin\tcpstart.cmd.  Wherever you see
  859.         a "start ..." line, change it to "start /min ...".  That will
  860.         cause the programs to start minimized.  NOTE: This change will
  861.         get blown away each time you run ICAT (you'll need to repeat
  862.         this edit if you reconfigure).
  863.  
  864.         E) For any line in tcpstart.cmd that starts "call ...", edit the
  865.         script that gets called.  In those scripts, again change "start
  866.         ..." lines to "start /min ...".
  867.  
  868. 3. Some of the networking software doesn't actually need to be run as a
  869. subprocess of a "cmd" process.  For these cases, rather than issuing a
  870. "start ..." or a "start /min ..." to kick them off, you can issue a
  871. "detach ...".  For some processes (ones that have certain requirements
  872. for interaction with keyboard and display), this won't work.
  873. Experiment with it, though, you can save some memory that way.  I've
  874. found that it works with lprmon, lpd (run standalone), portmap, and
  875. nfsd.  It does not work with telnetd.  I think it works with inetd
  876. itself, but if inetd starts telnetd for you, then telnetd is stuffed.
  877. Hence, I gave up on inetd.  Others, you're on your own...
  878.  
  879. 4. If you have already put a default router's IP address into your
  880. configuration, you're probably not running routed.  If you are running
  881. routed, however, you may be able to discover what your default router
  882. is, insert its address, and stop running routed.  After you've been
  883. doing network things for a while (including pinging or ftping some
  884. remote sites), give the following command from an OS/2 command window:
  885.  
  886.         netstat -r
  887.  
  888. Look for an entry that begins with "default".  You guessed it: use that
  889. IP address as your default router address.  Use ICAT to edit your
  890. network configuration: turn off "routed" and configure the default
  891. router's IP address into the Routing Information section.  (Routed
  892. information: assela@rpi.edu (Andre Asselin))
  893.  
  894. 5. The networking software sucks memory.  If you have 8 Mb or less of
  895. memory, your performance will go down noticeably (but far from fatally)
  896. as OS/2 swaps things in and out more often.  Don't need the TELNET
  897. server?  Close it.  Don't need the FTP server?  Shut it down.  Don't
  898. need the TALK daemon?  Get rid of it.  Mailer unnecessary?  Leave it
  899. aside.  Only use X Windows occasionally?  Start up the PMX daemon "by
  900. hand" when you need it.  That said, we find that full blown TCP/IP does
  901. quite well in (true) 9 MB.  The extra megabyte appears to make all the
  902. difference in the world.  If you don't run with everything but the
  903. kitchen sink, 8 MB is viable.  The 2.1 release should improve on that
  904. even more [since IBM is making efforts to make the OS/2 base use up
  905. less memory].  Pay attention to cache sizes, by the way: a disk cache
  906. that is too large will actually decrease performance.
  907. (sip1@midway.uchicago.edu (Timothy F. Sipples))
  908.  
  909.  
  910. --------------
  911. (12) Good luck
  912. --------------
  913.  
  914. That's about it for now, folks.  Read the IBM manuals - they're actually
  915. not too bad.  Not hold-your-handish, but most of what you need is
  916. (somewhere) in there.  
  917.  
  918. Best of luck with networking.  Maybe we'll ping each other one day...
  919.  
  920.  
  921. ---------------------------------------------------
  922. (A1) Appendix I: Coexistence of TCP/IP with Netware
  923. ---------------------------------------------------
  924.  
  925. Personally, it's hard for me to believe, but apparently there's this
  926. other networking scheme out there by this little startup called
  927. Novell...  I haven't needed to interact with a Novell network, but lots
  928. of people do.  I've collected some of the postings from the Usenet
  929. newsgroup comp.os.os2.networking that address this issue.  I hope that
  930. they will help you get things working if you need to access TCP/IP and
  931. Novell.
  932.  
  933. I have edited the text for brevity and consistency, so please pardon any
  934. errors I may have introduced in the process.  Thanks go entirely to the
  935. original posters of these messages - I've done nothing but copy their
  936. work.
  937.  
  938.  
  939. ********************************************************************
  940. From: ccherry@vnet.ibm.com
  941. Organization: IBM Boca Programming Center
  942. Date: Wed, 27 Jan 93 23:53:32 GMT
  943.  
  944. Install the NetWare requester. Then install LAN Adapter Protocol Support
  945. (LAPS). This came with your TCP/IP disks. Choose NetWare Requester
  946. support if it is available. Next install TCP/IP Support.
  947.  
  948. If your version of LAPS offered NetWare requester support, double click
  949. on the NetWare line and a dialog will appear. The first line will be for
  950. the universal address of your Ethernet card.  Enter that number and exit
  951. LAPS.  Alternately, you can edit the LANADDRESS = line in
  952. \IBMCOM\PROTOCOL.INI
  953.  
  954. If LAPS did not have NetWare support, you must follow the directions in
  955. Chapter 6 of the NetWare Requester for OS/2 manual.
  956.  
  957. Good luck!
  958.  
  959.  
  960. ********************************************************************
  961. From: davbur@joyner.lib.ecu.edu (David L. Burke)
  962. Organization: UNC Educational Computing Service
  963. Date: Mon, 25 Jan 1993 23:54:56 GMT
  964.  
  965. Hope this stuff helps, guys.  It was a bitch, but I got Requester to
  966. work with TCP/IP for OS/2 1.2.1.  Below are The Big Three:  CONFIG.SYS,
  967. NET.CFG, and PROTOCOL.INI.
  968.  
  969. Before I say anything else, I hope to hell that after making these
  970. changes that your machine doesn't boot up with a register dump or some
  971. stupid message like "unable to locate Country.sys," or anything else
  972. which stops you in your tracks.  Please make sure you have a floppy boot
  973. disk handy (I prefer makeboot.cmd myself.)  Good luck.
  974.  
  975. General points:  Don't let ICAT or LAPS alter your config.sys.  Add the
  976. appropriate lines and include \TCPIP... and \IBMCOM...  in the necessary
  977. path statements.
  978.  
  979. Setup:  I'm using an NE2000 NIC (there's a NE2000.NIF on hobbes for
  980. LAPS).  This setup works with 2.1b (as long as OS/2 is not loaded on
  981. Drive E: for some wierd reason).  I'm superstitious about the INET.SYS
  982. and IFNDIS.SYS files, making sure I use the same ones with each new
  983. install.  Don't have any idea why that is though.
  984.  
  985. * * * * * *
  986. * CONFIG.SYS  (Notice that all the TCPIP and IBMCOM stuff is at the end of 
  987. *             the file, after the requester stuff.)
  988. * * * * * *
  989. IFS=D:\OS2\HPFS.IFS  /CACHE:512 /CRECL:4 /AUTOCHECK:D
  990. PROTSHELL=D:\OS2\PMSHELL.EXE
  991. SET USER_INI=D:\OS2\OS2.INI
  992. SET SYSTEM_INI=D:\OS2\OS2SYS.INI
  993. SET OS2_SHELL=D:\OS2\CMD.EXE
  994. SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS,CONNECTIONS
  995. SET RUNWORKPLACE=D:\OS2\PMSHELL.EXE
  996. SET COMSPEC=D:\OS2\CMD.EXE
  997. LIBPATH=.;D:\OS2\DLL;D:\OS2\MDOS;D:\;D:\OS2\APPS\DLL;D:\NETWARE;
  998. D:\TCPIP\DLL;D:\IBMCOM\DLL;D:\TALKTHRU\PROGRAMS;
  999. SET PATH=D:\OS2;D:\OS2\SYSTEM;D:\OS2\MDOS\WINOS2;D:\OS2\INSTALL;
  1000. D:\;D:\OS2\MDOS;D:\OS2\APPS;L:\OS2;P:\OS2;D:\NETWARE;D:\TCPIP\BIN;
  1001. D:\IBMCOM;d:\tools\utilities;D:\TALKTHRU\PROGRAMS;
  1002. SET DPATH=D:\OS2;D:\OS2\SYSTEM;D:\OS2\MDOS\WINOS2;D:\OS2\INSTALL;
  1003. D:\;D:\OS2\BITMAP;D:\OS2\MDOS;D:\OS2\APPS;D:\NETWARE;D:\IBMCOM;
  1004. SET PROMPT=$i[$p]
  1005. SET HELP=D:\OS2\HELP;D:\OS2\HELP\TUTORIAL;D:\TCPIP\HELP;
  1006. SET GLOSSARY=D:\OS2\HELP\GLOSS;
  1007. SET IPF_KEYS=SBCS
  1008. PRIORITY_DISK_IO=YES
  1009. FILES=20
  1010. SET DIRCMD=/O:GN
  1011. DEVICE=D:\OS2\TESTCFG.SYS
  1012. DEVICE=D:\OS2\DOS.SYS
  1013. DEVICE=D:\OS2\PMDD.SYS
  1014. BUFFERS=30
  1015. IOPL=YES
  1016. DISKCACHE=512,LW
  1017. MAXWAIT=3
  1018. MEMMAN=SWAP,PROTECT
  1019. SWAPPATH=D:\OS2\SYSTEM 2048 2048
  1020. BREAK=OFF
  1021. THREADS=256
  1022. PRINTMONBUFSIZE=134,134,134
  1023. COUNTRY=001,D:\OS2\SYSTEM\COUNTRY.SYS
  1024. SET KEYS=ON
  1025. REM SET DELDIR=C:\DELETE,512;D:\DELETE,512;
  1026. BASEDEV=PRINT01.SYS
  1027. BASEDEV=IBM1FLPY.ADD
  1028. BASEDEV=IBM1S506.ADD
  1029. BASEDEV=OS2DASD.DMD
  1030. SET BOOKSHELF=D:\OS2\BOOK
  1031. SET EPMPATH=D:\OS2\APPS
  1032. SET FAXPM=D:\OS2\APPS
  1033. REM DEVICE=D:\OS2\APPS\SASYNCDA.SYS 
  1034. PROTECTONLY=NO
  1035. SHELL=D:\OS2\MDOS\COMMAND.COM D:\OS2\MDOS /P /E:1024
  1036. FCBS=16,8
  1037. RMSIZE=640
  1038. DEVICE=D:\OS2\MDOS\VEMM.SYS    
  1039. DOS=LOW,NOUMB
  1040. DEVICE=D:\OS2\MDOS\VDPX.SYS    
  1041. DEVICE=D:\OS2\MDOS\VXMS.SYS /UMB
  1042. DEVICE=D:\OS2\MDOS\VDPMI.SYS    
  1043. DEVICE=D:\OS2\MDOS\VWIN.SYS    
  1044. DEVICE=D:\OS2\MDOS\VCDROM.SYS    
  1045. REM DEVICE=D:\OS2\PCMCIA.SYS 
  1046. REM DEVICE=D:\OS2\MDOS\VPCMCIA.SYS 
  1047. DEVICE=D:\OS2\MDOS\VMOUSE.SYS    
  1048. DEVICE=D:\OS2\POINTDD.SYS 
  1049. DEVICE=D:\OS2\MOUSE.SYS SERIAL=COM1 
  1050. DEVICE=D:\OS2\COM.SYS                                
  1051. DEVICE=D:\OS2\MDOS\VCOM.SYS                                
  1052. CODEPAGE=437,850
  1053. DEVINFO=KBD,US,D:\OS2\KEYBOARD.DCP
  1054. SET VIDEO_DEVICES=VIO_SVGA
  1055. DEVICE=D:\OS2\MDOS\VSVGA.SYS
  1056.  
  1057. REM --- NetWare Requester statements BEGIN ---
  1058. DEVICE=D:\NETWARE\LSL.SYS
  1059. RUN=D:\NETWARE\DDAEMON.EXE
  1060. DEVICE=D:\NETWARE\NE2000.SYS
  1061. DEVICE=D:\NETWARE\IPX.SYS
  1062. DEVICE=D:\NETWARE\SPX.SYS
  1063. RUN=D:\NETWARE\SPDAEMON.EXE
  1064. rem DEVICE=D:\NETWARE\NMPIPE.SYS
  1065. rem DEVICE=D:\NETWARE\NPSERVER.SYS
  1066. rem RUN=D:\NETWARE\NPDAEMON.EXE NP_COMPUTERNAME
  1067. DEVICE=D:\NETWARE\NWREQ.SYS
  1068. IFS=D:\NETWARE\NWIFS.IFS
  1069. RUN=D:\NETWARE\NWDAEMON.EXE
  1070. DEVICE=D:\NETWARE\NETBIOS.SYS
  1071. RUN=D:\NETWARE\NBDAEMON.EXE
  1072. DEVICE=D:\NETWARE\VIPX.SYS
  1073. DEVICE=D:\NETWARE\VSHELL.SYS
  1074. REM --- NetWare Requester statements END ---
  1075.  
  1076. REM  Below is all the TCPIP and IBMCOM stuff (not before!)
  1077. DEVICE=D:\IBMCOM\LANMSGDD.OS2 /I:D:\IBMCOM
  1078. DEVICE=D:\IBMCOM\PROTMAN.OS2 /I:D:\IBMCOM
  1079. rem  DEVICE=D:\IBMCOM\MACS\NE2000.OS2 /I:D:\IBMCOM
  1080.  
  1081. DEVICE=D:\NETWARE\ODINSUP.SYS
  1082. RUN=D:\IBMCOM\PROTOCOL\NETBIND.EXE
  1083. RUN=D:\IBMCOM\LANMSGEX.EXE
  1084.  
  1085. SET ETC=D:\TCPIP\ETC
  1086. SET TMP=D:\TCPIP\TMP
  1087. DEVICE=D:\IBMCOM\PROTOCOL\IFNDIS.SYS
  1088. DEVICE=D:\IBMCOM\PROTOCOL\INET.SYS
  1089. RUN=D:\TCPIP\BIN\CNTRL.EXE
  1090.  
  1091. SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)
  1092. DEVINFO=SCR,VGA,D:\OS2\VIOTBL.DCP
  1093.  
  1094.  
  1095. * * * * * *
  1096. * NET.CFG  (nothing special here)
  1097. * * * * * *
  1098. Link driver ne2000
  1099.    protocol ipx 8137 ethernet_ii
  1100.    frame ethernet_ii
  1101.    int 5
  1102.    port 360
  1103.    node address 1B198826
  1104.   
  1105. netware requester
  1106.     preferred ecu_joyner_library
  1107.  
  1108. protocol odinsup
  1109.     bind ne2000
  1110.  
  1111. link support 
  1112.     buffers 16 1514
  1113.  
  1114.  
  1115. * * * * * *
  1116. * PROTOCOL.INI (Don't worry about the LAPS settings during install.  They 
  1117. *               only write to the PROTOCOL.INI as far as I know.)
  1118. * * * * * *
  1119. [PROT_MAN]
  1120.  DriverName = PROTMAN$
  1121.  
  1122. [IBMLXCFG]
  1123.  NE2000_nif = NE2000.nif
  1124.  TCPIP_nif = TCPIP.nif
  1125.  
  1126. ;*----------------------------------------------*
  1127. ;*------------- PROTOCOL SECTION ---------------*
  1128. ;*----------------------------------------------*
  1129.  
  1130. [TCPIP_nif]
  1131.  DriverName = TCPIP$
  1132. ; Bindings = NE2000_nif
  1133.  Bindings = NE2000
  1134.  
  1135. ;*----------------------------------------------*
  1136. ;*--------------- MAC SECTION ------------------*
  1137. ;*----------------------------------------------*
  1138.  
  1139. [NE2000]
  1140.  
  1141. [NE2000_nif]
  1142.  DriverName = MS2000$
  1143.  IOBASE = 0x360
  1144.  INTERRUPT = 5
  1145.  
  1146.  
  1147. ********************************************************************
  1148. From: loflin@emx.cc.utexas.edu (Don Loflin)
  1149. Organization: The University of Texas at Austin, Austin, Texas
  1150. Date: 28 Jan 1993 08:55:21 -0600
  1151.  
  1152. I found the following settings to be the most crucial, especially the
  1153. "protocol odinsup / bind ne2000" part, which the ODINSUP readme claimed
  1154. was optional if you only had 1 ODI driver loaded (e.g. it would bind to
  1155. the only driver found).  
  1156.  
  1157. * * * * *
  1158. * NET.CFG
  1159. * * * * *
  1160. protocol odinsup
  1161.     bind ne2000
  1162.  
  1163. * * * * *
  1164. * PROTOCOL.INI
  1165. * * * * *
  1166. [TCPIP_nif]
  1167.  Bindings = NE2000
  1168.  
  1169.  
  1170. ********************************************************************
  1171. From: RZHM@rz.uni-osnabrueck.DE (Helmut Meyhoefer)
  1172. Organization: Computing Center
  1173. Date: Thu, 28 Jan 1993 13:38:27 GMT
  1174.  
  1175. This is my configuration for CM, TCPIP and NW Requester with NSD201.  No
  1176. problems.
  1177.  
  1178. * * * * *
  1179. * CONFIG.SYS
  1180. * * * * *
  1181.  
  1182. IFS=C:\OS2\HPFS.IFS /CACHE:384 /CRECL:4 /AUTOCHECK:CDE
  1183.  
  1184. REM ******* LAPS:
  1185. RUN=C:\OS2\INSTALL\IBMLANLK.EXE C:\OS2\INSTALL\IBMLANLK.LST
  1186.  
  1187. RUN=C:\OS2\XCOPY.EXE C:\OS2\OS2*.INI E:\OS2\IniSave
  1188. PROTSHELL=C:\OS2\PMSHELL.EXE
  1189. SET RESTARTOBJECTS=STARTUPFOLDERSONLY
  1190. SET USER_INI=C:\OS2\OS2.INI
  1191. SET SYSTEM_INI=C:\OS2\OS2SYS.INI
  1192. SET OS2_SHELL=C:\OS2\CMD.EXE
  1193. SET AUTOSTART=PROGRAMS,TASKLIST,FOLDERS
  1194. SET RUNWORKPLACE=C:\OS2\PMSHELL.EXE
  1195. SET COMSPEC=C:\OS2\CMD.EXE
  1196. LIBPATH=.;C:\OS2\DLL;C:\MUGLIB\DLL;C:\OS2\MDOS;E:\CMLIB\DLL;C:\;C:\OS2\APPS\DLL;C:\IBMCOM\DLL;E:\NETWARE;E:\TCPIP\DLL;
  1197. SET PATH=C:\OS2;C:\OS2\CMD;C:\MUGLIB;C:\OS2\SYSTEM;D:\SYSTEM;C:\OS2\MDOS\WINOS2;E:\CMLIB;E:\CMLIB\APPN;C:\OS2\INSTALL;C:\;C:\OS2\MDOS;C:\OS2\APPS;L:\OS2;P:\OS2;E:\NETWARE;E:\TCPIP\BIN;
  1198. SET DPATH=C:\OS2;C:\MUGLIB\DLL;E:\CMLIB;E:\CMLIB\APPN;C:\OS2\SYSTEM;C:\OS2\MDOS\WINOS2;C:\OS2\INSTALL;C:\;C:\OS2\BITMAP;C:\OS2\MDOS;C:\OS2\APPS;C:\IBMCOM;E:\NETWARE;L:\OS2;
  1199. SET PROMPT=$e[32;40m$e[1mrc=$r [$p] $i$e[0m
  1200. SET HELP=E:\CMLIB\APPN;C:\OS2\HELP;C:\OS2\HELP\TUTORIAL;E:\TCPIP\HELP;
  1201. SET GLOSSARY=C:\OS2\HELP\GLOSS;
  1202. SET THE_HELP=D:\OS2\UTILS\THE\OS2.HLP
  1203. SET THE=D:\OS2\UTILS\THE\PROFILE.THE
  1204. SET DIRCMD=/O:GN
  1205. PRIORITY_DISK_IO=YES
  1206. FILES=20
  1207. DEVICE=C:\OS2\R0CSDD.SYS
  1208.  
  1209. REM ******* LAPS:
  1210. DEVICE=C:\OS2\INSTALL\IBMLANLK.SYS C:\OS2\INSTALL\IBMLANLK.LST
  1211. DEVICE=C:\IBMCOM\LANMSGDD.OS2 /I:C:\IBMCOM
  1212. DEVICE=C:\ibmcom\protman.os2 /I:C:\ibmcom
  1213.  
  1214. DEVICE=C:\OS2\TESTCFG.SYS
  1215. DEVICE=C:\OS2\DOS.SYS
  1216. DEVICE=C:\OS2\PMDD.SYS
  1217. BUFFERS=30
  1218. IOPL=YES
  1219. DISKCACHE=64,LW
  1220. MAXWAIT=3
  1221. MEMMAN=SWAP,PROTECT
  1222. SWAPPATH=E:\SWAPSPACE 2048 4096
  1223. BREAK=OFF
  1224. THREADS=256
  1225. PRINTMONBUFSIZE=134,134,134
  1226. COUNTRY=049,C:\OS2\SYSTEM\COUNTRY.SYS
  1227. SET KEYS=ON
  1228. SET DELDIR=C:\DELETE,512 D:\DELETE,1024 E:\DELETE,1024
  1229. BASEDEV=PRINT02.SYS
  1230. BASEDEV=IBM2FLPY.ADD
  1231. BASEDEV=IBM2ADSK.ADD
  1232. BASEDEV=OS2DASD.DMD
  1233. SET BOOKSHELF=C:\OS2\BOOK;
  1234. SET EPATH=C:\OS2\APPS
  1235. DEVICE=C:\OS2\APPS\SASYNCDB.SYS
  1236. PROTECTONLY=NO
  1237. SHELL=C:\OS2\MDOS\COMMAND.COM C:\OS2\MDOS /E:1000/P
  1238. FCBS=16,8
  1239. RMSIZE=640
  1240. DEVICE=C:\OS2\MDOS\VEMM.SYS
  1241. DEVICE=C:\OS2\MDOS\VMOUSE.SYS
  1242. DOS=LOW,NOUMB
  1243. DEVICE=C:\OS2\MDOS\VDPX.SYS
  1244. DEVICE=C:\OS2\MDOS\VXMS.SYS /UMB
  1245. DEVICE=C:\OS2\MDOS\VDPMI.SYS
  1246. DEVICE=C:\OS2\MDOS\VWIN.SYS
  1247. DEVICE=C:\OS2\MDOS\VCDROM.SYS
  1248. DEVINFO=SCR,VGA,C:\OS2\VIOTBL.DCP
  1249. SET VIDEO_DEVICES=VIO_VGA
  1250. SET VIO_VGA=DEVICE(BVHVGA)
  1251. DEVICE=C:\OS2\MDOS\VVGA.SYS
  1252. CODEPAGE=850,437
  1253. DEVINFO=KBD,GR,C:\OS2\KEYBOARD.DCP
  1254. DEVICE=C:\OS2\POINTDD.SYS
  1255. DEVICE=C:\OS2\MOUSE.SYS
  1256. DEVICE=C:\OS2\COM.SYS
  1257. DEVICE=C:\OS2\MDOS\VCOM.SYS
  1258. DEVICE=C:\OS2\MDOS\ANSI.SYS
  1259.  
  1260. REM Protokollierung einschalten:
  1261. DEVICE=C:\OS2\LOG.SYS
  1262. RUN=C:\OS2\SYSTEM\LOGDAEM.EXE
  1263.  
  1264. REM ********* Netware Requester ***************
  1265. REM --- NETWARE REQUESTER STATEMENTS BEGIN ---
  1266. DEVICE=E:\NETWARE\LSL.SYS
  1267. RUN=E:\NETWARE\DDAEMON.EXE
  1268. DEVICE=E:\NETWARE\TOKEN.SYS
  1269. DEVICE=E:\NETWARE\ROUTE.SYS
  1270. DEVICE=E:\NETWARE\IPX.SYS
  1271. DEVICE=E:\NETWARE\SPX.SYS
  1272. RUN=E:\NETWARE\SPDAEMON.EXE
  1273. DEVICE=E:\NETWARE\NWREQ.SYS
  1274. IFS=E:\NETWARE\NWIFS.IFS
  1275. RUN=E:\NETWARE\NWDAEMON.EXE
  1276. DEVICE=E:\NETWARE\VIPX.SYS
  1277. DEVICE=E:\NETWARE\VSHELL.SYS
  1278. DEVICE=E:\NETWARE\ODINSUP.SYS
  1279. REM --- NETWARE REQUESTER STATEMENTS END ---
  1280.  
  1281. REM ********* Communications Manager ***************
  1282. DEVICE=C:\ibmcom\protocol\LANDD.OS2
  1283. DEVICE=C:\ibmcom\protocol\LANDLLDD.OS2
  1284. DEVICE=E:\CMLIB\ACSLDLAN.SYS
  1285. RUN=C:\OS2\EPW.EXE
  1286. RUN=C:\ibmcom\protocol\landll.exe
  1287. DEVICE=E:\CMLIB\APPN\CMKFMDE.SYS
  1288. DEVICE=C:\IBMCOM\PROTOCOL\IFNDIS.SYS
  1289. DEVICE=C:\IBMCOM\PROTOCOL\INET.SYS
  1290.  
  1291. REM ******* TCPIP
  1292. SET ETC=E:\TCPIP\ETC
  1293. SET TMP=E:\TCPIP\TMP
  1294. RUN=E:\TCPIP\BIN\CNTRL.EXE
  1295.  
  1296. REM ******* LAPS:
  1297. RUN=C:\ibmcom\protocol\netbind.exe
  1298. RUN=C:\ibmcom\lanmsgex.exe
  1299.  
  1300. REM ******* TCPIP
  1301. SET XFILES=E:\TCPIP\X11
  1302. SET USERNAME=
  1303. SET HOSTNAME=
  1304. SET TELNET.PASSWORD.ID=
  1305.  
  1306. CALL=CMD.EXE
  1307.  
  1308.  
  1309. * * * * *
  1310. * NET.CFG
  1311. * * * * *
  1312.  
  1313. Link Driver token
  1314.    frame token-ring
  1315.    frame token-ring_snap
  1316.    node address 400031741015
  1317.  
  1318. Link Support
  1319.    buffers 14 4210
  1320.  
  1321. protocol odinsup
  1322.    bind token
  1323.  
  1324. protocol stack ipx
  1325.    sessions 50
  1326.    Sockets 64
  1327.  
  1328. PROTOCOL STACK SPX
  1329.    Abort Timeout 30000
  1330.    Verify Timeout 3000
  1331.    Listen Timeout 6000
  1332.    Send Timeout 6000
  1333.    Retry Count 20
  1334.    Sessions 50
  1335.  
  1336. Netware Requester
  1337.    cache buffers 20
  1338.    sessions 8
  1339.    request retries 20
  1340.    preferred server server_name  
  1341.  
  1342. Netware Spooler
  1343.    copies 1
  1344.    keep
  1345.    size 8
  1346.    banner
  1347.    form feed
  1348.  
  1349.  
  1350. * * * * *
  1351. * PROTOCOL.INI
  1352. * * * * *
  1353.  
  1354. [PROT_MAN]
  1355.  DriverName = PROTMAN$
  1356.  
  1357. [IBMLXCFG]
  1358.  TCPIP_nif = TCPIP.nif
  1359.  LANDD_nif = LANDD.NIF
  1360.  
  1361. [TCPIP_nif]
  1362.  DriverName = TCPIP$
  1363.  Bindings = TOKEN
  1364.  
  1365. [LANDD_nif]
  1366.  DriverName = LANDD$
  1367.  Bindings = TOKEN
  1368.  
  1369.  
  1370. ---------------------------------------------------
  1371. (A2) Appendix II: Supplementary information on SLIP
  1372. ---------------------------------------------------
  1373.  
  1374. Rather than editing matter that I don't fully understand, I've included
  1375. this dialog essentially verbatim.  It is Dave Bolen, author of a SLIP
  1376. driver (alternative to IBM's own) replying to SLIP configuration
  1377. questions from Don Lindbergh.  Dave Bolen's SLIP driver is presently
  1378. still in the testing stage, but users reporting in the
  1379. comp.os.os2.networking newsgroup are uniformly glowing in their reviews
  1380. of it.
  1381.  
  1382. At the time of writing, Bolen's slip driver can be had via anonymous
  1383. FTP from ftp.ans.net in file /pub/misc/slip20a3.zoo.
  1384.  
  1385. In any case, the following notes should give you a _lot_ of information
  1386. about SLIP connections in general, as well as information that may be
  1387. specific to Dave's drivers.
  1388.  
  1389.  
  1390. >From: dabl2@nlm.nih.gov (Don A.B. Lindbergh)
  1391. Date: Wed, 17 Feb 93 14:04:06 EST
  1392. Message-Id: <9302171904.AA09472@nlm.nih.gov>
  1393. To: dean2@bigbird.csd.scarolina.edu
  1394. Subject: Re: TCP/IP, SLIP, Beat 2.1 Setup Questions (LONG)
  1395.  
  1396. Ok, I'm sending you what Bolen sent me.  He has sent me two replies.
  1397. The first is pretty much *it* as far as what you're probably interested
  1398. in.  It is long and has diagrams :)  The second piece is an attempt at
  1399. further clarification.  I also included the first piece of mail from a
  1400. gentlemen trying to help me put the final piece in place, using
  1401. ROUTED.  I basically haven't been able to get it to work (I think)
  1402. because of:
  1403.  
  1404. 1. not much time
  1405. 2. incorrect syntax
  1406.  
  1407. There will undoubtably be some more email from him, after which I
  1408. predict the light will shine on me, the angles will sing, and I will
  1409. actually have a full blow slip home system going......
  1410.  
  1411. Oh, near the end of Bolen's first note is an 'off the cuff' 'untested'
  1412. method of using 'arp -s' to 'publish' a network card to do routing.  I
  1413. wasen't able to get this to work for me, it may be I'm doing something
  1414. wrong.  I intend to at least confirm with him that this method *does*
  1415. in fact work.  It seems I will be using either this method or ROUTED as
  1416. getting a static route added for my SLIP subnet may be a hassle (Bolen
  1417. talks about all this).
  1418.  
  1419. So, truthfully, I'm not quite out of the woods yet, but I wanted to
  1420. send you what he sent me, because it seems he has told me pretty much
  1421. everything.  I figured it's better to send you more than you need
  1422. rather than edit it down myself.  If you like, I'll forward what I get
  1423. and wrap it up when I get it really working.  Your stuff was invaluable
  1424. to me when I was trying to get tcp/ip going.
  1425.  
  1426. --Don Lindbergh
  1427. dabl2@lhc.nlm.nih.gov
  1428.  
  1429. _______________________________________________________________________
  1430. >From db3l@ans.net Mon Feb 15 16:41:48 1993
  1431. To: dabl2@nlm.nih.gov (Don A.B. Lindbergh)
  1432.  
  1433. >REQUEST FOR HELP, somewhat lengthy.....
  1434.  
  1435. Well, let's see what we can do...
  1436.  
  1437. Warning - your request may have been lengthy, but these answers get
  1438. real long sometimes :-)
  1439.  
  1440. >I'm really unclear on how to setup at home for SLIP.  I've read over
  1441. >EVERY occurance of 'slip' in the TCPINFO doc's, I don't get it....
  1442.  
  1443. Part of the difficulty explaining this sort of stuff is that if you get
  1444. generic enough in your explanation to cover anyone's case, the
  1445. explanation becomes vague enough to be less than helpful :-)
  1446.  
  1447. For example - you don't give any actual IP addresses in your supplied
  1448. office and home configurations, and yet it is likely the actual IP
  1449. addresses (and routing between them) that is the problem.
  1450.  
  1451. So - for these examples, I'll use some explicit IP addresses that we
  1452. use here at ANS - hopefully, it will not be difficult to translate
  1453. their use into your own addresses.
  1454.  
  1455. Let's take the office machine.  In my case, it has two interfaces - an
  1456. ethernet (lan0) and com1 (sl).  The important elements for packet flows
  1457. are the addresses of the interfaces, and the routes that the machine
  1458. has to specific hosts or networks.
  1459.  
  1460. Let's say the office LAN is 147.225.10.x, and my machine has the
  1461. address 147.225.10.18.  Thus, subnet 10 of network 147.225 (a class B
  1462. network) is dedicated to the office ethernet.  There is a default
  1463. router on the office lan, 147.225.10.1, that I should send packets to
  1464. when I don't know where to send them.  The subnet mask for my LAN is
  1465. 255.255.255.0.  Also, I have a nameserver at 147.225.10.1.
  1466.  
  1467. Now let's say that I choose subnet 11 for my SLIP connection.  You
  1468. can't give hosts at the far end of the SLIP link an address in subnet
  1469. 10 since the rest of your LAN all think that subnet 10 hosts are
  1470. directly connected to the ethernet itself.  (This isn't completely
  1471. true, but it's tricky to work around, so let's say it is true for
  1472. now).  It is possible, as your example showed, to have your office
  1473. machine be 147.225.10.18 on both interfaces, but is often clearer if
  1474. you give it an address in the same subnet as the far end of the link.
  1475. Let's say in my case, I've made the office machine 147.225.11.1 on the
  1476. sl interface, and my home machine is going to be 147.225.11.2.
  1477.  
  1478. Thus, you end up with the following configuration:
  1479.  
  1480.               -+-
  1481.                |
  1482.                |      +----------------+              +--------------+
  1483.      LAN       |      | Office Machine |              | Home Machine |
  1484.                |      | -- -- -- -- -- |  Phone Line  | -- -- -- --  |
  1485.                |      |                | 147.225.11.x |              |
  1486. 147.225.10.x   +------| lan0        sl |--------------| sl           |
  1487.                |  .18 |                | .1        .2 |              |
  1488.                |      +----------------+              +--------------+
  1489.                |
  1490.               -+-
  1491.  
  1492. Now I don't think you've had a problem getting to this stage of
  1493. everything, even though your addresses may be different.  The next big
  1494. problem is getting packets to flow where you want.
  1495.  
  1496. In this example, hosts on the 147.225.10 network don't have a problem
  1497. talking to one another.  They all know that anything in 147.225.10
  1498. should be on the LAN wire.  They also know a default router at
  1499. 147.225.10.1.  If I did a "netstat -r" on your office machine, I would
  1500. find an entry like:
  1501.  
  1502.    Office with LAN:
  1503.  
  1504.         destination     router          intrf (interface)
  1505.  
  1506.         default         147.225.10.1    lan0
  1507.         147.225.10.0    147.225.10.18   lan0
  1508.  
  1509. or in other words - packets heading to anything on 147.225.10 would go
  1510. through my local interface to the LAN, lan0, while anything else also
  1511. goes out over lan0, but it gets sent to the 147.225.10.1 host, which
  1512. should know what to do with it.
  1513.  
  1514. That's just the LAN.  Once you start SLIO and create the "sl"
  1515. interface, and ifconfig the appropriate addresses, your routing table
  1516. will look like the following:
  1517.  
  1518.    Office with LAN and SLIP:
  1519.  
  1520.         destination     router          intrf (interface)
  1521.  
  1522.         default         147.225.10.1    lan0
  1523.         147.225.10.0    147.225.10.18   lan0
  1524.         147.225.11.2    147.225.11.1    sl
  1525.  
  1526. which is the same as before except that traffic for host 147.225.11.2
  1527. will go over the serial interface.  If you use the same address for
  1528. your office machine on lan0 as on sl, the above would be the same
  1529. except the router field would show 10.18 in both the lan0 and sl cases.
  1530.  
  1531. Now, to finish off the scenario, on your home machine all you did is
  1532. configure the sl interface - nothing else is running.  That gives you
  1533. a routing table like the following:
  1534.  
  1535.    Home with SLIP:
  1536.  
  1537.         destination     router          intrf (interface)
  1538.  
  1539.         147.225.11.1    147.225.11.2    sl
  1540.  
  1541.  
  1542. Now, given the differences in IP address, I think that's the state
  1543. you've been able to get to in your experiments.  Or, to add this
  1544. routing information to my original picture, my hosts would look
  1545. configured something like the following:
  1546.  
  1547.               -+-
  1548.                |
  1549.                |      +----------------+              +--------------+
  1550.      LAN       |      | Office Machine |              | Home Machine |
  1551.                |      | -- -- -- -- -- |  Phone Line  | -- -- -- --  |
  1552.                |      |                | 147.225.11.x |              |
  1553. 147.225.10.x   +------| lan0        sl |--------------| sl           |
  1554.                |  .18 |                | .1        .2 |              |
  1555.                |      +----------------+              +--------------+
  1556.                |  <-- 147.225.10
  1557.                |  <-- default
  1558.                |            147.225.11.2 -->      <-- 147.225.11.1
  1559.               -+-
  1560.  
  1561.  
  1562. Ok.  Presuming you're still with me :-)  Here's where you begin to run
  1563. into problems.  As long as you are on your office machine, you'll be
  1564. fine.  If you try to send packets to someone on the LAN, the route for
  1565. 147.225.10 will work and you'll find them.  If you try to send packets
  1566. to your home machine, it will go out over the serial interface and find
  1567. it.  If you send packets somewhere else, they'll go to the default
  1568. router, which will get them there.  And, since your office machine is
  1569. part of your LAN, packets will find their way back to you since the
  1570. rest of the LAN (and outside networks) know how to reach your
  1571. 147.225.10 addresses.  Nameserver stuff will work fine too, since the
  1572. nameservers are presumably on your LAN, so queries are just like other
  1573. LAN traffic.
  1574.  
  1575. The home machine has some problems however.  Once you get SLIP running
  1576. there, you should be able to ping your office machine's address over
  1577. the SLIP link.  In other words, in my example, a "ping 147.225.11.1"
  1578. would work, and I could do things like FTP to the office machine.  But
  1579. that's the only communication that works.
  1580.  
  1581. The problem with other hosts is routing related.  For example, let's
  1582. say that your home host tried to talk to the default router,
  1583. 147.225.10.1.  On your home machine you only know how to reach
  1584. 147.225.11.1, so when you use the 10.1 address, your home machine
  1585. doesn't know how to get there.  That's where you get the "no route to
  1586. host message".  It is telling you it doesn't know where to send
  1587. packets for hosts other than 147.225.11.1.
  1588.  
  1589. Now that's an easy one to fix.  Add a default route on your home box
  1590. pointing to your office box.  Then, if you try to use an address that
  1591. the home machine doesn't know about, it will still send it to the
  1592. office machine.  The office machine will then either know about it (if
  1593. it's part of 147.225.10, such as your nameserver), or it will forward
  1594. it on to *its* default router, 147.225.10.1.
  1595.  
  1596. This is only part of the problem, however.  That solves the outgoing
  1597. packets from your home machine, but it doesn't fix the case of packets
  1598. coming back in to your home machine.  For example, your home machine
  1599. will now know how to send a packet to the nameserver that you use in
  1600. your office, but the nameserver won't know how to send the packet back
  1601. to the home machine.  The nameserver will know that 147.225.10
  1602. addresses are on the LAN, but it won't know what to do with a
  1603. 147.225.11 address.
  1604.  
  1605. There are a few ways to fix this.  What you really need to do is to
  1606. get all the other hosts on your LAN to know that subnet 147.225.11 is
  1607. routed through you, and that they should send packets to you for those
  1608. addresses.  This is not normally practical, however, since a number of
  1609. owners of hosts are involved.
  1610.  
  1611. Another alternative is for everyone to run a routing daemon (such as
  1612. the ROUTED that came with the TCP/IP package), which lets your
  1613. machine announce to the other machines that it has the SLIP route, and
  1614. then they know where to send the packages.  Again, this may not be
  1615. reasonable as everyone may not want to or be able to run a routing daemon.
  1616.  
  1617. Probably the easiest thing for you to do is to get whoever administers
  1618. the default router to add a static route for your SLIP subnet to that
  1619. router.  Then, since everyone else on the LAN defaults to that router,
  1620. when it gets packets for your SLIP host it will forward them back to
  1621. you.  Often, it will also issue a redirect to the hosts telling them
  1622. where they should have really sent the packets.
  1623.  
  1624. So to summarize - your problems are likely twofold.  One, that your
  1625. home host doesn't know to default to the office host for stuff that it
  1626. doesn't have an explicit route to.  And two, that the hosts on the LAN
  1627. (or the outside world for that matter) don't know to use you to reach
  1628. your home host.  You need to solve both of those routing problems
  1629. before you can see packets flowing between your home host and any
  1630. other IP attached host.
  1631.  
  1632. In terms of the configurations you posted:
  1633.  
  1634. >OFFICE MACHINE SETUP.CMD:
  1635. >route -fh
  1636. >arp -f
  1637. >ifconfig lan0 myipaddress netmask 255.255.255.0
  1638. >REM ifconfig lan1 
  1639. >REM ifconfig lan2 
  1640. >REM ifconfig lan3 
  1641. >start slio.exe
  1642. >sliowait
  1643. >ifconfig sl myipaddress otherpcaddress
  1644. >route add default myrouter 1
  1645.  
  1646. This should be fine.  In general, I don't expect your office machine
  1647. would have any problems.  It's the one machine in this whole
  1648. configuration that knows just what is going on, and how to reach
  1649. everyone it needs to reach.
  1650.  
  1651. >HOME MACHINE SETUP.CMD:
  1652. >route -fh
  1653. >arp -f
  1654. >REM ifconfig lan0 myipaddress officeipaddress netmask 255.255.255.0
  1655. >REM ifconfig lan1
  1656. >REM ifconfig lan2
  1657. >REM ifconfig lan3
  1658. >start slio.exe
  1659. >sliowait
  1660. >ifconfig sl myipaddress officeipaddress
  1661.  
  1662. This is fine.
  1663.  
  1664. >route add host officeipaddress officerouter
  1665.  
  1666. You don't need this.  ifconfig'ing sl will automatically add this
  1667. route to your routing tables.  What you do need is a statement:
  1668.  
  1669.         route add default officeipaddress 1
  1670.  
  1671. to let the home host pass all other packets through to the office as
  1672. well.
  1673.  
  1674. And you need the office machines (or default router) to know about
  1675. your home address too.
  1676.  
  1677. If this sounds convoluted, it's because it's a lot harder to write
  1678. about and explain than just to do - at least I find it that way.
  1679.  
  1680. If you've stuck with me this far, I'll also throw in a way you can
  1681. cheat with your SLIP address and make the rest of your office LAN
  1682. think your home machine is right on the LAN - thus avoiding the need
  1683. to tell them about routing or get your default router to change.
  1684.  
  1685. Some of this is off the cuff - I don't think I've done this explicitly
  1686. myself yet, although it should work fine.
  1687.  
  1688. What you do first is get another LAN address for your home SLIP machine
  1689. - in my case, let's say it was 147.225.10.19.  You then configure
  1690. everyone just as before, including the default route on your home SLIP
  1691. machine.  You end up with the following:
  1692.  
  1693.  
  1694.    Office with LAN and SLIP:
  1695.  
  1696.         destination     router          intrf (interface)
  1697.  
  1698.         default         147.225.10.1    lan0
  1699.         147.225.10.0    147.225.10.18   lan0
  1700.         147.225.10.19   147.225.10.18   sl
  1701.  
  1702.  
  1703.    Home with SLIP:
  1704.  
  1705.         destination     router          intrf (interface)
  1706.  
  1707.         default         147.225.10.18   sl
  1708.         147.225.10.18   147.225.10.19   sl
  1709.  
  1710.  
  1711. For your office machine, any packets to host 147.225.10.19 (your home
  1712. host) will go over the serial line.  All other packets for 147.225.10
  1713. hosts will go over the LAN interface.  And anything else will be put
  1714. over the LAN interface to the default router also on the LAN.
  1715.  
  1716. For your home machine, packets to your office machine will go over the
  1717. serial interface, and packets to anything else will first be passed to
  1718. your office machine (over the serial interface) for handling.
  1719.  
  1720. Now the only rub is getting machines on the LAN to talk back to your
  1721. home machine.  The problem is that those machines will think (since it
  1722. has a 147.225.10 address) that your home machine is directly connected
  1723. to the LAN.
  1724.  
  1725. What happens on the LAN is that other machines issue ARP (Address
  1726. Resolution Protocol) requests to translate an address (147.225.10.19
  1727. in this case) into a hardware level address (such as a token ring or
  1728. ethernet adapter address).  Packets are then sent over the LAN to that
  1729. hardware address.  For most machines, they answer for their own
  1730. address, and give their hardware address.  Obviously, your home
  1731. machine can't do that in this case since it isn't attached directly to
  1732. the LAN.
  1733.  
  1734. So what you do is tell your office machine to answer for your home
  1735. machine.  You use the "arp" command to "publish" a permanent arp entry
  1736. for your home machine.  The entry will use your office machine's
  1737. hardware address as the arp answer.  Then, other machines in the
  1738. office will use your office machine's hardware address on the LAN when
  1739. sending packets to your home machine - so the packets will end up on
  1740. the office machine.  The office machine will look at the actual IP
  1741. address and recognize that it should go down the serial link to the
  1742. home machine.  This entire process is called "Proxy ARPing", and is
  1743. often supplied as an automatic process in SLIP servers or routers -
  1744. we'd just be doing it in a more manual fashion.
  1745.  
  1746. To set up the arp entry, you need to figure out your hardware address.
  1747. You can either do this by looking at the LANTRAN.LOG file in your LAPS
  1748. directory (normally C:\IBMCOM).  It should have a line like:
  1749.         "Adapter 0 is using node address 10005A82501A    (...)"
  1750.  
  1751. Or, check someone else's machine that has recently exchanged traffic
  1752. with you and do an "arp -a" and look for your address as in:
  1753.  
  1754.         hardware address        IP address
  1755.         10005A82501A            147.225.10.18
  1756.  
  1757. In either event, you want to know your 12-digit hexadecimal hardware
  1758. address.  Once you know that, you can stuff an entry for your home
  1759. machine in your arp table with the command:
  1760.  
  1761.         arp -s 147.225.10.19 10:00:5A:82:50:1A pub
  1762.  
  1763. which will permanently "publish" an arp entry for your home machine.
  1764. >From now on, other machines on the LAN will think that your home
  1765. machine is right on the ethernet (or token ring) itself, although your
  1766. office machine will actually be routing packets through the serial
  1767. link to the home machine.
  1768.  
  1769. Note that if you are on a token ring, you need to use a bitwise
  1770. reversed address (shown in the LANTRAN.LOG file as the token ring
  1771. format on the same line as the adapter node address).
  1772.  
  1773. I think that's about it.  Like I said - it's more complicated to
  1774. explain than it really is.  I hope this helps more than it confuses.
  1775. I'd suggest also trying to find a local support person at your site
  1776. that may be able to help out with the routing issues.  Or, if you have
  1777. some sort of central SLIP server facility, it will probably be easier
  1778. to make use of that, as the routing issues will most likely have
  1779. already been addressed for that server.
  1780.  
  1781. -- David
  1782.  
  1783. /-----------------------------------------------------------------------\
  1784.  \              David Bolen             \  Internet: db3l@ans.net      /
  1785.   |   Advanced Network & Services, Inc.   \   Phone: (914) 789-5327   |
  1786.  / 100 Clearbrook Road, Elmsford, NY 10523  \   Fax: (914) 789-5310    \
  1787. \-----------------------------------------------------------------------/
  1788.  
  1789. >From db3l@ans.net Tue Feb 16 18:37:53 1993
  1790. To: dabl2@nlm.nih.gov (Don A.B. Lindbergh)
  1791. Subject: Re: TCP/IP, SLIP, Beat 2.1 Setup Questions (LONG)
  1792.  
  1793. Don,
  1794.  
  1795. >                                        I had no idea that the slip
  1796. > connection ip addresses should have a different subnet than the 'real'
  1797. > lan ip addresses.
  1798.  
  1799. Yeah - the problem is that while you can get it partially working
  1800. without using a different subnet, you really need the separate subnet
  1801. for proper operation (barring proxy arp solutions).  The reasons for
  1802. this are rooted in the fundamentals of how IP routing is handled,
  1803. which can be daunting topic for those new to IP networking (or even
  1804. old hands :-)).  Couple this with the fact that most IP office users
  1805. don't necessarily know the subnetting and routing scheme in place at
  1806. their site, and it becomes even more fun.
  1807.  
  1808. (At the risk of repeating info from my previous message)
  1809.  
  1810. I think it starts to become more understandable - and explainable - if
  1811. you make believe you are a machine on your LAN.  Let's say I'm on your
  1812. LAN as address 138.68.31.50.  My machine has a routing table telling
  1813. me where to send packets for particular destinations, as:
  1814.  
  1815.    destination 134.68.31.0 gateway 134.68.31.50
  1816.         (anything on 134.68.31 goes out onto my local LAN
  1817.          via my LAN interface, and gets my LAN address on it
  1818.          as the source address)
  1819.    destination default gateway 134.68.31.103
  1820.         (anything else goes to the specified gateway.  To reach
  1821.          that gateway, I use my previous route to reach the LAN)
  1822.  
  1823. Now I'm in good shape - I know how to reach machines on the LAN, and
  1824. those off your LAN.  Now say that friendly Don - you - down the hall
  1825. (with his machine 134.68.31.25) add a SLIP link, and gives your home
  1826. machine address 134.68.31.26.  You sets things up so that if you type
  1827. "ping 134.68.31.50" from home, the packets reach my machine in the
  1828. office.  So far so good - the problem is where do I send the answer?
  1829. I need to reach 134.68.31.26, which according to my routing table is
  1830. right on my LAN.  I therefore try to send it right over the LAN, but
  1831. there's no machine there with that address.
  1832.  
  1833. Now I personally can fix that problem by adding a specific (static)
  1834. route to my machine that says:
  1835.         destination 134.68.31.26 gateway 134.68.31.25
  1836. which says that if I need to reach the specific machine 31.26, I send
  1837. it to your office machine.  Anything else in 134.68.31 follows the old
  1838. rule and goes directly to the LAN.  Now I can communicate with
  1839. everyone including your home machine.  Of course, this solution
  1840. doesn't scale well, and it doesn't help you from home since you have
  1841. to get everyone else (or at least the default gateway) to add the
  1842. route.  Thus the rest of my previous note :-)
  1843.  
  1844. >                                   He says getting something like a
  1845. > static route added to our subnet requires calling someone else, which
  1846. > is not a huge problem, but if we did this, hopefully we could add this
  1847. > slip subnet ONCE and that one addition would work for all our group
  1848. > who want to use slip.  I would like to try your suggestions about
  1849. > permanently publishing an arp entry first I think.....
  1850.  
  1851. Having a dedicated SLIP subnet and a primary SLIP router is in fact
  1852. the way many sites (including ours) handles the issue.  For single
  1853. SLIP connections into individual office machines a proxy arp solution
  1854. may be the simplest and most effective - although it does require
  1855. manual configuration - and you still have to get yourself allocated an
  1856. extra address in the LAN subnet.
  1857.  
  1858. > Some further comments and questions....
  1859.  
  1860. Ok.
  1861.  
  1862. > I know, I questioned the wisdom of publicly posting all my ip
  1863. > addresses, on the other hand, who really cares and what if they did
  1864. > right?  I've at least got password entry's for telnet and ftp....
  1865.  
  1866. Actually, that's a pretty prudent idea, and not so strange, especially
  1867. when posting to such a large list.  I don't have much of a problem
  1868. myself as the addresses I've used are protected by a security
  1869. firewall, so external hosts can't reach those subnets of 147.225 anyway.
  1870.  
  1871. Since your address is in fact exposed to the outside world, it's not
  1872. unreasonable to avoid publishing it in such a wide forum.
  1873.  
  1874. > I tried this briefly last night, but apparently it's a whole other
  1875. > lesson to get this damned thing to work.  I don't really understand
  1876. > *who* these manuals are written for.....
  1877.  
  1878. You'd be surprised - the IBM stuff really isn't all that bad when you
  1879. see what else is out there.  Of course, routing daemons are in fact
  1880. another whole world of information, of which ROUTED is one of the
  1881. simplest daemons.  I could start another whole book on handling
  1882. routing daemon issues, but since it's unlikely your entire LAN will
  1883. start listening to RIP broadcasts, I think I'd just bypass this option
  1884. for now.  Even if you do run ROUTED and config everything right, it
  1885. only fixes things for people who are also listening for the
  1886. information that you are then broadcasting.
  1887.  
  1888. > As per my comments earlier, is this something we can do once and will
  1889. > then work for a number of people? ie if we pick subnet 41 for slip,
  1890. > then programmers using slip will be
  1891. > 134.68.41.1
  1892. >          .2 
  1893. >          .3 etc?
  1894.  
  1895. It depends on how you are servicing the SLIP connections.  As long as
  1896. there is a single host that is responsible for all of the SLIP users,
  1897. then yes - this will work fine.  For example, here at ANS, we use
  1898. subnet 2 for SLIP - all SLIP users get 147.225.2.x addresses.  Our
  1899. primary machines have a static route for 147.225.2.0 into our Annex
  1900. terminal server (that handles the SLIP users) at 147.225.10.40.
  1901.  
  1902. If however, each user is going to handle his or her own SLIP
  1903. connection into an office machine, it gets a little tricker.  Given
  1904. that changing a centrally administered host is probably harder, what I
  1905. would suggest is telling those responsible for the site router to send
  1906. all SLIP (134.68.41.x) traffic to one particular host - pick someone's
  1907. office machine, or some central machine that you manage.  Then, as
  1908. individual programmers set up SLIP links to a new machine, add a
  1909. static route to the machine you manage for that SLIP link.  Then,
  1910. traffic from LAN or external hosts heading for SLIP home users will
  1911. first go to the central machine you manage, which will then forward it
  1912. on to the appropriate office machine handling the link.  This will
  1913. represent an additional hop, but for the amount of traffic generated
  1914. by SLIP it won't be much.
  1915.  
  1916. Also depending on the central machine of yours, it can send a redirect
  1917. message to the site router, telling it the real machine to send the
  1918. SLIP traffic to.  So it can "learn" to avoid the extra hop.  I'm
  1919. pretty sure that OS/2 (and most Unix platforms) send a redirect by
  1920. default, but don't hold me to that.
  1921.  
  1922. > Ah, here's where it gets fun, this would be a good hack......
  1923. > I'll try this and let you know.  By the way, I keep hearing about your
  1924. > super nifty alternate slip drivers, should I try those?  Dave are you
  1925. > holdin' out on me?  :)  One guy said I could find them at ftp.ans.net
  1926.  
  1927. Well, yes, I do have "super nifty alternate slip drivers" :-) I wasn't
  1928. really holding out on you - getting my drivers wouldn't have solved
  1929. your problem as it was routing and addressing related.  Also, my
  1930. driver is technically alpha code so I don't generally recommend it to
  1931. just anyone yet.  Of course, it's alpha mostly because I'm too
  1932. backlogged to do the final cleanup and call it beta, so it's actually
  1933. quite stable at this point.
  1934.  
  1935. If you're interested - you can anonymously ftp the driver from
  1936. ftp.ans.net in the file /pub/misc/slip20a3.zoo.  This has the driver,
  1937. several utilities, and a readme that should get you up and running.
  1938. My driver both performs better than the standard IBM driver (better
  1939. performance while using less CPU) as well as including support for
  1940. header compression and priority queueing.  This yields better
  1941. interactive performance over a SLIP link.
  1942.  
  1943. The driver does require OS/2 2.0, and TCP/IP 1.2.1 at least at CSD
  1944. level 2252.  (You can always get the latest CSD from ftp-os2 if you
  1945. have an earlier version of TCP/IP - check SYSLEVEL)
  1946.  
  1947. =====================================
  1948. the below is today's first installment from a gent attempting to help me put
  1949. the final piece in place.... ROUTED
  1950. ======================================
  1951.  
  1952. >From jardined@qucis.queensu.ca Wed Feb 17 13:12:00 1993
  1953. To: dabl2@nlm.nih.gov
  1954. Subject: Re: TCP/IP, SLIP, Beat 2.1 Setup Questions (LONG)
  1955.  
  1956. I was going to suggest Bolen's stuff.  He is _most_ knowledgeable.
  1957.  
  1958. The secret appears to be as follows:
  1959.  
  1960. The ifconfig statement _must_ have your home ip address and the office
  1961. (slip) machine ip address.  Use a netmask of 255.255.255.0 make sure
  1962. you set the mtu in ifconfig (and in slip.cfg if you use Bolen's
  1963. driver).
  1964.  
  1965. Now: in order to get at any other machine on your office net, you must
  1966. tell your home machine where on the office LAN is the nameserver.  You
  1967. use the OS2 ROUTE command to do this.  What you do in it is to a) clear
  1968. the previous entiries (-fh flag), then b) set up as 'default' the ip
  1969. address of the name server on your office LAN  This means that when at
  1970. the OS2 end you mention a machine on your office lan athat is other
  1971. than the machine to which you are directly connected via slip, the
  1972. request will be routed by your office PC to that name server, which
  1973. will do the address resolution.  The test for connection is to use the
  1974. 'ping' command at your home end.
  1975.  
  1976. If you default route to the nameserver, you should be able to ping any
  1977. machine on the internet.  I tested it by pinging local machines here,
  1978. and then finally hobbes.  It replied!
  1979.  
  1980. I'm at the office so I don;t have access to my rexx scripts.  If you
  1981. are still having problemsa, I'll send them to you.
  1982.  
  1983. I agree the manuals are ghastly.  Luckily I have a bunch of Unix TCPIP
  1984. experts here to help me, (we have 4 dept. lans with about 100 Sun
  1985. workstations, 4 file servers, 3 compute servers etc. etc. here)  but
  1986. even they took a while to figure it out.  I asked, but there is no good
  1987. book on TCPIP or X11.  You learn it by recursively reading assorted
  1988. ill-written documents, and asking someone who knows. I've been around
  1989. long enough to have used IBM manuals back in the '50s and '60s, so I'm
  1990. resigned to this situation :-)
  1991.  
  1992. Prof. Donald Jardine, Software Technology Laboratory, Comp. Sci. Dept.,
  1993. Queen's Univ. Kingston Ont. Ph (613) 545 6070 Fax (613) 545 6513
  1994.  
  1995.