home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / answers / linux / howto / networking < prev    next >
Internet Message Format  |  1993-12-15  |  67KB

  1. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!gatech!concert!samba.oit.unc.edu!sunSITE!mdw
  2. From: terryd@extro.ucc.su.oz.au (Terry Dawson)
  3. Newsgroups: comp.os.linux.announce,comp.os.linux.help,comp.os.linux.admin,news.answers,comp.answers
  4. Subject: Linux NET-2 HOWTO
  5. Followup-To: poster
  6. Date: 15 Dec 1993 22:08:56 GMT
  7. Organization: The University of North Carolina at Chapel Hill
  8. Lines: 1536
  9. Approved: linux-announce@tc.cornell.edu (Matt Welsh)
  10. Message-ID: <2eo1to$651@samba.oit.unc.edu>
  11. NNTP-Posting-Host: calypso.oit.unc.edu
  12. Summary: HOWTO on configuration of TCP/IP networking and SLIP under Linux.
  13. Keywords: Linux, Networking, TCP/IP, NET-2, SLIP
  14. Originator: mdw@sunSITE
  15. Xref: senator-bedfellow.mit.edu comp.os.linux.announce:1569 comp.os.linux.help:13115 comp.os.linux.admin:2502 news.answers:15868 comp.answers:3044
  16.  
  17. Archive-name: Linux/HOWTO/NET-2-HOWTO
  18. Last-modified: 05 Dec 93
  19.  
  20.     This is the Linux NET-2 HOWTO (previously known as the NET-2-FAQ).     
  21.     This document explains how to configure TCP/IP and SLIP with the new 
  22.     ``NET-2'' networking code in Linux kernels 0.99.pl13 and above. 
  23.     Please mail me if you have questions or comments. --terryd
  24.  
  25. This is the Linux NET-2 HOWTO v1.9, 05 December 1993
  26. By Terry Dawson <terryd@extro.ucc.su.oz.au> and 
  27.    Matt Welsh <mdw@sunsite.unc.edu> 
  28.  
  29. CHANGES from previous version:
  30.     correction to broadcast address calculation, thanks Andr'as Salamon
  31.     tcp/ip tutorials added thanks to Gilbert Callaghan
  32.     These annotations at the suggestion of Andy Burgess
  33.     Shadow password section updated - thanks Rick Sladkey
  34.     added Slip Server section - thanks Fred
  35.     added /etc/net/diphosts section - thanks Fred
  36.     enhanced the netmask description a little
  37.     Revamped for 0.99.14
  38.     Added Index
  39.  
  40.  
  41. *** FTP site maintainers: This document should be stored in the docs/HOWTO
  42. *** directory on your Linux archive as ``NET-2-HOWTO''. You may also wish
  43. *** to link this file to ``NET-2-FAQ'' (its previous name). This document
  44. *** also supercedes the old Linux NET-FAQ.
  45.  
  46. "Real Programmers don't write documentation." --Ancient Proverb
  47.  
  48. INDEX for this version
  49.  
  50.     To search for a particular section, search for '^N.S' where
  51.     N is the section, and S is the Subsection.
  52.  
  53.     0.    Introduction
  54.     0.1    Disclaimer
  55.     0.2    Questions already?
  56.     0.3    Related documentation
  57.     0.4    New versions of this document
  58.     0.5    Feedback
  59.     1.    NET-2 Supported Functionality
  60.     1.1    Supported Ethernet cards
  61.     2.    Getting the NET-2 Software
  62.     2.1    Unpacking the software
  63.     2.2    Putting things in the right place
  64.     2.3    Creating the device interfaces
  65.     3.    Building the Kernel 
  66.     3.1    Configuring the NET-2 kernel code
  67.     3.2    Building the kernel
  68.     4.    Configuring NET-2 TCP/IP
  69.     4.1    Before you begin
  70.     4.2    /etc/rc.d/rc.inet1 and /etc/rc.d/rc.inet2
  71.     4.2.1    Editing rc.inet1
  72.     4.2.2    Editing rc.inet2
  73.     4.2.2.1    "To named or not to named... that is the question."
  74.     4.3    /etc/hosts
  75.     4.3.1    Important note
  76.     4.4    /etc/networks
  77.     4.5    /etc/host.conf
  78.     4.6    /etc/resolv.conf
  79.     4.7    /etc/HOSTNAME
  80.     4.8    /etc/rc.local
  81.     4.9    Other files
  82.     5.    Configuring SLIP
  83.     5.1    Static SLIP server connections
  84.     5.2    Dynamic SLIP server connections
  85.     5.3    Using DIP
  86.     5.4    Configuring your Linux Machine as a SLIP Server
  87.     5.5    /etc/net/diphosts
  88.     5.6    Configuring Plip interfaces
  89.     5.6.1    PLIP Cabling Diagram
  90.     6.    Are You Stuck?
  91.     7.    Common Problems and Solutions
  92.     8.    Known bugs 
  93.     9.    Miscellaneous
  94.  
  95.  
  96. ------------------------------------------------------------------------------
  97. 0.    Introduction
  98.  
  99.     This is the NET-2 HOWTO, which is a rewrite of the earlier NET-FAQ for
  100.     the new NET-2 TCP/IP code in Linux kernels 0.99.pl10 and above. 
  101.  
  102.     The NET-2 code is the new kernel-based networking support for Linux,
  103.     written by Fred van Kempen <waltje@uwalt.nl.mugnet.org>. It is based 
  104.     on the NET-1 code by Ross Biro <bir7@leland.stanford.edu>, device 
  105.     drivers by Donald Becker <becker@super.org>, SLIP drivers by 
  106.     Laurence Culhane <loz@holmes.demon.co.uk>, and the D-Link driver by
  107.     Bj0rn Ekwall <bj0rn@blox.se>. The NET-2debugged code is maintained
  108.     by Alan Cox <iiitac@pyr.swan.ac.uk>. Many others too numerous to
  109.     mention have provided support, bug fixes, and help. 
  110.  
  111.     This NET-2 HOWTO is by Terry Dawson and Matt Welsh. It covers setup 
  112.     and configuration of TCP/IP under Linux using NET-2. It also hopefully 
  113.     answers some of the many questions about the NET-2 code and common
  114.     problems that people have. It does not cover using TCP/IP (i.e.
  115.     using telnet, FTP, etc.) I'd like to keep this document as short as
  116.     possible... :)
  117.  
  118. 0.1    Disclaimer
  119.  
  120.     The NET-2 code is under development, which means that it may 
  121.     not be as stable and easy to configure as you may like it to be.
  122.     code is relatively new and bug fixes are being posted every day, so if 
  123.     you run into a large number of problems just hang in there. The 
  124.     software is in two stages of development at the moment. The version
  125.     supplied in the standard kernel distribution is version NET-2D
  126.     and is being progressively debugged and made more stable by
  127.     Alan, until NET-2E, which is currently undergoing Beta testing,
  128.     is ready for general release.
  129.  
  130.     NOTE: In this document, `NET-2' does not refer to the Berkeley
  131.     Software Distribution NET-2 release of BSD UNIX. Yes, the names
  132.     are conflicting. In this HOWTO, `NET-2' refers only to the new
  133.     generation of TCP/IP code in the Linux kernel.
  134.  
  135. 0.2    Questions already?
  136.  
  137.     If you have general configuration questions, and you have been unable
  138.     to find the answers after reading the other various HOWTO and FAQ
  139.     files,    then you would be best served to post them comp.os.linux.help,
  140.     or, if you believe it to be specifically related the NET-2 kernel
  141.     code, then you could post it to the NET mailing list. Please include
  142.     as much relevant information as possible, there is nothing more
  143.     annoying than to have a bug or problem reported without sufficient
  144.     information to even begin searching for it.
  145.  
  146.     Version numbers and revisons of code, a detailed account of the
  147.     problem, and the circumstances that caused it to happen are essential.
  148.     Traces and debug messages where available should also be considered
  149.     mandatory.
  150.  
  151.     If you have a question relating to the configuration of, or problems
  152.     experienced with, _any_ linux distribution, regardless of
  153.     whether it be SLS, Slackware, Yggadsril, TAMU, MCC, Pro, or other,
  154.     please contact the people who created the distribution for support
  155.     before attempting to report it to the list, or the NET-2 developers
  156.     directly. The developers of the NET-2 code _cannot_ and _will not_
  157.     offer support for NET-2 as distributed in any form, other than as
  158.     specified in this document, or as per distributed Alpha test
  159.     instructions.
  160.  
  161.     Please do NOT bug the NET-2 developers directly unless you have a
  162.     _development_-related issue (especially Fred: he has to pay $$$ for
  163.     his e-mail access).
  164.  
  165.         To join the NET channel of the Linux-activists mailing list
  166.         send mail to
  167.                 linux-activists-request@niksula.hut.fi
  168.         with the line
  169.                 X-Mn-Admin: join NET
  170.         at the top of the message body (not the subject).
  171.  
  172.     Note that the SLIP channel of the mailing list has been disabled and
  173.     the NET channel should be used for SLIP discussions as well.
  174.     Remember, keep in mind that the NET channel is for development
  175.     discussions only.
  176.  
  177.  
  178. 0.3    Related documentation
  179.  
  180.     There is now a book from the Linux Documentation Project entitled
  181.     `Linux Network Administration Guide' by Olaf Kirch. It covers all
  182.     aspects of setting up and using networking under Linux, including
  183.     TCP/IP, UUCP, mail, news, etc.
  184.  
  185.     This book supplements the NET-2 HOWTO  and covers all of the
  186.     other aspects of using TCP/IP. This guide simply covers setup of 
  187.     NET-2, i.e., "How to put your machine on the net."
  188.  
  189.     You should read the Ethernet HOWTO (from sunsite.unc.edu:
  190.     /pub/Linux/docs/HOWTO) if you are using an Ethernet network
  191.     with NET-2. The Ethernet HOWTO explains all of the ins and outs
  192.     of using and configuring Ethenet devices for Linux.
  193.  
  194.     This NET-2 HOWTO supercedes the earlier ``Linux NET-FAQ'' by Phil
  195.     Copeland and Matt Welsh. The NET-FAQ is for Linux kernels previous
  196.     to 0.99.pl10, running the older version of the TCP/IP code.
  197.  
  198.     This document used to be called the NET-2-FAQ, before the Linux HOWTO
  199.     project was underway. Thus, the NET-2-FAQ and the NET-2 HOWTO are
  200.     the same.
  201.  
  202. 0.4    New versions of this document
  203.  
  204.     New versions of this document can be retrieved via anonymous
  205.     FTP from sunsite.unc.edu:/pub/Linux/docs or directly from me
  206.     (terryd@extro.ucc.su.oz.au). It will also be posted to the newsgroups 
  207.     comp.os.linux.announce, comp.os.linux.help, and news.answers. 
  208.  
  209.     You can find news.answers FAQ postings, including this one, archived
  210.     on rtfm.mit.edu:/pub/usenet.
  211.  
  212. 0.5    Feedback
  213.  
  214.     Please send any comments, updates, or suggestions to me,
  215.     terryd@extro.ucc.su.oz.au. The sooner I get feedback about this
  216.     document, the sooner I can update and correct it. If you find any
  217.     problems with it, please mail me, instead of posting to one of the
  218.     newsgroups. I may miss your corrections. Thanks.
  219.  
  220.     Please send any money to either Fred, Linus, or the Free Software
  221.     Foundation. They have made this happen.
  222.  
  223.  
  224. 1.    NET-2 Supported Functionality
  225.  
  226.     The NET-2 code is a complete kernel implementation of TCP/IP for
  227.     Linux, including many features not found in the original networking
  228.     code. NET-2 supports many popular Ethernet cards, real IP routing,
  229.     SLIP (Serial Line IP) for TCP/IP connections over a serial line, such
  230.     as  the phone line via modem, and PLIP (Parallal Line IP) for local
  231.     connection of two machines using your printer ports. 
  232.  
  233. 1.1    Supported Ethernet cards
  234.  
  235.     NET-2 supports the following Ethernet cards:
  236.  
  237.     3com 3c503, 3c503/16
  238.     Novell NE1000, NE2000
  239.     Western Digital WD8003, WD8013
  240.     Hewlett Packard HP27245, HP27247, HP27250 (these drivers could
  241.       do with more testing)
  242.  
  243.     The following clones are reported to work:
  244.     WD-80x3 clones: LANNET LEC-45
  245.     NE2000 clones: Alta Combo, Artisoft LANtastic AE-2, Asante Etherpak
  246.       2001/2003, D-Link Ethernet II, LTC E-NET/16 P/N 8300-200-002,
  247.       Network Solutions HE-203, SVEC 4 Dimension Ethernet, 4-Dimension
  248.       FD0490 EtherBoard 16, D-Link DE-600, SMC Elite 16.
  249.  
  250.     Please see the Ethernet HOWTO for more complete information.
  251.  
  252.     As mentioned above NET-2 also supports SLIP in the kernel. Therefore
  253.     if you don't have an Ethernet connection you can do TCP/IP over the
  254.     phone line, provided you have a SLIP server nearby (many universities
  255.     and businesses provide SLIP access to employees/students) and a
  256.     compatible modem (usually 14.4 v.42bis, depending on your SLIP server).
  257.     Two possible modems are the US Robotics Sportster, or the Infotel
  258.     144DF Internal. 
  259.  
  260.  
  261. 2.    Getting the NET-2 Software
  262.  
  263.     Before you can configure TCP/IP on your system you need to get the
  264.     appropriate software. This includes the current version of the Linux
  265.     kernel (0.99.pl14 or above), TCP/IP configuration programs and files
  266.     (e.g., /etc/ifconfig, /etc/hosts), and finally a set of network
  267.     application programs (such as telnet, ftp, rlogin, etc.). 
  268.  
  269.     You may already have all of the items below. Check and make
  270.     sure that you do. For example, some distributions come with all
  271.     of the NET-2 configuration files, binaries, libraries, and kernel
  272.     installed, so there's no reason to get the following files.
  273.     Note: they may not be in the places specified in this HOWTO.
  274.  
  275.     If you DO have the NET-2 software already, skip to section 3 on
  276.     configuration. If you do NOT have the NET-2 software, follow the
  277.     directions below.
  278.  
  279.  
  280.     The current kernel version is found in
  281.     nic.funet.fi:/pub/OS/Linux/PEOPLE/Linus/linux-0.99.14.tar.gz. 
  282.     This is a gzipped tar file; .gz is the new extension used by gzip.
  283.     If you have the old version of gzip, "zcat foo.gz | tar xvf -" works.
  284.  
  285.     The current libraries (libc-4.4.4), can be found in 
  286.     sunsite.unc.edu:/pub/Linux/GCC/image-4.4.4.tar.z. (You'll probably 
  287.     want to install the include files in inc-4.4.4.tar.z as well! See the 
  288.     READMEs there for details.) You'll need at least ver 4.4.2 to use
  289.     NET-2, as there were problems with earlier versions that affected
  290.     routing and netmasks.
  291.  
  292.     The current NET-2 configuration file distribution is in
  293.     tsx-11.mit.edu:/pub/linux/packages/net/net-2/sources/net/net-010.tar.z.
  294.     This package includes network configuraiton programs such as
  295.     ifconfig, route, netstat etc.
  296.  
  297.     The TCP/IP application binaries and setup files are found in
  298.     tsx-11.mit.edu:/pub/linux/packages/net/net-2/binaries. 
  299.     Get the three files in this directory: net-base.tar.z, net-std.tar.z, 
  300.     and net-ext.tar.z. As some of the internals of the networking code
  301.     have changed, you will also need to get and install the files that
  302.     are in the tsx-11.mit.edu:/pub/linux/packages/net/new-net-2 directory,
  303.     as they correct some problems you will experience if you opt _not_
  304.     get and install them :)
  305.  
  306.     If you use shadowed password (Most SLS users do), then you may find
  307.     that the standard network programs do not support them. There used
  308.     to be a specially modified package of binaries about, but these were
  309.     intended as a short term fix, and have been removed. Recent work on
  310.     the standard libraries will mean that as of version 4.5.x of libc,
  311.     the shadow password handling will no longer need to be in the
  312.     application, and will be handled externally. I have been assured that
  313.     4.5.x is due for release shortly.
  314.  
  315. 2.1    Unpacking the software
  316.  
  317.     You don't need to unpack any of the following if you already have all
  318.     of the NET-2 software installed.
  319.     
  320.     First, unpack the kernel sources in /usr/src. This will put all
  321.     of the kernel sources under /usr/src/linux (the usual place).
  322.         # cd /usr/src
  323.         # zcat linux-0.99.14.tar.z | tar xvf -
  324.  
  325.     Next, unpack the libraries. 
  326.     (The following is a summary, please read the detailed instructions
  327.     that come with the libraries for complete installation details)
  328.         # cd /
  329.         # zcat image-4.4.4.tar.z | tar xvf -
  330.     Now, make the links to the new libraries in /lib. BE VERY CAREFUL
  331.     that you do not delete the previous links. Do everything in
  332.     one step, as so:
  333.         # ln -sf /lib/libc.so.4.4.4 /lib/libc.so.4
  334.         # ln -sf /lib/libm.so.4.4.4 /lib/libm.so.4
  335.  
  336.     Next, unpack the net-base package, which contains the basic
  337.     utils and configuration files in /etc. Note that net-base makes
  338.     symlinks in /etc for all of your TCP/IP configuration files to /conf.
  339.  
  340.     Therefore, BE WARNED: Before you unpack the following tar files,
  341.     make a backup of your files in /etc. Unpacking net-base will overwrite
  342.     many of the files in /etc with symbolic links to other places.
  343.     For example, /etc/hosts is a symlink to /conf/net/hosts. Why is this
  344.     done? Because Fred's Linux/PRO distribution of Linux keeps all
  345.     machine-specific configuration files in /conf. And because this is
  346.     the way he does it, we may as well too. In general it makes things
  347.     easier to locate. If you want to keep all of your net files in 
  348.     /etc, that's fine, but you'll have to put them there by hand.
  349.  
  350.     Make a backup of everything in /etc before you unpack net-base. 
  351.     Then unpack it from / (the root directory):
  352.         # cd /
  353.         # zcat net-base.tar.z | tar xvvofp -
  354.  
  355.     Also, unpack net-std.tar.z, which contains the network clients and
  356.     daemons (e.g., telnet and telnetd). Unpack it from / as well:
  357.         # cd /
  358.         # zcat net-std.tar.z | tar xvvofp -
  359.  
  360.  
  361.     If you wish to use tin (a newsreader), or DIG (the DARPA Internet
  362.     Groper), unpack the net-ext package from /:
  363.         # cd /
  364.         # zcat net-ext.tar.z | tar xvvofp -
  365.  
  366.     Now unpack the fixed versions of rlogin/telnetd from the files:
  367.         # cd /tmp
  368.         # gzip -dc ftpd.tar.z | tar xvf -
  369.         # gzip -dc telnet-rlogin.tar.z | tar xvf -
  370.  
  371.         you will then need to copy the binaries to where the old
  372.         version currently live.
  373.         
  374.     Finally, unpack the net-010 package, which contains the sources
  375.     for the TCP/IP setup programs (ifconfig, arp, route, etc.) and the
  376.     configuration files. This is unpacked into /usr/src/net-010.
  377.         # mkdir /usr/src/net-010
  378.         # cd /usr/src/net-010
  379.         # zcat net-010.tar.z | tar xvvofp -
  380.  
  381.     ** Important information for Shadow Password users **
  382.     If you are using the SLS distribution, then replace any blank
  383.     passwords in /etc/passwd with :x: instead of ::.
  384.     Otherwise rshd/rlogind will let anyone become these user ids.
  385.         This is an SLS setup bug and will by default allow anyone remote
  386.     access to your machine, with root priveledges!
  387.  
  388. 2.2    Putting things in the right place
  389.  
  390.     With the standard NET-2 distribution, all of the configuration files
  391.     are in /conf/net, with links in /etc. For example, /etc/hosts
  392.     is a link to /conf/net/hosts. However, if you are using a 
  393.     standard pre-packaged distribution of Linux such as SLS, /conf/net
  394.     probably isn't used... that is, /etc/hosts is just /etc/hosts.
  395.     So, when I say "/conf/net/hosts", I mean "/etc/hosts", and vice
  396.     versa.
  397.  
  398.     Just keep in mind that the TCP/IP software only looks in /etc and
  399.     /usr/etc for configuration files. Therefore, it makes sense to
  400.     keep all of your files in /etc and /usr/etc as they should be.
  401.     HOWEVER, Fred has decided to put the files in /conf/net with LINKS
  402.     in /etc. Either way, it doesn't matter. When we say "/etc/hosts",
  403.     it doesn't matter if /etc/hosts is an actual file or a link to
  404.     /conf/net/hosts.
  405.  
  406.  
  407.     If you just unpacked NET-2 above (i.e. you don't already have the
  408.     files from installing SLS), then you don't have the configuration
  409.     files in /conf/net (you only have the symlinks in /etc). 
  410.     The easiest way to get the configuration files in /conf/net is
  411.     to copy them from the net-010 distribution:
  412.         # mkdir -p /conf/net
  413.         # chown -R root.root /conf; chmod -R 755 /conf
  414.         # cp /usr/src/net-010/etc/* /conf/net
  415.  
  416.     You should make sure that all of the symlinks to /conf/net in /etc
  417.     can be resolved (that is, try to "more" or "cat" each file, make
  418.     sure you don't get any errors). Also note that some files will
  419.     be duplicated: for example, /etc/inetd.conf is a symlink to 
  420.     /usr/etc/inetd.conf. However, from the cp command above you also
  421.     have a /conf/net/inetd.conf, which can be deleted (remember that
  422.     all of the programs still look in /etc, not /conf. So whatever is
  423.     in /etc is the file which is actually being used).
  424.  
  425.  
  426. 2.3    Creating the device interfaces
  427.  
  428.     In previous version it was necessary to create a number of
  429.     device files for the NET-2 code. This is no longer the case.
  430.  
  431.     If you have any of the following files created you should delete
  432.     them:
  433.  
  434.     rm /dev/net /dev/arp /dev/unix /dev/inet
  435.     rm /dev/ip /dev/icmp /dev/tcp /dev/udp
  436.     rm /dev/wd0 /dev/wd1 /dev/wd2 /dev/wd3
  437.     rm /dev/ec0 /dev/ec1 /dev/ec2 /dev/ec3
  438.     rm /dev/ne0 /dev/ne1 /dev/ne2 /dev/ne3
  439.  
  440.     should clean them all.
  441.  
  442. 3.    Building the Kernel 
  443.     
  444.     You're now ready to build the new 0.99.pl14 kernel with the NET-2
  445.     code enabled. 
  446.  
  447. 3.1    Configuring the NET-2 kernel code
  448.  
  449.         A 'make config' will take you through configuring the kernel
  450.         Select the drivers you desire by answering 'yes' when prompted.
  451.  
  452.     Note, you will be prompted for "Network Device Support?", but
  453.     the label after it might suggest that this is for Ethernet only,
  454.     this is not the case, and you must answer 'yes' to this, even if
  455.     you only desire the slip or plip drivers to be configured.
  456.     You will be asked later about each of the ethernet drivers,
  457.     slip and plip in turn.
  458.  
  459.     The Ethernet HOWTO also contains much useful information for
  460.     configuring Ethernet devices in the kernel.
  461.  
  462. 3.2    Building the kernel
  463.  
  464.     You can now build the kernel as you normally would (see the file
  465.     /usr/src/linux/README if you've never done this before). Essentially
  466.     this entails editing /usr/src/linux/Makefile to set root device and
  467.     default display mode. (*Note: keyboard is now handled by loadable
  468.     keymaps as of 0.99.pl10; grab the file keytable.tar.z from your 
  469.     nearest Linux ftp site). 
  470.  
  471.         Finally do 'make dep' and 'make'. You now have a new 0.99.14 kernel
  472.         with NET-2 set up. I wouldn't reboot it quite yet as we still have
  473.         to configure the NET-2 programs before it will work correctly.
  474.  
  475. 4.    Configuring NET-2 TCP/IP
  476.  
  477.     The final step is to modify the various setup files to get NET-2
  478.     working. After this is ready you can boot your new kernel and 
  479.     go happily netting (if all goes well).
  480.  
  481.     In this section I'll describe each of the major TCP/IP setup files,
  482.     what they do, and what you need to do to configure them. 
  483.  
  484.     If you're using SLIP, see section 5.0 on configuring SLIP. The
  485.     discussion below is for Ethernet connections only. SLIP users
  486.     should FIRST read all of section 4.0 and then apply the changes
  487.     discussed in section 5.0.
  488.  
  489. 4.1    Before you begin
  490.     Before you can configure NET-2 TCP/IP, you need to find out
  491.     the following information about your network setup. Your network
  492.     admins can tell you most of these things.
  493.     
  494.     * IP address: this is the unique machine address in dotted-decimal
  495.       format. An example is 128.253.153.54. Your network admins will 
  496.       provide you with this number. 
  497.       
  498.       If you're only configuring loopback mode (i.e. no SLIP, no ethernet 
  499.       card, just TCP/IP connections to your own machine---called 
  500.       "loopback") then your IP address is 127.0.0.1.
  501.  
  502.     * Your network mask ('netmask'). For performance reasons, it is
  503.       desirable to limit the number of hosts on any particular segment
  504.       of a network. If you have a large number of addresses allocated
  505.       to you, you might break those addresses up into large chunks,
  506.       and create subnetworks, and then allow each individual network
  507.       segment be a subnetwork of the whole network. The network mask
  508.       is a pattern of bits, which when overlayed onto an address on your
  509.       network, will tell you which subnet that address lives on. This is
  510.       very important for routing, and if you find, for example, that you
  511.       can happily talk to people outside your network, but not to some
  512.       people within your network, there is a good chance that you have
  513.       an incorrect mask specified.
  514.  
  515.       Your network administrators will have chosen the netmask when the
  516.       network was designed, and therefore they should be able to supply
  517.       you with the correct mask to use. Most networks are class C
  518.       subnetworks which use 255.255.255.0 as their netmask. Other Class B
  519.       networks use 255.255.0.0. The NET-2 code will automatically select
  520.       a mask that assumes no subnetting as a default if you do not specify
  521.       a mask.
  522.  
  523.       The masks chosen by default are as follows:
  524.  
  525.       For addresses with the first byte:
  526.       1-127        255.0.0.0        (Class A)
  527.       128-191    255.255.0.0        (Class B)
  528.       192+        255.255.255.0        (Class C+)
  529.  
  530.       If one of these doesn't work, try the other. If this
  531.       doesn't work, ask your local net guru for help.
  532.  
  533.       This applies equally well to the loopback port. Since the
  534.       loopback ports address is always 127.0.0.1, the netmask for
  535.       this port is always 255.0.0.0. You can either specify this
  536.       explicitly or rely on the default mask.
  537.  
  538.     * Your network address. This is your IP address masked with the netmask.
  539.       For example, if your netmask is 255.255.255.0, and your IP address
  540.       is 128.253.154.32, your network number (IP addr AND netmask) is 
  541.       128.253.154.0. With a netmask of 255.255.0.0, 
  542.       this would be 128.253.0.0. 
  543.  
  544.       If you're only using loopback, you don't have a net address.
  545.  
  546.     * Your broadcast address. This is your IP address masked with the
  547.       netmask, and then possibly ORed with the subnetmask inverted.
  548.       Such that for a Class C network, with netmask 255.255.255.0,
  549.       your broadcast address will be your network address (calculated
  550.       above) ORed with 0.0.0.255.
  551.  
  552.       For example:
  553.  
  554.       Your IP address is:            128.253.154.32
  555.       Your netmask is:            255.255.255.0
  556.       netmask inverted is:            000.000.000.255
  557.  
  558.       then:
  559.  
  560.       Your broadcast address should be:    128.253.154.255.
  561.  
  562.       Note that for historical reasons, some networks are setup to use
  563.       the network address as the broadcast address, if you have any doubt,
  564.       check with your net admin.
  565.  
  566.       If you have access to a sniffer, or some other device capable of
  567.       providing a trace of your network, then you might be able to
  568.       determine both the network and broadcast addresses by looking at the
  569.       traffic on your network. Keep an eye open (or filter all traffic
  570.       except) for ethernet frames destined for the ethernet broadcast
  571.       address: ff:ff:ff:ff:ff:ff, if it is an IP datagram, then look at
  572.       the destination ip address. If the IP source address is your router,
  573.       and the protocol ID is not ARP, then what you are seeing might be a
  574.       routing broadcast. The destination IP address in this case will be
  575.       the IP broadcast address of your network. You can then work out the
  576.       IP network address. But again, if in doubt then consult your network
  577.       admin, or check the configuration of a known working machine.
  578.  
  579.       If you're only using loopback, you don't have a broadcast address.
  580.  
  581.     * Your gateway address. This is the address of the machine which
  582.       is your "gateway" to the outside world (i.e. machines not on your
  583.       subnet). In general the gateway machine has an IP address identical
  584.       to yours but with a ".1" in the last position; e.g. if your IP
  585.       address is 128.253.154.32, your gateway might be 128.253.154.1.
  586.       Your network admins will provide you with the IP address of your
  587.       gateway.
  588.  
  589.       If you're only using loopback, you don't have a gateway address.
  590.       If your network is not connected to the Internet, that is, it
  591.       is a standalone network, then you don't have a gateway, and
  592.       therefore don't need a gateway address.
  593.     
  594.     * Your nameserver address. Most machines on the net have a name
  595.       server which translates hostnames into IP addresses for them. 
  596.       Your network admins will tell you the address of your name server.
  597.       You can in fact run a nameserver on your own machine by running
  598.       named, in which case the nameserver address is 127.0.0.1. However,
  599.       But it is not required that you run named at all; see section
  600.       4.2.2.1.
  601.  
  602.       If you're only using loopback, you don't have a nameserver
  603.       address. (After all, you're only connecting to yourself.)
  604.     
  605.  
  606.     NET-2 supports full routing, multiple routes, subnetworking (at
  607.     this stage on byte boundaries only), the whole nine yards. The above
  608.     describes most basic TCP/IP configurations. Yours may be quite
  609.     different: when in doubt, consult your local network gurus and check
  610.     out the man pages for "route" and "ifconfig" included with the net-010
  611.     package. Configuring TCP/IP networks is very much beyond the scope of
  612.     this document; the above should be enough to get most people started.
  613.  
  614.  
  615. 4.2    /etc/rc.d/rc.inet1 and /etc/rc.d/rc.inet2
  616.  
  617.     For the non-UNIX wizard: "rc" files are run at bootup time by the
  618.     "init" program and start up all of the basic system programs, such
  619.     as sendmail, cron, etc. as well as the NET-2 daemons (such as inetd).
  620.     For NET-2 the rc files are found in /etc/rc.d. It doesn't really
  621.     matter where you keep them, as long as init can find them. (We'll
  622.     go into this later). 
  623.  
  624.     First things first. The file /etc/rc.d/rc.inet1 configures the basic
  625.     TCP/IP interface to your machine, using two programs: /etc/ifconfig
  626.     and /etc/route. These two programs tell the kernel how to route and
  627.     manage TCP/IP connections to your system, by setting things such as
  628.     the IP address, network mask, and so on.
  629.  
  630.     Note that in the previous NET-1 code, the "config" program was
  631.     used. However, the "standard" for UNIX system TCP/IP configuration
  632.     is to use ifconfig and route, and this has been implemented with NET-2.
  633.     
  634.     THEREFORE: Get rid of your old "rc.net" if you have one. You
  635.     should only run rc.inet1 and rc.inet2 at boot time. If you run your old
  636.     "rc.net" instead, you'll get error messages about "old-style ioctl"
  637.     and things probably won't work at all.
  638.  
  639.     NOTE: SLS uses "rc.net" instead of "rc.inet1" and "rc.inet2". Just
  640.     make sure that your "rc.net" uses "ifconfig" and "route" instead
  641.     of the old "config" program. In other words, be sure that your
  642.     rc.net is a new, NET-2 style rc.net. If it is not, get rid of it
  643.     and replace it with rc.inet1 and rc.inet2, as described below.
  644.     If you run SLS, the file "rc.net" contains the code for both rc.inet1 
  645.     and rc.inet2.
  646.  
  647.     Below you're going to edit rc.inet1 to use the correct ifconfig and
  648.     route commands for your machine. But first, you need to know the
  649.     information about your network setup in section 4.1, above.
  650.  
  651. 4.2.1    Editing rc.inet1
  652.  
  653.     Edit the file /etc/rc.d/rc.inet1. This file uses the "ifconfig" and
  654.     "route" commands to configure your network interface at boot time.
  655.     Remember that SLS uses just rc.net.
  656.  
  657.     You may need to do some heavy surgery on this file to get it to look
  658.     right; it may be easier to delete it and start from scratch. Given
  659.     the information above, a possible rc.inet1 should look like:
  660.  
  661.  
  662. #!/bin/sh
  663. # rc.inet1: configure the network interface
  664.  
  665. HOSTNAME=`hostname`
  666.  
  667. # Attach the loopback device. 
  668. /etc/ifconfig lo 127.0.0.1    # uses default netmask 255.0.0.0
  669. /etc/route add 127.0.0.0    # Network address for loopback network
  670.  
  671. # IF YOU HAVE AN ETHERNET CONNECTION, use these lines below to configure the 
  672. # eth0 interface. If you're only using loopback or SLIP, don't include the
  673. # rest of the lines in this file.
  674.  
  675. # Edit for your setup.
  676. IPADDR="128.253.154.32"        # REPLACE with YOUR IP address!
  677. NETMASK="255.255.255.0"        # REPLACE with YOUR netmask!
  678. NETWORK="128.253.154.0"        # REPLACE with YOUR network address!
  679.                 # Note: NETWORK MUST be in
  680.                 #       /etc/networks
  681. BROADCAST="128.253.154.255"    # REPLACE with YOUR broadcast address, if you
  682.                 # have one. If not, leave blank and edit below.
  683. GATEWAY="128.253.154.1"        # REPLACE with YOUR gateway address!
  684.  
  685. /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
  686. # If you don't have a broadcast address, change the above line to just:
  687. # /etc/ifconfig eth0 ${IPADDR} netmask ${NETMASK} 
  688.  
  689. /etc/route add ${NETWORK}            # MUST HAVE AN ENTRY IN
  690.                         # /etc/networks !!!
  691. /etc/route add default gw ${GATEWAY} metric 1    # Add this line only if your
  692.                         # network is not standalone
  693. # End of rc.inet1
  694.  
  695.  
  696.     This is a basic rc.inet1 to run the ifconfig and route commands
  697.     needed to set up a basic TCP/IP connection. Edit this for your setup.
  698.     To ensure that this will be run at boot time, make sure that you
  699.     include the command
  700.         /bin/sh /etc/rc.d/rc.inet1
  701.     in your /etc/rc, or in your /etc/inittab (if you're running the
  702.     sysvinit package). In general, make sure that rc.inet1 is run
  703.     BEFORE rc.inet2 at boot time. You may wish to run rc.inet1 and
  704.     rc.inet2 from /etc/rc or /etc/rc.local. Or you can run them from
  705.     /etc/inittab. Either way is fine, but don't run one without the other.
  706.  
  707.  
  708. 4.2.2    Editing rc.inet2
  709.  
  710.     The rc.inet2 script is also run at boot time, AFTER rc.inet1.
  711.     It starts up various TCP/IP daemons such as inetd, portmapper, 
  712.     and so on. Remember that SLS uses just rc.net.
  713.  
  714.     You will probably want to comment out most of this file, especially
  715.     if you're not planning on using NFS (Network File System). You 
  716.     MUST leave the stanza to run inetd and syslogd uncommented. Note
  717.     that if you DON'T uncomment everything but inetd and syslogd, 
  718.     you may run into network problems at first. The best bet is to 
  719.     comment all of these things out, get yourself on the network, and
  720.     then worry about configuring the rest of the clients in rc.inet2.
  721.  
  722.     If you're not going to be using NFS, you can comment out the lines
  723.     to run: ugidd, mountd, nfsd, pcnfsd, and bwnfsd.
  724.  
  725.     You can comment out the stanza to run "umail" unless you have that 
  726.     package. In general, most of the things found in rc.inet2 are "sold 
  727.     separately". I recommend starting only inetd and syslog at first
  728.     until you get everything going.
  729.  
  730. 4.2.2.1    "To named or not to named... that is the question."
  731.  
  732.     Named is the nameserver daemon that runs under TCP/IP. It allows
  733.     your machine to serve the name lookup requests of other machines...
  734.     that is, if a machine wants to find the IP address for 
  735.     "goober.norelco.com", and you have this machine's IP address in your
  736.     named database, then you can service the request and tell other
  737.     machines what goober's address is. 
  738.  
  739.     Under older implementations of Linux TCP/IP, to create aliases for
  740.     machine names (even for your own machine), you were required to run 
  741.     named on your Linux box to store name->IP address translations. The
  742.     problem with this is that named is generally difficult to setup and
  743.     maintain. To solve this problem, a program called "hostcvt.build"
  744.     was made available on Linux systems to translate your /etc/hosts file
  745.     (see section 4.3) into named database files. However, even with
  746.     this problem out of the way, running named on your system will cause
  747.     some amount of CPU load and network traffic. 
  748.  
  749.     The bottom line is this: You DO NOT need to run named on your 
  750.     Linux system. The SLS instructions will probably tell you to run
  751.     hostcvt.build to set up named. This is simply unnecessary, UNLESS
  752.     you want to make your Linux system a nameserver for some reason.
  753.     Now, instead of putting hostnames into the named database, you can
  754.     simply include them in the file /etc/hosts (section 4.3). When
  755.     looking up names, your Linux system will first look in /etc/hosts
  756.     and then ask the nameserver out on the net (if you have one).
  757.  
  758.     The only reason you may want to run named would be if:
  759.       a) You're setting up a network of machines, and need a nameserver
  760.          for one of them (and don't have a nameserver out on the net
  761.          elsewhere);
  762.       b) Your network admins want you to run your Linux system as a
  763.          nameserver for some reason; or,
  764.       c) You have a slow SLIP connection, and want to run a small
  765.          cache-only nameserver on your Linux machine so that you don't
  766.          have to go out on the phone line every time a name lookup
  767.          occurs. (If you are only going to lookup a small number of
  768.          machine names, and you know what they are, you can put their 
  769.          addresses in /etc/hosts instead.) Generally name lookup isn't
  770.          that slow, and should work fine over most SLIP connections.
  771.       d) You want to run a nameserver for fun and excitement.
  772.  
  773.     In general, you DO NOT need to run named: this means that you
  774.     can comment it out from rc.inet2, and you don't have to run
  775.     hostcvt.build. If you want to alias machines, for example you want
  776.     to refer to "loomer.vpizza.com" just as "loomer", you can add an
  777.     alias in /etc/hosts instead. There is no reason to run named unless
  778.     you truly want a full nameserver on your machine. If you already
  779.     have a nameserver (most machines on the Internet do, and your net
  780.     admins will tell you its address), don't bother running named.
  781.  
  782.     If you're only using loopback, you can run named and set your
  783.     nameserver address to 127.0.0.1, but that's pointless. (No pun
  784.     intended.) You don't need a nameserver at all if you use only
  785.     loopback; the only hostname you know is your own, and it's in
  786.     /etc/hosts (see section 4.3, below).
  787.  
  788. 4.3    /etc/hosts
  789.  
  790.     /etc/hosts contains a list of IP addresses and the hostnames they 
  791.     map to. In this way, you can refer to other machines on the network
  792.     by name, as well as by IP address. Using a nameserver (see section 4.1)
  793.     also allows you to do the name->IP address translation automatically.
  794.     (Running named allows you to run your own nameserver on your Linux
  795.     box. See section 4.2.2.1 above.)
  796.  
  797.     This file needs to contain at least an entry for 127.0.0.1 with 
  798.     the name "localhost". If you're not only using loopback, you need
  799.     to contain an antry for your IP address, with your full hostname
  800.     (such as loomer.vpizza.com).  You may also wish to include entries 
  801.     for your gateway and network addresses. 
  802.  
  803.     For example, if "loomer.vpizza.com" has the IP address 
  804.     "128.253.154.32", my /etc/hosts file would look like:
  805.  
  806.     # /etc/hosts: List of hostnames and IP addresses
  807.     127.0.0.1         localhost
  808.     128.253.154.32         loomer.vpizza.com loomer
  809.     # end of hosts
  810.  
  811.     Once again, edit this for your own needs. If you're only using 
  812.     loopback, the only line in /etc/hosts should be for 127.0.0.1, with
  813.     both "localhost" and your hostname after it.
  814.     
  815.     Note that in the second line, above, there are two names for 
  816.     128.253.154.32: "loomer.vpizza.com" and just "loomer". The first name 
  817.     is the full hostname of the machine. The second is an alias---it 
  818.     allows me to just use "rlogin loomer" without having to type in the 
  819.     entire name.
  820.  
  821. 4.3.1    Important note
  822.  
  823.     The line "%%IP%%    %%HOST%% %%ALIAS%%" needs to be deleted from 
  824.     this file! This is a "tag" line used by Fred's experimental net
  825.     config scripts. Matt Welsh is now writing a new set of scripts which
  826.     don't use these lines. In any of these files, you see curious lines
  827.     with entries such as "%%NAME%%", these lines MUST be deleted. If you
  828.     don't delete them, you may have lots of strange errors and overflowing
  829.     syslog files.
  830.  
  831. 4.4    /etc/networks
  832.  
  833.     The /etc/networks file lists the names and addresses of your own,
  834.     and other, networks. It is used by the route command, and allows
  835.     you to specify a network by name, should you so desire.
  836.  
  837.     Every network you wish to add a route to using the 'route' command
  838.     MUST have an entry in /etc/networks
  839.  
  840.     Its format is similar to that of the /etc/hosts file, (Sec 4.3)
  841.     and an example one might look like:
  842.  
  843. #
  844. # /etc/networks: list all networks that you wish to add route commands
  845. #                for in here
  846. #
  847. default        0.0.0.0        # default route    - mandatory
  848. loopnet        127.0.0.0    # loopback network - mandatory
  849. mynet        128.253.154.0    # Example network CHANGE to YOURS
  850. #
  851. # end of networks
  852.  
  853.     
  854. 4.5    /etc/host.conf
  855.  
  856.     This file specifies how your system will lookup names. 
  857.     It should contain the two lines:
  858.  
  859.         order hosts,bind
  860.         multi on
  861.  
  862.     These two lines tell the resolve libraries to first check the 
  863.     /etc/hosts file for any names to lookup, and then ask the nameserver
  864.     (if one is present). The "multi" entry allows you to have multiple
  865.     IP addresses for a given machine name in /etc/hosts.
  866.  
  867.     This file comes from the implementation of the resolv+ bind 
  868.     library for Linux. You can find further documentation in the
  869.     resolv+(8) man page (if you have the man page available).
  870.  
  871.  
  872. 4.6    /etc/resolv.conf
  873.  
  874.     This file contains two types of entires: The addresses of your
  875.     nameservers (if any), and the name of your domain (if you have one).
  876.     If you're running your own nameserver (i.e., you're running named
  877.     on your Linux machine: see section 4.2.2.1), then the address of
  878.     your nameserver is just 127.0.0.1 (the loopback address).
  879.  
  880.     Your domain name is your fully-qualified hostname (if you're a
  881.     registered machine on the Internet, for example), with the hostname
  882.     chopped off. That is, if your full hostname is loomer.vpizza.com,
  883.     your domain name is just "vpizza.com", without the hostname ("loomer").
  884.  
  885.     For example, if your machine is goober.norelco.com, and has a
  886.     nameserver at the address 128.253.154.5, your /etc/resolv.conf would 
  887.     look like:
  888.  
  889.         domain norelco.com
  890.         nameserver 127.253.154.5
  891.  
  892.     You can specify more than one nameserver. Each one
  893.     must have a "nameserver" line of its own in resolv.conf.
  894.  
  895.     If you're only using loopback, you don't have a nameserver.
  896.  
  897. 4.7    /etc/HOSTNAME
  898.  
  899.     This is a new file; it contains the full hostname of your machine 
  900.     (with the domain name). For example, the machine above would have 
  901.     the file /etc/HOSTNAME:
  902.  
  903.         goober.norelco.com
  904.  
  905.     That's all.
  906.  
  907. 4.8    /etc/rc.local
  908.  
  909.     Change the line in /etc/rc.local (or /etc/rc, depending on your
  910.     setup) which sets your system's hostname, to 
  911.         /bin/hostname -S
  912.  
  913.     (You have a new hostname in /bin.) This sets your hostname from
  914.     the name found in /etc/HOSTNAME. If you don't like this (personally
  915.     I don't), just do:
  916.         /bin/hostname -S <your-hostname>
  917.  
  918.     For example,
  919.         /bin/hostname -S loomer.vpizza.com
  920.  
  921.     It IS important that you give a full hostname (with domain name)
  922.     in /etc/HOSTNAME. This allows the hostname command to set the
  923.     host AND domainname in one shot. 
  924.  
  925.     IMPORTANT: The hostname found in /etc/HOSTNAME *must* be a valid
  926.     hostname. This means that it must be found in /etc/hosts (or that
  927.     your nameserver must be able to resolve it, but you should put it
  928.     in /etc/hosts in case your nameserver is down).
  929.  
  930. 4.9    Other files
  931.  
  932.     There are of course many other files in /etc which you may need to
  933.     dabble with later on. Instead of going into them here, I'm going to
  934.     provide the bare minimum to get you on the net. More information will
  935.     be provided in later versions of the NET-2 HOWTO.
  936.  
  937.     Once you have all of the files set up, and everything in the 
  938.     right place, you should be able to reboot your new kernel and
  939.     net away to your heart's content. However, I strongly suggest
  940.     that you keep a bootable copy of your old kernel and even possibly
  941.     a "recovery disk" (say, the SLS a1 disk, or HJLu's single disk
  942.     boot disk) in case you hosed your /etc/rc files, for example,
  943.     and can't login when you boot. 
  944.  
  945.  
  946. 5.    Configuring SLIP
  947.  
  948.     SLIP (Serial Line Internet Protocol) allows you to use TCP/IP 
  949.     over the phone line, with a modem (no need for an Ethernet card).
  950.     Of course, to use SLIP you'll need access to a dial-in SLIP server
  951.     in your area. Many universities and businesses provide SLIP access
  952.     all over the world. 
  953.  
  954.     Configuring SLIP is much like configuring an Ethernet interface
  955.     (please read section 4.0 above). However, there are a few key
  956.     differences. 
  957.  
  958.     First of all, dialing in and connecting to your SLIP server is 
  959.     usually done at boot time, usually by a program called "dip" 
  960.     (found in the "dip" subdir of the net-010 package). "Dip" not only 
  961.     dials and logs you into the SLIP server, but it also initiates the 
  962.     SLIP connection and runs the appropriate ifconfig and route commands 
  963.     to initialize the device. Therefore, the only lines needed in 
  964.     /etc/rc.d/rc.inet1 are the few commands to initilize the loopback 
  965.     connection at the top (see section 4.2.1 above).
  966.  
  967.     If you're not using DIP, you may indeed have to edit rc.inet1 for
  968.     your SLIP parameters.
  969.  
  970.     Also, there are two types of SLIP servers: Dynamic IP address
  971.     servers and static IP address servers. Dynamic servers allocate
  972.     a new, different IP address to you every time you dialin and
  973.     initiate a connection. Static servers give you the same address
  974.     every time. Almost every SLIP server will also prompt you for
  975.     a username and password when dialing in: DIP can handle logging
  976.     you in automatically.
  977.  
  978.     Essentially, configuring a SLIP connection is just like configuring
  979.     for loopback or ethernet. The main differences are discussed below.
  980.     Read section 4.0 above for information on configuring your TCP/IP
  981.     files, and apply the changes below.
  982.  
  983. 5.1    Static SLIP server connections
  984.  
  985.     If you have a static-allocation server (same IP address every time),
  986.     then you may want to put entries for your hostname and IP address
  987.     (since you know what your IP address is!) in /etc/hosts. You should
  988.     also configure the other files listed in section 4.0: rc.inet2, 
  989.     host.conf, resolv.conf, /etc/HOSTNAME, and rc.local). Remember that
  990.     when configuring rc.inet1, you don't need to run the ifconfig and
  991.     route commands other than the two for the loopback interface (if
  992.     you're using DIP to dial your connection).
  993.  
  994.     In general, your gateway is the IP address of your SLIP server.
  995.     Because DIP handles the configuration of the route, you probably
  996.     don't need to know this, but in some cases you might have to run the
  997.     appropriate ifconfig or route commands in /etc/rc.d/rc.inet1 to
  998.     get it to work correctly. Instead of using "eth0" as your interface 
  999.     name, SLIP connections use "sl0".  Keep in mind that you can't
  1000.     ifconfig sl0 until you have dialed the connection and connected to
  1001.     the SLIP server.
  1002.  
  1003.     Also, you may need to use the "pointopoint" argument to ifconfig if
  1004.     DIP does not do it correctly. For example, if your SLIP server's 
  1005.     address is 44.136.8.5, and your IP address is 128.253.154.32, you may 
  1006.     need to run the command 
  1007.         # /etc/ifconfig sl0 128.253.154.32 pointopoint 44.136.8.5
  1008.  
  1009.     See the man pages for ifconfig in the net-010 package.
  1010.  
  1011. 5.2    Dynamic SLIP server connections
  1012.  
  1013.     If your SLIP server allocates a new IP address to you every time
  1014.     you dialin, you don't know your IP address at all, so you can't
  1015.     include an entry in /etc/hosts for your machine. (If you want, you 
  1016.     can place your hostname in /etc/hosts with the address 127.0.0.1). 
  1017.  
  1018.     Most dynamic SLIP servers tell you your IP address when you initiate 
  1019.     the connection. For example, it may print a string such as, "Your IP 
  1020.     address is 128.253.154.10. Server address is 128.253.154.1." DIP will 
  1021.     need to know these numbers when it configures the connection. See 
  1022.     section 5.3 below on using DIP.
  1023.  
  1024.     If you use DIP, it does all of the work of configuring the 
  1025.     connection when you dialin, so rc.inet1 only needs the two lines
  1026.     to configure the loopback address (see section 4.2.1 above). 
  1027.     Also, see section 5.1 above. You need to configure all of
  1028.     the files listed in section 4.0. Your gateway address (should you
  1029.     need to know it) will be the address of the SLIP server. Also,
  1030.     you may need to run ifconfig on sl0 using the SLIP server's address
  1031.     as the "pointopoint" argument (see section 5.1 above). However, if 
  1032.     you use DIP, it should be able to do all of the ifconfig and route 
  1033.     commands for you.
  1034.  
  1035.     One good way to figure out how to configure SLIP on your machine is
  1036.     to find someone else who uses the SLIP server (it can be on a PC,
  1037.     Mac, UNIX box, whatever) and find out what numbers they use. 
  1038.  
  1039.  
  1040. 5.3    Using DIP
  1041.  
  1042.     DIP can simplify the process of dialing into the SLIP server, logging
  1043.     in, starting the connection, and configuring the sl0 device with
  1044.     the appropriate ifconfig and route commands. 
  1045.  
  1046.     Essentially, to use DIP you'll write a "chat script" which is 
  1047.     basically a list of commands to send to DIP along with commands for
  1048.     logging in, starting the connection, and so on. See "sample.dip"
  1049.     in the net-010 package for an explanation. DIP is quite a powerful
  1050.     program, with many options. Instead of going into all of them here
  1051.     you should look at the READMEs and the sample files from tsx-11 and
  1052.     the net-010 distribution.
  1053.  
  1054.     You may notice that the sample.dip script assumes that you're using
  1055.     a static SLIP server, so you know what your IP address is beforehand.
  1056.     For dynamic SLIP servers, you'll probably need to use the command 
  1057.     "dip -t" and use the DIP "local" and "remote" commands by hand after
  1058.     the SLIP server prints your IP address. For example,
  1059.  
  1060. loomer:~% dip -t
  1061. DIP>port cua0      (My modem is on /dev/cua0.)
  1062. DIP>speed 57600    (Set the baud rate.)
  1063. DIP>reset          (Reset modem and terminal line.)
  1064. DIP>send att\r\n   (Send modem init string...)
  1065. DIP>dial 2446000   (Dial SLIP server.)
  1066. DIP>term           (Enter interactive mode.)
  1067.  
  1068. Welcome to Annex Server...
  1069. Annex login: mdw1
  1070. Annex password: 
  1071.  
  1072. User mdw1 authenticated.
  1073. Annex> slip       (From SLIP server prompt, give "slip" command to start 
  1074.                    SLIP connection.)
  1075.  
  1076. SLIP inititated. 
  1077. Your IP address is 128.254.254.10, server address is 128.254.254.1.
  1078.  
  1079. ^] (Hit DIP break key to get back to DIP prompt.)
  1080. DIP> local 128.254.254.10  (Give local command to specify my IP address.)
  1081. DIP> remote 128.254.254.1  (Specify server's IP address.)
  1082. DIP> mtu 1500              (Set SLIP MTU value.)
  1083. DIP> mode SLIP             (Start the SLIP mode from DIP.)
  1084.  
  1085. loomer:~%
  1086.  
  1087.     Now we're running in SLIP mode, and everything should work. The command
  1088.         # /etc/ifconfig sl0
  1089.     will tell you the current interface parameters; you may need to set 
  1090.     some of these by hand if DIP didn't get the correctly. Also, some have 
  1091.     found that they need to use the route command to change their operating
  1092.     parameters. DIP sets a route for the address of your SLIP server, but 
  1093.     you may need to delete this route and add it as your gateway instead. 
  1094.     For example, with a SLIP server address of 128.253.154.1, use the 
  1095.     commands:
  1096.     
  1097.         # /etc/route del 128.253.154.1
  1098.         # /etc/route add default gw 128.253.154.1 
  1099.  
  1100.     In later versions of dip, and I too profess to be confused as to
  1101.     exactly which version it might be, this procedure will not work,
  1102.     and you should instead use the dip
  1103.  
  1104.     default
  1105.  
  1106.     command instead. This will automatically point your default route
  1107.     via your slip link.
  1108.  
  1109.     It should be simple to modify the code for DIP in the file attach.c
  1110.     to run the route and ifconfig commands that work for you automatically.
  1111.  
  1112.     Of course, typing all of those DIP commands may be time consuming. It 
  1113.     may be possible to write a DIP chat script to run all of the commands 
  1114.     up through dialing the connection and logging in, and then "exit" the 
  1115.     script to let you type the "local" and "remote" commands by hand.
  1116.  
  1117.     Furthermore, there are patches for DIP by Paul Mossip 
  1118.     (mossip@vizlab.rutgers.edu) which modify the "get" command to grab
  1119.     the IP address of your host and the server from the output of 
  1120.     the SLIP server. This should allow you to do all of the dialing and
  1121.     configuration within a chat script just as you would with static
  1122.     SLIP servers. This patch was recently posted to comp.os.linux.announce.
  1123.     (Check the c.o.l.a archives on sunsite.unc.edu.)
  1124.  
  1125.     Fred is planning to modify DIP for easier use by those with dynamic
  1126.     SLIP servers (including the above patch) soon. 
  1127.  
  1128.     You'll have to play with various values for your routes and gateways 
  1129.     to get everything going correctly. If you have any information on how 
  1130.     you configured your SLIP interface, please drop me a note 
  1131.     (terryd@extro.ucc.su.oz.au). Include info on your SLIP address, server 
  1132.     address, gateway, and so on, and what commands you used to set up 
  1133.     SLIP. There are various possible configurations for SLIP servers and 
  1134.     I'd like to update this NET-2 HOWTO with as many hints as possible. :)
  1135.  
  1136. 5.4    Configuring your Linux Machine as a SLIP Server
  1137.  
  1138.     So, you wanna go bleeding edge eh ? Ok. I've asked Fred about how to
  1139.     do this, and the following is what he has supplied. What I would like
  1140.     you to do is take the following information, and make what use of it
  1141.     you can. Then, when you have a slip server successfully working,
  1142.     I'd like you to send me your configuration scripts, and a description
  1143.     of how to use it, and send it to me to replace this section. Ok ?
  1144.     Note: Some of the information below came from the dip man pages,
  1145.     where in fact how to run Linux as a slip server is briefly documented.
  1146.  
  1147.     To configure Linux as a slip server, you need to create Special
  1148.     slip accounts for users, where dip (in slave mode) is used as the
  1149.     login shell. Fred suggests that he has a convention of having all
  1150.     of his Slip accounts begin with a capital 'S', eg "Sfredm".
  1151.  
  1152.     A sample /etc/passwd entry for a Slip user looks like:
  1153.  
  1154.     Sfredm:ij/SMxiTlGVCo:1004:10:UUNET:/tmp:/usr/bin/dip -i
  1155.      ^^         ^^        ^^  ^^   ^^    ^^   ^^
  1156.       |          |         |   |    |     |    \__ dip as login shell
  1157.       |          |         |   |    |     \_______ Home directory
  1158.       |          |         |   |    \_____________ User Full Name
  1159.       |          |         |   \__________________ User Group ID
  1160.       |          |         \______________________ User ID
  1161.       |          \________________________________ Encrypted User Password
  1162.       \___________________________________________ Slip User Login Name
  1163.  
  1164.  
  1165.     After the user logs in, the login(1) program, if it finds and
  1166.     verifies the user ok, will execute the dip command in input mode (-i).
  1167.     Dip now scans the /etc/net/diphosts file for an entry for
  1168.     the given user name. Therefore, each slip user must also have
  1169.     an entry in /etc/net/diphosts.
  1170.  
  1171.  
  1172. 5.5    /etc/net/diphosts
  1173.  
  1174.     /etc/net/diphosts is used by dip to lookup preset configurations for
  1175.     remote hosts. These remote hosts might be users dialing-into your
  1176.     linux machine, or they might be for machines that you dial into
  1177.     with your linux machine.
  1178.  
  1179.     The general format for /etc/net/diphosts is as follows:
  1180.  
  1181.     Suwalt::145.71.34.1:SLIP uwalt:CSLIP,1006
  1182.       ^    ^  ^            ^         ^     ^
  1183.       |    |  |            |         |     \___ MTU
  1184.       |    |  |            |         \_________ protocol (SLIP, CSLIP,
  1185.       |    |  |            |                    KISS, PPP)
  1186.       |    |  |            \___________________ comment field ("gecos" :-)
  1187.       |    |  \________________________________ IP address of the other
  1188.       |    |                                    side, or host.domain.name
  1189.       |    \___________________________________ unused (compat. with passwd)
  1190.       \________________________________________ login name (as returned by
  1191.                                                 getpwuid(getuid()) )
  1192.  
  1193.  
  1194.     An example /etc/net/diphosts entry for a remote slip user might be:
  1195.  
  1196.         Sfredm::145.71.34.1:SLIP uwalt:SLIP,296
  1197.         which specifies a SLIP link with MTU==296, or
  1198.  
  1199.         Sfredm::145.71.34.1:SLIP uwalt:CSLIP,1006
  1200.         which specifies a CSLIP-capable link with MTU of 1006.
  1201.  
  1202. 5.6    Configuring Plip interfaces
  1203.  
  1204.     PLIP is like SLIP, in that it is used for providing point to point
  1205.     IP links between machines, except that it is designed to use the
  1206.     Parallel ports on your machine instead of the serial ports. Because
  1207.     it is possibel to transfer more than one bit at a time with the
  1208.     Parallel port, it is possible to attain higher speeds with the
  1209.     plip interface than with the serial interface. In addition, even
  1210.     the simplest of parallel ports, printer ports, can be used, in
  1211.     lieu of you having to purchase conmparatively expensive 16550AFN
  1212.     UARTs for your serial ports.
  1213.  
  1214.     When compiling the kernel, there is only one file that might need
  1215.     to be looked at. That file is net/drv/plip/global.h, and it contains
  1216.     timers in mS. The defaults are probably going to be fine, unless you
  1217.     have an especially slow computer, in which case you might have to
  1218.     increase them on the machine at the other end of the link.
  1219.  
  1220.     A sample configuration for a dip interface might be:
  1221.  
  1222.     /etc/rc.d/rc.inet1:
  1223.  
  1224.     ifconfig pl0 192.148.64.1 broadcast 192.148.255.255 \
  1225.         netmask 255.255.0.0 pointopoint 212.194.167.1 up
  1226.  
  1227.     The pointopoint parameter has the same meaning as for SLIP, in 
  1228.     that it specifies the address of the machine at the other end of
  1229.     the link.
  1230.  
  1231.     /etc/rc.d/rc.inet2:
  1232.  
  1233.     route add default pl0 metric 1
  1234.  
  1235.     In almost all respects, you can treat a plip interface as though
  1236.     it were a slip interface, except that dip is not, and cannot be
  1237.     used.
  1238.  
  1239. 5.6.1    PLIP Cabling Diagram
  1240.  
  1241.     PLIP has been designed to use cables with the same pinout as those
  1242.     commonly used by the better known of the dos based pc-pc file transfer
  1243.     programs. The pinout diagram (taken from net/drv/plip/README) looks as
  1244.     follows:
  1245.  
  1246.         GROUND          25 - 25
  1247.         D0->ERROR       2 - 15          15 - 2
  1248.         D1->SLCT        3 - 13          13 - 3
  1249.         D2->PAPOUT      4 - 12          12 - 4
  1250.         D3->ACK         5 - 10          10 - 5
  1251.         D4->BUSY        6 - 11          11 - 6
  1252.         D5              7*
  1253.         D6              8*
  1254.         D7              9*
  1255.         STROBE output   1*
  1256.         AUTOFD output   14*
  1257.         INIT output     16*
  1258.         SLCTIN output   17*
  1259.  
  1260.         Do not connect the pins marked with an asterisk (`*').  They are
  1261.         D5 (pin 7), D6 (pin 8) and D7 (pin 9).  STROBE is pin 1, FEED is
  1262.         pin 14.
  1263.  
  1264.         Extra grounds are on pins 18, 19, 20, 21, 22, 23 and 24.
  1265.  
  1266.         If the cable you are using has a metallic shield it should be
  1267.         connected to the metallic DB-25 shell at one end only.
  1268.  
  1269.  
  1270. 6.    Are You Stuck?
  1271.  
  1272.     Really? Then you should read the man pages for ifconfig and route, 
  1273.     included in the net-010 package, and understand their functions. These 
  1274.     commands have a lot of flexibility, and because everyone's network 
  1275.     setup is different, you may find a way to use ifconfig and route to
  1276.     get your connection working. If you do, feel free to send me some mail
  1277.     so I can include it in the next update of the NET-2 HOWTO. Because of
  1278.     my limited amount of experimental data, most of the discussion above
  1279.     is about my own setup, and I'd like to generalize it as much as 
  1280.     possible.
  1281.  
  1282.     Matt is currently writing a set of scripts to simplify NET-2
  1283.     configuration. You can pick up the pre-alpha release from
  1284.     tc.cornell.edu, in the file /pub/mdw/netconf-0.3.tar.z. These scripts
  1285.     maintain a small database of network configuration info, and allow you
  1286.     to easily modify and configure your network interface. The scripts are
  1287.     far from complete: Matt has been waiting until the NET-2 interface
  1288.     itself stabilizes a bit more before upgrading it further. 
  1289.  
  1290.     Another good place to look for help on setting up NET-2 is the 
  1291.     O'Reilly and Associated book ``TCP/IP Network Administration''...
  1292.     the one with the crab on the cover. Keep in mind that NET-2 is now
  1293.     a "standard" implementation of TCP/IP---this means that ifconfig
  1294.     and route work the same under Linux as they do on other UNIX systems.
  1295.  
  1296.     You might also search out the following documents which are an
  1297.     excellent source of tutorial information on tcp/ip:
  1298.  
  1299.     athos.rutgers.edu:/runet
  1300.     -rw-r--r--  1 0        0          176218 Oct 20  1989 tcp-ip-admin.doc
  1301.     -rw-r--r--  1 0        0          214199 Oct 20  1989 tcp-ip-admin.ps
  1302.     -rw-r--r--  1 0        0           92106 Oct 20  1989 tcp-ip-intro.doc
  1303.     -rw-r--r--  1 0        0          111478 Oct 20  1989 tcp-ip-intro.ps
  1304.  
  1305.     Also keep in mind that NET-2 _is_ developing very rapidly---it's
  1306.     one of the newest additions to the Linux kernel. Thus, all of the
  1307.     bugs haven't been worked out yet, so there may be some problems.
  1308.     However, a good rule of thumb is that if you were able to get TCP/IP
  1309.     working under kernels before 0.99.pl10, you should be able to get it
  1310.     working under NET-2 as well. There are still some issues dealing with
  1311.     performance to be fixed, but overall the system works. And, as with
  1312.     everything in Linux development, time will cure what ails NET-2. 
  1313.     If it's absolutely unusable to you, go back to an earlier kernel 
  1314.     version, and wait until things develop further. The code is still
  1315.     fairly new.
  1316.  
  1317. 7.    Common Problems and Solutions
  1318.  
  1319.     Now that the NET-2 HOWTO has been out for a while, I've been
  1320.     able to gather some common problems (and answers!). Here are
  1321.     some things which I have learned from hearing from readers.
  1322.     If you run into a problem which should be included here,
  1323.     please send it along (even if you have the solution!).
  1324.     
  1325.     QUESTION: Whan I try to use the network, or use SLIP, I get the
  1326.     error message "Network not reachable". What should I do?
  1327.  
  1328.     ANSWER: This message means that a machine somewhere in the path did
  1329.     not have a route to the destination network. Until you can demonstrate
  1330.     otherwise, it is the courteous thing to do, assume it is your
  1331.     machine. This is usually an indication that either your ifconfig or    
  1332.     route commands are in some way wrong. You can look at the status of
  1333.     your ifconfig by using the command "ifconfig" by itself. This should
  1334.     tell you what NET-2 thinks your IP address, netmask, etc. are.
  1335.     You can use the command "route" by itself to get routing information.
  1336.     This will tell you what routes you have set up and what gateways
  1337.     (if any).
  1338.  
  1339.     The best way to test a SLIP or network connection is to use "ping"
  1340.     with IP addresses only. If you use hostnames, as in "ping loomer",
  1341.     if some part of name lookup isn't working you'll have trouble.
  1342.     To test just the network, NOT name lookup, use only IP addresses,
  1343.     as in "ping 128.253.154.32".
  1344.  
  1345.     For SLIP connections the best thing to do is to ping your
  1346.     SLIP server. If nothing comes back, then something is wrong. Try
  1347.     using "dip -v" which will print debugging information while DIP
  1348.     is dialing the server. Remember that for some SLIP connections you
  1349.     may need to use the commands
  1350.  
  1351.         # route del <your slip server address>
  1352.         # route add default gw <your slip server address>
  1353.  
  1354.     or the dip:
  1355.  
  1356.         default
  1357.  
  1358.     command (depending on the version of dip you are running),
  1359.     to get SLIP talking to the server. Once you can talk to the
  1360.     server, everything SHOULD work (if your server is set up correctly!).
  1361.  
  1362.     For Ethernet connections, try pinging your gateway. If you can talk
  1363.     to your gateway, you should be able to talk to the outside world.
  1364.     You may need more than one route (that is, more than one gateway).
  1365.     For example, some universities use one gateway for on-campus
  1366.     networks and another for off-campus networks. 
  1367.  
  1368.     Either way, try pinging addresses on your local network, and remote
  1369.     addresses. If you can ping all addresses ok remote to your network,
  1370.     and some on your local network, but not others on your local network,
  1371.     then check your netmask setting.
  1372.  
  1373.     If the "network not reachable" message means that you can't
  1374.     talk to your gateway. This can be due to several things:
  1375.  
  1376.         a) Wrong route or ifconfig commands
  1377.         b) Ethernet card problems (see below)
  1378.         c) You didn't compile the kernel correctly (see below).
  1379.         d) There is in fact some sort of network failure elsewhere.
  1380.  
  1381.  
  1382.     QUESTION: I keep getting the error "eth0: transmit timed out".
  1383.     What does this mean?
  1384.  
  1385.     ANSWER: This usually means that your Ethernet cable is unplugged,
  1386.     or that the setup parameters for your card (I/O address, IRQ, etc.)
  1387.     are not set correctly. Check the messages at boot time and make
  1388.     sure that your card is recognized with the correct Ethernet address.
  1389.     If it is, check that there is no conflict with any other hardware
  1390.     in your machine, eg you might have a soundblaster sharing the same
  1391.     IRQ or i/o control port.
  1392.  
  1393.  
  1394.     QUESTION: I get errors "check Ethernet cable" when using the network.
  1395.  
  1396.     ANSWER: You probably have your Ethernet card configured incorrectly.
  1397.     For Etherlink cards, in the file /usr/src/linux/net/inet/CONFIG,
  1398.     change the line
  1399.         EL_OPTS     = -UEL2_AUI
  1400.     to
  1401.         EL_OPTS        = -DEL2_AUI
  1402.  
  1403.     This tells the card to use the AUI cable interface. 
  1404.     Just make sure that all of the options for your card are set
  1405.     correctly in the CONFIG file, and rebuild your kernel.
  1406.  
  1407.  
  1408.     QUESTION: When I use NET-2, I get a "General protection" error
  1409.     or a panic from the kernel. How can I fix this?
  1410.  
  1411.     ANSWER: Remember that the NET-2 code is still on the buggy side, 
  1412.     just because it's in mid-development. If you get a kernel panic
  1413.     while using NET-2, write down the EIP address (and the other
  1414.     information given in the panic message). The EIP is the address
  1415.     where the kernel paniced, usually of the form 0008:xxxxxxxx
  1416.     where "0008" is the segment descriptor for the kernel text, and
  1417.     "xxxxxxxx" is the offset into that segment (80386 programmers will
  1418.     know what this means).
  1419.  
  1420.     Use the command 
  1421.         nm /usr/src/linux/tools/system | sort -n
  1422.     or 
  1423.         nm /usr/src/linux/tools/zSystem | sort -n
  1424.  
  1425.     depending on whether or not you use a compressed kernel (zImage).
  1426.     This will print a listing of all symbols in the kernel text, 
  1427.     simply scan down the list and look for the function that contains
  1428.     the EIP address in the kernel dump. There's the culprit.
  1429.  
  1430.     However, in some cases the EIP can be misleading; the kernel
  1431.     may panic at a place which is complete irrelevant to where the
  1432.     actual problem occurred. However, it is a good starting place;
  1433.     first, locate the function which contains the EIP address, and
  1434.     then check out the kernel code to see what might be wrong.
  1435.  
  1436.     Keep in mind that this will only work if you compile your own
  1437.     kernel and have the "system" file associated with it. 
  1438.  
  1439.     
  1440.     QUESTION: How can I hang up the phone line when I'm done using
  1441.     SLIP?
  1442.  
  1443.     ANSWER: If you use dip to dial out on the SLIP line, just
  1444.     "kill -9" the dip process itself (dip won't die unless you kill
  1445.     it with SIGKILL or some other signal). When dip dies, the line
  1446.     should hang up. 
  1447.  
  1448.     If you don't use dip to dial out, either instruct your dialing
  1449.     program to hang up the line, or kill the dialing process.
  1450.  
  1451.  
  1452.     QUESTION: With SLIP, I get a connection open, but no data flows.
  1453.  
  1454.     ANSWER: This could be a number of things. First, check your routes
  1455.     and be sure that the gateway is set correctly. Attempt to ping
  1456.     your gateway; if you can't, then something is wrong with the routes.
  1457.     
  1458.     Another problem could be that your system and the SLIP server 
  1459.     disagree about header compression. With 0.99.pl11 and above, 
  1460.     SLIP automatically compresses packet headers. To turn off header
  1461.     compression, check the SL_COMPRESS option in the CONFIG file.
  1462.     In pl14 there will be supplied a 'setencap' command to allow you
  1463.     to configure compression.
  1464.  
  1465.  
  1466.     QUESTION: With SLIP, I get a connection, but after sending a small
  1467.     amout of data, the connection hangs.
  1468.  
  1469.     ANSWER: Probably an MTU problem. The MTU is the maximum packet
  1470.     size available for the network. For SLIP, your MTU is set in
  1471.     your dip dialing script with the "MTU" command. The default value
  1472.     is 1500, which means that the system can send packets of up to
  1473.     1500 bytes in size. However, some SLIP servers (Berkeley SLIP,
  1474.     for example), use a smaller MTU (around 1006). If your MTU is
  1475.     too large, the SLIP server will fragment the packets, and currently
  1476.     (NET-2d), IP packet fragmentation isn't supported (see next section).
  1477.     The solution is to set a smaller MTU (around 512, or lower) in
  1478.     your dip chat script. 
  1479.  
  1480.     Another thing to check if you are having erratic SLIP problems is
  1481.     flow control. You need to use hardware (RTS/CTS) flow control
  1482.     on your modem, and your modem and your computer must agree. XON/XOFF
  1483.     flow control is not practical for SLIP.
  1484.  
  1485. 8.    Known bugs 
  1486.  
  1487.     There are several known bugs with the NET-2 software. Note that these
  1488.     may or may not be fixed with a newer version of the NET-2 code;
  1489.     therefore, I leave them here. 
  1490.     
  1491.     The bugs here are for NET-2d, found in kernels 0.99.pl10, pl11, 
  1492.     and pl12, and pl13, and pl14. NET-2e (currently in Beta), when
  1493.     released, may or may not have fixed these bugs. 
  1494.  
  1495.     * Bug with route guessing code. If you ifconfig the "lo"
  1496.       interface before the "eth0" interface in rc.inet1, whenever you
  1497.       add a route, it will be added to "lo" instead of "eth0". 
  1498.       (Simply use the "route" command by itself; it will display all
  1499.       of your routes. If your "default" route, which should be out
  1500.       on the ethernet, is for device "lo" instead of "eth0", then you're
  1501.       seeing this bug.) 
  1502.       
  1503.       This is just a problem with the route guessing code. Several
  1504.       things can fix it: 1) ifconfig/route on "eth0" before "lo" in
  1505.       rc.inet1; or, 2) Set your netmask to 255.0.0.0 (which is reported
  1506.       to work, but I can't guarantee it). This should be fixed in NET-2e.
  1507.  
  1508.     * Missing IP packet fragmentation. Packet fragmentation allows the
  1509.       various protocol layers to "chop up" packets into smaller packets
  1510.       if the MTU (maximum tranfer unit) of one network differs from
  1511.       another. NET-2e should contain packet fragmentation/defragmentation
  1512.       code, but NET-2d currently does not.
  1513.       pl14 has had fragmentation support fitted.
  1514.  
  1515.  
  1516.     * Weak NFS support. There have been a number of success stories with
  1517.       NFS under Linux, however, not all of the support is there. For
  1518.       one thing, the current NFS buffer size is much smaller---and 
  1519.       therefore much slower---than other implementations of NFS. From
  1520.       what I understand, this problem is related to the lack of packet
  1521.       fragmentation code, above. With pl14 and upwards this will probably
  1522.       be resolved.
  1523.  
  1524.  
  1525. 9.    Miscellaneous
  1526.  
  1527.     I'm sure that I've missed something. This NET-2 HOWTO was thrown 
  1528.     together with the help of Matt Welsh, Jeff Uphoff, and Alan Cox.
  1529.     Hopefully it will help someone out there get going with networking
  1530.     under Linux. 
  1531.  
  1532.     Future plans for the NET-2 HOWTO include a section on setting up
  1533.     your own Linux LAN (with SLIP and/or Ethernet), adventures in
  1534.     routing, and the use of netstat and other network administration
  1535.     under Linux. For now, the information here should be more than 
  1536.     enough. :)
  1537.     
  1538.     If you have questions about setting up NET-2, feel free to mail me, or 
  1539.     if you have any corrections, additions, or errata for this NET-2 HOWTO, 
  1540.     send me any and all changes (cdiffs are nice, but I'm flexible). 
  1541.  
  1542.     Of course, thanks to Fred, Linus, Ross, Phil, Paul, Don, and everyone 
  1543.     else who helped to develop the NET-2 code and work on previous 
  1544.     versions of TCP/IP for Linux and the NET-FAQ. Finally, Linux has a
  1545.     complete implementation of TCP/IP. It may not be for everyone yet.
  1546.     But for those who want to do some hacking---here it is.
  1547.  
  1548.     Cheers,
  1549.  
  1550.     Terry Dawson, (terryd@extro.ucc.su.oz.au)
  1551.  
  1552.  
  1553.