1PPPOE(8)                    System Manager's Manual                   PPPOE(8)
2
3
4

NAME

6       pppoe - user-space PPPoE client.
7

SYNOPSIS

9       pppd pty 'pppoe [pppoe_options]' [pppd_options]
10
11       pppoe -A [pppoe_options]
12

DESCRIPTION

14       pppoe  is  a  user-space client for PPPoE (Point-to-Point Protocol over
15       Ethernet) for Linux and other UNIX systems.   pppoe  works  in  concert
16       with  the pppd PPP daemon to provide a PPP connection over Ethernet, as
17       is used by many DSL service providers.
18
19

OPTIONS

21       -I interface
22              The -I option specifies the Ethernet interface  to  use.   Under
23              Linux,  it  is  typically eth0 or eth1.  The interface should be
24              "up" before you start pppoe, but should  not  be  configured  to
25              have an IP address.
26
27
28       -T timeout
29              The  -T option causes pppoe to exit if no session traffic is de‐
30              tected for timeout seconds.  I recommend that you use  this  op‐
31              tion  as an extra safety measure, but if you do, you should make
32              sure that PPP generates enough traffic so the timeout will  nor‐
33              mally  not  be triggered.  The best way to do this is to use the
34              lcp-echo-interval option to pppd.   You  should  set  the  PPPoE
35              timeout to be about four times the LCP echo interval.
36
37
38       -D file_name
39              The  -D option causes every packet to be dumped to the specified
40              file_name.  This is intended for  debugging  only;  it  produces
41              huge amounts of output and greatly reduces performance.
42
43
44       -V     The -V option causes pppoe to print its version number and exit.
45
46
47       -A     The  -A option causes pppoe to send a PADI packet and then print
48              the names of access concentrators in each  PADO  packet  it  re‐
49              ceives.  Do not use this option in conjunction with pppd; the -A
50              option is meant to be used interactively to give interesting in‐
51              formation about the access concentrator.
52
53
54       -S service_name
55              Specifies  the  desired  service name.  pppoe will only initiate
56              sessions with access concentrators which can provide the  speci‐
57              fied  service.   In  most cases, you should not specify this op‐
58              tion.  Use it only if you know that there  are  multiple  access
59              concentrators or know that you need a specific service name.
60
61
62       -C ac_name
63              Specifies the desired access concentrator name.  pppoe will only
64              initiate sessions with the specified  access  concentrator.   In
65              most  cases, you should not specify this option.  Use it only if
66              you know that there are multiple access concentrators.  If  both
67              the  -S  and  -C options are specified, they must both match for
68              pppoe to initiate a session.
69
70
71       -U     Causes pppoe to use the Host-Uniq tag in its discovery  packets.
72              This  lets  you  run multiple pppoe daemons without having their
73              discovery packets interfere with one another.  You  must  supply
74              this  option  to all pppoe daemons if you intend to run multiple
75              daemons simultaneously.  The specific Host-Uniq  value  used  is
76              the hexadecimal representation of the pppoe process's PID.
77
78
79       -W value
80              Causes  pppoe to use the Host-Uniq tag in its discovery packets,
81              and furthermore to set the value of  Host-Uniq  to  value.   Use
82              with caution.  Note that -W and -U are mutually-incompatible.
83
84
85       -s     Causes  pppoe  to use synchronous PPP encapsulation.  If you use
86              this option, then you must use the sync option with  pppd.   You
87              are  encouraged  to  use  this  option  if  it works, because it
88              greatly reduces the CPU overhead of pppoe.  However, it  MAY  be
89              unreliable on slow machines -- there is a race condition between
90              pppd writing data and pppoe reading it.  For  this  reason,  the
91              default  setting  is  asynchronous.   If  you  encounter bugs or
92              crashes with Synchronous PPP, turn it off -- don't e-mail me for
93              support!
94
95
96       -m MSS Causes pppoe to clamp the TCP maximum segment size at the speci‐
97              fied value.  Because of PPPoE overhead, the maximum segment size
98              for  PPPoE  is  smaller  than for normal Ethernet encapsulation.
99              This could cause problems for machines on a LAN behind a gateway
100              using  PPPoE.  If you have a LAN behind a gateway, and the gate‐
101              way connects to the Internet using PPPoE, you are strongly  rec‐
102              ommended to use a -m 1412 option.  This avoids having to set the
103              MTU on all the hosts on the LAN.
104
105
106       -p file
107              Causes pppoe to write its  process-ID  to  the  specified  file.
108              This can be used to locate and kill pppoe processes.
109
110
111       -e sess:mac
112              Causes  pppoe  to  skip the discovery phase and move directly to
113              the session phase.  The session is given by sess and the MAC ad‐
114              dress  of  the  peer  by mac.  This mode is not meant for normal
115              use; it is designed only for pppoe-server(8).
116
117
118       -n     Causes pppoe not to open a discovery socket.  This mode  is  not
119              meant for normal use; it is designed only for pppoe-server(8).
120
121
122       -k     Causes  pppoe to terminate an existing session by sending a PADT
123              frame, and then exit.  You must use the -e option in conjunction
124              with  this  option  to specify the session to kill.  This may be
125              useful for killing sessions when a buggy peer does  not  realize
126              the session has ended.
127
128
129       -d     Causes  pppoe to perform discovery and then exit, after printing
130              session information to standard output.  The session information
131              is  printed  in  exactly  the  format expected by the -e option.
132              This option lets you initiate a PPPoE  discovery,  perform  some
133              other  work, and then start the actual PPP session.  Be careful;
134              if you use this option in a loop, you can create many  sessions,
135              which may annoy your peer.
136
137
138       -f disc:sess
139              The  -f option sets the Ethernet frame types for PPPoE discovery
140              and session frames.  The types are specified as hexadecimal num‐
141              bers  separated  by  a  colon.   Standard PPPoE uses frame types
142              8863:8864.  You should not use this option unless you are  abso‐
143              lutely  sure  the  peer  you  are dealing with uses non-standard
144              frame types.  If your ISP uses non-standard  frame  types,  com‐
145              plain!
146
147
148       -h     The -h option causes pppoe to print usage information and exit.
149
150

