What is FreeBSD?

FreeBSD is a BSD Unix operating system derived from the university of California at Berkeley's 4.4BSD-lite2 which does not retain earlier BSD code derived and used on a AT&T Unix license. Further information on the FreeBSD operating system can be found at http://www.freebsd.org.

FreeBSD Requirements for PPPoE

Be sure that you have a version of userppp that supports PPPoE. Please note that userppp is included in FreeBSD. It is not add-on software. Recent FreeBSD releases should be fine.

Any -CURRENT, -STABLE and -RELEASE versions of FreeBSD should be able to support PPPoE. FreeBSD 4.0-CURRENT and 3.3-STABLE releases have been tested and found to work. Using FreeBSD, an old 66 MHz 486 DX2 with 8 megs of ram can handle PPPoE with 40% CPU usage.

Configuring FreeBSD Kernel for PPPoE

In order to support PPPoE, three lines must be added at the end of the FreeBSD kernel file. Beginners with no idea how to compile a kernel, please read the following carefully. For more experienced users who know how to compile a kernel, just see step 3 below and add the three lines to your kernel.

  1. First you must change to the kernel configuration directory:

    cd /usr/src/sys/i386/conf

  2. In the kernel configuration directory, use your favorite text editor and edit the kernel file. For example, if you use emacs, you would type:

    emacs KERNEL

  3. Go to the end of the kernel file and add the following three lines:

    options NETGRAPH
    options NETGRAPH_ETHER
    options NETGRAPH_PPPOE
    options NETGRAPH_SOCKET

  4. After adding these three lines, save the modified kernel file.

  5. Type this command to set the kernel configuration:

    config KERNEL

  6. Now you must change to the kernel setup directory:

    cd ../../compile/KERNEL

  7. In the kernel setup directory, type the following three commands:

    make depend
    make
    make install

Your kernel is now ready for PPPoE!

Configuring FreeBSD /etc/ppp/ppp.conf File

To edit the /etc/ppp/ppp.conf file, just use your favorite text editor. Replace any existing file content with the lines below. Be sure the "set device PPPoE:---" line is correct for your network interface card. (We used ed1 for the NIC in this example.) Change the authname and authkey to your sympatico user id (b1xxxxxx) and your password.

# /etc/ppp/ppp.conf

default:

set log Phase Chat LCP IPCP CCP tun command
nat enable yes
nat same_ports yes
nat use_sockets yes
set redial 15 28800
set reconnect 15 28800

pppoe:

set device PPPoE:ed1:
set mru 1492
set mtu 1492
set speed sync
enable lqr
set lqrperiod 5
set cd 5
set dial
set login
set timeout 0
set authname b1xxxxxx@sympatico.ca
set authkey yourpassword
set ifaddr 10.0.0.1/0 10.0.0.2/0 255.255.255.0 0.0.0.0
add default HISADDR
enable dns

# end of ppp configuration

Configuring FreeBSD /etc/rc.conf  File

The /etc/rc.conf file should be set up as follows for the ethernet interface that goes to your DSL modem. (Again, this example uses ed1 for the NIC.)

# /etc/rc.conf

network_interfaces="auto"   #Set network interfaces automatically
ifconfig_ed1="inet 10.0.0.1 netmask 255.0.0.0 -arp up"
ppp_enable="YES"             #This enables PPP on startup (recommended)
ppp_mode="background"
ppp_profile="pppoe"

#end of  /etc/rc.conf

Rebooting the System

After you have compiled the kernel to support PPPoE and have edited the /etc/ppp/ppp.conf and /etc/rc.conf files with the right configuration, you can reboot your system. If you enabled ppp in the /etc/rc.conf as recommended, you should be connected and can now enjoy surfing the net on FreeBSD using PPPoE.

Starting PPP Manually

If you did not enable ppp to automatically connect on startup in the /etc/rc.conf file, you can use this command to connect to the Internet manually:

ppp -background pppoe