| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 
 | .\"
.\" Japanese Version Copyright (c) 2001 Yuichi SATO
.\"         all rights reserved.
.\" Translated Sun Oct 14 01:10:05 JST 2001
.\"         by Yuichi SATO <ysato@h4.dion.ne.jp>
.\"
.\"WORD: access concentrators	アクセス集信装置
.\"WORD: peer	接続先
.\" 
.\" $Id: pppoe.8,v 1.4 2002/04/09 17:28:38 dfs Exp $ 
.\" LIC: GPL
.TH PPPOE 8 "3 July 2000"
.UC 4
.SH 名前
pppoe \- ユーザー空間 PPPoE クライアント
.SH 書式
.B pppd pty 'pppoe \fR[\fIpppoe_options\fR]\fB' \fR[\fIpppd_options\fR]
.P
.B pppoe -A \fR[\fIpppoe_options\fR]
.SH 説明
\fBpppoe\fR は、PPPoE (Point-to-Point Protocol over Ethernet) の
ユーザー空間クライアントであり、
Linux やその他の UNIX 系システムで利用できる。
\fBpppoe\fR は、イーサーネット上で PPP 接続を提供する
PPP デーモン \fBpppd\fR と関連して動作する。
このような \fBpppd\fR は多くの ADSL サービス提供業者で使われている。
.SH オプション
.TP
.B \-I \fIinterface\fR
\fB\-I\fR オプションは、使用するイーサーネットインターフェースを指定する。
Linux 上では、\fIeth0\fR や \fIeth1\fR が一般的である。
インターフェースは \fBpppoe\fR を開始する前に
「アップ (起動)」しておかなければならないが、
IP アドレスを設定しては\fIならない\fR。
.TP
.B \-T \fItimeout\fR
\fB\-T\fR オプションを用いると、
セッション中に \fItimeout\fR 秒間データのやりとりがない場合に
\fBpppoe\fR を終了する。
このオプションはおまけの安全装置として用いることを薦める。
ただし利用する場合は、PPP がたくさんのトラフィックを通していて、
通常はタイムアウトが起こらないであろう事を確認しておくように。
一番良い方法は \fIlcp-echo-interval\fR オプションをつけて
\fBpppd\fR を実行することである。
PPPoE タイムアウトは LCP echo interval の 4 倍程度に設定するのが良い。
.TP
.B \-D \fIfile_name\fR
\fB\-D\fR オプションを用いると、
全てのパケットが指定したファイル \fIfile_name\fR に書き出される。
このオプションはデバッグ専用のものである。
このオプションを用いると、大量の出力が行われて、非常に性能が下がる。
.TP
.B \-V
\fB\-V\fR オプションを用いると、
\fBpppoe\fR はバージョン番号を表示して終了する。
.TP
.B \-A
\fB\-A\fR オプションを用いると、
\fBpppoe\fR は PADI パケットを送信して、
(返信されてきた) 受信 PADO パケットにあった
アクセス集信装置の名前を表示する。
このオプションを \fBpppd\fR と組み合わせて使ってはならない。
\fB\-A\fR オプションは、アクセス集信装置についての重要な情報を
対話的に取得することを目的としている。
.TP
.B \-S \fIservice_name\fR
使いたいサービスの名前を指定する。
\fBpppoe\fR は、指定したサービスを提供する
アクセス集信装置とのセッションを初期化するだけである。
多くの場合、このオプションを指定するべき\fIではない\fR。 
複数のアクセス集信装置があることが解っている場合や、
特別なサービス名が必要であることが解っている場合にのみ、
このオプションを使うべきである。
.TP
.B \-C \fIac_name\fR
使いたいアクセス集信装置の名前を指定する。
\fBpppoe\fR は、アクセス集信装置とのセッションを初期化するだけである。
多くの場合、このオプションを指定するべき\fIではない\fR。 
複数のアクセス集信装置があることが解っている場合にのみ、
このオプションを使うべきである。
\fB\-S\fR オプションと \fB\-C\fR オプションを両方指定した場合、
\fBpppoe\fR が接続を初期化するためには、
\fI両方に\fRマッチする必要がある。
.TP
.B \-U
このオプションを指定すると、
\fBpppoe\fR は discovery パケット中の Host-Uniq タグを使う。
これを用いると複数の \fBpppoe\fR デーモンを起動し、
それぞれの discovery パケットが混信しないようにできる。
複数の \fBpppoe\fR デーモンを同時に実行しようとする場合には、
\fI全ての\fR \fBpppoe\fR デーモンにこのオプションを付けなければならない。
.TP
.B \-s
このオプションを指定すると、\fBpppoe\fR は \fI同期\fR PPP カプセル化を使う。
このオプションを使う場合、
\fBpppd\fR に \fBsync\fR オプションをつけなければ\fIならない\fR。 
もし動作するならば、
\fBpppoe\fR の CPU オーバーヘッドを減らすことができるので、
このオプションを用いることを推奨する。
しかし、遅いマシンでは信頼性がない\fBかもしれない\fR --
pppd によるデータの書き込みと pppoe によるデータの読み込みに、
競合状態が起こるかもしれない。
のこのような理由により、デフォルトの設定は非同期である。
同期 PPP でバグがあったりクラッシュしたりしたら、同期をオフにすること --
同期のサポートについて私に E メールを送らないこと !
.TP
.B \-m \fIMSS\fR
このオプションを指定すると、
\fBpppoe\fR は TCP maximum segment size (最大セグメントサイズ) を
指定した値に\fI固定 (clamp)\fR する。
PPPoE のオーバーヘッドにより、PPPoE の最大セグメントサイズは
通常のイーサーネットカプセル化のものより小さい。
このため、PPPoE を使ったゲートウェイの後にある LAN 上のマシンで問題が発生する。
ゲートウェイの後ろに LAN があり、
ゲートウェイが PPPoE を使ってインターネットに接続されている場合、
\fB\-m 1412\fR オプションを使うことを強く推奨する。
これにより、LAN 上の全てのホストが MTU を設定するのを避けられる。
.TP
.B \-p \fIfile\fR
このオプションを指定すると、
\fBpppoe\fR はプロセス ID を指定したファイルに書き出す。
\fBpppoe\fR のプロセス ID を取得したり kill したりするのに使うことができる。
.TP
.B \-e \fIsess:mac\fR
このオプションを指定すると、
\fBpppoe\fR は発見 (discovery) の段階を省略して、セッションの段階に移る。
セッションは \fIsess\fR で指定され、
接続先の MAC アドレスは \fImac\fR で指定される。
このモードは通常の使用を意図したもの\fIではない\fR。
これは \fBpppoe-server\fR(8) のために設計されている。
.TP
.B \-n
このオプションを指定すると、
\fBpppoe\fR は discovery ソケットをオープンしない。
このモードは通常の使用を意図したもの\fIではない\fR。
これは \fBpppoe-server\fR(8) のために設計されている。
.TP
.B \-k
このオプションを指定すると、
\fBpppoe\fR はセッションを終了して自らも終了するために、
PADT フレームを送って終了する。
このオプションは、kill するセッションを指定するために
\fB\-e\fR オプションと組み合わせて使わなければならない。
このオプションは、バグのある接続先が
セッションを終了できない場合に役立つ。
.TP
.B \-d
このオプションを指定すると、
\fBpppoe\fR はセッション情報を標準出力に書き出した後に、
発見を行って終了する。
表示されるセッション情報は、
\fB\-e\fR オプションで用いられる形式と全く同じである。
このオプションは PPPoE の発見を初期化して、
その他の処理を行った後で、実際の PPP セッションを開始する。
\fI注意して使うこと\fR。 
このオプションをループ中で使うと、
接続先を悩ませるような多くのセッションを作ってしまう。
.TP
.B \-f disc:sess
\fB\-f\fR オプションは、PPPoE の discovery フレームと session フレームで使う
イーサーネットフレームタイプを設定する。
タイプはコロンで区切られた 16 進数で指定する。
標準的な PPPoE では、フレームタイプ 8863:8864 を使う。
接続先が標準的でないフレームタイプを使っていることが
はっきり解っている場合以外は、
\fIこのオプションを使うべきではない\fR。 
使用している ISP (インターネットサービス提供業者) が
標準的でないフレームタイプを使っている場合は、苦情を言った方がよい !
.TP
.B \-h
\fB\-h\fR オプションを指定すると、
\fBpppoe\fR は使用法を表示して終了する。
.SH PPPOE の背景
PPPoE (Point-to-Point Protocol over Ethernet) は RFC 2516 に記述されている。
このプロトコルは、ブリッジしたイーサーネットワーク上で
セッションを抽象化して維持できる。
PPPoE は PPP フレームをイーサーネットフレームで
カプセル化することにより動作する。
このプロトコルには、\fI発見\fRと\fIセッション\fRという
2 つの異なるステージがある。
発見ステージでは、ホストは\fIアクセス集信装置\fRを発見するために
特別な PADI (PPPoE Active Discovery Initiation) フレームを
ブロードキャストする。
(一般的には、ただ 1 つの) アクセス集信装置が
PADO (PPPoE Active Discovery Offer) パケットを返し、
集信装置が存在することとサービスを提供することを知らせる。
ホストはアクセス集信装置を 1 つ選び、セッションを開いてもらうために
PADR (PPPoE Active Discovery Request) パケットを送る。
アクセス集信装置は PADS (PPPoE Active Discovery Session-Confirmation)
パケットで応答する。
この後、プロトコルはセッションステージに移行する。
セッションステージでは、ホストとアクセス集信装置の間で
イーサーネットフレームに埋め込まれた PPP フレームがやりとりされる。
通常のイーサーネット MTU は 1500 バイトであるが、
PPPoE のオーバーヘッドに加え、
カプセル化された PPP フレームによる 2 バイトのオーバーヘッドがあるので、
PPP インターフェースの MTU は最大 1492 バイトになる。
Linux マシンをファイアーウォールとして使用しており、
ファイアーウォールの背後にあるインターフェースの MTU が
1492 より大きいと、\fIあらゆる問題\fRが発生しうる。
実際、安全のためにファイアーウォールの後ろのマシンの MTU を
1412 に指定しておくことを推奨する。
これにより、ヘッダに TCP オプションと IP オプションが入るという
最悪の場合も許容できる。
通常 PPP は接続をシャットダウンするために Link Control Protocol (LCP) を使う。
しかし PPPoE の仕様では、接続をシャットダウンするために
特別な PADT (PPPoE Active Discovery Terminate) パケットを
使うことも許されている。
このクライアントは、PPP セッションに対する終了要求を受け取ると、
PADT パケットを認識して正しくセッションを終了する。
.SH 設計の目標
この PPPoE クライアントの設計目標は以下の通りである。
重要なものから順に並べてある:
.TP
.B o
動作すること。
.TP
.B o
ユーザー空間のプログラムであり、カーネルへのパッチにはしない。
.TP
.B o
コードを読みやすくメンテナンスしやすくする。
.TP
.B o
提案されている PPPoE 規格、RFC 2516 に完全に準拠する。
.TP
.B o
絶対にハングアップしない -- 接続が切れた場合でも、検知して終了する。
接続を再開するラッパースクリプトを使えるようにする。
.TP
.B o
能率を高くする。
.P
これらの目標をすべて達成していると考えているが、
指摘・パッチ・アイディアなどがあれば (もちろん) 受け入れる。
連絡を取るための情報については、私のホームページ
http://www.roaringpenguin.com を参照すること。
.SH 注意
最良の結果を得るためには、\fBpppd\fR の mtu オプションを
1492 にしなければならない。
このオプションを設定しなかった場合、
非常に大きなフレームを受け取るといった問題があった。
さらに、\fBpppoe\fR がファイアーウォール上で動作している場合、
ファイアウォールの背後のマシンは MTU を 1412 にしておくべきである。
問題がある場合は、システムログをチェックすること。
\fBpppoe\fR は重要なことを syslog に記録している。
診断を完全にするためには、\fIdebug\fR レベルのメッセージを
記録できるようにしておいた方がよい。
.SH 著者
\fBpppoe\fR は、Luke Stras による初期のバージョンに示唆を受けて、
David F. Skoll <dfs@roaringpenguin.com> によって作成された。
\fBpppoe\fR のホームページは
\fIhttp://www.roaringpenguin.com/pppoe/\fR である。
.SH 関連項目
adsl-start(8), adsl-stop(8), adsl-connect(8), pppd(8), pppoe.conf(5), adsl-setup(8), adsl-status(8), pppoe-sniff(8), pppoe-server(8), pppoe-relay(8)
 |