FreeBSD Handbook
Prev | Chapter 28 PPP and SLIP | Next

# 28.6 Using PPP over ATM (PPPoA)

The following describes how to set up PPP over ATM (PPPoA). PPPoA is a popular choice among European DSL providers.

## 28.6.1 Using PPPoA with the Alcatel SpeedTouch™ USB

PPPoA support for this device is supplied as a port in FreeBSD because the firmware is distributed under Alcatel's license agreement and can not be redistributed freely with the base system of FreeBSD.

To install the software, simply use the Ports Collection. Install the `net/pppoa` port and follow the instructions provided with it.

Like many USB devices, the Alcatel SpeedTouch™ USB needs to download firmware from the host computer to operate properly. It is possible to automate this process in FreeBSD so that this transfer takes place whenever the device is plugged into a USB port. The following information can be added to the `/etc/usbd.conf` file to enable this automatic firmware transfer. This file must be edited as the `root` user.

    device "Alcatel SpeedTouch USB"
        devname "ugen[0-9]+"
        vendor 0x06b9
        product 0x4061
        attach "/usr/local/sbin/modem_run -f /usr/local/libdata/mgmt.o"

To enable the USB daemon, usbd, put the following the line into `/etc/rc.conf`:

    usbd_enable="YES"

It is also possible to set up ppp to dial up at startup. To do this add the following lines to `/etc/rc.conf`. Again, for this procedure you will need to be logged in as the `root` user.

    ppp_enable="YES"
    ppp_mode="ddial"
    ppp_profile="adsl"

For this to work correctly you will need to have used the sample `ppp.conf` which is supplied with the `net/pppoa` port.

## 28.6.2 Using mpd

You can use mpd to connect to a variety of services, in particular PPTP services. You can find mpd in the Ports Collection, `net/mpd`. Many ADSL modems require that a PPTP tunnel is created between the modem and computer, one such modem is the Alcatel SpeedTouch Home.

First you must install the port, and then you can configure mpd to suit your requirements and provider settings. The port places a set of sample configuration files which are well documented in ``PREFIX`/etc/mpd/`. Note here that `PREFIX` means the directory into which your ports are installed, this defaults to `/usr/local/`. A complete guide to configure mpd is available in HTML format once the port has been installed. It is placed in ``PREFIX`/share/doc/mpd/`. Here is a sample configuration for connecting to an ADSL service with mpd. The configuration is spread over two files, first the `mpd.conf`:

> Note: This example of the `mpd.conf` file only works with mpd 4.x.

    default:
        load adsl

    adsl:
        new -i ng0 adsl adsl
        set bundle authname username
        set bundle password password
        set bundle disable multilink

        set link no pap acfcomp protocomp
        set link disable chap
        set link accept chap
        set link keep-alive 30 10

        set ipcp no vjcomp
        set ipcp ranges 0.0.0.0/0 0.0.0.0/0

        set iface route default
        set iface disable on-demand
        set iface enable proxy-arp
        set iface idle 0

        open

  The username used to authenticate with your ISP.
  The password used to authenticate with your ISP.

The `mpd.links` file contains information about the link, or links, you wish to establish. An example `mpd.links` to accompany the above example is given beneath:

    adsl:
        set link type pptp
        set pptp mode active
        set pptp enable originate outcall
        set pptp self 10.0.0.1
        set pptp peer 10.0.0.138

  The IP address of your FreeBSD computer which you will be using mpd from.
  The IP address of your ADSL modem. For the Alcatel SpeedTouch Home this address defaults to `10.0.0.138`.

It is possible to initialize the connection easily by issuing the following command as `root`:

    # mpd -b adsl

You can see the status of the connection with the following command:

    % ifconfig ng0
    ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1500
         inet 216.136.204.117 --> 204.152.186.171 netmask 0xffffffff

Using mpd is the recommended way to connect to an ADSL service with FreeBSD.

## 28.6.3 Using pptpclient

It is also possible to use FreeBSD to connect to other PPPoA services using `net/pptpclient`.

To use `net/pptpclient` to connect to a DSL service, install the port or package and edit your `/etc/ppp/ppp.conf`. You will need to be `root` to perform both of these operations. An example section of `ppp.conf` is given below. For further information on `ppp.conf` options consult the ppp manual page, ppp(8).

    adsl:
     set log phase chat lcp ipcp ccp tun command
     set timeout 0
     enable dns
     set authname username
     set authkey password
     set ifaddr 0 0
     add default HISADDR

  The username of your account with the DSL provider.
  The password for your account.

> Warning: Because you must put your account's password in the `ppp.conf` file in plain text form you should make sure than nobody can read the contents of this file. The following series of commands will make sure the file is only readable by the `root` account. Refer to the manual pages for chmod(1) and chown(8) for further information.

>     # chown root:wheel /etc/ppp/ppp.conf
>     # chmod 600 /etc/ppp/ppp.conf

This will open a tunnel for a PPP session to your DSL router. Ethernet DSL modems have a preconfigured LAN IP address which you connect to. In the case of the Alcatel SpeedTouch Home this address is `10.0.0.138`. Your router documentation should tell you which address your device uses. To open the tunnel and start a PPP session execute the following command:

    # pptp address adsl

> Tip: You may wish to add an ampersand (“&”) to the end of the previous command because pptp will not return your prompt to you otherwise.

A `tun` virtual tunnel device will be created for interaction between the pptp and ppp processes. Once you have been returned to your prompt, or the pptp process has confirmed a connection you can examine the tunnel like so:

    % ifconfig tun0
    tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
            inet 216.136.204.21 --> 204.152.186.171 netmask 0xffffff00
    	Opened by PID 918

If you are unable to connect, check the configuration of your router, which is usually accessible via telnet or with a web browser. If you still cannot connect you should examine the output of the `pptp` command and the contents of the ppp log file, `/var/log/ppp.log` for clues.

Prev | Home | Next
Using PPP over Ethernet (PPPoE) | Up | Using SLIP