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

14. PPP 接続用設定ファイル

PPP を誰でも使えるように設定している場合でも、ここから先はルートで login してください。PPP 接続に必要なディレクトリを作り、設定ファイルを 修正します。

PPP は ppp 接続を設定するためにいくつかの設定ファイルを利用します。こ れらのファイルの場所や名前は PPP 2.1.2 と 2.2 ので多少異なっています。

PPP 2.1.2 の場合、必要なファイルは


/usr/sbin/pppd          # pppd のバイナリ
/usr/sbin/ppp-on        # ダイアル/接続用スクリプト
/usr/sbin/ppp-off       # 接続終了用スクリプト
/etc/ppp/options        # pppd が全ての接続の際に使うオプション
/etc/ppp/options.ttyXX  # ポートごとに使うオプション

でした。

PPP 2.2 の場合、


/usr/sbin/pppd                          # pppd のバイナリ
/etc/ppp/scripts/ppp-on             # ダイアル/接続用スクリプト
/etc/ppp/scripts/ppp-on-dialer  # 実際の chat スクリプト
/etc/ppp/scripts/ppp-off            # 接続終了用スクリプト
/etc/ppp/options                # pppd が全ての接続の際に使うオプション
/etc/ppp/options.ttyXX  # ポートごとに使うオプション

になっています。

御覧のように、/etc ディレクトリに ppp 用のディレクトリがあります。

drwxrwxr-x   2 root     root         1024 Oct  9 11:01 ppp

もしこのディレクトリが無ければ作ってください。

このディレクトリが存在していれば、options.tpl と呼ばれるオプ ション設定ファイルのヒナ型ファイルがあるはずです。ただし、このファイル を含んでいないディストリビューションも多いようなので、このファイルはこ の文書中に含めておきます。

このファイルには PPP の全てオプションの説明が書かれているので、打ち出 しておきましょう(pppd のマニュアルを合せて読めばより有益です)。このファ イルを /etc/ppp/options ファイルの元として使うこともできます が、多分コメントアウトされている部分を削除した新しいファイルを作成する 方がいいでしょう。そうした方がずっと短くなって、読みやすく、メンテナン スもしやすくなります。

複数のシリアル回線やモデムを使う場合(PPP サーバによくある場合)、全体の 設定ファイルである /etc/ppp/oprions には全ての電話を受けるシ リアルポートに必要なオプションを指定します。PPP 接続のために個別の設定 の必要なシリアル回線には別途個別設定用のファイルがあります。

個別設定用のファイルは options.ttyx1options.ttyx2 といった名称になっています(x はお使いのシリアル ポートの名称です)

PPP 接続を一つしか使わない場合、全てを /etc/ppp/options ファ イルで設定しても構いません。また、全てのオプションを pppd を起動する際 のオプションとして指定することも可能です。

この方が /etc/ppp/options.ttySx に指定するよりも簡単です。PPP で複数の異なるサイトに接続する場合、サイトごとの設定ファイル /etc/ppp/options.site を用意し、接続の際に必要なパラメータを 設定ファイルに指定することも可能です。

14.1 options.tbl ファイル

PPP のディストリビューションによっては options.tpl ファイルが無い場合 もありますので、以下に完全なファイルを付けておきます。このファイルを直 接修正して /etc/ppp/options ファイルなどを作らず、新しいファ イルにコピーしてから修正することをお勧めします。そうしておけば設定がこ んがらがってもオリジナルのファイルに戻って再出発できます。


# /etc/ppp/options -*- sh -*- general options for pppd
# created 13-Jul-1995 jmk
# autodate: 01-Aug-1995
# autotime: 19:45

# 実行可能なプログラムかシェルスクリプトを使ってシリアル回線を設定します。
# このスクリプトでは "chat" を使ってモデムからダイヤルし、接続先の PPP 
# セッションを起動しています。
#
#connect "echo You need to install a connect command."

# pppd が接続を切った後に実行するプログラムかシェルスクリプトを指定しま
# す。例えば、モデムがハードウェア制御信号で回線断しない場合などに、回線
# を接続するためのコマンドを実行することができます。
#
#disconnect "chat -- \d+++\d\c OK ath0 OK"

