7 pppd を使う際の問題

この章の目次へ

7.1 ルート以外では PPPD が動かないのですが。

pppd プロセスはネットワークシステムを変更する必要がありますが、これは ルートの権限がないと出来ません。もし、ルート以外のユーザーが pppd を動かす場合、pppd プログラムをルートに suid しておく必 要があります。このためには、以下のようにします。

   chown root pppd
   chmod 4755 pppd

もし特定のグループにのみ pppd を使わせたいなら、pppd プロセス をそのグループの所有にし、その他の人にはを使わせないようにします。

7.2 ppp-2.1.2b パッケージを使うと、4.6 のライブラリが必要だ、と言うのですが。

残念ながらそうです。その場合、バイナリは捨てて、自前で再コンパイルする 必要があります。もっとも、再コンパイルはごく簡単です。pppd ディレクト リに移動して、バイナリを削除し、`make' するだけです。chat プ ログラムも直したければ、chat のディレクトリに移動して同じように再コン パイルします。

もちろん、PPP を再コンパイルするには C コンパイラと GNU make が必要で す。

私が ppp-2.1.2b パッケージをコンパイルした時の設定では 4.6 ラ イブラリを使うことになってしまっていました。

<-- It turns out that when I compiled the ppp-2.1.2b package, while I used the proper definitions, I used the 4.6 libraries. One of these days, Al may finally get his act together . . . . -->

あるいは Slackware 2.0.2(以上)のパッケージに附属のバイナリを 使うこともできます。Slackware の場合、ppp.tgz は `n' シリーズに入っています。

コンパイルの際には ppp-2.1.2b のソースコードを使ってください。 このソースは `a' パッケージに合わせて修正してあります。

7.3 unable to create pid file: no such file or directoryというメッセージが出ます。

/var/run というディレクトリを作る必要があります。Slackware の 古いバージョンでは、このディレクトリは /etc にシンボリックリ ンクされていました。

このメッセージはエラーメッセージではなく、ワーニングです。このメッセー ジが出ても ppp は正常に動くはずです。しかし、ppp-off スクリプ トは ppp.pid を見て終了させるべきプロセスを判別するので、 /var/run ディレクトリを作るか、どこか適切なディレクトリへリン クを張っておくのがいいでしょう。

posix のヘッダーを定義している paths.h では、pid ファイルの場 所を "_VAR_RUN" で定義しています。もし PPP やその他 pid を利 用するソフト全般で違うディレクトリを使いたければ、_VAR_RUN の 定義を変更してコンパイルし直すのがいいでしょう。

[訳注:HOWTO では _VAR_RUN となっていますが、手元のソースファ イル(1.2.7)を見たところ _PATH_VARRUN となっていました]

7.4 /etc/ppp/options: no such file or directoryというメッセージが出力されます。

/etc/ppp ディレクトリを作り、`options' というファイ ルをそのディレクトリに置いておく必要があります。このファイルは pppd プロセス(ルート)から読めないといけません。

このファイルは空っぽでもいいので、`touch' コマンドで作ること も可能です。

このファイルについての詳細は pppd の man ページ、 pppd.8 をご覧ください。

7.5 Could not determine local IP addressというメッセージが出ます。

このメッセージは Telebit 社の Netblazer を使っている場合によく見られま す。問題はターミナルサーバー自体ではなく、ターミナルサーバーに正しく IP アドレスを複数設定していないサイトにあります。

Netblazer はあなたの IP アドレスを知らないし、あなたも与えられる IP ア ドレスがわかりません。両者の IP アドレスがわからないと接続できません。

まず、紙を用意して両者の IP アドレスをメモします。まず Netblazer に使 うべき IP アドレスを教えないといけません。これには、ローカルとリモート の IP アドレスを pppd に渡すパラメータとして与えます。

そのためには pppd にこんなフォーマットのオプションをつけます。

local_ip:remote_ip

(すなわち、ローカルの IP アドレスを書いて、コロン(:)でくぎり、リモート の IP アドレスを書きます)

7.6 Could not determine remote IP address

上記の質問を見てください。

7.7 マジックナンバーが拒否された、というメッセージが常に出て、接続できません。

2 つ のシステムが同じマジックナンバーを選ぶ確率は 400 万分の 1 以下で す。もし常にマジックナンバーがらみの失敗をするようならば、とてもまぐれ 当りの結果だとは思えません。

このエラーが出るもっとも一般的な 2 つの原因は:

どちらの場合でも、Linux システムがリモートへと送ったデータがそのままシ リアル回線に送りかえされています。これはいわゆる"loop"した状 態です。

7.8 protocol reject for protocol fffb というメッセージが出ます。

このエラーは Xyplex 製のターミナルサーバーを使っているときに起きるよう です。Xyplex 社によると、同社のターミナルサーバーソフトのバージョン 5.1 は、PPP との接続に多くの問題をかかえているそうです。少なくともバー ジョン 5.3 にバージョンアップしてください。

もしバージョン 5.1 を使わざるを得ない場合、pppd に "vj-max-slots 3" というオプションを付けてスロット数を 3 に制限します。Xyplex の サーバーの問題点は、pppd がデフォルトで送る 16 個のスロットのリクエスト に答えるくせに 3 つ以上のスロットを処理できないところにあります。本来 ならば NAK フレームを返すべきなのですが、そうしません。

あるいは、"-vj" オプションを使って Van Jacobson ヘッダー圧 縮を使わないようにする手もあります。

7.9 PPP ソフトはつながりフレームもいくつか送っているようですが、それでもネットワークにつながったようには見えません。いったい何故?

"debug" オプションを付けて出力されるシステムログを検討する必 要があります(いずれにしても、質問する際にはシステムログを検討する必要 があります)。データのやり取りを追跡して LCP リクエストを繰り かえし送っているけれど、その識別ナンバーが増えない、という場合はリモー トの PPP ソフトウェアとフレームのやり取りができていません。

これには 3 つの原因が考えられます。

7.10 merit ネットワークに接続できません。

merit ネットワークのユーザーに聞いたところによると、PAP が必要だそうで す。PAP の設定をしていますか?

次の章へ , 前の章へ

この章の目次へ, この文書の目次へ

この文書の最初へ , この章の最初へ