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.
Files:
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
/etc/modules.conf.
Make sure that the /dev/ppp device
exists: "mknod /dev/ppp c 108 0"
2. Configure, compile and install the modified pppd
package.
Links to the patch, or the complete
patched source are available above.
3. Include the following line in your ppp options file:
plugin pppoe
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
PAP.
4. Invoke pppd (e.g.: "pppd eth0"). Before
doing this, make sure the ethernet
device is up ("ifconfig eth0 up"
has been executed).
Other Stuff:
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:
client's /etc/ppp/options:
plugin /usr/lib/pppd/plugins/pppoe.so
name papname
client's /etc/ppp/pap-secrets:
papname * papsecret
server's /etc/ppp/options:
plugin /usr/lib/pppd/plugins/pppoe.so
pppoe_server
+pap
10.10.10.1:
server's /etc/ppp/pap-secrets:
papname * papsecret
10.10.10.0/24+ !10.10.10.1
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
each session.
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
out this
page for instructions on how to ensure that path
MTU's are properly
reported across your network. Without
this your masquerading will
not work.
http://www.hgfelger.de/mss/mss.html
Michal Ostrowski
mostrows@styx.uwaterloo.ca