Solstice PPP 3.0.1 ユーザーズガイド

付録 A 構成ファイルと CHAT スクリプト

この付録では、Solstice PPP の構成ファイルで使用する代表的なキーワードを紹介します。Solstice PPP で使用する CHAT スクリプトの構文のほか、対話型 CHAT スクリプトと非対話型 CHAT スクリプトの例も記載しています。

PPP パス構成ファイル (ppp.conf)

PPP パス構成ファイル (/etc/opt/SUNWconn/ppp/ppp.conf) は、各リモートサーバーへアクセスするために使用するパスを定義します。各パスは、以下のようにキーワード dialup_path によって識別されます。


dialup_path
	ip_interface           ipdptp0
	remote_host            miles-ppp
	request_ip_addr        on
	inactivity_timeout     120
	default_route
	.
	.

PPP パス構成ファイルで使用する代表的なキーワードは、次のとおりです。

dialup_path

非同期 (ダイヤルアップ) パス定義の始まりを示します。

ip_interface interface

必須パラメータ。構成ファイル中の ifconfig セクションに定義されているポイントツーポイント (ipdptpn) IP インタフェースのいずれかとパスを関連付けます。

remote_host name

必須パラメータ。アクセス先のリモートサーバーを指定します。name には、任意の文字列を指定してください。

default_route

省略可能パラメータ。デフォルトの宛先として、送信経路をルーティングテーブルに追加します。

inactivity_timeout seconds

省略可能パラメータ。接続が自動的に切断されるまでの非活動秒数を指定します。

seconds には、任意の整数を指定してください。デフォルト値は、120 秒です。seconds 値がゼロに設定されている場合は、明示的に切断されるまで接続はオープン状態のままになります。

request_ip_addr state

省略可能パラメータ。IP アドレスの動的割り当て機能をクライアント側のみで使用可能にします。state 値が on に設定されている場合は、クライアントはクライアントの IP アドレスをサーバーに対して要求します。サーバー側でもこの機能が構成され、使用可能になっている必要があります。

state には、on (使用可能) または off (使用不可) を指定してください。デフォルト値は off です。

send_authentication mode

省略可能パラメータ。サーバーからの認証要求にクライアントが応答するかどうかを指定します。

mode には、off (認証なし)、pap (PAP による認証)、chap (CHAP による認証)、または pap|chap (PAP と CHAP による認証) を指定してください。デフォルト値は off です。

send_pap_id pap_id

認証を要求したサーバーに対して送信する PAP 識別子を指定します。pap_id には、0 〜 255 文字の任意の文字列を指定してください

send_pap_passwd pap_passwd

認証を要求したサーバーに対して送信する PAP パスワードを指定します。pap_passwd には、0 〜 255 文字の任意の文字列を指定してください

send_chap_name chap_name

認証を要求したサーバーに対して送信する CHAP 名を指定します。chap_name には、1 〜 255 文字の任意の文字列を指定してください

chap_own_secret chap_secret

サーバーに対する応答としてチャレンジ値とともに使用する CHAP シークレットを指定します。chap_secret には、1 〜 255 文字の任意の文字列を指定してください。

リンク構成ファイル (link.conf)

リンク構成ファイル (/etc/opt/SUNWconn/ppp/link.conf) には、モデム構成およびリモートサーバーとの接続に使用するダイヤル (発信) 情報が入っています。

モデム構成

各モデム構成は、以下のようにキーワード dialup_device によって識別されます。


dialup_device              pppdev0
    unix_device            ttya
    line_speed             38400
    modem                  Practical 14400 V32bis
    call_setup             dial

この部分のリンク構成ファイルで使用する代表的なキーワードは、次のとおりです。

dialup_device pppdevn

非同期デバイス定義の始まりを示し、デバイスの名前を設定します。

unix_device device_name

クライアントとモデムを接続するために使用するシリアルポートを指定します。

line_speed speed

クライアントとモデムとを接続する回線速度を指定します。高性能を確保するために、speed にモデムのボーレート以上の回線速度を指定してください。

modem modem_id

