1040 lines
44 KiB
HTML
1040 lines
44 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
<HTML>
|
|
<HEAD>
|
|
<META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
|
|
<TITLE>Linux Networking-HOWTO (Previously the Net-3 Howto): Using common PC hardware</TITLE>
|
|
<LINK HREF="NET3-4-HOWTO-8.html" REL=next>
|
|
<LINK HREF="NET3-4-HOWTO-6.html" REL=previous>
|
|
<LINK HREF="NET3-4-HOWTO.html#toc7" REL=contents>
|
|
</HEAD>
|
|
<BODY>
|
|
<A HREF="NET3-4-HOWTO-8.html">Next</A>
|
|
<A HREF="NET3-4-HOWTO-6.html">Previous</A>
|
|
<A HREF="NET3-4-HOWTO.html#toc7">Contents</A>
|
|
<HR>
|
|
<H2><A NAME="s7">7. Using common PC hardware</A></H2>
|
|
|
|
<P>
|
|
<H2><A NAME="ss7.1">7.1 ISDN</A>
|
|
</H2>
|
|
|
|
<P>The Integrated Services Digital Network (ISDN) is a series of standards
|
|
that specify a general purpose switched digital data network. An ISDN `call'
|
|
creates a synchronous point to point data service to the destination. ISDN
|
|
is generally delivered on a high speed link that is broken down into a number
|
|
of discrete channels. There are two different types of channels, the
|
|
`B Channels' which will actually carry the user data and a single channel
|
|
called the `D channel' which is used to send control information to the ISDN
|
|
exchange to establish calls and other functions. In Australia for example,
|
|
ISDN may be delivered on a 2Mbps link that is broken into 30 discrete 64kbps
|
|
B channels with one 64kbps D channel. Any number of channels may be used at a
|
|
time and in any combination. You could for example establish 30 separate calls
|
|
to 30 different destinations at 64kbps each, or you could establish 15 calls
|
|
to 15 different destinations at 128kbps each (two channels used per call), or
|
|
just a small number of calls and leave the rest idle. A channel may be used
|
|
for either incoming or outgoing calls. The original intention of ISDN was to
|
|
allow Telecommunications companies to provide a single data service which could
|
|
deliver either telephone (via digitised voice) or data services to your home
|
|
or business without requiring you to make any special configuration changes.
|
|
<P>There are a few different ways to connect your computer to an ISDN service.
|
|
One way is to use a device called a `Terminal Adaptor' which plugs into the
|
|
Network Terminating Unit that you telecommunications carrier will have
|
|
installed when you got your ISDN service and presents a number of serial
|
|
interfaces. One of those interfaces is used to enter commands to establish
|
|
calls and configuration and the others are actually connected to the network
|
|
devices that will use the data circuits when they are established. Linux will
|
|
work in this sort of configuration without modification, you just treat
|
|
the port on the Terminal Adaptor like you would treat any other serial device.
|
|
Another way, which is the way the kernel ISDN support is designed for allows
|
|
you to install an ISDN card into your Linux machine and then has your Linux
|
|
software handle the protocols and make the calls itself.
|
|
<P><B>Kernel Compile Options</B>:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
ISDN subsystem --->
|
|
<*> ISDN support
|
|
[ ] Support synchronous PPP
|
|
[ ] Support audio via ISDN
|
|
< > ICN 2B and 4B support
|
|
< > PCBIT-D support
|
|
< > Teles/NICCY1016PC/Creatix support
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>The Linux implementation of ISDN supports a number of different types of
|
|
internal ISDN cards. These are those listed in the kernel configuration
|
|
options:
|
|
|
|
<UL>
|
|
<LI>ICN 2B and 4B</LI>
|
|
<LI>Octal PCBIT-D</LI>
|
|
<LI>Teles ISDN-cards and compatibles</LI>
|
|
</UL>
|
|
|
|
<P>Some of these cards require software to be downloaded to them to make them
|
|
operational. There is a separate utility to do this with.
|
|
<P>Full details on how to configure the Linux ISDN support is available from
|
|
the <CODE>/usr/src/linux/Documentation/isdn/</CODE> directory and an FAQ dedicated
|
|
to <EM>isdn4linux</EM> is available at
|
|
<A HREF="http://www.lrz-muenchen.de/~ui161ab/www/isdn/">www.lrz-muenchen.de</A>.
|
|
(You can click on the english flag to get an english version).
|
|
<P><B>A note about PPP</B>. The PPP suite of protocols will operate over
|
|
either asynchronous or synchronous serial lines. The commonly distributed
|
|
PPP daemon for Linux `<EM>pppd</EM>' supports only asynchronous mode. If you wish
|
|
to run the PPP protocols over your ISDN service you need a specially modified
|
|
version. Details of where to find it are available in the documentation
|
|
referred to above.
|
|
<H2><A NAME="ss7.2">7.2 PLIP for Linux-2.0</A>
|
|
</H2>
|
|
|
|
<P>PLIP device names are `<CODE>plip0</CODE>', `<CODE>plip1</CODE> and <CODE>plip2</CODE>.
|
|
<P><B>Kernel Compile Options</B>:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Network device support --->
|
|
<*> PLIP (parallel port) support
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P><EM>plip</EM> (Parallel Line IP), is like SLIP, in that it is used for
|
|
providing a <EM>point to point</EM> network connection between two machines,
|
|
except that it is designed to use the parallel printer ports on your machine
|
|
instead of the serial ports (a cabling diagram in included in the cabling
|
|
diagram section later in this document). Because it is possible to transfer
|
|
more than one bit at a time with a parallel port, it is possible to attain
|
|
higher speeds with the <EM>plip</EM> interface than with a standard serial device.
|
|
In addition, even the simplest of parallel ports, printer ports, can be used
|
|
in lieu of you having to purchase comparatively expensive 16550AFN UART's for
|
|
your serial ports. PLIP uses a lot of CPU compared to a serial link and is
|
|
most certainly not a good option if you can obtain some cheap ethernet cards,
|
|
but it will work when nothing else is available and will work quite well.
|
|
You should expect a data transfer rate of about 20 kilobytes per second when
|
|
a link is running well.
|
|
<P>The PLIP device drivers competes with the parallel device driver for the
|
|
parallel port hardware. If you wish to use both drivers then you should
|
|
compile them both as modules to ensure that you are able to select which
|
|
port you want to use for PLIP and which ports you want for the printer driver.
|
|
Refer to the ``Mudules mini-HOWTO'' for more
|
|
information on kernel module configuration.
|
|
<P>Please note that some laptops use chipsets that will not work with PLIP
|
|
because they do not allow some combinations of signals that PLIP relies on,
|
|
that printers don't use.
|
|
<P>The Linux <EM>plip</EM> interface is compatible with the <EM>Crynwyr Packet
|
|
Driver PLIP</EM> and this will mean that you can connect your Linux machine
|
|
to a DOS machine running any other sort of tcp/ip software via <EM>plip</EM>.
|
|
<P>In the 2.0.* series kernel the plip devices are mapped to i/o port and IRQ as
|
|
follows:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
device i/o IRQ
|
|
------ ----- ---
|
|
plip0 0x3bc 5
|
|
plip1 0x378 7
|
|
plip2 0x278 2
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>If your parallel ports don't match any of the above combinations then you
|
|
can change the IRQ of a port using the <EM>ifconfig</EM> command using the
|
|
`<CODE>irq</CODE>' parameter (be sure to enable IRQ's on your printer ports in your
|
|
ROM BIOS if it supports this option). As an alternative, you
|
|
can specify ``<CODE>io=</CODE>'' annd ``<CODE>irq=</CODE>'' options on the <EM>insmod</EM>
|
|
command line, if you use modules. For example:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
root# insmod plip.o io=0x288 irq=5
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>PLIP operation is controlled by two timeouts, whose default values
|
|
are probably ok in most cases. You will probably need to increase them
|
|
if you have an especially slow computer, in which case the timers to
|
|
increase are actually on the <B>other</B> computer. A program called
|
|
<EM>plipconfig</EM> exists that allows you to change these timer settings
|
|
without recompiling your kernel. It is supplied with many Linux
|
|
distributions.
|
|
<P>To configure a <EM>plip</EM> interface, you will need to invoke the
|
|
following commands (or <B>add</B> them to your initialization scripts):
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
root# /sbin/ifconfig plip1 localplip pointopoint remoteplip
|
|
root# /sbin/route add remoteplip plip1
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>Here, the port being used is the one at I/O address 0x378;
|
|
<EM>localplip</EM> amd <EM>remoteplip</EM> are the names or IP addresses used
|
|
over the PLIP cable. I personally keep them in my <CODE>/etc/hosts</CODE>
|
|
database:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# plip entries
|
|
192.168.3.1 localplip
|
|
192.168.3.2 remoteplip
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>The <EM>pointopoint</EM> parameter has the same meaning as for SLIP,
|
|
in that it specifies the address of the machine at the other end of the
|
|
link.
|
|
<P>In almost all respects you can treat a <EM>plip</EM> interface as though it
|
|
were a <EM>SLIP</EM> interface, except that neither <EM>dip</EM> nor
|
|
<EM>slattach</EM> need be, nor can be, used.
|
|
<P>Further information on PLIP may be obtained from the
|
|
``PLIP mini-HOWTO''.
|
|
<H2><A NAME="ss7.3">7.3 PLIP for Linux-2.2</A>
|
|
</H2>
|
|
|
|
<P>During development of the 2.1 kernel versions, support for the
|
|
parallel port was changed to a better setup.
|
|
<P><B>Kernel Compile Options</B>:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
General setup --->
|
|
[*] Parallel port support
|
|
Network device support --->
|
|
<*> PLIP (parallel port) support
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>The new code for PLIP behaves like the old one (use the same <EM>ifconfig</EM>
|
|
and <EM>route</EM> commands as in the previous section, but initialization
|
|
of the device is different due to the advanced parallel port support.
|
|
<P>The ``first'' PLIP device is always called ``plip0'', where first
|
|
is the first device detected by the system, similarly to what happens
|
|
for Ethernet devices. The actual parallel port being used is one of
|
|
the available ports, as shown in <CODE>/proc/parport</CODE>. For example,
|
|
if you have only one parallel port, you'll only have a directory
|
|
called <CODE>/proc/parport/0</CODE>.
|
|
<P>If your kernel didn't detect the IRQ number used by your port,
|
|
``<CODE>insmod plip</CODE>'' will fail; in this case just write the right
|
|
number to <CODE>/proc/parport/0/irq</CODE> and reinvoke <EM>insmod</EM>.
|
|
<P>Complete information about parallel port management is available in
|
|
the file <CODE>Documentation/parport.txt</CODE>, part of your kernel sources.
|
|
<H2><A NAME="ss7.4">7.4 PPP</A>
|
|
</H2>
|
|
|
|
<P>PPP devices names are `<CODE>ppp0</CODE>', `<CODE>ppp1</CODE>, etc. Devices are numbered
|
|
sequentially with the first device configured receiving `<CODE>0</CODE>'.
|
|
<P><B>Kernel Compile Options</B>:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Networking options --->
|
|
<*> PPP (point-to-point) support
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>PPP configuration is covered in detail in the
|
|
<A HREF="PPP-HOWTO.html">PPP-HOWTO</A>.
|
|
<H3>Maintaining a permanent connection to the net with <EM>pppd</EM>.</H3>
|
|
|
|
<P>If you are fortunate enough to have a semi permanent connection to the net and
|
|
would like to have your machine automatically redial your PPP connection if it
|
|
is lost then here is a simple trick to do so.
|
|
<P>Configure PPP such that it can be started by the <CODE>root</CODE> user by issuing the
|
|
command:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# pppd
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<B>Be sure</B> that you have the `<CODE>-detach</CODE>' option configured in your
|
|
<CODE>/etc/ppp/options</CODE> file. Then, insert the following line into your
|
|
<CODE>/etc/inittab</CODE> file, down with the <EM>getty</EM> definitions:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
pd:23:respawn:/usr/sbin/pppd
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
This will cause the <EM>init</EM> program to spawn and monitor the <EM>pppd</EM>
|
|
program and automatically restart it if it dies.
|
|
<H2><A NAME="ss7.5">7.5 SLIP client</A>
|
|
</H2>
|
|
|
|
<P>SLIP devices are named `<CODE>sl0</CODE>', `<CODE>sl1</CODE>' etc. with the first device
|
|
configured being assigned `<CODE>0</CODE>' and the rest incrementing sequentially
|
|
as they are configured.
|
|
<P><B>Kernel Compile Options</B>:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Network device support --->
|
|
[*] Network device support
|
|
<*> SLIP (serial line) support
|
|
[ ] CSLIP compressed headers
|
|
[ ] Keepalive and linefill
|
|
[ ] Six bit SLIP encapsulation
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>SLIP (Serial Line Internet Protocol) allows you to use tcp/ip over a serial
|
|
line, be that a phone line with a dialup modem, or a leased line of some sort.
|
|
Of course to use SLIP you need access to a <EM>SLIP-server</EM> in your
|
|
area. Many universities and businesses provide SLIP access all over the
|
|
world.
|
|
<P>Slip uses the serial ports on your machine to carry IP datagrams. To do this
|
|
it must take control of the serial device. Slip device names are named
|
|
<EM>sl0</EM>, <EM>sl1</EM> etc. How do these correspond to your serial
|
|
devices ? The networking code uses what is called an <EM>ioctl</EM> (i/o
|
|
control) call to change the serial devices into SLIP devices. There are
|
|
two programs supplied that can do this, they are called <EM>dip</EM> and
|
|
<EM>slattach</EM>
|
|
<H3>dip</H3>
|
|
|
|
<P><EM>dip</EM> (Dialup IP) is a smart program that is able to set the speed of
|
|
the serial device, command your modem to dial the remote end of the link,
|
|
automatically log you into the remote server, search for messages sent to you
|
|
by the server and extract information for them such as your IP address and
|
|
perform the <EM>ioctl</EM> necessary to switch your serial port into
|
|
SLIP mode. <EM>dip</EM> has a powerful scripting ability and it is this
|
|
that you can exploit to automate your logon procedure.
|
|
<P>You can find it at:
|
|
<A HREF="ftp://metalab.unc.edu/pub/Linux/system/Network/serial/dip/dip337o-uri.tgz">metalab.unc.edu</A>.
|
|
<P>To install it, try the following:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
user% tar xvzf dip337o-uri.tgz
|
|
user% cd dip-3.3.7o
|
|
user% vi Makefile
|
|
root# make install
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>The <CODE>Makefile</CODE> assumes the existence of a group called <EM>uucp</EM>,
|
|
but you might like to change this to either <EM>dip</EM> or <EM>SLIP</EM>
|
|
depending on your configuration.
|
|
<H3>slattach</H3>
|
|
|
|
<P><EM>slattach</EM> as contrasted with <EM>dip</EM> is a very simple program,
|
|
that is very easy to use, but does not have the sophistication of <EM>dip</EM>.
|
|
It does not have the scripting ability, all it does is configure your
|
|
serial device as a SLIP device. It assumes you have all the information you
|
|
need and the serial line is established before you invoke it. <EM>slattach</EM>
|
|
is ideal to use where you have a permanent connection to your server, such as
|
|
a physical cable, or a leased line.
|
|
<H3>When do I use which ?</H3>
|
|
|
|
<P>You would use <EM>dip</EM> when your link to the machine that is your SLIP
|
|
server is a dialup modem, or some other temporary link. You would use
|
|
<EM>slattach</EM> when you have a leased line, perhaps a cable, between your
|
|
machine and the server and there is no special action needed to get the link
|
|
working. See section `Permanent Slip connection' for more information.
|
|
<P>Configuring SLIP is much like configuring an Ethernet interface
|
|
(read section `Configuring an ethernet device' above). However there
|
|
are a few key differences.
|
|
<P>First of all, SLIP links are unlike ethernet networks in that there
|
|
is only ever two hosts on the network, one at each end of the
|
|
link. Unlike an ethernet that is available for use as soon are you are
|
|
cabled, with SLIP, depending on the type of link you have, you may
|
|
have to initialize your network connection in some special way.
|
|
<P>If you are using <EM>dip</EM> then this would not normally be done
|
|
at boot time, but at some time later, when you were ready to use the
|
|
link. It is possible to automate this procedure. If you are using
|
|
<EM>slattach</EM> then you will probably want to add a section to your
|
|
<EM>rc.inet1</EM> file. This will be described soon.
|
|
<P>There are two major types of SLIP servers: Dynamic IP address
|
|
servers and static IP address servers. Almost every SLIP server will
|
|
prompt you to login using a username and password when dialing
|
|
in. <EM>dip</EM> can handle logging you in automatically.
|
|
<H3>Static SLIP server with a dialup line and DIP.</H3>
|
|
|
|
<P>A static SLIP server is one in which you have been supplied an IP address
|
|
that is exclusively yours. Each time you connect to the server, you will
|
|
configure your SLIP port with that address. The static SLIP server will
|
|
answer your modem call, possibly prompt you for a username and password,
|
|
and then route any datagrams destined for your address to you via that
|
|
connection. If you have a static server, then you may want to put entries
|
|
for your hostname and IP address (since you know what it will be) into your
|
|
<CODE>/etc/hosts</CODE>. You should also configure some other files such as:
|
|
<CODE>rc.inet2</CODE>, <CODE>host.conf</CODE>, <CODE>resolv.conf</CODE>,
|
|
<CODE>/etc/HOSTNAME</CODE> and <CODE>rc.local</CODE>. Remember that when configuring
|
|
<CODE>rc.inet1</CODE>, you don't need to add any special commands for your SLIP
|
|
connection since it is <EM>dip</EM> that does all of the hard work for you in
|
|
configuring your interface. You will need to give <EM>dip</EM> the appropriate
|
|
information and it will configure the interface for you after commanding the
|
|
modem to establish the call and logging you into your SLIP server.
|
|
<P>If this is how your SLIP server works then you can move to section
|
|
`Using Dip' to learn how to configure <EM>dip</EM> appropriately.
|
|
<H3>Dynamic SLIP server with a dialup line and DIP.</H3>
|
|
|
|
<P>A <EM>dynamic</EM> SLIP server is one which allocates you an IP
|
|
address randomly, from a pool of addresses, each time you logon. This
|
|
means that there is no guarantee that you will have any particular
|
|
address each time, and that address may well be used by someone else
|
|
after you have logged off. The network administrator who configured
|
|
the SLIP server will have assigned a pool of address for the SLIP
|
|
server to use, when the server receives a new incoming call, it finds
|
|
the first unused address, guides the caller through the login process
|
|
and then prints a welcome message that contains the IP address it has
|
|
allocated and will proceed to use that IP address for the duration of
|
|
that call.
|
|
<P>Configuring for this type of server is similar to configuring for a
|
|
static server, except that you must add a step where you obtain the IP
|
|
address that the server has allocated for you and configure your SLIP
|
|
device with that.
|
|
<P>Again, <EM>dip</EM> does the hard work and new versions are smart
|
|
enough to not only log you in, but to also be able to automatically
|
|
read the IP address printed in the welcome message and store it so
|
|
that you can have it configure your SLIP device with it.
|
|
<P>If this is how your SLIP server works then you can move to section
|
|
`Using Dip' to learn how to configure <EM>dip</EM> appropriately.
|
|
<H3>Using DIP.</H3>
|
|
|
|
<P>As explained earlier, <EM>dip</EM> is a powerful program that can simplify
|
|
and automate the process of dialing into the SLIP server, logging you in,
|
|
starting the connection and configuring your SLIP devices with the
|
|
appropriate <EM>ifconfig</EM> and <EM>route</EM> commands.
|
|
<P>Essentially to use <EM>dip</EM> you'll write a `dip script', which
|
|
is basically a list of commands that <EM>dip</EM> understands that
|
|
tell <EM>dip</EM> how to perform each of the actions you want it to
|
|
perform. See <CODE>sample.dip</CODE> that comes supplied with <EM>dip</EM>
|
|
to get an idea of how it works. <EM>dip</EM> is quite a powerful
|
|
program, with many options. Instead of going into all of them here
|
|
you should look at the <EM>man</EM> page, README and sample files that
|
|
will have come with your version of <EM>dip</EM>.
|
|
<P>You may notice that the <CODE>sample.dip</CODE> script assumes that
|
|
you're using a static SLIP server, so you know what your IP address is
|
|
beforehand. For dynamic SLIP servers, the newer versions of
|
|
<EM>dip</EM> include a command you can use to automatically read and
|
|
configure your SLIP device with the IP address that the dynamic server
|
|
allocates for you. The following sample is a modified version of the
|
|
<CODE>sample.dip</CODE> that came supplied with <EM>dip337j-uri.tgz</EM>
|
|
and is probably a good starting point for you. You might like to save
|
|
it as <CODE>/etc/dipscript</CODE> and edit it to suit your configuration:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#
|
|
# sample.dip Dialup IP connection support program.
|
|
#
|
|
# This file (should show) shows how to use the DIP
|
|
# This file should work for Annex type dynamic servers, if you
|
|
# use a static address server then use the sample.dip file that
|
|
# comes as part of the dip337-uri.tgz package.
|
|
#
|
|
#
|
|
# Version: @(#)sample.dip 1.40 07/20/93
|
|
#
|
|
# Author: Fred N. van Kempen, <waltje@uWalt.NL.Mugnet.ORG>
|
|
#
|
|
|
|
main:
|
|
# Next, set up the other side's name and address.
|
|
# My dialin machine is called 'xs4all.hacktic.nl' (== 193.78.33.42)
|
|
get $remote xs4all.hacktic.nl
|
|
# Set netmask on sl0 to 255.255.255.0
|
|
netmask 255.255.255.0
|
|
# Set the desired serial port and speed.
|
|
port cua02
|
|
speed 38400
|
|
|
|
# Reset the modem and terminal line.
|
|
# This seems to cause trouble for some people!
|
|
reset
|
|
|
|
# Note! "Standard" pre-defined "errlevel" values:
|
|
# 0 - OK
|
|
# 1 - CONNECT
|
|
# 2 - ERROR
|
|
#
|
|
# You can change those grep'ping for "addchat()" in *.c...
|
|
|
|
# Prepare for dialing.
|
|
send ATQ0V1E1X4\r
|
|
wait OK 2
|
|
if $errlvl != 0 goto modem_trouble
|
|
dial 555-1234567
|
|
if $errlvl != 1 goto modem_trouble
|
|
|
|
# We are connected. Login to the system.
|
|
login:
|
|
sleep 2
|
|
wait ogin: 20
|
|
if $errlvl != 0 goto login_trouble
|
|
send MYLOGIN\n
|
|
wait ord: 20
|
|
if $errlvl != 0 goto password_error
|
|
send MYPASSWD\n
|
|
loggedin:
|
|
|
|
# We are now logged in.
|
|
wait SOMEPROMPT 30
|
|
if $errlvl != 0 goto prompt_error
|
|
|
|
# Command the server into SLIP mode
|
|
send SLIP\n
|
|
wait SLIP 30
|
|
if $errlvl != 0 goto prompt_error
|
|
|
|
# Get and Set your IP address from the server.
|
|
# Here we assume that after commanding the SLIP server into SLIP
|
|
# mode that it prints your IP address
|
|
get $locip remote 30
|
|
if $errlvl != 0 goto prompt_error
|
|
|
|
# Set up the SLIP operating parameters.
|
|
get $mtu 296
|
|
# Ensure "route add -net default xs4all.hacktic.nl" will be done
|
|
default
|
|
|
|
# Say hello and fire up!
|
|
done:
|
|
print CONNECTED $locip ---> $rmtip
|
|
mode CSLIP
|
|
goto exit
|
|
|
|
prompt_error:
|
|
print TIME-OUT waiting for sliplogin to fire up...
|
|
goto error
|
|
|
|
login_trouble:
|
|
print Trouble waiting for the Login: prompt...
|
|
goto error
|
|
|
|
password:error:
|
|
print Trouble waiting for the Password: prompt...
|
|
goto error
|
|
|
|
modem_trouble:
|
|
print Trouble occurred with the modem...
|
|
error:
|
|
print CONNECT FAILED to $remote
|
|
quit
|
|
|
|
exit:
|
|
exit
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>The above example assumes you are calling a <EM>dynamic</EM> SLIP server, if
|
|
you are calling a <EM>static</EM> SLIP server, then the <CODE>sample.dip</CODE>
|
|
file that comes with <EM>dip337j-uri.tgz</EM> should work for you.
|
|
<P>When <EM>dip</EM> is given the <EM>get $local</EM> command it
|
|
searches the incoming text from the remote end for a string that looks like an
|
|
IP address, ie strings numbers separated by `.' characters. This modification
|
|
was put in place specifically for <EM>dynamic</EM> SLIP servers, so that the
|
|
process of reading the IP address granted by the server could be automated.
|
|
<P>The example above will automatically create a default route via your SLIP link,
|
|
if this is not what you want, you might have an ethernet connection that should
|
|
be your default route, then remove the <EM>default</EM> command from the script.
|
|
After this script has finished running, if you do an <EM>ifconfig</EM> command,
|
|
you will see that you have a device <EM>sl0</EM>. This is your SLIP device.
|
|
Should you need to, you can modify its configuration manually, after the
|
|
<EM>dip</EM> command has finished, using the <EM>ifconfig</EM> and
|
|
<EM>route</EM> commands.
|
|
|
|
Please note that <EM>dip</EM> allows you to select a number of different
|
|
protocols to use with the <CODE>mode</CODE> command, the most common example is
|
|
<EM>cSLIP</EM> for SLIP with compression. Please note that both ends of the
|
|
link must agree, so you should ensure that whatever you select agrees with
|
|
what your server is set to.
|
|
|
|
The above example is fairly robust and should cope with most errors. Please
|
|
refer to the <EM>dip</EM> man page for more information. Naturally you could,
|
|
for example, code the script to do such things as redial the server if it
|
|
doesn't get a connection within a prescribed period of time, or even try
|
|
a series of servers if you have access to more than one.
|
|
<H3>Permanent SLIP connection using a leased line and slattach.</H3>
|
|
|
|
<P>If you have a cable between two machines, or are fortunate enough to have a
|
|
leased line, or some other permanent serial connection between your machine
|
|
and another, then you don't need to go to all the trouble of using
|
|
<EM>dip</EM> to set up your serial link. <EM>slattach</EM> is a very simple
|
|
to use utility that will allow you just enough functionality to configure your
|
|
connection.
|
|
|
|
Since your connection will be a permanent one, you will want to add some
|
|
commands to your <CODE>rc.inet1</CODE> file. In essence all you need to do for
|
|
a permanent connection is ensure that you configure the serial device to
|
|
the correct speed and switch the serial device into SLIP mode. <EM>slattach</EM>
|
|
allows you to do this with one command. <B>Add</B> the following to your
|
|
<CODE>rc.inet1</CODE> file:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#
|
|
# Attach a leased line static SLIP connection
|
|
#
|
|
# configure /dev/cua0 for 19.2kbps and cslip
|
|
/sbin/slattach -p cslip -s 19200 /dev/cua0 &
|
|
/sbin/ifconfig sl0 IPA.IPA.IPA.IPA pointopoint IPR.IPR.IPR.IPR up
|
|
#
|
|
# End static SLIP.
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
Where:
|
|
<DL>
|
|
<P>
|
|
<DT><B>IPA.IPA.IPA.IPA</B><DD><P>represents your IP address.
|
|
<P>
|
|
<DT><B>IPR.IPR.IPR.IPR</B><DD><P>represents the IP address of the remote end.
|
|
</DL>
|
|
|
|
<P><EM>slattach</EM> allocates the first unallocated SLIP device to the serial
|
|
device specified. <EM>slattach</EM> starts with <EM>sl0</EM>. Therefore
|
|
the first <EM>slattach</EM> command attaches SLIP device <EM>sl0</EM> to
|
|
the serial device specified and <EM>sl1</EM> the next time, etc.
|
|
<P><EM>slattach</EM> allows you to configure a number of different
|
|
protocols with the <CODE>-p</CODE> argument. In your case you will use
|
|
either <EM>SLIP</EM> or <EM>cSLIP</EM> depending on whether you want
|
|
to use compression or not. Note: both ends must agree on whether you
|
|
want compression or not.
|
|
<H2><A NAME="ss7.6">7.6 SLIP server.</A>
|
|
</H2>
|
|
|
|
<P>If you have a machine that is perhaps network connected, that you'd like
|
|
other people be able to dial into and provide network services, then you
|
|
will need to configure your machine as a server. If you want to use SLIP
|
|
as the serial line protocol, then currently you have three options as to how
|
|
to configure your Linux machine as a SLIP server. My preference would be to
|
|
use the first presented, <EM>sliplogin</EM>, as it seems the easiest to
|
|
configure and understand, but I will present a summary of each, so you can
|
|
make your own decision.
|
|
<H3>Slip Server using <EM>sliplogin</EM>.</H3>
|
|
|
|
<P><EM>sliplogin</EM> is a program that you can use in place of the normal login
|
|
shell for SLIP users that converts the terminal line into a SLIP line. It
|
|
allows you to configure your Linux machine as either a <EM>static address
|
|
server</EM>, users get the same address everytime they call in, or a
|
|
<EM>dynamic address server</EM>, where users get an address allocated for
|
|
them which will not necessarily be the same as the last time they called.
|
|
<P>The caller will login as per the standard login process, entering their username
|
|
and password, but instead of being presented with a shell after their login,
|
|
<EM>sliplogin</EM> is executed which searches its configuration file
|
|
(<CODE>/etc/slip.hosts</CODE>) for an entry with a login name that matches that of
|
|
the caller. If it locates one, it configures the line as an 8bit clean line,
|
|
and uses an <EM>ioctl</EM> call to convert the line discipline to SLIP. When
|
|
this process is complete, the last stage of configuration takes place, where
|
|
<EM>sliplogin</EM> invokes a shell script which configures the SLIP interface
|
|
with the relevant ip address, netmask and sets appropriate routing in place.
|
|
This script is usually called <CODE>/etc/slip.login</CODE>, but in a similar manner
|
|
to <EM>getty</EM>, if you have certain callers that require special
|
|
initialization, then you can create configuration scripts called
|
|
<CODE>/etc/slip.login.loginname</CODE> that will be run instead of the default
|
|
specifically for them.
|
|
<P>There are either three or four files that you need to configure to get
|
|
<EM>sliplogin</EM> working for you. I will detail how and where to
|
|
get the software and how each is configured in detail. The files are:
|
|
|
|
<UL>
|
|
<LI><CODE>/etc/passwd</CODE>, for the dialin user accounts.</LI>
|
|
<LI><CODE>/etc/slip.hosts</CODE>, to contain the information unique to each
|
|
dial-in user.</LI>
|
|
<LI><CODE>/etc/slip.login</CODE>, which manages the configuration of the routing
|
|
that needs to be performed for the user.</LI>
|
|
<LI><CODE>/etc/slip.tty</CODE>, which is required only if you are configuring
|
|
your server for <EM>dynamic address allocation</EM> and contains a table
|
|
of addresses to allocate</LI>
|
|
<LI><CODE>/etc/slip.logout</CODE>, which contains commands to clean up after the
|
|
user has hung up or logged out.</LI>
|
|
</UL>
|
|
|
|
<H3>Where to get <EM>sliplogin</EM></H3>
|
|
|
|
<P>You may already have the <EM>sliplogin</EM> package installed as part of your
|
|
distribution, if not then <EM>sliplogin</EM> can be obtained from:
|
|
<A HREF="ftp://metalab.unc.edu/pub/linux/system/Network/serial/sliplogin-2.1.1.tar.gz">metalab.unc.edu</A>.
|
|
The tar file contains both source, precompiled binaries and a <EM>man</EM> page.
|
|
<P>To ensure that only authorized users will be able to run <EM>sliplogin</EM>
|
|
program, you should add an entry to your <CODE>/etc/group</CODE> file similar to
|
|
the following:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
..
|
|
slip::13:radio,fred
|
|
..
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>When you install the <EM>sliplogin</EM> package, the <CODE>Makefile</CODE> will
|
|
change the group ownership of the <EM>sliplogin</EM> program to <CODE>slip</CODE>,
|
|
and this will mean that only users who belong to that group will be able
|
|
to execute it. The example above will allow only users <CODE>radio</CODE> and <CODE>fred</CODE>
|
|
to execute <EM>sliplogin</EM>.
|
|
<P>To install the binaries into your <CODE>/sbin</CODE> directory and the <EM>man</EM>
|
|
page into section 8, do the following:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# cd /usr/src
|
|
# gzip -dc .../sliplogin-2.1.1.tar.gz | tar xvf -
|
|
# cd sliplogin-2.1.1
|
|
# <..edit the Makefile if you don't use shadow passwords..>
|
|
# make install
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>If you want to recompile the binaries before installation, add a
|
|
<CODE>make clean</CODE> before the <CODE>make install</CODE>. If you want to install
|
|
the binaries somewhere else, you will need to edit the <CODE>Makefile</CODE>
|
|
<EM>install</EM> rule.
|
|
<P>Please read the <CODE>README</CODE> files that come with the package for more
|
|
information.
|
|
<H3>Configuring <CODE>/etc/passwd</CODE> for Slip hosts.</H3>
|
|
|
|
<P>Normally you would create some special logins for Slip callers in your
|
|
<CODE>/etc/passwd</CODE> file. A convention commonly followed is to use the
|
|
<EM>hostname</EM> of the calling host with a capital `S' prefixing it. So,
|
|
for example, if the calling host is called <CODE>radio</CODE> then you could
|
|
create a <CODE>/etc/passwd</CODE> entry that looked like:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Sradio:FvKurok73:1427:1:radio SLIP login:/tmp:/sbin/sliplogin
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
It doesn't really matter what the account is called, so long as it is
|
|
meaningful to you.
|
|
<P>Note: the caller doesn't need any special home directory, as they will not
|
|
be presented with a shell from this machine, so <CODE>/tmp</CODE> is a good choice.
|
|
Also note that <EM>sliplogin</EM> is used in place of the normal login shell.
|
|
<H3>Configuring <CODE>/etc/slip.hosts</CODE></H3>
|
|
|
|
<P>The <CODE>/etc/slip.hosts</CODE> file is the file that <EM>sliplogin</EM>
|
|
searches for entries matching the login name to obtain configuration details
|
|
for this caller. It is this file where you specify the ip address and netmask
|
|
that will be assigned to the caller and configured for their use. Sample
|
|
entries for two hosts, one a static configuration for host <CODE>radio</CODE> and
|
|
another, a dynamic configuration for user host <CODE>albert</CODE> might look like:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#
|
|
Sradio 44.136.8.99 44.136.8.100 255.255.255.0 normal -1
|
|
Salbert 44.136.8.99 DYNAMIC 255.255.255.0 compressed 60
|
|
#
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
The <CODE>/etc/slip.hosts</CODE> file entries are:
|
|
|
|
<OL>
|
|
<LI>the login name of the caller.</LI>
|
|
<LI>ip address of the server machine, ie this machine.</LI>
|
|
<LI>ip address that the caller will be assigned. If this field is coded
|
|
<CODE>DYNAMIC</CODE> then an ip address will be allocated based on the information
|
|
contained in your <CODE>/etc/slip.tty</CODE> file discussed later. <B>Note:</B>
|
|
you must be using at least version 1.3 of sliplogin for this to work.</LI>
|
|
<LI>the netmask assigned to the calling machine in dotted decimal notation
|
|
eg 255.255.255.0 for a Class C network mask.</LI>
|
|
<LI>the slip mode setting which allows you to enable/disable compression and
|
|
slip other features. Allowable values here are "<CODE>normal</CODE>" or
|
|
"<CODE>compressed</CODE>".</LI>
|
|
<LI>a timeout parameter which specifies how long the line can remain idle (no
|
|
datagrams received) before the line is automatically disconnected. A negative
|
|
value disables this feature.</LI>
|
|
<LI>optional arguments.</LI>
|
|
</OL>
|
|
|
|
<P>Note: You can use either hostnames or IP addresses in dotted decimal notation
|
|
for fields 2 and 3. If you use hostnames then those hosts must be resolvable,
|
|
that is, your machine must be able to locate an ip address for those hostnames,
|
|
otherwise the script will fail when it is called. You can test this by
|
|
trying trying to telnet to the hostname, if you get the
|
|
`<EM>Trying nnn.nnn.nnn...</EM>' message then your machine has been able to find
|
|
an ip address for that name. If you get the message `<EM>Unknown host</EM>', then
|
|
it has not. If not, either use ip addresses in dotted decimal notation, or fix
|
|
up your name resolver configuration (See section <CODE>Name Resolution</CODE>).
|
|
<P>The most common slip modes are:
|
|
<DL>
|
|
<P>
|
|
<DT><B>normal</B><DD><P>to enable normal uncompressed SLIP.
|
|
<P>
|
|
<DT><B>compressed</B><DD><P>to enable van Jacobsen header compression (cSLIP)
|
|
</DL>
|
|
|
|
|
|
Naturally these are mutually exclusive, you can use one or the other. For more
|
|
information on the other options available, refer to the <EM>man</EM> pages.
|
|
<H3>Configuring the <CODE>/etc/slip.login</CODE> file.</H3>
|
|
|
|
<P>After <EM>sliplogin</EM> has searched the <CODE>/etc/slip.hosts</CODE> and found
|
|
a matching entry, it will attempt to execute the <CODE>/etc/slip.login</CODE> file
|
|
to actually configure the SLIP interface with its ip address and netmask.
|
|
|
|
The sample <CODE>/etc/slip.login</CODE> file supplied with the <EM>sliplogin</EM>
|
|
package looks like this:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#!/bin/sh -
|
|
#
|
|
# @(#)slip.login 5.1 (Berkeley) 7/1/90
|
|
#
|
|
# generic login file for a SLIP line. sliplogin invokes this with
|
|
# the parameters:
|
|
# $1 $2 $3 $4, $5, $6 ...
|
|
# SLIPunit ttyspeed pid the arguments from the slip.host entry
|
|
#
|
|
/sbin/ifconfig $1 $5 pointopoint $6 mtu 1500 -trailers up
|
|
/sbin/route add $6
|
|
arp -s $6 <hw_addr> pub
|
|
exit 0
|
|
#
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
You will note that this script simply uses the <EM>ifconfig</EM> and
|
|
<EM>route</EM> commands to configure the SLIP device with its ipaddress,
|
|
remote ip address and netmask and creates a route for the remote address via
|
|
the SLIP device. Just the same as you would if you were using the
|
|
<EM>slattach</EM> command.
|
|
<P>Note also the use of <EM>Proxy ARP</EM> to ensure that other hosts on the same
|
|
ethernet as the server machine will know how to reach the dial-in host.
|
|
The <CODE><hw_addr></CODE> field should be the hardware address of the ethernet
|
|
card in the machine. If your server machine isn't on an ethernet network then
|
|
you can leave this line out completely.
|
|
<H3>Configuring the <CODE>/etc/slip.logout</CODE> file.</H3>
|
|
|
|
<P>When the call drops out, you want to ensure that the serial device is restored
|
|
to its normal state so that future callers will be able to login correctly.
|
|
This is achieved with the use of the <CODE>/etc/slip.logout</CODE> file. It is
|
|
quite simple in format and is called with the same argument as the
|
|
<CODE>/etc/slip.login</CODE> file.
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
#!/bin/sh -
|
|
#
|
|
# slip.logout
|
|
#
|
|
/sbin/ifconfig $1 down
|
|
arp -d $6
|
|
exit 0
|
|
#
|
|
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
All it does is `down' the interface which will delete the manual route
|
|
previously created. It also uses the <EM>arp</EM> command to delete any proxy
|
|
arp put in place, again, you don't need the <EM>arp</EM> command in the script
|
|
if your server machine does not have an ethernet port.
|
|
<H3>Configuring the <CODE>/etc/slip.tty</CODE> file.</H3>
|
|
|
|
<P>If you are using dynamic ip address allocation (have any hosts configured
|
|
with the <CODE>DYNAMIC</CODE> keyword in the <CODE>/etc/slip.hosts</CODE> file, then
|
|
you must configure the <CODE>/etc/slip.tty</CODE> file to list what addresses
|
|
are assigned to what port. You only need this file if you wish your server
|
|
to dynamically allocate addresses to users.
|
|
<P>The file is a table that lists the <EM>tty</EM> devices that will support
|
|
dial-in SLIP connections and the ip address that should be assigned to users
|
|
who call in on that port.
|
|
|
|
Its format is as follows:
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# slip.tty tty -> IP address mappings for dynamic SLIP
|
|
# format: /dev/tty?? xxx.xxx.xxx.xxx
|
|
#
|
|
/dev/ttyS0 192.168.0.100
|
|
/dev/ttyS1 192.168.0.101
|
|
#
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>What this table says is that callers that dial in on port <CODE>/dev/ttyS0</CODE>
|
|
who have their remote address field in the <CODE>/etc/slip.hosts</CODE> file
|
|
set to <CODE>DYNAMIC</CODE> will be assigned an address of <CODE>192.168.0.100</CODE>.
|
|
<P>In this way you need only allocate one address per port for all users who do
|
|
not require an dedicated address for themselves. This helps you keep the number
|
|
of addresses you need down to a minimum to avoid wastage.
|
|
<H3>Slip Server using <EM>dip</EM>.</H3>
|
|
|
|
<P>Let me start by saying that some of the information below came from the
|
|
<EM>dip</EM> man pages, where how to run Linux as a SLIP server is briefly
|
|
documented. Please also beware that the following has been based on
|
|
the <EM>dip337o-uri.tgz</EM> package and probably will not apply to other
|
|
versions of <EM>dip</EM>.
|
|
|
|
<EM>dip</EM> has an input mode of operation, where it automatically locates
|
|
an entry for the user who invoked it and configures the serial line as
|
|
a SLIP link according to information it finds in the <CODE>/etc/diphosts</CODE>
|
|
file. This input mode of operation is activated by invoking <EM>dip</EM>
|
|
as <EM>diplogin</EM>. This therefore is how you use <EM>dip</EM> as a SLIP
|
|
server, by creating special accounts where <EM>diplogin</EM> is used as the
|
|
login shell.
|
|
|
|
The first thing you will need to do is to make a symbolic link as follows:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
# ln -sf /usr/sbin/dip /usr/sbin/diplogin
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
You then need to add entries to both your <CODE>/etc/passwd</CODE> and your
|
|
<CODE>/etc/diphosts</CODE> files. The entries you need to make are formatted
|
|
as follows:
|
|
|
|
To configure Linux as a SLIP server with <EM>dip</EM>, you need to create some
|
|
special SLIP accounts for users, where <EM>dip</EM> (in input mode) is used as
|
|
the login shell. A suggested convention is that of having all SLIP accounts
|
|
begin with a capital `S', eg `Sfredm'.
|
|
|
|
A sample <CODE>/etc/passwd</CODE> entry for a SLIP user looks like:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Sfredm:ij/SMxiTlGVCo:1004:10:Fred:/tmp:/usr/sbin/diplogin
|
|
^^ ^^ ^^ ^^ ^^ ^^ ^^
|
|
| | | | | | \__ diplogin as login shell
|
|
| | | | | \_______ Home directory
|
|
| | | | \____________ User Full Name
|
|
| | | \_________________ User Group ID
|
|
| | \_____________________ User ID
|
|
| \_______________________________ Encrypted User Password
|
|
\__________________________________________ Slip User Login Name
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
<P>After the user logs in, the <EM>login</EM> program, if it finds and
|
|
verifies the user ok, will execute the <EM>diplogin</EM>
|
|
command. <EM>dip</EM>, when invoked as <EM>diplogin</EM> knows that it
|
|
should automatically assume that it is being used a login shell. When
|
|
it is started as <EM>diplogin</EM> the first thing it does is use the
|
|
<EM>getuid()</EM> function call to get the userid of whoever has
|
|
invoked it. It then searches the <CODE>/etc/diphosts</CODE> file for the
|
|
first entry that matches either the userid or the name of the
|
|
<EM>tty</EM> device that the call has come in on and configures itself
|
|
appropriately. By judicious decision as to whether to give a user an
|
|
entry in the <CODE>diphosts</CODE> file, or whether to let the user be
|
|
given the default configuration you can build your server in such a
|
|
way that you can have a mix of static and dynamically assigned address
|
|
users.
|
|
|
|
<EM>dip</EM> will automatically add a `Proxy-ARP' entry if invoked in input
|
|
mode, so you do not need to worry about manually adding such entries.
|
|
<H3>Configuring <CODE>/etc/diphosts</CODE></H3>
|
|
|
|
<P><CODE>/etc/diphosts</CODE> is used by <EM>dip</EM> to lookup preset
|
|
configurations for remote hosts. These remote hosts might be users
|
|
dialing into your linux machine, or they might be for machines that you dial
|
|
into with your linux machine.
|
|
|
|
The general format for <CODE>/etc/diphosts</CODE> is as follows:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
..
|
|
Suwalt::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
|
|
ttyS1::145.71.34.3:145.71.34.2:255.255.255.0:Dynamic ttyS1:CSLIP,296
|
|
..
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
The fields are:
|
|
<OL>
|
|
<LI><CODE>login name</CODE>: as returned by getpwuid(getuid()) or tty name.</LI>
|
|
<LI><CODE>unused</CODE>: compat. with passwd</LI>
|
|
<LI><CODE>Remote Address</CODE>: IP address of the calling host, either numeric or by name</LI>
|
|
<LI><CODE>Local Address</CODE>: IP address of this machine, again numeric or by name</LI>
|
|
<LI><CODE>Netmask</CODE>: in dotted decimal notation</LI>
|
|
<LI><CODE>Comment field</CODE>: put whatever you want here.</LI>
|
|
<LI><CODE>protocol</CODE>: Slip, CSlip etc.</LI>
|
|
<LI><CODE>MTU</CODE>: decimal number</LI>
|
|
</OL>
|
|
|
|
|
|
An example <CODE>/etc/net/diphosts</CODE> entry for a remote SLIP user might be:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:SLIP,296
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
which specifies a SLIP link with remote address of 145.71.34.1 and MTU of 296,
|
|
or:
|
|
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
Sfredm::145.71.34.1:145.71.34.2:255.255.255.0:SLIP uwalt:CSLIP,1006
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
which specifies a cSLIP-capable link with remote address 145.71.34.1 and MTU
|
|
of 1006.
|
|
<P>Therefore, all users who you wish to be allowed a statically allocated dial-up
|
|
IP access should have an entry in the <CODE>/etc/diphosts</CODE>. If you want
|
|
users who call a particular port to have their details dynamically allocated
|
|
then you must have an entry for the <CODE>tty</CODE> device and do not configure a
|
|
user based entry. You should remember to configure at least one entry for
|
|
each <CODE>tty</CODE> device that your dialup users use to ensure that a suitable
|
|
configuration is available for them regardless of which modem they call in on.
|
|
<P>When a user logs in they will receive a normal login and password prompt at
|
|
which they should enter their SLIP-login userid and password. If these verify
|
|
ok then the user will see no special messages and they should just change into
|
|
SLIP mode at their end. The user should then be able to connect ok and be
|
|
configured with the relevant parameters from the <CODE>diphosts</CODE> file.
|
|
<H3>SLIP server using the <EM>dSLIP</EM> package.</H3>
|
|
|
|
<P>Matt Dillon <CODE><dillon@apollo.west.oic.com></CODE> has written a package
|
|
that does not only dial-in but also dial-out SLIP. Matt's package is
|
|
a combination of small programs and scripts that manage your connections
|
|
for you. You will need to have <EM>tcsh</EM> installed as at least one
|
|
of the scripts requires it. Matt supplies a binary copy of the <EM>expect</EM>
|
|
utility as it too is needed by one of the scripts. You will most likely need
|
|
some experience with <EM>expect</EM> to get this package working to your
|
|
liking, but don't let that put you off.
|
|
<P>Matt has written a good set of installation instructions in the
|
|
README file, so I won't bother repeating them.
|
|
<P>You can get the <EM>dSLIP</EM> package from its home site at:
|
|
|
|
<B>apollo.west.oic.com</B>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
/pub/linux/dillon_src/dSLIP203.tgz
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
or from:
|
|
|
|
<B>metalab.unc.edu</B>
|
|
<BLOCKQUOTE><CODE>
|
|
<PRE>
|
|
/pub/Linux/system/Network/serial/dSLIP203.tgz
|
|
</PRE>
|
|
</CODE></BLOCKQUOTE>
|
|
|
|
|
|
Read the <CODE>README</CODE> file and create the <CODE>/etc/passwd</CODE> and
|
|
<CODE>/etc/group</CODE> entries <B>before</B> doing a <CODE>make install</CODE>.
|
|
|
|
<HR>
|
|
<A HREF="NET3-4-HOWTO-8.html">Next</A>
|
|
<A HREF="NET3-4-HOWTO-6.html">Previous</A>
|
|
<A HREF="NET3-4-HOWTO.html#toc7">Contents</A>
|
|
</BODY>
|
|
</HTML>
|