Setting up Bell Atlantic's Infospeed with Linux

This page includes a short how-to on setting up a Linux box to work with Bell Atlantic's Infospeed ADSL service. Apparently, there are different flavors of Infospeed in use. This page reflects the Manhattan WinPoet (PPPoE) flavor.

Last Update: $Date: 2000/05/04 19:29:24 $

1. ADSL Installation

Make sure to select the Westel Ethernet ADSL external modem when ordering your service. Follow the installation instructions provided with your package.

2. ADSL Account Setup

You will need a Windows (95/98/NT/2000) machine in order to set up your Infospeed account. You will need to follow their instructions carefully, including installation of a customized Netscape 4.5 browser (don't ask me why you can't just run their Java installation program with a Java JRE).

As part of the account setup, you will be asked to select a Global Service Providers (GSPs). The current choices are between GTEI and QWEST. You may want to do a traceroute from your favorite Internet destination to see if one or another is better (in my case they were about the same number of hops). Also, make sure to note your account name xxx@bellatlantic.net as well as your password !

3. Linux Installation

Now that you have ADSL running on Windows it is time to reboot to Linux. You will need a PPPoE (PPP over Ethernet) client. There are several available roughly divided between kernel and user-space implementations. I ended up using Roaring Penguin's PPPoE user space client, mostly because I was too lazy to compile my kernel again, and also because I was afraid of compromising system stability. In my dedicated Pentium 166 router box, the client uses less than 10% CPU. Once you have downloaded and installed the PPPoE client you will need to set it up using the adsl-setup script. All that is left is to execute adsl-start and you should be all set ! To maintain connectivity across reboots, you can invoke the adsl-start script from your /etc/rc/rc.local script. [ This section will be expanded soon ]

4. Firewall Setup

Now that you're connected to the Internet over a semi-permanent (Infospeed shuts down your connection and gives you a new IP address every eight hours) Internet connection, you are vulnerable to hackers ! Given that most Linux installations default to offering a wealth of services (WWW, FTP, Ident, Finger, LinuxConf, Sendmail, etc.) you are likely to be very vulnerable. I strongly recommend that you read the IPCHAINS-HOWTO available at

5. Masquerading Setup

Unfortunately, Bell Atlantic does not support more than one host per ADSL line. If you would like to connect more than one machines to the Internet sharing the same ADSL line, then you'll need to use Linux IP Masquerading.

Most modern Linux distributions are already configured to support IP Masquerading.

6. Example Setup

The following example shows my current home configuration. Note that this information is provided as an example and no warranty is made on any properties such as security or correctness. Use at your own risk.

6.1 Topology

6.2 Hardware (Ethernet) Configuration

It is likely that you will need to configure the cards manually. Use the /sbin/ifconfig -a utility to find out if your kernel has recognized your Ethernet cards (look for eth0 and eth1). In my setup, I have two 3Com EtherLink III cards which I configured as follows :
  1. Booted to DOS/Windows and executed the 3COM configuration utilities,
  2. Used the configuration utility program to automatically set the IRQs and I/O addresses of the two cards (wrote that info down),
  3. Rebooted to Linux and edited the /etc/conf.modules file, adding the following lines:
    alias eth0 3c509
    alias eth1 3c509
    options eth0 3c509-0 io=0x210 irq=5
    options eth1 3c509-1 io=0x300 irq=10
  4. Rebooted (not necessary, but easiest)
Once you have both Ethernet cards recognized by the kernel, you need to configure one of them to the IP address of your internal network. In my case, I used the class A network 10.0.0.0/8, and chose to use eth1. In my RedHat 6.2 system I had to create the file /etc/sysconfig/network-scripts/ifcfg-eth1 containing :
DEVICE=eth1
IPADDR=10.0.0.1
NETMASK=255.0.0.0
NETWORK=10.0.0.0
BROADCAST=10.255.255.255
ONBOOT=yes
BOOTPROTO=static
You must leave the other Ethernet interface unconfigured ! The PPPoE client will handle its configuration.

6.3 OS/Service Configuration

6.4 DHCP Daemon Configuration

Edit the file /etc/dhcpd.conf :
#
# File : /etc/dhcpd.conf
#
subnet 10.0.0.0 netmask 255.0.0.0 {
        option routers                  10.0.0.1;
        option subnet-mask              255.0.0.0;

        option domain-name              "bellatlantic.net";
        # The nameservers below are for NY customers :
        option domain-name-servers      151.198.0.38, 199.45.32.37;

        option time-offset              -5;     # Eastern Standard Time

        default-lease-time 2592000;
        max-lease-time 2592000;

        range 10.0.0.10 10.0.0.255;
}
Make sure that you are starting the DHCP daemon at boot time by creating soft links to the /etc/rc.d/init.d/dhcpd start up script from :
/etc/rc.d/rc2.d/S65dhcpd
/etc/rc.d/rc3.d/S65dhcpd
/etc/rc.d/rc4.d/S65dhcpd
/etc/rc.d/rc5.d/S65dhcpd

6.5 Firewall/IP Masquerading Configuration

The following lines are appended to the end of the /etc/rc.d/rc.local file (an alternative is to create an /etc/rc.d/init.d/firewall as described in the IPCHAINS-HOWTO) :
# Default forwarding policy is DENY
/sbin/ipchains -P forward DENY

# Deny packets arriving from the Internet claiming internal addresses
/sbin/ipchains -A input -i ppp0 -s 10.0.0.0/8 -l -j DENY

# Extend the timeouts for TCP, TCP after FIN, and UDP masquerading
/sbin/ipchains -M -S 7200 10 60

# Enable IP forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# Masquerade for internal hosts
/sbin/ipchains -A forward -s 10.0.0.0/8 -j MASQ

# Load FTP module (enables active FTP sessions over the firewall)
/sbin/modprobe ip_masq_ftp

# Load Real Audio module
/sbin/modprobe ip_masq_raudio

#/sbin/modprobe ip_masq_cuseeme
#/sbin/modprobe ip_masq_irc
#/sbin/modprobe ip_masq_mfw
#/sbin/modprobe ip_masq_quake
#/sbin/modprobe ip_masq_vdolive
#/sbin/modprobe ip_masq_user
#/sbin/modprobe ip_masq_portfw

# Start Roaring Penguin ADSL PPPoE client
/usr/local/sbin/adsl-start

Connecting Clients

You should now be ready to connect clients to your Ethernet hub/switch. New clients should be configured to use DHCP (see masquerading HOWTO on specific details).
Please send comments/questions/corrections to Alexander V. Konstantinou (akonstan@cs.columbia.edu).