# 32-bit hex での async キャラクタマップの指定。32 ビットの各ビットが 
# pppd が受信の際にそのキャラクタをエスケープするかどうかを指定します。
# 0x00000001 は \x01, 0x800000000 は \x1f を示します。
#asyncmap 0

# ネットワーク用のパケットをやりとりする前に接続先に認証を求めます。
#
#auth

# シリアルポートのフロー制御にハードウェアフロー制御を使います。
#
#crtscts

# XON/XOFF といったソフトウェアフロー制御を使います。
#
#xonxoff

# IPCP のネゴーシエションがうまくいった場合、接続先をゲートウェイにする
# ような経路制御(default route)をシステムの経路制御表に加えます。この経
# 路は PPP 接続が終了した段階で削除されます。
#
#defaultroute

# 伝送時に特定のキャラクタをエスケープします(接続先がそのキャラクタを 
# async control character map で指定しているか否かにかかわらず)。エスケー
# プするキャラクタはコンマで区切った 16 進表記で指定します。asyncmap オ
# プションではコントロールコードしかエスケープできないのに対し escape オ
# プションではあらゆるキャラクタがエスケープできることに注意してください。
# エスケープできないかも知れないキャラクタは 0x20 -0x3f と 0x5e です。
#
#escape 11,13,ff

# モデムの制御線を使いません。
#
#local

# pppd が UUCP スタイルのロックファイルを作って、他のプログラムがシリア
# ルデバイスをアクセスしないようにします。
#
#lock

# モデムの制御線を操作します。Ultrix ではこのオプションは crtscts オプショ
# ンと同じハードウェアフロー制御も含みます(このオプションは完全に実装さ
# れているわけではありません)
#
#modem

# 接続相手にMRU[Maximum Receive Unit]の値を <n> にするように相談します。
# この指定により接続先に <n> バイト以下のパケットは送らないように指定し
# ます。MRU の最小値は 128 で、デフォルト値は 1500 です。遅い回線では 
# 296 を推奨します(TCP/IP のヘッダに 40 バイト + データに 256 バイト)
#
#mru 542

# インターフェイスのネットマスクを <n> に指定します。指定は 32 ビットを
# ドットで区切った 10 進表記です(例:255.255.255.0)
#
#netmask 255.255.255.0

# 自分の側の IP アドレスを指定しなかった場合、デフォルトではホスト名から 
# IP アドレスを決定しますが、このオプションを指定すれば自分の側で IP ア
# ドレスを決定せず、接続先から IPCP のネゴシエーションの際に送られてくる
# IP アドレスをローカルの IP アドレスにします(コマンドラインやオプション
# ファイルで明示的にローカルの IP アドレスを指定することも可能です)
#
#noipdefault

# LCP 時の "passive" オプションを可能にします。このオプションを指定すれ
# ば、pppd は自動的に接続を開始しようとします。このオプションを指定しな
# いと接続先からの返答がなかった場合 pppd は終了しますが、このオプション
# を指定すれば受動的に有効な LCP パケットが届くまで待つことになります。
#
#passive

# このオプションを指定すれば、接続先から正しい LCP パケットが届くまで 
# pppd は接続を開始するための LCP パケットを発信しません(古いバージョン
# の pppd は "passive" オプションがこの動作を指定しました)
#
#silent

# LCP と IPCP に特別のオプションを使いません(デフォルトのもののみを使い
# ます)
#
#-all

# Address/Control 圧縮に関するネゴシエーションをしません(デフォルト、す
# なわち、address/contro フィールドは使わない設定になります)
#
#-ac

# asyncmap のネゴシエーションをしません(デフォルトの asyncmap, すなわち
# 全てのコントロールキャラクタをエスケープする設定になります)
#
#-am

# fork してバックグラウンドプロセスになりません(このオプションを指定しな
# いと、シリアルデバイスを指定してから pppd はバックグラウンドに入ります)
#
#-detach

