
By
Tom Yager
With the advent of the high-speed modem--most recently with
the 28.8 kilobit-per-second speed--we entered a new era in
telecommunications. Now, over an ordinary phone line, we can
link distant systems at about half the speed of a leased line but
for as little as 10% of the cost. This raises some interesting
possibilities, not the least of which is the chance to put your
PC-based UNIX system on the Internet.
The UNIX system provides, among other things, the ability to
automatically establish your Internet connection as your sy
stem
needs it, also known as
demand dialing
. With some
providers this may save you money, but generally you should only
use demand-dialed connections with dedicated Internet accounts.
The more important benefit of demand dialing is the automatic
reestablishment of your Internet link if something should disrupt
it.
PPP, the point-to-point protocol, turns a pair of modems into
a bridge between networks. Once set up, your system listens for
network traffic destined for any remote IP address. If the PPP
link is not active, your system will dial your Internet
provider's modem number. After a short negotiation, your PC
becomes a full-fledged Internet citizen. As long as the link is
live (the modems stay connected), every packet sent to your
system from anywhere on the Internet is passed through the modems
into your machine. Applications cannot distinguish remote
systems accessed through PPP from those on your local network;
it's perfectly transparent.
Your service provider can handle
most of the work of putting
your PC UNIX system on the Internet. It is your provider's job
to assign you an IP address. If you want to put your entire
network on the Internet, you must arrange with your provider to
route multiple IP addresses, one for each connected host. This
catches lots of people by surprise. You might think just
connecting your UNIX host would be enough. It's not, because
your provider's equipment routes packets for only those systems
you've paid to connect.
When you arrange for your address assignment, keep in mind that
the Internet, unlike the universe, is a finite space. Resources,
specifically precious IP addresses, are getting scarce. If
you're connecting an entire LAN to the Internet, think ahead a
year or so to the maximum number of hosts you expect to link.
The standard in the early days was to carve out a 254-host block
of Class C addresses for every site. If you can live with a
smaller subnet--my own domain, maxx.net, is assigned a six-host
block--you'll help keep
the Internet open to more new users.
If you do pay to route multiple systems, a UNIX host is a
perfect gateway. Maxx, my UnixWare system, is a gateway for six
machines in my lab. FastLane Communications (my Internet
service provider) carved out six addresses--from its assigned
pool--which are all mine.
Systems trying to reach yours from the Internet need to be
able to translate your host's name to its assigned IP address.
In the next column I'll describe the process of setting up Domain
Name Service (DNS) at your site. To start, your provider can add
your hosts to its name server, so you don't need to run a DNS
server of your own.
Basic Setup
While PPP itself is a well-established standard, every UNIX
vendor handles setup and configuration differently. They differ
enough in their approaches that the best I can do is present a
specific case--Novell UnixWare--and leave you to research your
system's PPP support on your own.
You can set up PPP without modems. In a pinc
h, you can use it
to create a network connection between two systems using only a
serial cable. If you're using a modem, you'll save yourself a
lot of time and hassle if you make sure your modem is working
properly first. UnixWare requires that you create an entry for
your Internet provider's system in your UUCP configuration
tables. The modem's serial port must be registered and active
under the System Access Facility even though you only dial
out.
UnixWare's ``sysadm'' shell will help you set these things up.
You'll also find some X Window System point-and-click tools.
Like me, you may prefer to hack up some of the files,
particularly those in
/etc/uucp
, by hand. At the
very least, check the automated tools' changes. I've had
UnixWare's tools create double entries in the port monitor
tables, creating havoc with my modem pool. All the more reason
to understand your system at as deep a level as you can.
Your Internet provider's equipment has a text protocol it uses
to greet,
collect a username and password, and then report the
connection active. You need to document this protocol and turn
it into a chat script. You should only have to carry the script
as far as the password; PPP's own negotiating process takes over
from there. If you've written UUCP chat scripts before, then you
understand how this works. Otherwise, think of it simply as a
``you say, I say, you say...'' sequence. Consider the following
Internet provider chat script lifted straight from Maxx's
/etc/uucp/Systems
file:
fastlane Any V34PPP 110 5551212 ogin:-\r-ogin: fred ssword: bonehead
The provider's name, the acceptable time to make an outgoing
call and the modem class (from
/etc/uucp/Devices
)
are the first three entries. The next entry (110) is the serial
port speed. The Equinox SuperSerial card I use to drive Maxx's
modems aliases useless baud rates to higher rates (57,600 and up)
not supported by System V's limited speed table. The next entry
is the phone
number, and then the chat script takes over.
Note that a cracker could use data in the
Systems
file to make your life lots more interesting. Make sure all the
configuration files in
/etc/uucp
are heavily
protected; only the ``uucp'' user and group should have
any
access to these files.
After you've set up
Systems
and other UUCP
configuration files you should be able to use
cu
fastlane
(of course, use a system name descriptive of your
provider) to make a connection. This isn't a PPP link yet, but
if your system dials out and connects to your provider's host
you've got half the battle won. Note that
cu
won't
run the chat script, either. You'll have to wait a few steps
before you can check the chat.
UnixWare provides a handy script named
/usr/sbin/pppconf
that asks all the right questions.
You need to have a working UUCP entry for your provider before
you run the script. For outgoing connections,
use the
pppconf
script to add a PPP host. You'll be
prompted for IP addresses for both sides of the connection, local
and remote. Your provider will give you these.
As is common with other commercial SVR4 Unix offerings,
UnixWare cannot deal with accounts that have floating IP
addresses. The local and remote addresses must be known in
advance. Although, PPP has the ability to negotiate these
addresses, UnixWare's PPP implementation does not use this
feature. Linux is one example of an operating system which
can
deal with floating IP addresses, but then Linux
doesn't yet dial on demand (when I checked last).
There are a number of parameters that govern how PPP behaves.
For instance, it has the ability to compress data for greater
throughput in a given time. You can also tune packet size and
other parameters. Those parameters that matter to your provider
should be part of the information they give you. If you don't
get this information, run with the defaults and ask
your provider
for details if performance seems poor.
Make the Link
If you've done all this setup correctly--and you've lived a
clean life up to now--you should be ready to go on the air. You
have to reboot your system first because UnixWare initializes all
your PPP parameters at boot time. (That's why it can't support
dynamic IP addresses.)
UnixWare automatically sets up your PPP link as your default
gateway. What this does is forward every packet destined outside
your local network to the Internet via PPP. If your PPP link will
rise and fall under normal operation, you may need to create a
script that undefines this gateway. If the gateway is defined
but the PPP link is down, you may find your network bogs down. I
created a couple of simple scripts that let me raise and lower
the link at will:
#! /bin/sh
# @(#) pppup: set up PPP connection
ifconfig ppp0 up
route add default pppgateway 1
#! /bin/sh
# @(#) pppdown: tear down PPP connection
route delete default pppga
teway
ifconfig ppp0 down
The
pppgateway
is an entry in
/etc/hosts
that identifies the IP address of the
remote side of the link (your Internet service provider).
Just raising the link as shown above (UnixWare will raise it
at boot time unless you remove the initialization code) isn't
enough to make your system dial out. That requires outbound
traffic. A simple
ping
destined for some remote
host will do. If you want to keep your link active you should
add a
cron
-table entry that performs a one-packet
ping
to your provider's host. The equipment your
provider uses, and perhaps your own modem, may time out if
there's no traffic for a period of time.
If you're not exporting any services (like FTP or HTTP) to the
Internet, it may not matter that your link isn't always up. If
you want electronic mail delivered directly to your host you'll
also probably want to keep your link hot. Just keep in mind that
demand dialing wo
rks only for
outbound
packets. Your
system can't know if there is traffic intended for it unless the
link is live.
Next month I'll cover the process of setting up a Domain Name
Service server on your system. As always, thanks for reading.
|