Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Contact Us
Online Help
Domain Status
Man Pages

Virtual Servers

Topology Map

Server Agreement
Year 2038

USA Flag



Man Pages

Manual Reference Pages  -  PPPOE-RELAY (8)


pppoe-relay - user-space PPPoE relay agent.


Example Invocations
See Also


pppoe-relay [options]


pppoe-relay is a user-space relay agent for PPPoE (Point-to-Point Protocol over Ethernet) for Linux. pppoe-relay works in concert with the pppoe client and pppoe-server server. See the OPERATION section later in this manual for details on how pppoe-relay works.


-S interface
  Adds the Ethernet interface interface to the list of interfaces managed by pppoe-relay. Only PPPoE servers may be connected to this interface.

-C interface
  Adds the Ethernet interface interface to the list of interfaces managed by pppoe-relay. Only PPPoE clients may be connected to this interface.

-B interface
  Adds the Ethernet interface interface to the list of interfaces managed by pppoe-relay. Both PPPoE clients and servers may be connected to this interface.

-n num Allows at most num concurrent PPPoE sessions. If not specified, the default is 5000. num can range from 1 to 65534.

-i timeout
  Specifies the session idle timeout. If both peers in a session are idle for more than timeout seconds, the session is terminated. If timeout is specified as zero, sessions will never be terminated because of idleness.

Note that the idle-session expiry routine is never run more frequently than every 30 seconds, so the timeout is approximate. The default value for timeout is 600 seconds (10 minutes.)

-F The -F option causes pppoe-relay not to fork into the background; instead, it remains in the foreground.

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


pppoe-relay listens for incoming PPPoE PADI frames on all interfaces specified with -B or -C options. When a PADI frame appears, pppoe-relay adds a Relay-Session-ID tag and broadcasts the PADI on all interfaces specified with -B or -S options (except the interface on which the frame arrived.)

Any PADO frames received are relayed back to the client which sent the PADI (assuming they contain valid Relay-Session-ID tags.) Likewise, PADR frames from clients are relayed back to the matching access concentrator.

When a PADS frame is received, pppoe-relay enters the two peers’ MAC addresses and session-ID’s into a hash table. (The session-ID seen by the access concentrator may be different from that seen by the client; pppoe-relay must renumber sessions to avoid the possibility of duplicate session-ID’s.) Whenever either peer sends a session frame, pppoe-relay looks up the session entry in the hash table and relays the frame to the correct peer.

When a PADT frame is received, pppoe-relay relays it to the peer and deletes the session entry from its hash table.

If a client and server crash (or frames are lost), PADT frames may never be sent, and pppoe-relay’s hash table can fill up with stale sessions. Therefore, a session-cleaning routine runs periodically, and removes old sessions from the hash table. A session is considered "old" if no traffic has been seen within timeout seconds. When a session is deleted because of a timeout, a PADT frame is sent to each peer to make certain that they are aware the session has been killed.


pppoe-relay -C eth0 -S eth1

The example above relays frames between PPPoE clients on the eth0 network and PPPoE servers on the eth1 network.

pppoe-relay -B eth0 -B eth1

This example is a transparent relay -- frames are relayed between any mix of clients and servers on the eth0 and eth1 networks.

pppoe-relay -S eth0 -C eth1 -C eth2 -C eth3

This example relays frames between servers on the eth0 network and clients on the eth1, eth2 and eth3 networks.


pppoe-relay was written by Dianne Skoll <>.

The pppoe home page is


pppoe-start(8), pppoe-stop(8), pppoe-connect(8), pppd(8), pppoe.conf(5), pppoe(8), pppoe-setup(8), pppoe-status(8), pppoe-sniff(8), pppoe-server(8)

Search for    or go to Top of page |  Section 8 |  Main Index

--> PPPOE-RELAY (8) 26 January 2001

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.