pppoe-server
Run PPPoE access concentrator server
TLDR
SYNOPSIS
pppoe-server [options]
DESCRIPTION
pppoe-server implements a PPPoE access concentrator that accepts incoming PPPoE client (PADI/PADR) frames on a specified Ethernet interface. For each accepted session it spawns a pppd instance plumbed to the user-space pppoe plugin (or the in-kernel driver with -k) and assigns a remote IP from the local pool unless -D delegates that to pppd.Typical deployments run pppoe-server as part of a small lab DSL/PPPoE setup; ISPs more commonly use it as the front end to a RADIUS-backed AAA stack via pppd's radius plugin.
PARAMETERS
-I INTERFACE
Ethernet interface to listen on. Repeatable to serve multiple interfaces.-L IP
Local (server-side) IP address (default 10.0.0.1).-R IP
Remote IP pool starting address (default 10.67.15.1); each session gets the next address.-p FILE
Read the remote IP pool from a text file (one address per line).-S NAME
Advertised service name. Repeatable to advertise multiple services.-C ACNAME_
Access-concentrator name announced in PADO replies (default: hostname).-N NUM
Maximum concurrent sessions (default 64).-x N
Limit concurrent sessions from a single peer MAC.-O FILE
Path to a pppd options file used for every spawned session.-T SECONDS
Idle timeout passed through to pppoe.-m MSS
Clamp the negotiated TCP MSS to MSS.-D
Delegate IP address assignment to pppd (do not allocate from the local pool).-k
Use the in-kernel PPPoE driver (Linux 2.4+).-F
Run in the foreground rather than daemonising.-X PIDFILE
Write the daemon PID to PIDFILE with locking.-q PATH
Path to the pppd binary.-Q PATH
Path to the user-space pppoe binary.-u
Invoke pppd with the unit option for predictable interface naming.-i
Silently drop PADI broadcasts when no session slots remain.-r
Randomise PPPoE session IDs.-h
Print usage and exit.
CAVEATS
The Ethernet interface used by pppoe-server typically must be brought up without an IP, since PPPoE works at layer 2. Combine with a RADIUS plugin in pppd for real authentication; the built-in pool assignment is meant for simple/lab use. The default session cap (-N 64) is the absolute maximum per interface for rp-pppoe unless raised.
HISTORY
pppoe-server is part of rp-pppoe by Roaring Penguin Software (originally written by Dianne Skoll), the canonical user-space PPPoE implementation on Linux and \*BSD.
SEE ALSO
pppoe(8), pppoe-relay(8), pppd(8)
