This is a driver for PPPoE for Linux 2.4.
This driver is for 2.4 kernels only. For a driver
for 2.2 kernels, the Roaring Penguin
package is recommended.
The software on this page is currently required if you wish to use kernel-mode
PPPoE with Roaring Penguin (see the Roaring Penguin documentation for details),
though this functionality is currently recommended for experts only.
ppp-2.4.1-pppoe.patch4 Patch for ppp-2.4.1
ppp-2.4.1-pppoe4.tgz Source of ppp-2.4.1 with patches applied.
ppp-cvs.pppoe1.tgz Source of ppp CVS repository with patches applied.
Installation & Usage:
1. Configure, compile and install a 2.4 kernel.
Make sure to enable PPP over Ethernet in the kernel configuration, as
well as as the "Packet Socket" option. You must also enable support
for experimental drivers.
If you are compiling as a module,
add the line "alias net-pf-24 pppoe" to
Make sure that the /dev/ppp device
exists: "mknod /dev/ppp c 108 0"
2. Configure, compile and install the modified pppd
Links to the patch, or the complete patched source are available above.
3. Include the following line in your ppp options file:
If you experience problems, try replacing
the "pppoe" with the
full path and file name of the "pppoe.so" file that is installed
by the pppd installation.
Following these two lines should be
your other ppp options. My
options file includes only one other line; a "name" statement for
4. Invoke pppd (e.g.: "pppd eth0"). Before
doing this, make sure the ethernet
device is up ("ifconfig eth0 up" has been executed).
1. You can restrict pppd to connect to specific access-concentrators
or specific services by addin "pppoe_ac_name" and "pppoe_srv_name"
options (respectively) to your options file. Each of these options is
followed by a string specifying the conecntrator or service name that
is to be matched. Most people should not need this.
2. Here's how I've configured things to get a server working:
papname * papsecret
papname * papsecret
On both the client and the server, pppd
is invoked as "pppd eth0".
With this setup you will have to invoke a new pppd on the server for
The patched pppd also builds a new pppoed
which can be used to create
a PPPoE server capable of serving multiple clients. To use this ,
remove the "pppoe_server" line from the server's /etc/ppp/options
file. Invoke pppoed as: "pppoed -S -I eth0 -A ac_name -S srv_name".
pppoed will now create a new pppd process for each incoming connection.
Note: this is still rather flaky, use with caution If pppoed seems to jam,
restarting it will not affect existing connections.
3. If you're trying to run masquerading over your PPPoE link, check
page for instructions on how to ensure that path MTU's are properly
reported across your network. Without this your masquerading will