pppoe-relay
PPPOE-RELAY(8) PPPOE-RELAY(8)
NAME
pppoe-relay - user-space PPPoE relay agent.
SYNOPSIS
pppoe-relay [options]
DESCRIPTION
pppoe-relay is a user-space relay agent for PPPoE (Point-to-Point Pro-
tocol 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.
OPTIONS
-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 termi-
nated. 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 fre-
quently 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 back-
ground; instead, it remains in the foreground.
-h The -h option prints a brief usage message and exits.
OPERATION
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 inter-
faces 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 con-
centrator.
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 dupli-
cate 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 ses-
sions. 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 ses-
sion 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.
EXAMPLE INVOCATIONS
pppoe-relay -C eth0 -S eth1
The example above relays frames between PPPoE clients on the eth0 net-
work 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.
AUTHORS
pppoe-relay was written by David F. Skoll <dfs@roaringpenguin.com>.
The pppoe home page is http://www.roaringpenguin.com/pppoe/.
SEE ALSO
adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5),
pppoe(8), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-
server(8)
4th Berkeley Distribution 26 January 2001 PPPOE-RELAY(8)