次のページ 前のページ 目次へ

21. デバッグ

接続がうまくいかないことには無数の理由があります - 例えば chat が正し く終了しなかったり、電話回線にノイズが多かったり。問題が起きたら、まず syslog ファイルを調べてみましょう。

もっともよくある間違いはスクリプトの中に何か打ち間違いがある ことです。スクリプトをあらためてじっくりと見直してみましょう - 我々人 間は実際に打ちこまれた文字ではなく、打ったつもりの文字を読んでしまいが ちなことを忘れずに。

もう一つ、よくある間違いはカーネル 1.2.X と PPP-2.2 を使っていたり、 カーネル 1.3.X/2.0.X と PPP-2.1.2 を使っている例です。カーネルのバージョ ンにあった pppd を使ってください。

それでもダメな場合、PPP FAQ に目を通しましょう(PPP FAQ は PPP に関する 質問と答を集めたものです)、この FAQ はさまざまな領域をカバーしており、 たいていの問題に対する解答が用意されています。私自身の(悲しい)経験から 言うと、もしこの FAQ に答が無ければ、問題は ppp に関するものではありま せん。私の場合は ELF 版のカーネルを使いながらカーネルモジュールを適切 なものにバージョンアップしていない、というものでした。私は、完璧な PPP サーバとは何かとボヤきながら 2 日(とほぼ一晩)を過してしまいました。

21.1 PPP をコンパイルしたのですが、Linux が認識してくれません。

カーネル 1.3.X/2.0.X を使って、カーネルにモジュールサポート機能を組み こんで、PPP 機能をモジュールとしてコンパイルし(してモジュールを組みこ み)ましたよね?

kerneld を使って必要なモジュールを自動ロードさせていない場合、PPP を使 う前に明示的に ppp モジュールをロードする必要があります(多分シリアルド ライバモジュールもロードする必要があるでしょう)。

これを手動でやるためには、ルートになって


        insmod ppp

します。

シリアルドライバモジュールをロードする場合は、


        insmod slhc

します。

しかしながら、カーネルモジュールは自動ロードするようにした方が便利です。 kerneld mini-howto を読んで、自動ロードするように設定しましょう。

もう一つの可能性は、Linux 2.0.x で ppp-2.1.2 を使っている場合です(ある いは 1.2.x のカーネルに必要なパッチをあてずに ppp-2.2 を使っている場合)。

カーネルと ppp のバージョンをもう一度チェックしてください。繰り返しま すが、

カーネルの 2.0.x は ppp-2.2 を必要とします。

カーネル 1.2.x は ppp-2.1.2 を使いますが、ppp-2.2 を使うためのパッ チがあります。

21.2 デフォルトルート(default route)を設定できません。

LAN 用のイーサネット(かその他ネットワーク接続)を使っていて、すでにデフォ ルトルートを設定していませんか。

'2 つのネットワークを PPP を使って接続する方法'の章がこのための正しい 方法を(簡単に)解説しています。

問題はデフォルトルートは一つしか設定できないことです。デフォルトルート とは、特定の経路宛てではないパケットが全て送られる経路です。 通常、デフォルトルートはインターネット宛てになっているはずです。

不幸なことに、いくつかの Linux のディストリビューションではローカルな イーサネットをデフォルトルートにするように設定しています。イーサネット を初期化しているシステムの設定ファイルを修正して、ルーティング情報を修 正し、ローカルなイーサネットにはデフォルトルートではなく、特定のルーティ ング情報を設定するようにする必要があります。

このためには NET2-Howto と Linux Network Administrator Guide を調べて ください。


次のページ 前のページ 目次へ