# IP アドレスのネゴシエーションをしません(このオプションを指定する場合、
# 接続先の IP アドレスはコマンドラインかオプションファイルで指定しなけれ
# ばいけません)
#
#-ip

# マジックナンバーのネゴシエーションをしません。このオプションを指定する
# と、pppd は回線がループバック状態になっていても検出できません。
#
#-mn

# MRU[Maximum Receive Unit]のネゴシエーションをしません(デフォルト値であ
# る 1500 を使います)
#
#-mru

# プロトコルフィールドを圧縮するかどうかのネゴシエーションをしません(デ
# フォルトではプロトコルフィールドは圧縮しません)
#
#-pc

# 接続相手に PAP 認証を使うように指定します。
#
#+pap

# PAP 認証を使うことに同意しません。
#
#-pap

# 接続相手に CHAP[Cryptographic Handshake Authentication Protocol]を使う
# ように要求します。
#
#+chap

# CHAP を使うことに同意しません。
#
#-chap

# Van Jacobson 式の IP ヘッダの圧縮についてのネゴシエーションをしません
# (デフォルトでは圧縮しない設定になっています)
#
#-vj

# デバッグレベルを上げます(-d と同じ)このオプションが指定されると、pppd 
# は送受信した全ての制御用パケットの内容を人間に読める形で記録します。こ
# の情報はファイルにリダイレクトしたり、/etc/syslog.conf で明示的にどの
# ファイルに送るかを指定します(詳細は syslog.conf(5))(pppd がより詳細な
# デバッグができるようにコンパイル時に設定されている場合、情報は daemon 
# ではなく local2 の機能を使って記録されます。
#
#debug

# 認証のためのローカルのホスト名を <d> というドメイン名にします。
# gethostname() が porsche というホスト名を返すが、実際のドメイン名は 
# porsche.Quotron.COM の場合、Quotron.COM を指定するためにこのオプション
# を指定します。
#
#domain <d>

# カーネルに組みこまれた PPP ドライバのデバッグレベルを <n> にします。n 
# は以下の値を足しあわせた結果になります:1 一般的なデバッグメッセージ、
# 2: 受けとったパケットの中身のうちプリント可能なものを記録、4: 送信した
# パケットのうち、中身のプリントアウトが可能なものを記録。
#
#kdebug n

# MTUの値を <n> にします。接続先から MRU の値としてより小さな値が指定さ
# れない限り、この値以下のパケットは PPP ネットワークのインターフェイス
# へ送らないよう、カーネル内部のネットワークコードに指定します。
#
#mtu <n>

# 認証用に自分のシステムの名前を <n> にします。
#
#name <n>

# PAP で認証する接続先用に、手元のマシンを使っているユーザーの名前を <u> 
# にします。
#
#user <u>

# 認証用にローカルシステムの名称をホスト名にします(name オプションを無効
# にします)
#
#usehostname

# 認証用にリモートのシステム名を <n> にします。
#
#remotename <n>

# ローカルシステムの ARP[Address Resolution Protocol]テーブルに接続先の 
# IP アドレスとこのシステムのイーサネットアドレスを追加します。
#
#proxyarp

# PAP の認証用にシステムのパスワードデータベースを使います。
#
#login

# 毎 n 秒ごとに、接続先に LCP echo-request のフレームを送ります。Linux 
# の場合、接続先から n 秒間パケットが届かない場合に echo-request を送り
# ます。通常、接続先は echo-request が届けば echo-reply を返します。この
# オプションと lcp-echo-failure オプションを組みあわせて、接続が切れてい
# ることを確認できます。
#
#lcp-echo-interval <n>

# LCP echo-request を n 個送っても返答が無かった場合、接続が切れているも
# のと見なして pppd が接続を終了します。このオプションを使う場合、
# lcp-echo-interval に 0 以外の値を指定しておく必要があります。このオプ
# ションを使えば、モデムの制御線を調べられない場合でも物理的な接続が切れ
# ると(モデムがハングアップすると) PPP 接続を終了させることができます。
#
#lcp-echo-failure <n>

