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

PPPOE BACKGROUND

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

DESIGN GOALS

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

NOTES

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

AUTHORS

232       pppoe was written by David F. Skoll <dfs@roaringpenguin.com>, with much
233       inspiration from an earlier version by Luke Stras.
234
235       The pppoe home page is http://www.roaringpenguin.com/pppoe/.
236
237

SEE ALSO

239       pppoe-start(8),      pppoe-stop(8),      pppoe-connect(8),     pppd(8),
240       pppoe.conf(5), pppoe-setup(8), pppoe-status(8), pppoe-sniff(8),  pppoe-
241       server(8), pppoe-relay(8)
242
243
244
245
2464th Berkeley Distribution         3 July 2000                         PPPOE(8)
Impressum