Linuxathome.net - Linux news and help for home broadband internet users
 Home | Files | Case Mods | Reviews | Forum | Search | Links | RDF Feed | Contact
Sections

Installation Guide
Setting Up
Internet Sharing
Port Forwarding
Services Config
Installing Programs
Game Servers
Using IPTables
Useful Commands
Kernel Upgrading
System Recovery
Red Hat 7.2 Setup
OpenBSD Setup
BPA Login Setup
PPPoE Setup
Add New Hardware
Using PPTP VPN
VMware ESX Cmds
Our RC5 Team
Folding@Home
Help Support Us

 
Articles
Linux Security
NetStats FAQ
Linux KIS Trojan
CAT5/LAN Cables
Domain Names
Presario RH Install APC Debian DVD
 
Slashdot.org
  • Python Developer Survey: 55% Use Linux, 6% Use Python 2
  • 'Is It Ethical to Have Children in the Face of Climate Change?'
  • Tech Worker Builds Free AI-Powered Tool For Fighting US Health Insurance Denials
  • Oceanographers Mapping Underwater Mountain Find Flying Spaghetti Monster
  • Washington Post Calls Telegram 'a Haven for Free Speech - and Child Predators'
  • Inside Boeing's Factory Lapses That Led To the Alaska Air Blowout
  • Long Covid Knocked a Million Americans Off Their Career Paths
  • How Not To Hire a North Korean IT Spy
  • How a Group of Teenagers Pranked 'One Million Checkboxes'
  • Woman Mailed Herself an Apple AirTag To Help Catch Mail Thieves
  • Google Play Store Can Finally Update Multiple Apps At Once
  • Scientists Detect Invisible Electric Field Around Earth For First Time
  • US Government Opens Up 31 Million Acres of Federal Lands For Solar
  • Apple Stands By Decision To Terminate Account Belonging To WWDC Student Winner
  • Wells Fargo Worker Dies At Desk, Nobody Notices For Four Days
  •  
    Affiliates

    TweakTown.com
    ZGeek.com
    pebkac-consulting.com.au

      Configuring PPPoE for ADSL

      PPPoE (Point-to-Point Protocol over Ethernet) is a protocol used by many ADSL Internet Service Providers. This section covers setting up PPPoE on your Linux box so that you can connect to your ADSL provider. Once the connection is up, you can then share it just as you would any other connection. Most on the information in this article is based from the Roaring Penguin website and HOW-TO-CONNECT document.
     

       Setup Instructions

     
    Getting Started

    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:

    # If you don't want the GUI:
    rpm -Uvh rp-pppoe-3.5-1.i386.rpm
    /usr/sbin/adsl-setup

    # If you do want the GUI
    rpm -Uvh rp-pppoe-3.5-1.i386.rpm rp-pppoe-gui-3.5-1.i386.rpm
    /usr/bin/tkpppoe

    If you downloaded the compressed tar file, type:

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

    # If you don't want the GUI
    ./go

    # If you do want the GUI
    ./go-gui

    During the adsl-setup process, you will be asked a series of questions on your connection. If you want to know what goes on behind the scenes, read the HOW-TO-CONNECT document. If you don't care and your connections works, then your done :)

    In order to control the ADSL link, you need to be root, to bring up the link simply type: adsl-start, to take the link type: adsl-stop.

     

    Behind The Scenes

    The first thing to look at and edit is 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 /etc/ppp/chap-secrets.

    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, usually eth0 depending on your system.
    • Change USER=bxxxnxnx@sympatico.ca to your proper ADSL user-ID, most of they time it is your email address, but you will need to check the details supplied by your ISP.

    Don't edit any of the other settings unless you're an expert or are confident with what your doing (if you do delve more into the configuration, we recommend making a backup of the config files first).

    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:

            nameserver 204.101.251.1
            nameserver 204.101.251.2

    MAKE SURE YOU FIREWALL YOUR MACHINE, this is very important with any broadband connection as you don't want to be attacked by any old hacker or script kiddy. A sample firewall script is given in the shell script firewall To install the script:

    1. Copy it to /etc/rc.d/init.d/firewall
    2. Type: chkconfig firewall on
    3. Start the firewall: sh /etc/rc.d/init.d/firewall start

    You may want to tweak the script somewhat. (Note: The above procedure works ONLY on Red Hat-like systems)

    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:

            /usr/sbin/adsl-start

    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 (something most small Linuxbox's can spare).

    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 http://lan.cns.ksu.edu/OS/WIN95/slip95.htm. Set the MaxMTU to 1452.

     

    Problems & Solutions

    If you are having problems with rp-pppoe, then here are is the FAQ from the Roaring Penguin HOW-TO-CONNECT document.

    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 issues.

    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 (F).

    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:

            CLAMPMSS=1412

    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 10.0.0.1 netmask 255.255.255.0

    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 192.168.42.42 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 adsl-connect:

            ifconfig ethx down

            ifconfig ethx up mtu 1500

    which should reset things to sane values.

    WHEN ALL ELSE FAILS:

    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.

    Proudly Hosted By:
    Hosted by PEBKAC Consulting

    Please read our Legal Notice for information concerning our site and its content.
    All logos and trademarks in this site are property of their respective owner. All the rest © 2000 - 2016 by Linuxathome.net

    Reviews

    D-Link DI-704P
    VIA EPIA-M 9000
    Tux Applique
    Ricoh MP5125A
    AMD XP 2600+
    3DProphet 9000Pro
    Radeon 9700 Pro
    XTNDAccess IrDA
    Netgear FS-524s
    DSR2161 KVM
    Game TheaterXP & XPS-510 Speakers
    3D Prophet 4000XT
    AutoView 400
    Back-UPS CS 350
    Dual Neon Kit
    SwitchView KVM
    20x4 LCD Kit
    Window Kit

     
    LinuxSecurity
  • 5 Open-Source Blockchain Technologies That Linux Users Need to Know About
  • The Three Best Tools You Need to Scan Your Linux System for Malware
  • Navigating the Linux Kernel's Latest DMA Security Vulnerability
  • Staying a Step Ahead of Adversaries: Mitigating Chromium's Security Flaws on Linux
  • Slackware: 2024-244-01: libpcap Security Advisory Update
  • Fedora 40: microcode_ctl 2024-5c5c384fa7 Security Advisory Updates
  • Fedora 40: python3.11 2024-985017d277 Security Advisory Updates
  • Fedora 40: xen 2024-91ddad6c8b Security Advisory Updates
  • Fedora 39: xen 2024-ed546e3543 Security Advisory Updates
  • Debian: DSA-5762-1: webkit2gtk Security Advisory Updates
  •  
    Google Search
    Enter Keywords:

     
    Bash Jokes

    % !bluemoon

    bluemoon: Event not found.

     
    Virtualization, Virtual Machine & Virtual Server Consolidation - VMware

    The Community ENTerprise Operating System

    Get Slackware Linux

    Use OpenOffice.org

    Use Asterisk