# LCP の再送間隔を n 秒にします(デフォルトは 3 秒です)
#
#lcp-restart <n>

# LCP terminate-request を最大 n 個送るようにします(デフォルトでは 3)
#
#lcp-max-terminate <n>

# LCP configure-request を最大 n 個送るようにします(デフォルトでは 10)
#
#lcp-max-configure <n>

# LCP configure-NAK を n 個受けとると configure-Reject を送るようにしま
# す(デフォルトでは 10)
#
#lcp-max-failure <n>

# IPCP の再送間隔を n 秒にします(デフォルトでは 3)
#
#ipcp-restart <n>

# IPCP teriminate-request を最大 n 個送るようにします(デフォルトでは 3)
#
#ipcp-max-terminate <n>

# IPCP configure-request を最大 n 個送るようにします(デフォルトでは 10)
#
#ipcp-max-configure <n>

# IPCP configure-NAK を n 個まで受けとると configure-Rejects を送るよう
# にします(デフォルトでは 10)。
#
#ipcp-max-failure <n>

# PAP 認証を再開するまでの時間を n 秒にします(デフォルトでは 3)。
#
#pap-restart <n>

# PAP autenticate-request 送出数を最大 n 個にします(デフォルトでは 10)
#
#pap-max-authreq <n>

# CHAP 認証を再開するまでの時間を n 秒にします(デフォルトでは 3)
#
#chap-restart <n>

# CHAP 認証を最大 n 回試みます(デフォルトでは 10)。
#
#chap-max-challenge

# このオプションを指定した場合、接続先と n 秒ごとに CHAP 認証を繰り返
# します。
#
#chap-interval <n>

# このオプションを指定すると、ローカルの IP アドレスをオプション指定して
# いても接続先が提案した IP アドレスをローカルの IP アドレスにします。
#
#ipcp-accept-local

# このオプションを指定すると、リモートの IP アドレスをオプション指定して
# いても接続先が指定した IP アドレスをリモートの IP アドレスにします。
3
#ipcp-accept-remote

14.2 どのオプションを指定すべき?

うーん、それは状況によります。

以下に示すものは、一般的な例のほとんどをカバーできる 2 つの基本的な バージョンのオプションファイルです。

しかしながら、動かなかった場合、ヒナ型ファイル (/etc/ppp/options.tpl) pppd のマニュアルを読みま しょう。合わせて、接続先のサーバを管理しているシステム管理者やユーザサ ポート係に問い合わせてみるのもいいでしょう。

/etc/ppp/options(PAP/CHAP を使わない場合)

以下の設定は PAP/CHAP 認証を必要としない場合用です。


# /etc/ppp/options (NO PAP/CHAP)
#
# pppd がバックグランドに入らないようにします
-detach

# もし IP アドレスが固定ならば 0.0.0.0 を正しい IP アドレスに書きかえて
# ください。
0.0.0.0:

# モデムの制御線を使います。
modem

# シリアルデバイスを複数のプロセスが使わないようにロックする際に uucp 
# スタイルのロックを使います。
lock

# ハードウェアフローコントロールを使います。
crtscts

# PPP 接続をデフォルトの経路にします。
defaultroute

# コントロールキャラクタを一切エスケープしません。
asyncmap 0

# 送出するパケットの大きさを最大 552 バイトにします。
mtu 552

# 受けとるパケットの大きさを最大 552 バイトにします。
mru 552
#
#-------END OF SAMPLE /etc/ppp/options (no PAP/CHAP)

/etc/ppp/options (PAP/CHAPを使う場合)

サーバが PAP や CHAP 認証を求める場合、上記のオプションファイルに以下 の行を付け加えてください。


#
# 認証の際に ISP でのユーザー名をホスト名として使います。
name <your ISP username>     # この行は忘れず変更すること

# PAP や CHAP 認証を強制的に行う必要がある場合、以下の適切な行のコメント
# を外すこと

#+chap
#+pap
#
# /etc/ppp/pap-secrets ファイルが暗号化されている場合、以下の行のコメン
# トを外す


#+papcrypt


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