|
Welcome to T.he L.inux G.uide O.nline
The following is a reference to Linux. Please feel free to
contact me for any details.
Chapter 03 - Connecting to the Internet
using Linux
3.1 Setting up the dummy interface
A dummy interface is used by TCP/IP to assign as IP address
to your machine, which is required for both SLIP and PPP.
The reason for this is simple: when you connect to the internet
using an ISP, your IP addresses are often assigned dynamically
and you never know what address you will have in advance.
This can cause problems for TCP/IP routines in your kernel
that require the IP address to function properly. When you
assign an IP address, the dummy one, TCP/IP is happy. The
need for this IP address is most important when your computer
is not connected to your ISP, because many applications are
network aware: such as email, newsreaders etc. They need some
IP address to connect to even though it may not lead them
anywhere.
Fortunately setting up a dummy interface is simple, all it
needs is a few commands to setup and a few more to test the
interface. The /etc/hosts file is an ASCII file that provides
two poeces of information to the TCP/IP drivers and applications:
an IP address and the names associated with that IP address.
There might the following line in your copy of /etc/hosts
127.0.0.1 localhost
This line basically binds the address in the first part to
the name in the second part. This is a dummy interface because
it doesn't lead anywhere. 127.0.0.1 is a special address reserved
for local machines on all networks. It basically refers to
the machine itself.
If you setup the system with networking support, you probably
have the file the line indicated already in place. if that
is the case you don't have to do anything else. Other wise
you have to setup the interface. Create the file /etc/hosts
and add the line
127.0.0.1 localhost
to it. The number of spaces between the IP and the name does
not matter as long as there is at least one. After updating
the file you need to tell TCP/IP about the new interface.
Use the ifconfig command to do so. Log in as root to execute
the following commands.
ifconfig lo 127.0.0.1
route add 127.0.0.1
The first command tells TCP/IP to assiciate the lo interface
(the loopback or the dummy) with the IP address as shown.
The second number adds the IP address 127.0.0.1 to an internal
table that keeps track of routes to different addresses. After
you have done this test the interface with the ifconfig command
again like this
$ ifconfig lo
lo Link encap: Local Loopback
inet addr:127.0.0.1 Bcase:127.255.255.255 Mask:255.0.0.0
UP BROADCAST LOOPBACK RUNNING MTU:2000 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0
TX packets:12 errors:0 dropped:0 overruns:0
The output shows that the lo interface is up and running.
To do another check and see if your machine is responding
to the IP address ping the localhost
$ Ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=225 time=0.8 ms
64 bytes from 127.0.0.1: icmp_seq=0 ttl=225 time=0.7 ms
64 bytes from 127.0.0.1: icmp_seq=0 ttl=225 time=0.7 ms
64 bytes from 127.0.0.1: icmp_seq=0 ttl=225 time=0.7 ms
64 bytes from 127.0.0.1: icmp_seq=0 ttl=225 time=0.7 ms
--- localhost ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round trip min/avg/max = 0.7/0.7/0.8
To stop the ping command use the ctrl+c keys. If you are
unable to ping then test the setup and re-perform if necessary.
3.2 Using an existing LAN
This is probably one of the simplest things to do in Linux.
Being built with networking in mind Linux has a number of
tools that will help you configure the network. Keeping in
mind this will be used by the majority users, especially if
you are in a University where there is already a running LAN
in place, we shall make this part as simple as possible. The
whole process can also be done by configuring the reqiusite
files and with the command lines, but we shall keep it simple
now and leave the manual setup as an exercise, recommending
it highly if the user really wants to know about Networking
and its internals.
To connect using the LAN you will need the following pieces
of information. First in your own machine you will need to
have the network interface configured and working. If you
have set up the system properly and have configured the loopback
interface, you already have it in place.
Additionally you will need information about the network.
Specifically you will need the names of the gateway, and the
dns servers for your LAN. You may find this by either looking
into the configuration of another machine that is connected
to the Internet, or by contacting the system administrator
of your network. We are assuming that you will only connect
to the Internet, and therefore will have only one set of servers
to configure. More complex networks need a more elaborate
setup.
Now that you have the information, it is time to fire up
one of the programs to change all the files for you. Choose
from a variety of programs. The program netconfig
is a simple utility for a straight forward specification of
the information you have gathered. For simple connections
and LAN configurations this is the best. If you want more
control you may want to use the netconf
utility that allows you to specify the same in tabbed pages.
Looking for a X program? Use netcfg.
3.3 Setting up PPP
Most ISPs use PPP or (Point to Point Protocol) instead of
the SLIP that is good because PPP is a faster and more efficient
protocol. We shall use the command line approach to setting
up the PPP as it will give a better understanding of the process.
PPP uses two components on your system. The fiest is a daemon
called the pppd, which controls the use of ppp. The second
is a driver called the high-level data link control (HDLC),
which controls the data flow between two machines. A third
component of PPP is a routine called the chat that dials the
other end of the connection for you.
3.3.1 Installing PPP
Check if PPP was already installed on your system when you
set it up (and say chose dial up networking option in the
menu). Or you may install the rpm from your installation package.
Mount the CD-ROM and run the following command.
rpm -ivh /mnt/cdrom/RedHat/RPMS/ppp-X_X_.rpm
Where X is the number in your installation. The PPP is now
installed.s
3.3.2 Setting up a PPP user account
To help protect your machine against hackers and other attacks,
it is advisable to setup a special login for the PPP. This
is optional but highly recommended.
Create a user called ppp, preferably belonging to a new group
called ppp, without a password and a temporary root directory
(/tmp). The startup shell script should however point to the
script /etc/ppp/pppscript. You will have to create this script
yourself (whence you may name it as you like) and it should
be an executable with the following entries
#!/bin/sh
mesg n
stty -echo
exec pppd -detach silent modem crtscts
The fourth line is what actually executes the ppp daemon.
Make sure that the script is executable.
3.3.3 Setting up chat
PPP uses a program called chat to handle the details of connecting
through the modem, to connect to the ISP. (others too can
be used but this is the simplest and the easiest to setup
and use) The information to connect to the ISP is generally
stored in a file. A typical chat script looks like the following
"" ATZ OK ATDT2370400 CONNECT ""
ogin: ppp word: guessme
chat scripts are conversation between the chat utility and
the modem. The scripts are separated by spaces, with the chat
instruction and the expected reply. You may put this string
in a file with the correct number and the login and password.
Then you can run the dialup with
chat -f filename
where filename is where the sequence is stored. You may choose
to modify the earlier string to the following to take care
of the error conditions of busy signal and a no-carrier signal.
ABORT BUSY 'NOCARRIER' "" ATZ OK
2370400 CONNECT "" ogin: ppp word: guessme
Once the connection is established the chat program then
terminates and hands over the control to PPP.
3.3.4 Configuring pppd
Once the chat is done this daemon takes over the communication
and handles it from this point onwards. The pppd is started
with arguments about the modem device and the speed of the
connection. Starting pppd manually from the command line looks
like this
pppd /dev/cua0 38400 crtscts defaultroute
This line tells the serial port /dev/cua0 (COM1) to connect
at 38,400bps. The crtscts options tells pppd to use the hardware
handshaking on the connection, and defaultroute tells it to
use the local IP address for the connection. Because your
IP address is dynamic, you mat change the last address to
any address (even 127.0.0.1) and end it with a ':'. This tells
pppd to use whatever IP address the remote sends as the other
end of the connection.
pppd /dev/cua0 38400 crtscts 127.0.0.1:
The pppd also stores its default options in a file /etc/ppp/options
that has many options to change the way pppd connects or authenticates
etc.
3.3.5 Combining chat and pppd
Till now we have looked at the process of dialup as two processes
the chat and the pppd. Combine both of them as shown here
pppd connect "chat -f filename"
/dev/cua0 38400 -detatch crtscts modem defaultroute
With this command the pppd will chat with the chat file,
create the link and the finish by establishing the pppd. After
these few steps, your system is ready to use PPP to dial out
your ISP. As long as the chat file has all the instructions
to connect to the ISP's modem bank, PPP will start properly
once a connection is established.
3.4 Setting up SLIP
The fastest way of setting up the SLIP is by using the slattach
program. This requires the name of the port that SLIP will
use (which has a nodem attached for the connection usually).
The command to set up slattach is
slattach /dev/cua0 &
In this case the COM1 is configured as the SLIP port. You
can use any other port attached to your system. The ampersand
sign at the end causes the program to run in the background,
so that you get your shell prompt back.
When you run slattach, the port is renamed to /dev/sl0 to
show that it is the first SLIP device. It doesn't matter what
serial port you used for the connection. If you create more
than one SLIP port they will be numbered sequentially.
Linux uses CSLIP (Compressed SLIP) by default as it packs
more information in the same space. If however your ISP does
not support CSLIP you may have to force Linux to use SLIP
by
slattach -p slip /dev/cua0 &
Other valid connection types are cslip, adaptive, and slip6.
Once the SLIP device has been created the Linux kernel must
be informed of it through the ifconfig command. The ifoconfig
requires the name of the remote machine to compete the connection.
ifconfig sl0 mymachine-slip pointopoint remotemachine
is the command line. The first argument is the name of the
interface that you have created using the slattach command.
Change the mymachine to the name of your machine, and the
remotemachine with the name of the machine at the other end.
The word pointopoint tells the ifconfig command that this
is a point-to-point connection (do not confuse with PPP).
The next step after configuring the device is to add it to
the route table.
route add remotemachine
Many ISPs don't tell the name of their remote machines. That
is fine because these machine names are only placeholders.
You can substitute any name you want that identifies the other
end of the connection.
Thus you have seen the process of setting up a PPP and SLIP
network for use with your Internet connection. You can also
use both these protocols for intranet too. PPP and SLIP are
almost transparent to you once the interfaces are properly
setup.
.
|