Originally Published: Wednesday, 29 November 2000 Author: Brian Richardson
Published to: interact_articles_live/Live! Page: 1/1 - [Std View]

Cable vs. DSL

Were you here for our fantastic IRC chat on configuring Linux for cable modems and DSL? Have no fear! Brian Richardson, Linux.com's Hardware Project Manager, makes it easy to figure out the tools you'll need to use these types of connections under Linux and the hardware necessary to make it happen.

A few weeks back, Linux.com Live! hosted a chat for Linux on cable modems and DSL connections. The chat focused on configuring Linux networking to work with these household high-speed solutions.

Cable vs. DSL

Both Cable Modem and DSL are excellent connection options for the Linux user. Cable Modem is delivered to the home via standard television cable, while DSL is delivered over standard phone lines. The output of any 'external' Cable Modem or DSL adapter is a standard RJ45 jack, which connects to any standard network card or hub. From there, it's a matter of configuration.


Your garden variety external cable modem translates its output into 10BaseT protocol. The cable provider assigns an IP address to the ethernet adapter connected to the cable modem. The setup for this uses standard networking protocols, just like a direct connection to the Internet on a LAN. When you configure your Linux machine for Internet access, make sure you have the following information available:

If the cable provider gave you an ethernet card when the service was installed, it's best to use that card. Most cable providers will not allocate an IP address to your system unless they have your ethernet adapter's MAC address on file. If you plan on changing the ethernet adapter connected to the cable modem, check with your provider to see if they need your adapter's MAC address.


While Cable Modem follows a standard network configuration, DSL on Linux requires a bit more work. Instead of using ordinary TCP/IP to connect your blazing DSL connection to the rest of the known computer universe, DSL uses PPPoE, which stands for 'Point-to-Point Protocol over Ethernet' (say that five times fast). PPPoE works just like PPP on traditional modems, wrapping another layer around TCP/IP traffic destined for your computer.

In DSL configuration, the host computer does not get an IP address assigned by the provider, the DSL adapter does. The service provider gets the data destined for your assigned IP address, wraps it in the PPPoE protocol, then sends it to your DSL adapter. The DSL adapter then forwards these "wrapped" packets to your computer. This requires your computer to have a PPPoE driver to "unwrap" the packets.

Most Linux distributions don't come with the necessary driver for PPPoE support. The best solution for this is Roaring Penguin PPPoE, a free PPPoE client. This client is well supported, and installs with minimal kernel manipulation (and there was much rejoicing). Check Roaring Penguin's documentation to make sure you have all of the required items, like version 2.3.7 of pppd.

The PPPoE configuration isn't your standard network layout. Roaring Penguin installs a ppp network adapter, usually named ppp0, that gets an IP address from the provider. PPPoE has an username/password authentication process that allocates an IP address to your adapter (example: Your computer's ethernet adapter, usually named eth0, will have a Class C network address (example: This looks very odd at first, but trust me, it works.

Installation Issues

Warning: when it comes to Cable & DSL on Linux you must be careful with the service provider. Even the most capable bandwidth provider isn't ready to support a Linux user in the home. The vast majority of their service base is Microsoft Windows, so that's what they're trained to support. Yelling a lot and throwing an all out temper tantrum won't fix this in the near future. It's best that you be prepared when the friendly bandwidth man, or woman, arrives at your doorstep.

Here's the short list of things to do to ensure a swift and trouble-free installation:

Keep the "supported" configuration handy for later. If you have a problem with your connection in Linux, compare it to the connection in Windows. If they are both having problems, call the provider ... if only the Linux system has problems, check your configuration again.

Speed Tweaks

After installation, make sure the connection is giving you as much bandwidth as possible. There are many system tweaks that can greatly improve your connection speed.

Use an on-line speed tester to check your setup. Many reliable ones exist, like DSL Reports and C-Net's Bandwidth Meter (it has nifty bar graphs). Download speeds are a decent way to check your connection, assuming you use a reliable server with a very fast connection to the Internet. If these aren't up to snuff, it's time to tweak your network connection. The easiest way to improve your network speed is to change your Maximum Transmission Unit (MTU) and Receive Window (RWIN) values.

DSL Reports gives a good explanation of how RWIN and MTU affect your connection speed. MTU values can be changed using ifconfig (read the man page for info). RWIN values can be modified by changing the values in a few system files. Restart networking after these changes have been made, but only change these if you are not getting great transfer speeds. Always check with your service provider is you are having connection problems in both the Windows and Linux configurations.

Tip of the Iceberg

There's a lot that this article does not cover, including service availability in rural areas, issues with slow speed, internal adapters with no Linux drivers, connection sharing, securing your computer from unwanted visitors, or issues with companies that do not directly support Linux users. But stick around, Linux.com will soon come to your rescue. Watch for future Cable/DSL articles, upcoming Live! events and look for assistance in #linuxhelp on irc.linux.com.

Brian Richardson has jumped from the land of hardware to bring you this high-bandwidth update. Stay tuned as he brings you more silicon mayhem.