PPPOE BACKGROUND

152       PPPoE  (Point-to-Point Protocol over Ethernet) is described in RFC 2516
153       and is a protocol which allows the session abstraction to be maintained
154       over bridged Ethernet networks.
155
156       PPPoE works by encapsulating PPP frames in Ethernet frames.  The proto‐
157       col has two distinct stages:  The discovery and the session stage.
158
159       In the discovery stage, the host broadcasts a special PADI  (PPPoE  Ac‐
160       tive  Discovery Initiation) frame to discover any access concentrators.
161       The access concentrators (typically, only one access concentrator)  re‐
162       ply  with PADO (PPPoE Active Discovery Offer) packets, announcing their
163       presence and the services they offer.  The host picks one of the access
164       concentrators  and  transmits  a  PADR (PPPoE Active Discovery Request)
165       packet, asking for a session.  The access concentrator replies  with  a
166       PADS  (PPPoE Active Discovery Session-Confirmation) packet.  The proto‐
167       col then moves to the session stage.
168
169       In the session stage, the host and  access  concentrator  exchange  PPP
170       frames  embedded  in  Ethernet frames.  The normal Ethernet MTU is 1500
171       bytes, but the PPPoE overhead plus two bytes of overhead for the encap‐
172       sulated  PPP  frame  mean  that the MTU of the PPP interface is at most
173       1492 bytes.  This causes all kinds of problems if you are using a Linux
174       machine  as  a  firewall and interfaces behind the firewall have an MTU
175       greater than 1492.  In fact, to be safe, I recommend setting the MTU of
176       machines  behind  the firewall to 1412, to allow for worst-case TCP and
177       IP options in their respective headers.
178
179       Normally, PPP uses the Link Control Protocol (LCP) to shut down  a  PPP
180       link.  However, the PPPoE specification allows the link to be shut down
181       with a special PADT (PPPoE Active Discovery  Terminate)  packet.   This
182       client  recognizes this packet and will correctly terminate if a termi‐
183       nate request is received for the PPP session.
184
185

DESIGN GOALS

187       My design goals for this PPPoE client were as  follows,  in  descending
188       order of importance:
189
190
191       o      It must work.
192
193
194       o      It must be a user-space program and not a kernel patch.
195
196
197       o      The code must be easy to read and maintain.
198
199
200       o      It  must  be  fully  compliant with RFC 2516, the proposed PPPoE
201              standard.
202
203
204       o      It must never hang up forever -- if the connection is broken, it
205              must  detect this and exit, allowing a wrapper script to restart
206              the connection.
207
208
209       o      It must be fairly efficient.
210
211
212       I believe I have achieved all of these goals, but (of course)  am  open
213       to  suggestions,  patches  and  ideas.   See  my home page, https://di
214       anne.skoll.ca/projects/rp-pppoe/, for contact information.
215
216

NOTES

218       For best results, you must give pppd an mtu option of 1492.  I have ob‐
219       served problems with excessively-large frames unless I set this option.
220       Also, if pppoe is running on a firewall machine,  all  machines  behind
221       the firewall should have MTU's of 1412.
222
223       If  you  have problems, check your system logs.  pppoe logs interesting
224       things to syslog.  You may have to turn on logging of debug-level  mes‐
225       sages for complete diagnosis.
226
227

AUTHORS

229       pppoe was written by Dianne Skoll <dianne@skoll.ca>, with much inspira‐
230       tion from an earlier version by Luke Stras.
231
232       The pppoe home page is https://dianne.skoll.ca/projects/rp-pppoe/.
233
234

SEE ALSO

236       pppd(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
237
238
239
240
2414th Berkeley Distribution       5 October 2015                        PPPOE(8)
Impressum