Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all
名前
pppoe - ユーザー空間 PPPoE クライアント
書式
pppd pty 'pppoe [pppoe_options]' [pppd_options] pppoe -A [pppoe_options]
説明
pppoe は、PPPoE (Point-to-Point Protocol over Ethernet) の ユーザー空間クライアントであ り、 Linux やその他の UNIX 系システムで利用できる。 pppoe は、イーサーネット上で PPP 接続 を提供する PPP デーモン pppd と関連して動作する。 このような pppd は多くの ADSL サービス提 供業者で使われている。
オプション
-I interface -I オプションは、使用するイーサーネットインターフェースを指定する。 Linux 上で は、eth0 や eth1 が一般的である。 インターフェースは pppoe を開始する前に 「アップ (起動)」しておかなければならないが、 IP アドレスを設定してはならない。 -T timeout -T オプションを用いると、 セッション中に timeout 秒間データのやりとりがない場合に pppoe を終了する。 このオプションはおまけの安全装置として用いることを薦める。 ただ し利用する場合は、PPP がたくさんのトラフィックを通していて、 通常はタイムアウトが起 こらないであろう事を確認しておくように。 一番良い方法は lcp-echo-interval オプショ ンをつけて pppd を実行することである。 PPPoE タイムアウトは LCP echo interval の 4 倍程度に設定するのが良い。 -D file_name -D オプションを用いると、 全てのパケットが指定したファイル file_name に書き出され る。 このオプションはデバッグ専用のものである。 このオプションを用いると、大量の出 力が行われて、非常に性能が下がる。 -V -V オプションを用いると、 pppoe はバージョン番号を表示して終了する。 -A -A オプションを用いると、 pppoe は PADI パケットを送信して、 (返信されてきた) 受信 PADO パケットにあった アクセス集信装置の名前を表示する。 このオプションを pppd と組 み合わせて使ってはならない。 -A オプションは、アクセス集信装置についての重要な情報 を 対話的に取得することを目的としている。 -S service_name 使いたいサービスの名前を指定する。 pppoe は、指定したサービスを提供する アクセス集 信装置とのセッションを初期化するだけである。 多くの場合、このオプションを指定するべ きではない。 複数のアクセス集信装置があることが解っている場合や、 特別なサービス名 が必要であることが解っている場合にのみ、 このオプションを使うべきである。 -C ac_name 使いたいアクセス集信装置の名前を指定する。 pppoe は、アクセス集信装置とのセッション を初期化するだけである。 多くの場合、このオプションを指定するべきではない。 複数の アクセス集信装置があることが解っている場合にのみ、 このオプションを使うべきである。 -S オプションと -C オプションを両方指定した場合、 pppoe が接続を初期化するために は、 両方にマッチする必要がある。 -U このオプションを指定すると、 pppoe は discovery パケット中の Host-Uniq タグを使う。 これを用いると複数の pppoe デーモンを起動し、 それぞれの discovery パケットが混信し ないようにできる。 複数の pppoe デーモンを同時に実行しようとする場合には、 全ての pppoe デーモンにこのオプションを付けなければならない。 -s このオプションを指定すると、pppoe は 同期 PPP カプセル化を使う。 このオプションを使 う場合、 pppd に sync オプションをつけなければならない。 もし動作するならば、 pppoe の CPU オーバーヘッドを減らすことができるので、 このオプションを用いることを推奨す る。 しかし、遅いマシンでは信頼性がないかもしれない -- pppd によるデータの書き込み と pppoe によるデータの読み込みに、 競合状態が起こるかもしれない。 のこのような理由 により、デフォルトの設定は非同期である。 同期 PPP でバグがあったりクラッシュしたり したら、同期をオフにすること -- 同期のサポートについて私に E メールを送らないこと ! -m MSS このオプションを指定すると、 pppoe は TCP maximum segment size (最大セグメントサイ ズ) を 指定した値に固定 (clamp) する。 PPPoE のオーバーヘッドにより、PPPoE の最大セ グメントサイズは 通常のイーサーネットカプセル化のものより小さい。 このため、PPPoE を使ったゲートウェイの後にある LAN 上のマシンで問題が発生する。 ゲートウェイの後ろ に LAN があり、 ゲートウェイが PPPoE を使ってインターネットに接続されている場合、 -m 1412 オプションを使うことを強く推奨する。 これにより、LAN 上の全てのホストが MTU を設定するのを避けられる。 -p file このオプションを指定すると、 pppoe はプロセス ID を指定したファイルに書き出す。 pppoe のプロセス ID を取得したり kill したりするのに使うことができる。 -e sess:mac このオプションを指定すると、 pppoe は発見 (discovery) の段階を省略して、セッション の段階に移る。 セッションは sess で指定され、 接続先の MAC アドレスは mac で指定さ れる。 このモードは通常の使用を意図したものではない。 これは pppoe-server(8) のため に設計されている。 -n このオプションを指定すると、 pppoe は discovery ソケットをオープンしない。 このモー ドは通常の使用を意図したものではない。 これは pppoe-server(8) のために設計されてい る。 -k このオプションを指定すると、 pppoe はセッションを終了して自らも終了するために、 PADT フレームを送って終了する。 このオプションは、kill するセッションを指定するため に -e オプションと組み合わせて使わなければならない。 このオプションは、バグのある接 続先が セッションを終了できない場合に役立つ。 -d このオプションを指定すると、 pppoe はセッション情報を標準出力に書き出した後に、 発 見を行って終了する。 表示されるセッション情報は、 -e オプションで用いられる形式と全 く同じである。 このオプションは PPPoE の発見を初期化して、 その他の処理を行った後 で、実際の PPP セッションを開始する。 注意して使うこと。 このオプションをループ中で 使うと、 接続先を悩ませるような多くのセッションを作ってしまう。 -f disc:sess -f オプションは、PPPoE の discovery フレームと session フレームで使う イーサーネッ トフレームタイプを設定する。 タイプはコロンで区切られた 16 進数で指定する。 標準的 な PPPoE では、フレームタイプ 8863:8864 を使う。 接続先が標準的でないフレームタイプ を使っていることが はっきり解っている場合以外は、 このオプションを使うべきではな い。 使用している ISP (インターネットサービス提供業者) が 標準的でないフレームタイ プを使っている場合は、苦情を言った方がよい ! -h -h オプションを指定すると、 pppoe は使用法を表示して終了する。
PPPOE の背景
PPPoE (Point-to-Point Protocol over Ethernet) は RFC 2516 に記述されている。 このプロトコ ルは、ブリッジしたイーサーネットワーク上で セッションを抽象化して維持できる。 PPPoE は PPP フレームをイーサーネットフレームで カプセル化することにより動作する。 このプ ロトコルには、発見とセッションという 2 つの異なるステージがある。 発見ステージでは、ホストはアクセス集信装置を発見するために 特別な 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 より大きいと、あらゆる問題が発生しうる。 実際、安全のためにファイアーウォールの後ろのマシ ンの MTU を 1412 に指定しておくことを推奨する。 これにより、ヘッダに TCP オプションと IP オプションが入るという 最悪の場合も許容できる。 通常 PPP は接続をシャットダウンするために Link Control Protocol (LCP) を使う。 しかし PPPoE の仕様では、接続をシャットダウンするために 特別な PADT (PPPoE Active Discovery Terminate) パケットを 使うことも許されている。 このクライアントは、PPP セッションに対する 終了要求を受け取ると、 PADT パケットを認識して正しくセッションを終了する。
設計の目標
この PPPoE クライアントの設計目標は以下の通りである。 重要なものから順に並べてある: o 動作すること。 o ユーザー空間のプログラムであり、カーネルへのパッチにはしない。 o コードを読みやすくメンテナンスしやすくする。 o 提案されている PPPoE 規格、RFC 2516 に完全に準拠する。 o 絶対にハングアップしない -- 接続が切れた場合でも、検知して終了する。 接続を再開する ラッパースクリプトを使えるようにする。 o 能率を高くする。 これらの目標をすべて達成していると考えているが、 指摘・パッチ・アイディアなどがあれば (も ちろん) 受け入れる。 連絡を取るための情報については、私のホームページ http://www.roaringpenguin.com を参照すること。
注意
最良の結果を得るためには、pppd の mtu オプションを 1492 にしなければならない。 このオプ ションを設定しなかった場合、 非常に大きなフレームを受け取るといった問題があった。 さら に、pppoe がファイアーウォール上で動作している場合、 ファイアウォールの背後のマシンは MTU を 1412 にしておくべきである。 問題がある場合は、システムログをチェックすること。 pppoe は重要なことを syslog に記録して いる。 診断を完全にするためには、debug レベルのメッセージを 記録できるようにしておいた方が よい。
著者
pppoe は、Luke Stras による初期のバージョンに示唆を受けて、 David F. Skoll <dfs@roaringpenguin.com> によって作成された。 pppoe のホームページは http://www.roaringpenguin.com/pppoe/ である。
関連項目
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)