2008/3/12, Randy McMurchy <[EMAIL PROTECTED]>:
> Alexander E. Patrakov wrote these words on 03/12/08 12:34 CST:
>  > Unlike the current pppoe service, my patch alows more than one simultaneous
>  > PPPoE connection (on more than one network card), really uses the 
> interface name
>  > (instead of always using RP-PPPoE default), and doesn't rely on external
>  > "wizards". Should I apply this?
>
> Sounds good to me, though it is a bit over my head.

OK, let's try to simplify this "experimentally". You will need:

 * qemu (or any other virtual machine) or two physical PCs connected
to the same Ethernet switch (a cross-over Ethernet cable also works)

 * two copies of LFS LiveCD 6.3-r2160 (the minimal version should work, too)

 * a flash drive or floppy with rp-pppoe-3.8 sources, because the copy
on the LiveCD is miscompiled and the instructions in the book are bad
(i.e., lead to the same miscompilation) for those who attempt to run a
server.

The goal is to set up an authenticated PPPoE connection between these
physical or virtual computers.

The miscompilation of rp-pppoe in the book manifests itself as
completely wrong packets (according to tcpdump) being sent out in the
user-mode by the pppoe-server program, and missing support for
kernel-mode PPPoE. This is supposed to be fixed by adding
--enable-plugin=yes, but actually this option breaks the build.

Start two instances of qemu that communicate with each other, with the
following command lines:

mkdir vfat
cp /path/to/rp-pppoe-3.8.tar.gz vfat
qemu -net nic,macaddr=52:54:00:12:34:56 -net
socket,listen=127.0.0.1:9999 -cdrom lfslivecd-x86-6.3-r2160.iso -hda
fat:vfat -boot d
qemu -net nic,macaddr=52:54:00:12:34:57 -net
socket,connect=127.0.0.1:9999 -cdrom lfslivecd-x86-6.3-r2160.iso

Alternatively, boot two copies of the CD, and make the sources
available to the first computer via floppy or flash.

In both computers, type "linux nodhcp" at the boot prompt. On the
first computer, compile a somewhat-fixed version of rp-pppoe (the fix
is incomplete, because user-mode still doesn't work in pppoe-server):

mount -o ro /dev/hda1 /mnt  # on a real computer, mount floppy or flash
tar xf /mnt/rp-pppoe-3.8.tar.gz
umount /mnt
cd rp-pppoe-3.8/src
./configure
grep KERNEL config.h  # see the kernel part of the breakage
echo '#define HAVE_LINUX_KERNEL_PPPOE 1' >>config.h
make PLUGIN_PATH=rp-pppoe.so  # reuse the plugin from pppd
make install

Then, configure the PPPoE server:

echo 'test pppoeserver 123 *' >>/etc/ppp/pap-secrets
echo 'name pppoeserver' >>/etc/ppp/pppoe-server-options
sed -i '/login/d' /etc/ppp/pppoe-server-options
modprobe pppoe
ip link set eth0 up
pppoe-server -k -L 192.168.0.1 -R 192.168.1.1 -F

This becomes a PPPoE server that accepts username "test" and password
"123" with PAP.

On the clent, just run the LiveCD-specific net-setup script, or follow
the instructions in the Wiki. The result should be that the ppp0
interface appears on both the client and the server (and ppp1, ppp2,
... ppp63 on the server, if more clients connect), and that
192.168.0.1 is pingable through the ppp0 interface from the client.
You can try various alternatives, like running the pppoe-setup script
on the client, that sets up old-style (user-mode) PPPoE. Then try
connecting with a non-LiveCD client.

When you get some practical understanding of the PPPoE client setup,
please tell whether the /etc/ppp/peers/pppoe file from LiveCD (that
contains options common to all PPPoE connections and is not really
supposed to be edited) should be part of the book or of the
bootscripts.

-- 
Alexander E. Patrakov
-- 
http://linuxfromscratch.org/mailman/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page

Reply via email to