Man Linux: Main Page and Category List


       pppoe-server - user-space PPPoE server


       pppoe-server [options]


       pppoe-server  is a user-space server for PPPoE (Point-to-Point Protocol
       over Ethernet) for Linux and other UNIX systems.  pppoe-server works in
       concert with the pppoe client to respond to PPPoE discovery packets and
       set up PPPoE sessions.


       -F     The -F option causes pppoe-server  not  to  fork  and  become  a
              daemon.  The default is to fork and become a daemon.

       -I interface
              The  -I  option  specifies the Ethernet interface to use.  Under
              Linux, it is typically eth0 or eth1.  The  interface  should  be
              "up" before you start pppoe-server, but should not be configured
              to have an IP address.  You can supply multiple  -I  options  if
              you want the server to respond on more than one interface.

       -T timeout
              This  option  is  passed  directly  to  pppoe;  see pppoe(8) for
              details.  If you are using kernel-mode PPPoE, this option has no

       -C ac_name
              Specifies  which name to report as the access concentrator name.
              If not supplied, the host name is used.

       -S name
              Offer  a  service  named  name.   Multiple  -S  options  may  be
              specified; each one causes the named service to be advertised in
              a Service-Name tag in the  PADO  frame.   The  first  -S  option
              specifies  the  default service, and is used if the PPPoE client
              requests a Service-Name of length zero.

       -m MSS This option is  passed  directly  to  pppoe;  see  pppoe(8)  for
              details.  If you are using kernel-mode PPPoE, this option has no

       -s     This option is  passed  directly  to  pppoe;  see  pppoe(8)  for
              details.   In  addition,  it  causes pppd to be invoked with the
              sync option.

       -L ip  Sets the local IP address.   This  is  passed  to  spawned  pppd
              processes.  If not specified, the default is

       -R ip  Sets   the   starting   remote  IP  address.   As  sessions  are
              established,  IP  addresses  are  assigned  starting  from   ip.
              pppoe-server  automatically keeps track of the pool of addresses
              and passes a valid remote IP address to pppd.  If not specified,
              a starting address of is used.

       -N num Allows at most num concurrent PPPoE sessions.  If not specified,
              the default is 64.

       -O fname
              This option causes pppoe-server to tell pppd to use  the  option
              file fname instead of the default /etc/ppp/pppoe-server-options.

       -p fname
              Reads the specified file fname which is a text  file  consisting
              of one IP address per line.  These IP addresses will be assigned
              to clients.  The number  of  sessions  allowed  will  equal  the
              number  of addresses found in the file.  The -p option overrides
              both -R and -N.

              In addition to  containing  IP  addresses,  the  pool  file  can
              contain lines of the form:


              which  includes  all  IP addresses from a.b.c.d to a.b.c.e.  For
              example, the line:


              is equivalent to:


       -r     Tells the PPPoE server  to  randomly  permute  session  numbers.
              Instead  of  handing  out sessions in order, the session numbers
              are assigned in an unpredictable order.

       -u     Tells the server to invoke pppd with the unit option.  Note that
              this option only works for pppd version 2.4.0 or newer.

       -o offset
              Instead  of numbering PPPoE sessions starting at 1, they will be
              numbered starting at offset+1.  This allows you to run  multiple
              servers  on  a  given machine; just make sure that their session
              numbers do not overlap.

       -f disc:sess
              The -f option sets the Ethernet frame types for PPPoE  discovery
              and  session  frames.   The  types  are specified as hexadecimal
              numbers separated by a colon.  Standard PPPoE uses  frame  types
              8863:8864.   You  should  not  use  this  option  unless you are
              absolutely sure the peer you are dealing with uses  non-standard
              frame types.

       -k     The  -k  option  tells  the  server  to use kernel-mode PPPoE on
              Linux.  This option is available only on Linux kernels 2.4.0 and
              later,  and  only  if  the  server  was  built  with kernel-mode

       -h     The -h option prints a brief usage message and exits.


       pppoe-server listens for incoming  PPPoE  discovery  packets.   When  a
       session  is  established,  it  spawns  a  pppd  process.  The following
       options are passed to pppd:

       nodetach noaccomp nobsdcom nodeflate nopcomp novj novjccomp

       In addition, the local and remote IP address are set based  on  the  -L
       and  -R options.  The pty option is supplied along with a pppoe command
       to initiate the PPPoE session.  Finally, additional pppd options can be
       placed  in  the  file  /etc/ppp/pppoe-server-options (which must exist,
       even if it is just empty!)

       Note that pppoe-server is meant mainly for testing PPPoE  clients.   It
       is not a high-performance server meant for production use.


       pppoe-server was written by David F. Skoll <>.

       The pppoe home page is


       pppd(8),        pppoe(8),        pppoe-sniff(8),        pppoe-relay(8),