この付録では、Solstice PPP の構成ファイルで使用する代表的なキーワードを紹介します。Solstice PPP で使用する CHAT スクリプトの構文のほか、対話型 CHAT スクリプトと非対話型 CHAT スクリプトの例も記載しています。
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 パス構成ファイルで使用する代表的なキーワードは、次のとおりです。
非同期 (ダイヤルアップ) パス定義の始まりを示します。
必須パラメータ。構成ファイル中の ifconfig セクションに定義されているポイントツーポイント (ipdptpn) IP インタフェースのいずれかとパスを関連付けます。
必須パラメータ。アクセス先のリモートサーバーを指定します。name には、任意の文字列を指定してください。
省略可能パラメータ。デフォルトの宛先として、送信経路をルーティングテーブルに追加します。
省略可能パラメータ。接続が自動的に切断されるまでの非活動秒数を指定します。
seconds には、任意の整数を指定してください。デフォルト値は、120 秒です。seconds 値がゼロに設定されている場合は、明示的に切断されるまで接続はオープン状態のままになります。
省略可能パラメータ。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 文字の任意の文字列を指定してください。
リンク構成ファイル (/etc/opt/SUNWconn/ppp/link.conf) には、モデム構成およびリモートサーバーとの接続に使用するダイヤル (発信) 情報が入っています。
各モデム構成は、以下のようにキーワード dialup_device によって識別されます。
dialup_device pppdev0 unix_device ttya line_speed 38400 modem Practical 14400 V32bis call_setup dial |
この部分のリンク構成ファイルで使用する代表的なキーワードは、次のとおりです。
非同期デバイス定義の始まりを示し、デバイスの名前を設定します。
クライアントとモデムを接続するために使用するシリアルポートを指定します。
クライアントとモデムとを接続する回線速度を指定します。高性能を確保するために、speed にモデムのボーレート以上の回線速度を指定してください。
シリアルポートに接続するモデムのタイプを指定し、ファイル /etc/opt/SUNWconn/ppp/modems に入っているモデム定義のいずれかと非同期デバイスを関連付けます。ヌルモデム構成の場合は、modem_id に none を指定してください。
クライアント構成の場合は、call_type 値は常に dial に設定されます。
各リモートサーバーは、以下のようにキーワード remote_host によって識別されます。
remote_host miles phone_number 123456789 chat_script miles.scr |
この部分のリンク構成ファイルに使用する代表的キーワードは、次のとおりです。
リモートホスト定義の始まりを示し、PPP パス構成ファイル (ppp.conf) に定義されているパスのいずれかと関連付けます。
リモートホストへの発信に使用する電話番号を定義します。リモートホストが同じ私設構内交換機内にある場合は、内線番号を使用できます。リモートホストが私設構内交換機の外にある場合は、必要な特定の数字を指定してください。電話番号には数字や文字のほか、# や * などの特殊文字も使うことができます。ヌルモデム構成の場合は、ダミーの番号が割り当てられます。
この接続で使用する CHAT スクリプトのファイル名を定義します。デフォルトでは、リモートホストへの接続スクリプトは /etc/opt/SUNWconn/ppp/script ディレクトリにあります。
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 文字を読み取ります。
次に、スクリプトはチャレンジ値を表示し、ユーザーによる応答を待機し、この応答をサーバーに送信します。応答が受信されると、接続が確立されます。
文字列の中の変数は、{} 括弧を使用することによって他の文字と区別します。