Network Troublshooting > General Networking Support in Linux

How to Setup ADSL connection on Red Hat 9?


Hi guys,
   Do u all have any ideas on how to setup ADSL connection in Red Hat 9.
   I have done it but the result is very unpredictable. Sometimes i can dial and sometimes i can't. I used "adsl-setup" to run the setup.

  I followed each instruction in the configuration, but when i reboot, it says
i should not enable demand-on dialing. Hey i dint do so unless i purposely type "adsl-start" :(

Pls help.

PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by many ADSL Internet Service Providers. Roaring Penguin has a free client for Linux, NetBSD and Solaris systems to connect to PPPoE service providers.

I think u will have do it all over again.

1.  First of all you really need to to check whether you need to install PPPoE or not. If your ISP has provided you with a DSL modem or router that has a built-in login client then chances are you only need to run a DHCP client in order to get your connect running (after setting up the modem/router).

We recommend and use Roaring Penguin PPPoE client, mainly because its easy to use and strictly adheres to RFC2516 for PPoE. You can download the latest version of RP-PPPoE from the Roaring Penguin PPPoE site, at the time of writing we used version 3.5 which was available in both RPM and Tarball formats.

Setting Up Roaring Penguin PPPoE  
You have to be root to install the software. If you are installing from source, you need a complete C development environment (compiler, make, linker, headers, libraries.)

To build a binary RPM for your RPM-based system (e.g. Mandrake), download the source RPM file and type:

rpm --rebuild rp-pppoe-3.5-1.src.rpm

This will generate a binary RPM which you can install as described next.

If you downloaded the RPM file, type:

rpm -Uvh rp-pppoe-3.5-1.i386.rpm

rpm -Uvh rp-pppoe-3.5-1.i386.rpm rp-pppoe-gui-3.5-1.i386.rpm

If you downloaded the compressed tar file, type:

tar xvfz rp-pppoe-3.5.tar.gz
cd rp-pppoe-3.5



this is the download section for : |


If you still have problem doing that: you may have to do this....

During the adsl-setup process, you will be asked a series of questions on your connection.

$Id: how-to-connect.txt,v 1.1 2002/02/26 20:14:36 dfs Exp $

This package lets you connect a Linux machine to Sympatico HSE or Magma's
high-speed service using a Nortel 1-meg modem.

Follow these steps and you should have your high-speed service up and running.

0. Install the rp-pppoe-software

You should have already done this by the time you're reading this.  If not,
go back and read README.

1. Set up your Ethernet hardware

First, make sure the Ethernet card you intend to use with the modem is
visible to the Linux kernel.  Just how to do this is beyond the scope
of this document.  However, if the card is the only Ethernet card in
the system, executing:

   ifconfig eth0

should display something like this:

   eth0      Link encap:Ethernet  HWaddr 00:60:67:62:31:D4  

plust some more lines.  Your HWaddr will be different.  As long as you see
the HWaddr line, your card should be working.

DO NOT assign an IP address to the Ethernet card.  DO NOT configure the
card to come up at boot time.

2. Configure various files

Several files need editing.  The easiest way to do this is to run
the following command as root:


Answer the questions and you should be all set.  If you want to know what
goes on behind the scenes, continue reading this document.  If you don't
care and your connection works, stop reading. :-)

3. Edit pap-secrets

Edit the "pap-secrets" file, inserting your proper user-ID and password.
Install the file (or copy the relevant lines) to /etc/ppp/pap-secrets.
Your ISP may use CHAP authentication.  In this case, add the line to

4. Edit /etc/ppp/pppoe.conf

The file /etc/ppp/pppoe.conf contains configuration information for the
ADSL connection.  You need to edit the following items:

- Change ETH=eth1 to the correct Ethernet device for your modem.
- Change to your proper ADSL user-ID.

Don't edit any of the other settings unless you're an expert.

5. Set up DNS

If you are using DNS servers supplied by your ISP, edit the file
/etc/resolv.conf to contain these lines:

   nameserver ip_addr_of_first_dns_server
   nameserver ip_addr_of_second_dns_server

For example:


6. Firewall your machine

MAKE SURE YOU FIREWALL YOUR MACHINE.  A sample firewall script is given
in the shell script "firewall"  To install the script:

a) Copy it to /etc/rc.d/init.d/firewall
b) Type: chkconfig firewall on
c) Start the firewall: sh /etc/rc.d/init.d/firewall start

(The above procedure works ONLY on Red Hat-like systems.)

You may want to tweak the script somewhat.

7. Bring up the connection at boot time

On a Red Hat system, the installation procedure should have installed
a script called /etc/rc.d/init.d/adsl.  To bring up the connection
at boot time, just type this command as root:

   chkconfig --add adsl

On non-Red-Hat systems, add this line to the end
of /etc/rc.d/rc.local:


8. Configure LAN Hosts

If you have a LAN behind the firewall, you have to lower the TCP
maximum segment size from the normal 1460 to 1452 (or better, 1412.)
You have two options: Either set the MTU of all the interfaces on
other hosts on the LAN to 1452, or use the "-m 1412" option to pppoe.
The "-m" option for pppoe is far simpler and makes it easier to add
hosts to the LAN, but consumes some extra CPU time.

If you want to manually configure the LAN hosts, here's how:

In Linux, use: "ifconfig eth0 mtu 1452".  For best results, put this
in an /etc/rc.d/rc.local script.

