PPPOED(8)

名称
pppoed - PPP over Ethernet の待ち受けを扱う

書式
pppoed [-Fd] [-P pidfile] [-a name] [-e exec | -l label] [-n ngdebug] [-p provider] interface

解説
pppoed プログラムは、指定された interface に対して PPP over Ethernet (PPPoE) サービス要求パケットを listen し、 このパケットへの対応として、セッション交渉後に ppp(8) プログラムを起動します。 交渉は “pppoe” netgraph ノードとして実装されています。 詳細は ng_pppoe(4) を参照してください。

pppoed は、指定された provider からサービスを要求しているクライアントに対してのみ、サービスを提供します。 provider は、指定されない場合には空の名前とされます。 provier 名として “*” が指定されると、すべての PPPoE 要求に対してサービスが提供されます。

指定した name は、接続確立時に、アクセス集中者 (access concentrator) 名として与えられます。 name を指定しないと、現在のベースホスト名が使用されます。

PPPoE netgraph ノードからの要求 (PADI) 受信後は、 pppoed は子プロセスを fork(2) し、更なる要求へサービスするために戻ります。 子プロセスは ( name を使用して) サービスを提供し、PPPoE ノードからの 「成功」 表示を待ちます。 「成功」表示を受けると、 pppoed は次のコマンドをシェルのサブプロセスとして実行します。

    exec /usr/sbin/ppp -direct label

label は、指定されない場合、 provider になります。 exec 引数を使用することにより、別のコマンドを指定可能です。 provider と label を指定しない場合には、これは必須です。 この子プロセスは開始時に、標準入力と標準出力が、同じ netgraph(4) データソケット ( ng_socket(4) 参照) へ接続されます。

環境変数 HISMACADDR と ACNAME は、子プロセスも使用可能です。 これらはそれぞれ、対向の MAC アドレスと、AC 名に設定されます。

pppoed は起動時に、 “interface”: をノード名として使用し、 “pppoe” netgraph ノードを適切な “ether” ノードへ接続します。その後この “pppoe” ノードをローカルの “socket” ノードへ接続します。 -F オプションを指定しないと、 pppoed はバックグラウンドモードへ移行し、制御端末を切り離します。 -F オプションを指定すると、 pppoed はフォアグラウンドにとどまります。

-d オプションを指定すると、追加の診断機能が提供されます (後述の 診断 を参照してください)。 -n オプションを指定すると、 NgSetDebug() が引数 ngdebug で呼ばれます。

pidfile を指定すると、 pppoed は起動時に、自己のプロセス ID をこのファイルへ書き込みます。

診断
前述のように必要な netgraph(4) ノードを作成した後では、 pppoed は syslogd(8) を使用し、全ての受け付けた接続を報告します。 -d オプションを指定すると、 pppoed は新規 netgraph ソケットでの子プロセス生成と、 そのサービス提供、 ppp(8) プログラムの起動に関して報告します。 -n オプションを指定すると、netgraph 診断メッセージも syslogd(8) へリダイレクトされます。

/etc/syslog.conf へ

    !pppoed
    *.*				/var/log/pppoed.log

    を追加し、
    /etc/newsyslog.conf
    へ

        /var/log/pppoed.log			640  3	   100	*     Z

    を追加すると便利な場合があります。

関連項目
NgSetDebug(3), netgraph(4), ng_ether(4), ng_pppoe(4), ng_socket(4), syslog.conf(5), ppp(8), syslogd(8)

バグ
指定したインタフェースを他の netgraph ノードが使用している場合、 pppoed は開始できません。現在の netgraph(4) は、ノードの連鎖を許していないためです。 将来これは変更されるかもしれません。

歴史
pppoed プログラムは Brian Somers <brian@Awfulhak.org> が記述し、 FreeBSD 3.4 で初登場しました。