DSL, or Digital Subscriber Loop, is a high-speed Internet access technology
that uses a standard copper telephone line (a.k.a. "loop" in
telco parlance). DSL provides a direct, dedicated connection to an ISP via
the existing telco network. DSL is designed to run on up to 80% of the
telephone lines available in the United States. By using line-adaptive
modulation, DSL is capable of providing data speeds of 8 Mbps, or more.
DSL services are now being aggressively marketed for home and small business
use. DSL is typically priced below ISDN, and well below T1 service, yet can
provide potentially even greater speeds than T1 without the
cost, complexity, and availability issues of T1. Since DSL is a dedicated,
often "always on" service, it avoids the delays and use charges
that are common with ISDN. Making this quite a nice technology for the
bandwidth starved masses.
While all this sounds exciting, DSL does have some drawbacks. The quality of
the DSL signal, and thus the connection, depends on distance (the length of
the copper "loop") and various other factors. Also, there is no
such thing as standard "DSL". There are various flavors of DSL,
and many, many ways DSL providers are implementing their networks. In typical
fashion, Linux users are often left to fend for themselves, since the DSL
providers are often taking the easy way out, and catering only to
"mainstream" Operating Systems.
The topics included in this HOWTO include qualification and pre-installation,
installation, configuration, troubleshooting and securing a DSL connection. As
well as other related topics. There are also appendices including a
comprehensive DSL Overview, Frequently Asked Questions, a listing of related links, and a glossary.
Due to the fast pace of change in the telco and DSL industries, please make
sure you have the latest version of this document. The current official
version can always be found at
http://www.linuxdoc.org/HOWTO/DSL-HOWTO/. Pre-release versions can be found at http://feenix.burgiss.net/ldp/adsl/.
This document attempts to give a comprehensive discussion of DSL. All aspects
are hopefully addressed to one degree or another with what can be a complex
topic since it deals with networking, hardware, new fangled technologies, and
various approaches taken by various vendors. The core components of this
The Installation section covers
installation of DSL hardware and related components, including wiring
considerations, splitter or microfilter installation, modem and Network
The Configuring Linux section covers
mostly client and software aspects of getting the connection up and
running. The Network card configuration is actually covered mostly in the
above Installation section.
The Securing Your Connection section covers
Security implications that are even more important with a full-time
connection. Linux users seem especially targeted by crackers, because
quite frankly, some don't understand how important security is, or don't
understand the finer points of this.
The Tuning and Troubleshooting section
covers post-installation topics like how well is our connection performing,
and how to track down any show-stoppers or intermittent problems.
There is also a lengthy Appendix that covers various topics relating to
Linux and DSL. None of these are directly related to simply getting that
connection up and running, but may be of interest nonetheless.
To simplify the navigation of this document, below is a suggested reading
guideline. Everyone should read the Introduction. Please pay special
attention to the Conventions and Terminology
section, as some of this terminology may be used somewhat differently in
other contexts. Also, there is a Glossary if
you get lost in the world of TA (telco acronyms) ;-).
If you don't know anything about DSL, you should probably read the entire
document. You may want to start with the DSL
Overview section in the Appendix, and then the FAQ. The DSL Overview explains how the various pieces
of the puzzle fit together. DSL network implementations are more complex
than traditional dialup networks.
If you have already done some homework, but have not ordered service from
anyone yet, read the Choosing
Providers section, and the Linux Friendly
ISPs sections. Also, you might get a head start by reading the
Configuring Linux section so you know
what lies ahead.
If you have ordered service already, and are awaiting delivery, you can
skip the sections on choosing a Provider. If you will be doing a
self-install, you should read the pertinent parts of the Installation section, the Configuring Linux section, and the Securing Your Connection section.
If the installation is complete, and you can't get a working connection,
skip right to the Troubleshooting Section.
If you are not clear on what protocols are required, or what software you
need to have installed, also read the Configuring Linux section. If not sure what
terms like "sync" mean in this context, then be sure to read
the DSL Overview section first so you know
how it all fits together.
If trying to decide between cable and DSL, read the
Cable vs DSL section, and possibly the
DSL Overview section.
If you have never had a full-time Internet connection, or are not
absolutely sure you fully understand how to secure you connection,
be sure to read The Securing Your Connection
section. If you don't understand some aspect of this, re-read it, or start
looking for other references.
There is a comprehensive Links section that
has references to some topics not touched on in the main body of the
DSL HOWTO for Linux (formerly the ADSL mini HOWTO)
Copyright © 1998,1999 David Fannin.
This document is free; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
This document is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
You can get a copy of the GNU GPL at at GNU GPL.
Thanks to all those that contributed information to this HOWTO. I have
anti-spammed their email addresses for their safety (and mine!). Remove the
X's from their names.
B Ediger (Xbediger@csn.net) Great
Description of loop impairment.
C Wiesner ( Xcraig@wkmn.com) List of many ADSL URLs.
J Leeuw ( Xjacco2@dds.nl) Many tips on ADSL,
especially in Europe
N Silberstein ( Xnick@tpdinc.com) Info on
Netrunner and his experience with US Worst.
Many and various posters from comp.dcom.xdsl and
bellsouth.net.support.adsl, too numerous to mention individually.
Juha Saarinen for suggestions and
explanations on the TCP Receive Window, and related tuning topics.
<email@example.com> for his Alcatel SpeedTouch USB mini
HOWTO which has been incorporated into the Appendix.
The authors accept no liability for the contents of this document. Use the
concepts, examples and other content at your own risk. As this is a new
edition, there may be errors and inaccuracies. Hopefully these are few and
far between. The author(s) do not accept any responsibility for incorrect or
misleading information, and would certainly appreciate any corrections. Also,
this type of technology dates itself very quickly. What may be true today, is
not guaranteed to be true tomorrow.
All copyrights are held by their by their respective owners, unless
specifically noted otherwise. Use of a term in this document
should not be regarded as affecting the validity of any trademark
or service mark.
References to any particular product, brand, service or company should
not be construed as an endorsement or recommendation.
Version 1.2 adds PPTP configuration section for Alcatel ethernet modems.
Also, added are two additional sections in the "Tuning" section
for the TCP Receive window, and ADSL/DMT interleaving. And the big news is
the release of open source drivers for the Alcatel USB modem as of March
2001. There is an Alcatel SpeedTouch USB mini HOWTO in the appendix by Chris Jones. A number of
miscellaneous updates as well.
Version 1.1 included quite a few minor corrections, updates,
and additions. Not much that is substantially new. There are finally two
Linux compatible DSL PCI modems from Xpeed. The drivers are now in the kernel
Version .99 addresses some of the many changes that have occurred since the
original ADSL mini HOWTO was published. Originally, ADSL was the primary DSL
technology being deployed, but more and more some of the other DSL flavors
are entering the picture -- IDSL, SDSL, G.Lite, and RADSL. Thus the renaming
from "ADSL mini HOWTO" to the "DSL HOWTO". There
have been many other changes in DSL technology as well. PPPoE/A encapsulation
has become more and more common as many ISPs are jumping on this bandwagon.
Any and all comments on this document are most welcomed. Please make sure you have
the most current version before submitting corrections! These can be sent to
For the sake of simplicity and sanity, let's clarify some of the terminology
that we will be using in this document, so that we are all on the same page.
While many of the definitions below are not always 100% technically correct,
they are close enough for our purposes here. In fast moving technologies like
DSL, there are so many "ifs, ands, and buts" that it is
difficult to say anything with any degree of certainty and have it stick. And
there are exceptions to almost every rule. And sometimes exceptions to the
exceptions. We will be dealing with generalities to a large degree here,
please keep that in mind.
"DSL" will be used to refer to the entire family of DSL
technologies now available -- ADSL, SDSL, IDSL, RADSL, etc. ADSL still
seems to be the most prevalent at this time, but the others are being
deployed more and more. Where it is important to differentiate one type of
DSL from another, the full proper name will be used: e.g. RADSL. xDSL is
also commonly used to refer to the various DSL technologies as a group, but
we will be using just "DSL" here.
The term "telco" here refers to any potential DSL provider.
This includes the ILECs (Incumbent Local Exchange Carriers), a.k.a. the old
guard phone companies, and the CLECs (Competitive Local Exchange Carriers),
or independent providers such as Covad and Rhythms. Both are providing DSL
services over existing copper lines.
"CO" is the telco acronym for "Central Office".
Traditionally this is a building where one end of your phone line
physically terminates. The other end terminates at your home, office, or
wherever. It will be used here to refer to the telco end termination point,
regardless of whether it is a traditional Central Office building or
another, smaller, remote structure or device.
"Loop" is telco speak for "phone line".
Essentially, you should think of your loop as one dedicated pair of copper
wires that run uninterrupted from your residence or office directly to the
CO. This is perhaps an oversimplification, but will serve our purposes. DSL
availability, and signal quality, is tied directly to the characteristics
of your physical line -- or "loop" as they say.
"POTS" is the acronym for Plain Old Telephone Service. In other
words, traditional, non-digital devices like phones, faxes and answering
"NID", or Network Interface Device, is the small telco
housing that is typically attached to the outside wall of your house, and
is the service entrance for telco services. This may variously also be
referred to as "ONI", "SNI", "NIU",
"TNI" or other creative telco acronyms.
It represents the "demarcation" point that divides the
customer's realm of responsibility from the telco's. Commercial structures,
and multi-family housing will likely have something more sophisticated,
and probably located inside somewhere.
"DSLAM" is the sophisticated hardware device in the telco's CO
where your phone line physically terminates, and thus makes DSL happen.
Increasingly, telcos are making use of smaller devices like the
"mini-RAM" in remote locations. We'll use "DSLAM"
here as a catchall for any device that enables DSL service from a telco.
"Modem" will be used to refer to the end user device that
enables a DSL connection. Your modem is connected to the telco's DSLAM in
the CO via your loop. When they are "talking" DSL to each
other, they are in "sync". Without "sync", no
connection to your ISP is possible.
"Modem" is indeed the correct terminology since there is
MOdulation and DEModulation of the signal, even though it isn't strictly
speaking an analog device like many of us have had before. These modems
typically have other features too. Some ISPs and manufacturers may be
marketing simply "routers", "bridges", or even
"brouters" for this purpose. These are essentially DSL modems
with enhancements. A compatible "modem" of some kind is the
minimum hardware requirement at the customer's end of the connection. The
most commonly supplied modem is actually a combination bridge and modem.
Unless stated otherwise, we will also be assuming the "modem"
has an ethernet interface, and will connect to a standard ethernet Network
Card (NIC). This is far and away the most prevalent configuration, at least
until more Linux drivers are available for PCI and USB modems.
It is worth noting that "routers" as supplied by DSL providers
are typically modem/router combination devices. In our context,
"router" will refer to these devices as such. There are also
SOHO broadband routers available that are only dedicated routers and lack
the modem functionality.
Previous versions of this document referred to the modem as an
"ANT" (ADSL Network Termination). While this may be
technically correct terminology, it is not used by ISPs, manufacturers,
telcos, or most users to any extent. The "modem" will be just
called a modem, regardless of whatever other features it may have (i.e.
router, bridge, etc.).
PPPoX will be used to refer to PPPoE (PPP over Ethernet) and PPPoA
(PPP over ATM) collectively. These protocols are being used by
many DSL providers now.
The information provided in this document is based on the current state of
DSL in the U.S. I would assume there are enough similarities with
DSL services outside of the US that this document would still have some
merit for everyone. Correct me if I am wrong by emailing
A "#" will be used to denote a command that typically is run
by the root user. Otherwise, a "$" will be used as the prompt
for non-root users.