For Windows, machines, see
Set the MaxMTU to 1452.

9. Commands to control the ADSL link

As root, bring up the link by typing:   adsl-start
As root, bring down the link by typing: adsl-stop

That's it!

David F. Skoll <> | Roaring Penguin Software Inc.           | Linux and UNIX Specialists


Here are some problems PPPoE users have encountered.

A) Can't see the Ethernet interface

Well, I can't really help you here.  To use these instructions, you must
have Linux working to the point where it recognizes your Ethernet card.
If you type "ifconfig ethx" and you get back a HWAddr value, your Ethernet
card is probably OK.  But I really can't help with hardware configuration

B) Connection seems to come up, but I can't browse the web or ping anything

You probably don't have DNS set up.  See step 6.

C) Can't compile PPPoE

I have only tested compilation on 2.2-kernel machines.  Make sure you have
"make", the C compiler and all development header files installed.

D) pppd complains about (i) "unknown option pty" or (ii) "pty option precludes
   specifying device name"

(i) Your pppd is too old.  You need at least 2.3.7.
(ii) Your /etc/ppp/options file is not empty.  Empty it!

E) pppoe dies with the log message "Message too long"

You set the MTU of the Ethernet interface connected to the ADSL modem
to less than 1500.  Don't do that.

F) Internal hosts can't see the Internet

Do you have masquerading set up?  I can't help you in great detail, but
see the IPCHAINS-HOWTO and the IP-Masquerade mini-HOWTO.

G) Authentication fails

Make sure you have the right secret in /etc/ppp/pap-secrets.  Your ISP
may be using CHAP; it won't hurt to copy the line to /etc/ppp/chap-secrets.

Also, MAKE SURE that /etc/ppp/options is EMPTY.  The "adsl-connect" script
supplies all required options on the command line; additional options
in /etc/ppp/options may mess things up.

H) VPN software does not work

If you are using VPN software on a Windows or Linux machine with another
Linux machine running PPPoE as the gateway, you MUST NOT use the "-m" option
to pppoe.  This alters IP packets, which will break any VPN which uses IPSec.
In /etc/ppp/pppoe.conf, set CLAMPMSS to "no".  You'll also have to reduce
the MTU on the hosts behind the gateway to 1452.

I) I can browse some web sites just fine, but others stall forever.

There is probably a buggy router or firewall between you and the Web server.
One possible workaround:  In /etc/ppp/pppoe.conf, find the line which reads:


Try lowering the 1412 until it works (go down in steps of 100 or so.)  Each
time you lower the value, you have to restart your connection like this:

   adsl-stop; adsl-start

This should work around buggy routers which do not support Path MTU discovery.

J) Whenever I connect using ADSL, my internal LAN no longer sees the gateway

You are more than likely running a 2.0.X Linux kernel.  To solve this
problem, give the Ethernet card connected to the DSL modem a fake IP
address.  For example, if eth0 is your internal LAN card and eth1 goes to
the DSL modem, do something like this:

   ifconfig eth1 netmask

(You may have to choose a different IP address; experiment.)
K) How can I run a script every time I connect and get a new IP address?

Put the script in /etc/ppp/ip-up.  See the pppd(8) man page.
L) Nothing works!

You may need to put your Ethernet card in half-duplex, 10Mb/s mode to
work with the DSL modem.  You may have to run a DOS program to do this,
or pass special parameters to the Linux driver.

Your DSL provider may be using non-standard PPPoE frames or require
something special in the Service-Name field.  If you have two computers,
you can try sniffing out these values with the "pppoe-sniff" program.
Type "man pppoe-sniff" for details.  If you don't have two computers,
you'll have to ask your DSL provider if it uses non-standard PPPoE frames
or special Service-Name fields.  Good luck getting an answer...

If pppoe-sniff indicates that nothing is amiss, make sure the Ethernet
card associated with the ADSL modem does NOT have a valid IP address.
(NOTE: For 2.0 kernels, you may have to give it a fake IP address
which is not on your internal subnet.  Something like
might work if you are not using 192.168.42.*)

If you are using synchronous PPP on a slow machine, try switching to
asynchronous PPP.

Make sure no entries in the routing table go through the Ethernet card
connected to the ADSL modem.  You might want to add these lines in

   ifconfig ethx down
   ifconfig ethx up mtu 1500

which should reset things to sane values.

If you are completely unable to connect, run the adsl-start script in
debugging mode.  If you are using bash as your shell (if you don't
know what your shell is, it's probably bash), type this:

   DEBUG=1 adsl-start

In tcsh or csh, use:

   setenv DEBUG 1; adsl-start

Then follow the instructions to mail the debugging file to me.  PLEASE
DON'T DO THIS until you have exhausted all other avenues; rp-pppoe is
free software and it costs me time and money to help people with
problems.  While I don't mind doing this, I do mind it if you don't
make an effort to fix the problem yourself first.

WARNING: If you run adsl-start in debugging mode and you manage to
connect, your connection will be extremely slow and huge amounts of
data will quickly fill your /tmp directory.  Do not use debugging mode
unless you really cannot get your connection to work.

Be aware that debugging mode produces hex dumps which potentially reveal
your user name and password.  If the debugging output includes packets
labeled "PPPOE Session", you may wish to remove these packets from the
dump before mailing it to me.

Thank U very much :)


[0] Message Index

Go to full version