http://node.to/freebsd/how-tos/how-to-freebsd-pppoe.html) by Jim Mock.
This section describes how to set up PPP over Ethernet (PPPoE).
No kernel configuration is necessary for PPPoE any longer. If the necessary netgraph
support is not built into the kernel, it will be dynamically loaded by ppp.
Here is an example of a working ppp.conf:
set log Phase tun command # you can add more detailed logging if you wish
set ifaddr 10.0.0.1/0 10.0.0.2/0
set device PPPoE:xl1 # replace xl1 with your ethernet device
set authname YOURLOGINNAME
set authkey YOURPASSWORD
add default HISADDR
As root, you can run:
# ppp -ddial name_of_service_provider
Add the following to your /etc/rc.conf file:
ppp_nat="YES" # if you want to enable nat for your local network, otherwise NO
Sometimes it will be necessary to use a service tag to establish your connection.
Service tags are used to distinguish between different PPPoE servers attached to a given
You should have been given any required service tag information in the documentation
provided by your ISP. If you cannot locate it there, ask your ISP's tech support
As a last resort, you could try the method suggested by the Roaring Penguin PPPoE
program which can be found in the ports collection. Bear in mind
however, this may de-program your modem and render it useless, so think twice before
doing it. Simply install the program shipped with the modem by your provider. Then,
access the menu from the program. The name of your
profile should be listed there. It is usually ISP.
The profile name (service tag) will be used in the PPPoE configuration entry in ppp.conf as the provider part of the set
device command (see the ppp(8) manual page for
full details). It should look like this:
set device PPPoE:xl1:ISP
Do not forget to change xl1 to the proper device for
your Ethernet card.
Do not forget to change ISP to the profile you have
just found above.
For additional information, see:
This modem does not follow RFC 2516 (A Method for
transmitting PPP over Ethernet (PPPoE), written by L. Mamakos, K. Lidl, J.
Evarts, D. Carrel, D. Simone, and R. Wheeler). Instead, different packet type codes have
been used for the Ethernet frames. Please complain to 3Com if you think it should comply with the PPPoE specification.
In order to make FreeBSD capable of communicating with this device, a sysctl must be
set. This can be done automatically at boot time by updating /etc/sysctl.conf:
or can be done for immediate effect with the command sysctl
Unfortunately, because this is a system-wide setting, it is not possible to talk to a
normal PPPoE client or server and a 3Com® HomeConnect® ADSL Modem at the same time.