home *** CD-ROM | disk | FTP | other *** search
-
- SLIP/PPP EMULATOR HOWTO
-
- version 3.0 (updated 8/7/97) by Irish
-
- This document will describe how to get your Linux box to connect to a
- generic site via a SLIP/PPP emulator, such as SLiRP or TIA. I take no
- responsibility for your use of this information, but corrections are
- welcome.
-
- I will not attempt to describe all that can be done over this
- connection once established, but I will refer you to other documents
- or sites that will contain the relevant information.
-
- That done, let's do it!
-
-
- _________________________________________________________________
-
- * 1.0 How does an emulator work?
-
- It is important to understand how a SLIP/PPP emulator works in
- general, to be aware of its limitations. First, you do not need to
- install the emulator on your machine. It runs on your remote host
- only. What you need on your machine is the TCP/IP and SLIP or PPP
- protocols installed in your kernel (more on that in a bit), and
- some clients.
-
- Here's what happens: you send network requests from your machine
- to your remote host over the SLIP/PPP link. The emulator grabs
- them and sends them out to the Net at large. Then, incoming data
- is sent back from the Net to your account on the remote host,
- where the emulator grabs it and sends it back over the SLIP/PPP
- link to your machine. So, to the Net it appears as if you are
- working out of your account on the remote host, but to you it
- looks like you are really connected right to the Net.
-
- As you can see, this can confuse stuff that is incoming from the
- Net. For example, talk doesn't work via an emulator, because the
- incoming talk request tries to start the remote hosts talk daemon,
- not yours.
-
- The other big difference between an emulator and real SLIP/PPP is
- you are NOT assigned your own IP address; remember, you are only
- converting a dialup account to a SLIP/PPP connection.
-
- * 1.1 What is TIA?
-
- The Intenet Adaptor was written by the fine folks at
- marketplace.com. They have quit working on it now, and consider it
- a 'mature' product. The last version is 2.05; if you are going to
- use TIA, please get this version. !NOTE! At last report, only site
- licenses are available now.
-
- * 1.2 What is SLiRP? This is a freeware application, covered under
- the GNU Public License. It is out of beta, and is real stable. It
- sports a few more features than TIA, and is (reportedly) easier on
- host resources. Available at fine Linux FTP sites everywhere.
-
- * 1.3 What about Term?
-
- If you don't have root access to your machine for one reason or
- another, and you can't persuade someone who does to install SLIP
- and dip, then you won't have much choice except to use Term. If
- you want to know more about Term, please read the HOWTO on
- Sunsite.
-
- * 1.4 What about real SLIP/PPP?
-
- Hey, a lot of places are offering real SLIP/PPP at reasonable
- prices for non-dedicated dialup nowadays. If you can afford it, or
- feel the need, go for it. The Real Thing is always better than
- emulation. However, one of the things an emulator provides is
- security; it acts as an impregnable firewall, and with it you are
- pretty much as bulletproof as your provider is. You'll pay for it
- though, emulation is slower, and does not fully support every
- protocol. Still and all, emulation is good enough for most people,
- and is a fine way to connect to the Net.
-
-
- _________________________________________________________________
-
- Enough already! How do I set it up?
-
- Alright hotrod, we're getting there, but first there's some info you
- need to get, and a couple of explanations.
-
- First, you need to get the IP address of your provider, if you don't
- have it already. You can do this by typing 'who' at a shell prompt
- there, or reading their /etc/hosts, or even just asking them. While
- your getting that, get the IP address of the POP/SMTP host and the
- NNTP server (if you don't know what those are, trust me and ask for
- them anyway, you'll need 'em).
-
- Next, let me explain quickly about hostnames and domain names. The
- hostname is the first part of a machines name, the domain is the rest
- of it. Like this: hostname.domain.name (a four parter would be
- hostname.do.main.name). Together, they make a Fully Qualified Domain
- Name (FQDN).
-
- The name of your Linux machine is stored in /etc/HOSTNAME, and yes,
- you can change it. In fact, please do (if you're using Slackware,
- it'll be "darkstar.frop.org" by default). Just edit the /etc/HOSTNAME
- file to be whatever you want - remember, if you are using an emulator,
- you are essentially invisible to the Net at large, so you can be
- creative. However, if you plan to get a real SLIP/PPP connection down
- the road sometime, you'll probably want to conform to being a sub-host
- of your provider. For example, if your provider is
- "info.superhiway.com", the domain is "superhiway.com" and the hostname
- is "info". So you could either be "offramp.info.superhiway.com" or
- just "offramp.superhiway.com". Either would work, and in either case
- your hostname is "offramp".
-
- * 2.0 Preparing your Linux machine
-
- In a nutshell, here's what's required. I'll explain the first
- three in detail.
-
-
- + -> Compile your kernel to include SLIP and TCP/IP
- + -> Edit some files in /etc
- + -> Install and configure dip
- + -> Install pppd (optional, for PPP only)
- You will also need to get an emulator binary appropriate for your
- remote host and install it. SLiRP is available at Sunsite and
- other fine Linux FTP sites. All of the relevant info for TIA is
- available at TIAs home site.
-
- That's it! Let's get started.
-
- * 2.1 Compiling your kernel
-
- If you have never done this, you should. And you should read the
- FAQ first, but don't worry, it's easy. If you want, you can e-mail
- me and I'll help.
-
- I'll assume that you have here, for the sake of brevity. When you
- 'make config', look for "Network Devices". Say 'y', of course,
- then say 'y' to SLIP, CSLIP, (or PPP) and TCP/IP and 'n' to
- everything else, unless you have ethercards or need some other
- protocol for something else. _If you don't do this, it won't work!
- _Finish compiling and installing the new kernel, then,
-
- * 2.2 Edit some files in /etc
-
- These files will set up your routes to your remote host. /etc is
- the directory for system configurations. Replace everything in
- double quotes with the appropriate values, naturally (but don't
- include the quotes - they are there for reference). There are
- three files you need to edit, they are:
-
- + /etc/hosts:
-
- #The next line is required to be EXACTLY as below.
- 127.0.0.1 localhost
-
- #Note at the end of the next two entries the hostname is repeated.
- #This abbreviation is an alias, and is required for the first entry.
- #If you're on a LAN, you'll need to substitute your IP address for
- #the first one below.
- 192.0.2.1 "yourhostname.domain.name yourhostname"
- "XXX.XXX.XX.XX" "remotehostname.domain.name remotehostname"
- + /etc/host.conf:
-
- order hosts, bind
- multi on
- + /etc/resolv.conf:
-
- domain "yourdomain.name"
- #The next line usually uses the same remote IP address that's in /etc/hosts
- nameserver "XXX.XXX.XX.XX"
- + To use an NNTPserver, put this line in your
- /etc/profile:
-
- export NNTPSERVER="remote.hosts.nntpservername"
-
- * 2.3.1 DIP
-
- DIP (Dialup Internet Protocol) is what you will use to dial up the
- remote host, start the emulator, and convert the line to SLIP/PPP.
- It comes in the "N" set of Slackware, along with a bunch of
- clients and utilities, some of which you may want to install also
- =). It is also available at Sunsite in an individual tar file
-
- Once you have it installed, you will need to have a dip script,
- Here's a sample, just plug in the appropriate stuff where the
- double quotes are (but don't include the quotes, they are there
- for reference).
-
- ----------CUT HERE--------------------------------
-
-
- main:
- get $local "yourhostname.domain.name"
- get $remote "remotehostname.domain.name"
-
- #Your port here
- port cua"?"
-
- #Use 115200 for 28.8 modems
- speed 57400
- reset
-
- #don't use spaces in your AT command string!
- init AT "string of commands"
- wait OK 5
-
- # This will redial. If it doesn't work, play with the wait time (listen
- # to your modem). If it still doesn't work, mail me.
- # _See also; the note at the bottom of the script re: error codes._
-
- dial:
- dial "phonenumber"
- print Dialing...
- if $errlvl != 0 goto error
-
- #You may need to change this wait time to suit your modem
- wait BUSY 20
- if $errlvl == 0 goto dial
-
- login:
- print Connected and Logging in...
-
- #This wait and send gets me past my hosts Annex. _Change for your site!_
- wait ==> 60
- send 4\n
- wait ogin: 60
- if $errlvl != 0 goto login_error1
- send "LOGIN"\n
- wait assword: 60
- if $errlvl != 0 goto login_error2
- send "PASSWORD"\n
-
- loggedin:
- wait "SYSTEM PROMPT" 60
- if $errlvl != 0 goto shell_error
- print Logged in!
- send "emulator startup command"\n
- wait "emulator startup response" 60
- if $errlvl != 0 goto emu_error
-
- #The recommended mtu setting is 1500, but this is faster interactively.
- #Ftp may be slower, so adjust to taste.
- get $mtu 296
- default
-
- done:
- print CONNECTED to $remote with address $rmtip
- mode CSLIP
- goto exit
-
- error:
- print Dialing Error
-
- login_error1:
- print No Login
-
- login_error2:
- print No Password prompt
-
- shell_error:
- print No shell prompt
-
- emu_error:
- There was a problem starting the emulator
-
- exit:
-
- #This will error out when the -v flag is used, but work when run normally
- #(ends dip at a local prompt).
- \r
- -------------CUT HERE-----------------------------
-
-
-
- * 2.3.2 Dip notes Newer versions of dip don't return modem status
- codes (BUSY, NO CONNECT, etc.), they use numbers instead. Here's a
- table:
-
- + 0 = OK
- + 1 = CONNECT
- + 2 = ERROR
- + 3 = BUSY
- + 4 = NO CARRIER
-
- This would make your dial section look like this:
-
- dial:
- dial "phonenumber"
- print Dialing...
- if $errlvl != 0 goto error
- wait 1 20
- if $errlvl != 1 goto dial
-
-
- Thanks to Lee Olds (lee@eskimo.com) for that bit.
-
- \n = newline, \r = carriage return. You may require one or the
- other (or both) in the appropriate places. If the ones provided
- don't work, experiment.
-
- A word about the form of the wait and sends. If it isn't clear by
- the example, here's what's happening:
-
- wait ogin: 60
- (the script will wait for the remote to send 'ogin:' for 60
- seconds. When it gets it, the script advances. If it doesn't get
- it, it will advance after the timeout of 60 seconds.)
- if $errlvl != 0 goto login_error1 (this whole line is optional)
- (if the script is advancing because it got what it was waiting for,
- this gets skipped. if the script is advancing because it timed out,
- o it will go to where you tell it to ('login_error1' in this case)
- send "LOGIN"\n
- (DIP will send 'LOGIN' and a newline)
-
-
- You can put in sleep statements if you need to, like this: "sleep
- 10" This will make the script pause for 10 seconds.
-
- After editing this file, rename it, say, remote.dip and put it in
- /root. Then, as root, run 'dip remote'. Use the -v flag the first
- time to debug it ('dip -v remote'), this will show you all the
- steps dip takes.
-
- Dip will only run as root, but there is a way to make it run from
- a user account. For now, if you need this info, ask. I may include
- it in this file later if enough people want it.
-
- If dip errors out right away, try removing the comments from the
- script.
-
- * 2.4 PPP
-
- The above gets you rolling with CSLIP, which is really fine most
- of the time. It truly is easy to get working, since the protocol
- is supported at the kernel level - just make sure it's in there
- and it works.
-
- However, some of you will want PPP, for what reasons, only you can
- say. I'm not going to tell you how to set it up here, there's a
- whole other HOWTO written just for that. What I will do is tell
- you what the gotchas are when using PPP with an emulator.
-
- First, the latest version of DIP says you can use it to start PPP,
- and you can, BUT it only starts the PPP daemon - no flags,
- nothing. So if you want to use DIP to start PPP, be sure to put
- all of your startup info in the /etc/ppp/options file, or it won't
- work.
-
- Speaking of the options file, one of the things that MUST be in
- there no matter how you start pppd is this:
- '192.0.2.1:XXX.XXX.XX.XX'. What this is is
- 'localIPaddress:remoteIPaddress'. You need it there because
- normally pppd can fill in the blank itself, but fails when
- connecting to an emulator.
-
- Be sure to get the latest and greatest pppd package. It seems
- there were a few versions recently that had a bit of trouble.
-
- Lastly, unless you have a good reason to use PPP, or just want to
- learn how it works, you really don't need it. I have tried them
- both, and didn't notice any performance difference with the
- standard set of clients. Of course, Your Mileage May Vary. :)
-
-
- _________________________________________________________________
-
- * 3.0 Now what?
-
- Hey, if all went well, you are now connected to the Net! Try a
- 'telnet remotehostname' (remember that abbreviation in your hosts
- file?). You should get the remotes telnet login prompt. Go on, try
- it! You can now telnet/FTP/etc. anywhere on the Net from your
- local machine. How? Your machine is using the remote as a
- nameserver to resolve addresses (resolv.conf). Experiment, find
- out what works and what doesn't.
-
- You will not be able to use services that are not provided already
- on your remote host! For example, if your server doesn't allow
- telnets, chances are you can't do it either. Why? Because the
- emulator is only re-directing what is already available.
-
- * 3.1 Mail
-
- The obvious text based solution is Pine, you can get it from The
- University of Washington.
-
- My pick for 'Best Mail Reader, X Based' has to go to XFmail. This
- has now gotten out of beta, and rocks. Easy to install; requires
- no local mail system be installed (but will work with local
- spools) because it has POP built in - no more popclient/fetchpop!
- Easy to use; totally customizable from the GUI. Also supports
- MIME. Get it from The XFmail Homesite.
-
- * 3.2 News
-
- The text based News Reader SLRN is fairly simple to install and
- use. It is a true NNTP newsreader, which means _no local news
- transport is required_ to make it work (you don't have install
- Cnews or INN). It does require that you have access to an
- NNTPserver, naturally, but most ISPs have this. It is text based,
- but has color and mouse support, and runs fine in an rxvt window.
-
- The X based News Reader KNews is almost perfect. As with SLRN
- above, no local transport is required, but an NNTP server is. It's
- at least worth a look.
-
- * 3.3 Mosaic/Netscape
-
- Obviously, you will need to have X running for this to work, but
- it's a simple matter of FTPing the binary, unpacking it, and
- installing it.
-
-
- _________________________________________________________________
-
- * 4.0 Misc.
-
- If I've left anything out, or you still have questions, I read my
- mail daily. This information gets updated fairly regularly, so
- keep checking back every so often (I'll change the version
- numbers). Naturally, the more you contribute, the more info will
- be included here, so don't hesitate to tell me about whatever you
- have to offer.
-
- If you would like some help, or are having trouble with your
- setup, I'll help _but you must send me the following info:_ 1. A
- copy of your three /etc files. 2. A copy of your script output,
- run with the -v flag (_please_ remove your password from this!)
- Even if you don't have anything to contribute, but used this info
- sucsessfully, PLEASE MAIL ME. I want to know how useful this
- really is.
- * 4.1 References
-
- Sunsite is the FTP site sunsite.unc.edu, a veritable plethora of
- everything Linux, including almost every FAQ, HOWTO, and README
- written.
-
- Marketplace.com is the home of TIA, the only place it is
- available. I am Irish, irish@eskimo.com, available for comment on
- Linux almost everyday, when I'm not petting my cat or hugging my
- kid.
-
-
-
- This HOWTO is available in the following places:
- + http://www.eskimo.com/~irish
- + ftp://ftp.eskimo.com/u/i/irish
- + ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/mini/TIA
-