[afnog] Help on setting up PPPoE server on FreeBSD

Brian Candler B.Candler at pobox.com
Sat Apr 23 12:32:00 EAT 2005


On Sat, Apr 23, 2005 at 11:12:16AM +0300, Aklei G. Kessy wrote:
> I need help on setting up a PPPoE server on my FreeBSD box, i've googled and 
> only got this document http://www.rensel.com/wireless/pppoe.cfm
> I followed the instruction but didn't work. I'd appreciate your help

You need to give much more information than "didn't work", since there are
lots of things which might be wrong, and we can't help you without having
visibility of your problem.

How did you test it? What client were you using? Did the client show any
error message? Did the server show any messages in any log files? Did you
monitor the ethernet traffic with tcpdump, and if so, what did you see? If
not, then you should do so:
    # tcpdump -i fxp0 -n -s1500 -X
(replace fxp0 with your network interface)

Note also that the document you found talks about FreeBSD version 4.0, which
is very old. I don't think you looked very hard, because within a few
seconds I found this:

http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/pppoe.html
(I just went to www.freebsd.org and entered 'pppoe' into the search box)

This shows a pppoe client, but this is a useful starting point, especially
if you can set up two FreeBSD boxes side by side. You are much likely to get
better error reporting from a FreeBSD client than a Windoze one.

Then going to google and entering "freebsd pppoe server", I got lots of
useful stuff. The first hit was the document you found, and the second was
the handbook page I just gave, but the third page was this one:

http://www.jraitala.net/comp/articles/2002/pppoe/

which gives a lot of clues. In particular, it tells you that there are two
types of ppp (kernel and userland), which you should already know from
reading the handbook ppp chapter; and then it says that for a kernel-mode
ppp server you need a package called "mpd". So, go to /usr/ports/net/mpd and
read pkg-descr (if you have the ports collection installed; otherwise go to
www.freebsd.org, click on 'ported software', and enter mpd into the search
box)

However, the other very useful resource you have is the man pages. On a
FreeBSD 5-STABLE box I typed the following:

# man -k pppoe
ng_pppoe(4)              - RFC 2516 PPPoE protocol netgraph node type
pppoed(8)                - handle incoming PPP over Ethernet connections

Ah, so there is a daemon already supplied with FreeBSD called "pppoed", and
it looks like it wil do exactly what you want.

"man pppoed" gives you information on how to run it, and it turns out this
is for the userland ppp implementation. Essentially, you need to set up
/etc/ppp in the same way as you would for a dialup ppp server (which the
FreeBSD handbook explains), then you run pppoed instead of using getty or
mgetty to accept incoming calls. pppoed starts an instance of
/usr/sbin/ppp for each incoming pppoe connection.

So what I suggest is you go through each of the resources listed above,
learn how the various bits work, and try to put them together. I suggest you
start with the userland ppp approach, since
(a) all the bits you need come with a standard FreeBSD install;
(b) it's probably simpler to set up;
(c) there's better documentation of the userland ppp approach;
even though the article I found says that its performance isn't as good as
kernel ppp. You can try that too, of course.

Then, if you can't get it to work, come back here and give a *detailled*
description of what you did. That is:

- which FreeBSD version you are running (make sure it's recent, i.e.
  5.3/5-STABLE or 4.11)
- whether you are trying to use the userland or kernel ppp implementation
- what config files you created, and their exact contents
- exactly what commands you typed to start the appropriate daemons
- what clients you tried to connect with, and what you saw happen
  (both at the client side, and any logs at the server side)
- the tcpdump output showing the pppoe packets going in and out

That may allow us to spot what's happening, or else give further suggestions
(such as how to turn on additional logging).

And of course, if you *do* make it work successfully, then please come back
anyway and post a summary of what you did, so that other people can benefit
from it when browsing the list archives.

Regards,

Brian.



More information about the afnog mailing list