home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / unmaintained / mini / Dip+SLiRP+CSLIP < prev    next >
INI File  |  1997-10-13  |  15KB  |  462 lines

  1. [ 14 Ocotber 1997
  2.   The Linux Dip+SLiRP+CSLIP mini-HOWTO is not being maintained by 
  3.   the author any more.  If you are interested in maintaining the 
  4.   Dip+SLiRP+CSLIP mini-HOWTO, please get in touch with me at 
  5.   <gregh@sunsite.unc.edu>. ]
  6.  
  7.  
  8.                    Linux Dip+SLiRP+CSLIP mini-HOWTO
  9.                                  by
  10.                  Zenon Fortuna (zenon@netcom.com)
  11.  
  12.  
  13. Version: 1.0                                            October 15th '95
  14.  
  15. INDEX
  16.         0.      Why "Dip+SLiRP+CSLIP mini-HOWTO" ?
  17.         1.      History of changes
  18.         2.      Short description
  19.         3.      Steps of the configuration
  20.     3.1        Installing the SLiRP
  21.     3.2        Testing the SLiRP
  22.     3.3        Configuring your Linux system
  23.     3.4        Testing your Linux system
  24.     3.5        Installing the DIP
  25.     3.6        Testing the DIP
  26.     4.    Normal operation
  27.     4.1        Adding a DNS capability
  28.         5.      Comments
  29.  
  30. ----------------------------------------------------------------------------
  31. 0.    Why "Dip+SLiRP+CSLIP mini-HOWTO" ?
  32.  
  33.     This document is for users, who don't want to read the NET-2-HOWTO
  34.     with all its details, nor want to read the Dip/SLiRP documents, but
  35.     would like to install a SLIP-like connection to the Internet, using
  36.     available shell-only account.
  37.  
  38.     The above mentioned documents should be considered as more exhaustive,
  39.     but also more exhausting.
  40.  
  41.     The dip337n-uri and slirp-0.95h packages were used to test the described
  42.     functionality. The tests were verified under the stable (tm) Linux
  43.     kernel version 1.2.13, installed under the Slackware 2.2.0 OS
  44.     distribution.
  45.  
  46.  
  47. 1.    History of changes
  48.  
  49.     October 15th '95    Version: 1.0
  50.         The initial version of the document.
  51.  
  52.  
  53. 2.      Short description
  54.  
  55.     - I assume, that your Linux system is able to dial-up a remote
  56.       server of the ISP, where you have a shell-account. On this server
  57.       we will install the "slirp" utility.
  58.  
  59.     - we would like to prepare the "dip" utility on the Linux system,
  60.       along with a specialized script, to dial-up the remote server,
  61.       and start the "slirp" on this remote system.
  62.  
  63.     - the running "dip" will configure the serial line parameters and
  64.       will inform the Linux system about the IP mapping, performed by
  65.       the remote "slirp".
  66.  
  67.     - as a result the TCP/IP packets sent over the serial-line/modem
  68.       connection will be handled by the remote server as though being
  69.       sent locally by this server.
  70.  
  71.     Miracle happens: we will get a TCP/IP connection of the Linux system
  72.     to the Internet resources.
  73.  
  74.  
  75. 3.      Steps of the configuration
  76. 3.1        Installing the SLiRP
  77.  
  78.     - get the SLiRP distribution file, e.g. the slirp-0.95h.tar.gz,
  79.       and compile the "slirp" program on your remote host (the system
  80.       to which you will be dialing up). The SLiRP's docs/README.compiling
  81.       explains the details.
  82.  
  83.       Instead, you can get the already precompiled binary from
  84.         ftp://ibc.wustl.edu/pub/slirp_bin/USE_AT_OWN_RISK/
  85.       as it is explained in the Alt.dcom.slip-emulators FAQ, included
  86.       with the docs.
  87.  
  88.     - move the "slirp" program to a better location, e.g. "./bin/slirp"
  89.       or "./slirp" (i.e. at the $HOME directory)
  90.  
  91.     - at your $HOME directory create the ".slirprc" file.
  92.       To keep it simple let's use only a few commands:
  93.         #### .slirprc file ####
  94.         add ptyexec /usr/bin/tcsh -l:10.0.2.1:23
  95.         compress
  96.         baudrate 38400
  97.         #### end
  98.  
  99.       The "compress" command ensures to use the CSLIP protocol.
  100.       The "add ptyexec" command was used instead of the "shell"
  101.       command (see the SLiRP's docs/CONFIG for a list of commands),
  102.       because it is better to use the "tcsh -l" (for ".login" entry)
  103.       and the "shell" command does not accept flags (I believe).
  104.       You should use the remote system specific address of the "tcsh"
  105.       program (or use another shell, if you prefer).
  106.  
  107.       The "baudrate" should be used with the speed proper for your modem
  108.       connection.
  109.  
  110. 3.2        Testing the SLiRP
  111.  
  112.     Login to your remote site and type
  113.  
  114.         % bin/slirp    (or "./slirp", depending on the location)
  115.  
  116.     You should get a list of messages, with the following line at the end:
  117.         [talking CSLIP, MTU 1500, MRU 1500, 38400 baud]
  118.  
  119.     To exit the "slirp" type slowly (>1 sec gap) five 0's (zeroes).
  120.  
  121. 3.3        Configuring your Linux system
  122.  
  123.     Essentially, what you need to do is to prepare a kernel able
  124.     to run network and the CSLIP. Then you should configure the network.
  125.     Start the "make config" in the "src/linux" directory and set "y"
  126.     to the following options:
  127.  
  128.         Networking support (CONFIG_NET) [y]
  129.         TCP/IP networking (CONFIG_INET) [y]
  130.         Assume subnets are local (CONFIG_INET_SNARL) [y]
  131.         Network device support? (CONFIG_NETDEVICES) [y]
  132.         Dummy net driver support (CONFIG_DUMMY) [y]
  133.         SLIP (serial line) support (CONFIG_SLIP) [y]
  134.         CSLIP compressed headers (CONFIG_SLIP_COMPRESSED) [y]
  135.         PPP (point-to-point) support (CONFIG_PPP) [y]
  136.  
  137.     Now, I use the 3c509 Ethernet card, so my additional options are:
  138.  
  139.         3COM cards (CONFIG_NET_VENDOR_3COM) [y]
  140.         3c509/3c579 support (CONFIG_EL3) [y]
  141.  
  142.     For the NFS installation you can add also:
  143.  
  144.         NFS filesystem support (CONFIG_NFS_FS) [y]
  145.  
  146.     Now, after successful "make config", complete the kernel generation
  147.     with "make dep" and "make zImage".
  148.     Then move the arch/i386/boot/zImage to your kernel location and
  149.     run "lilo".
  150.  
  151.     To configure the network, first decide which IP address to use.
  152.     In a lack of your special address, take 192.168.1.100, allowed for
  153.     local networks by RFC1597.
  154.     Of course, you should rather read the NET-2-HOWTO for correct
  155.     information, but you can try to do the following:
  156.  
  157.     A. Give your system a network name, e.g. "yourhost.linux.org",
  158.        where all the three names could be chosen to your tastes.
  159.        Place the above string (without the quotes) into the
  160.        "/etc/HOSTNAME" file.
  161.  
  162.     B. Edit your "/etc/hosts" file, adding
  163.         192.168.1.100    yourhost.linux.org yourhost
  164.        The above "yourhost.linux.org" string should match the one chosen
  165.        in the step A above.
  166.  
  167.     C. If you run local Ethernet edit also your "/etc/networks" file,
  168.        adding a line:
  169.         yournet        192.168.1.0
  170.  
  171.     D. Edit your "rc.inet1" from the /etc/rc.d directory (save the
  172.        original somewhere :) and set
  173.         IPADDR=yourhost
  174.         NETMASK="255.255.255.0"
  175.         NETWORK=yournet
  176.         BROADCAST="192.168.1.255"
  177.        Then, if you have a real Ethernet card on your system,
  178.        uncomment the line
  179.  /sbin/ifconfig eth0 ${IPADDR} netmask ${NETMASK} broadcast ${BROADCAST}
  180.        and then the following line
  181.  /sbin/route add -net ${NETWORK} netmask ${NETMASK}
  182.  
  183.     E. Place your domain name "linux.org" (compare the step A) into the
  184.        "/etc/resolv.conf" file, as a line:
  185.         domain    linux.org
  186.  
  187.     Now, reboot your system.
  188.  
  189. 3.4        Testing your Linux system
  190.  
  191.     First of all watch the booting messages, or look into the
  192.     "/usr/adm/messages" file, if your syslogd(8) is running.
  193.  
  194.     You should see messages like
  195.          IP Protocols: ICMP, UDP, TCP
  196.          PPP: version ...
  197.          TCP compression ...
  198.          PPP line discipline registered.
  199.          SLIP: version ...
  200.          CSLIP: code copyright ...
  201.     If you have the Ethernet interface it should be recognized as well, e.g:
  202.          eth0: 3c509 at 0x280 ...
  203.  
  204.     Your network should be up and you could test it with a few commands:
  205.  
  206.     A. Run "ifconfig", without arguments.
  207.        You should see the "lo" (loopback) interface activated, with its
  208.        addresses.
  209.        If you run a real Ethernet as well, you will see the information
  210.        about the "eth0" interface as well, and you should notice the
  211.        familiar addresses, like "inet addr: 192.168.1.100", etc.
  212.  
  213.     B. Run "route", without arguments.
  214.        You should see a line about the "loopback" and maybe another one
  215.        about the "yournet".
  216.  
  217.     OK, your Linux system is ready to work with the CSLIP as well.
  218.  
  219. 3.5        Installing the DIP
  220.  
  221.     - it may happen, that your Linux system has already the "dip"
  222.       binary. It would be nice to have the 3.3.7n version of it
  223.       (it has the updated documentation).
  224.  
  225.     - otherwise, get the DIP distribution file, e.g. the dip337n-uri.tar.gz,
  226.       and compile the "dip" program on your local Linux host.
  227.       You do it by typing "make" in the dip-3.3.7n directory.
  228.  
  229.     - move the "dip" program to a better location which is in your PATH,
  230.       e.g. /usr/local/bin/dip or $HOME/bin/dip.
  231.  
  232.     - at convenient location, e.g. your $HOME directory, create the dip's
  233.       script file, for example "slirp.dip".
  234.  
  235.     The dip's script file is usually long and complex. There are some
  236.     examples in the dip's "samples" directory (maybe installed as
  237.     /usr/doc/dip/samples.
  238.     Anyway, I submit my "slirp.dip" file as an example.
  239.  
  240. #### slirp.dip file ####
  241. #
  242. # slirp.dip     Dialup IP script for use with SLiRP and netcom
  243. #
  244.  
  245. main:
  246.   # Set netmask on sl0
  247.   netmask 255.255.255.0
  248.  
  249.   # Set the desired serial port and speed.
  250.   # You may need to change ttyS2 to your modem device...
  251.   # I am running the "mgetty" on this port as well, so I want to use
  252.   # the "ttyS2" instead of the "cua2" device
  253.   port ttyS2
  254.   speed 38400
  255.  
  256.   # Reset the modem and terminal line.
  257.   # This seems to cause trouble for some people!
  258.   reset
  259.  
  260.   # Prepare for dialing.
  261.   # Note your modem may need a different init string.
  262.   # Mine is a WorldBlazer ...
  263.   send AT S0=0 S11=70 S50=254 S58=2 Q0 V1 E1 X4\r
  264.   wait OK 2
  265.   if $errlvl != 0 goto modem_trouble
  266.  
  267. redial:
  268.   # dial your POP#
  269.   # The number below is for my local POP, your mileage may vary
  270.   send ATDT 274 2900\r
  271.   wait CONNECT 50
  272.   if $errlvl != 0 goto dial_trouble
  273.  
  274.   # We are connected.  Login to the system.
  275. login:
  276.   sleep 2
  277.   send \n
  278.   wait ogin: 20
  279.   if $errlvl != 0 goto login_trouble
  280.   print got the login prompt, OK
  281.   # replace 'zenon' below with your remote login username
  282.   sleep 2
  283.   send \n
  284. # I don't know why I had to add the extra "\n" before sending my login name,
  285. # but otherwise it did not work.
  286.   sleep 2
  287.   send zenon\n
  288.   print sent 'zenon', waiting for 'password' ...
  289.  
  290.   wait ord: 30
  291.   if $errlvl != 0 goto password_trouble
  292.   # replace 'blablabla' below with your remote password
  293.   send blablabla\r
  294.  
  295.   # We are now logged in, probably.
  296. loggedin:
  297.   # Substitute YOUR shell prompt below (mine is zenon@netcomNN n% )
  298.   wait zenon 15
  299.   if $errlvl != 0 goto prompt_error
  300.  
  301.   # SLiRP makes 10.0.2.2 the IP of the remote machine
  302.   get $remote 10.0.2.2
  303.  
  304.   # Make sure 'slirp' is found on netcom and is executable
  305.   # Here I assume, that the "slirp" has been installed at the remote $HOME/bin
  306.   # directory
  307.   send exec bin/slirp\n
  308.  
  309.   # Set up the CSLIP operating parameters.
  310.   get $mtu 1500
  311.   # Ensure "route add -net default $remote" will be done
  312.   # With the dip-3.3.7n it is simple, just say "default"
  313.   default
  314.  
  315.   # Say hello and fire up!
  316. done:
  317.   print CONNECTED local: $locip ---> remote: $rmtip
  318.   mode CSLIP
  319.   goto exit
  320.  
  321. prompt_error:
  322.   print TIME-OUT waiting for SLIPlogin to fire up...
  323.   goto error
  324.  
  325. login_trouble:
  326.   print Trouble waiting for the Login: prompt...
  327.   goto error
  328.  
  329. password_trouble:
  330.   print Trouble waiting for the Password: prompt...
  331.   goto error
  332.  
  333. modem_trouble:
  334.   print Trouble occurred with the modem...
  335.   goto error
  336.  
  337. dial_trouble:
  338.   print Trouble occurred while dialing...
  339. error:
  340.   print CONNECT FAILED to $remote
  341.   quit
  342.  
  343. exit:
  344.   exit
  345. #### end
  346.  
  347.     COMMENT: There are some entries in the above script which should be
  348.     adapted to your needs:
  349.     - the port name (I use the ttyS2)
  350.     - the port speed (I use 38400)
  351.     - the modem initialization string (I have a WorldBlazer)
  352.     - the POP's phone number (I hope yours is different :)
  353.     - your remote login name
  354.     - your password
  355.     - your prompt (to confirm the successful login)
  356.     - the location of your "slirp" (mine is in $HOME/bin)
  357.  
  358. 3.6        Testing the DIP
  359.  
  360.     You can start the "dip" in a verbose mode with
  361.         % dip -v slirp.dip
  362.  
  363.     The messages printed by the "dip" may suggest some modifications
  364.     to the above "slirp.dip" script.
  365.     
  366.     If everything goes well, you should see the following message
  367.     at the end:
  368.         CONNECTED local: 192.168.1.100 ---> remote: 10.0.2.2
  369.     ... and the "dip" switches to a "daemon"-like execution, returning
  370.     your prompt.
  371.     BTW, to stop the "dip" now, type simple "dip -k", and all the action
  372.     of the "dip" will be canceled, and the modem connection will be
  373.     closed.
  374.  
  375. 4.    Normal operation
  376.  
  377.     A. Start your dip+slirp connection with typing
  378.  
  379.         % dip slirp.dip
  380.  
  381.     B. After successful connection and the "CONNECTED ..." message you have
  382.        the CSLIP connection to the Internet via your remote ISP.
  383.  
  384.        Try first to connect to your remote server with the "telnet":
  385.  
  386.         % telnet 10.0.2.1
  387.  
  388.        Thanks to the ".slirprc" configuration file, this connection should
  389.        activate the "tcsh -l" and you should get the remote login.
  390.        Typing "ps" you may see the following output:
  391.          6019 s0 S     0:13 slirp
  392.          6075 sb IW    0:00 -/usr/bin/tcsh (tcsh)
  393.         16721 t6 R     0:00 ps
  394.  
  395.  
  396.     C. You can exit from the above telnet connection, or try from another
  397.        virtual terminal (or X shell-window) the ftp connection:
  398.         % ftp 198.86.40.81
  399.  
  400.        After the successful (?) anonymous connection you may discover, that
  401.        you are ... at the "sunsite.unc.edu", Linux-archive site.
  402.  
  403.        If you got so far, you may start admiring the power of the dip+slirp
  404.        connection: you are on the NET.
  405.  
  406.        Disconnect from the "sunsite" ASAP, coming back to your "yourhost"
  407.        system.
  408.        Now, the question comes:
  409.  
  410.         Can we do simply "ftp sunsite.unc.edu" ?
  411.  
  412.        Not before activating the DNS (Domain Name Server).
  413.  
  414.     You may want to quit from the CSLIP at this moment:
  415.     From your local prompt type
  416.  
  417.         % dip -k
  418.  
  419. 4.1        Adding a DNS capability
  420.  
  421.     Apparently, your remote ISP has the DNS service (otherwise you would
  422.     not be able to use the Internet connections in a reasonable way).
  423.     Connect to the remote server once again, with the "dip slirp.dip"
  424.     and "telnet 10.0.2.1", and read the file "/etc/resolv.conf".
  425.  
  426.     You should see a few lines like
  427.         nameserver  <IP-address>
  428.     where the <IP-address> will have a specific value.
  429.  
  430.     Copy at least one of those lines into your "/etc/resolv.conf" file
  431.     on your local Linux system.
  432.  
  433.     Now, come back to this local system (without breaking the
  434.     dip+slirp connection), and test if the DNS service works.
  435.     Type
  436.         % dnsquery sunsite.unc.edu
  437.  
  438.     If the output will inform about the sunsite's IP address, your
  439.     DNS service is functioning.
  440.  
  441.     Now, you can use utilities like "lynx", "mosaic" and "netscape"
  442.     directly from your Linux box.
  443.  
  444. 5.      Comments
  445.  
  446.     This simplified document was written as a summary of the basic
  447.     dip+slirp installation, rather than as a tutorial.
  448.     The intention was to help the potential CSLIP users with starting
  449.     up.
  450.  
  451.     Therefore, if you see any obvious bugs in the above text, please
  452.     let me know.
  453.     After a while I would like to place this text as a mini-HOWTO
  454.     document. For the time being it is available at my ftp directory at
  455.  
  456.         ftp.netcom.com:/pub/ze/zenon/linux/DipSlirpCSLIP/
  457.  
  458.     I want to thank the authors of the "dip" and "slirp" utilities
  459.     for the wonderful utilities. I am impressed and grateful.
  460.  
  461.         Zenon Fortuna    (zenon@netcom.com)
  462.