シリアルポートに接続するモデムのタイプを指定し、ファイル /etc/opt/SUNWconn/ppp/modems に入っているモデム定義のいずれかと非同期デバイスを関連付けます。ヌルモデム構成の場合は、modem_idnone を指定してください。

call_setup call_type

クライアント構成の場合は、call_type 値は常に dial に設定されます。

発信情報

各リモートサーバーは、以下のようにキーワード remote_host によって識別されます。


remote_host miles
    phone_number          123456789
    chat_script           miles.scr

この部分のリンク構成ファイルに使用する代表的キーワードは、次のとおりです。

remote_host name

リモートホスト定義の始まりを示し、PPP パス構成ファイル (ppp.conf) に定義されているパスのいずれかと関連付けます。

phone_number number

リモートホストへの発信に使用する電話番号を定義します。リモートホストが同じ私設構内交換機内にある場合は、内線番号を使用できます。リモートホストが私設構内交換機の外にある場合は、必要な特定の数字を指定してください。電話番号には数字や文字のほか、# や * などの特殊文字も使うことができます。ヌルモデム構成の場合は、ダミーの番号が割り当てられます。

chat_script filename

この接続で使用する CHAT スクリプトのファイル名を定義します。デフォルトでは、リモートホストへの接続スクリプトは /etc/opt/SUNWconn/ppp/script ディレクトリにあります。

CHAT スクリプトの編集

CHAT スクリプトは、接続フェーズ時にクライアントとサーバー間で発生するダイアログ (対話) を定義します。単純な非対話型 CHAT スクリプトでは、 以下のように send キーワードと expect キーワードによって交換する文字列を定義します。


#
# Chat script for ppp login
#
 
#
# Set the line regarding the remote site configuration
# Due to UUCP limitations some systems only accept cs7
#
# setline 	cs7 parodd
 
send    	RETURN
expect  	"ogin:"  10  onerror send BREAK repeat 3
 
send    	"ppp1"
expect  	"word: " 40
#
# Set the ppp password of the remote host here
#
send	    "okppp1"

呼を発信すると、クライアントはリモートサーバーからの応答を受信した後、ログインシーケンスを開始します。クライアントが応答を待機する時間と呼を発信する試行回数は、以下のエントリによって定義します。


expect  	"ogin:"  10  onerror send BREAK repeat 3

要求される応答は、ogin です。最初の数字 10 は待機時間を示し、2 番目の数字 3 は呼の開始試行数を示します。これらのパラメータは、いずれも変更可能です。

たとえば、発信を 5 秒ごとに 10 回再試行するには、エントリを以下のように変更します。


expect  	"ogin:"  5  onerror send BREAK repeat 10

対話型 CHAT スクリプトでは、echo キーワードと read キーワードによって、ユーザー入力を促すためのプロンプトを表示します。ユーザーが入力した内容は、接頭辞 $ によって識別される変数として格納されます。以下の例は、前述の非対話型のスクリプトを対話型にしたものです。


send	RETURN
expect  	"ogin:"  10  onerror send BREAK repeat 3
 
echo	"Enter your PPP login id: "
read	$login
send	"$login"
 
expect  	"word: " 40
 
echo	"Enter your PPP password: "
read	$password
send	"$password"

次の例は、ユーザーと動的チャレンジ応答認証システムとの対話を管理する、より複雑な CHAT スクリプトです。


send	RETURN
expect	"ID:"  10  onerror send BREAK repeat 3
 
echo	"Enter your user ID number: "
read	$id
send	"$id"
 
expect	"Challenge: ${challenge,6}" 10
echo	"Enter the response for Challenge ${challenge}: "
read	$response
send	"$response"
 
expect	"${host}:" 20
echo	"Connected to ${host}¥n"
send	"ppp"

このスクリプトは、ユーザー ID を読み取ってサーバーに送信します。文字列 Challenge: で始まるサーバーからの応答を 10 秒間待機し、チャレンジ値である次の 6 文字を読み取ります。

次に、スクリプトはチャレンジ値を表示し、ユーザーによる応答を待機し、この応答をサーバーに送信します。応答が受信されると、接続が確立されます。

文字列の中の変数は、{} 括弧を使用することによって他の文字と区別します。