Solaris のシステム管理 (第 3 巻)

第 24 章 PPP リファレンス

この章では PPP を使用するためのリファレンスを提供しています。次のトピックについて説明します。

UUPC データベース

マシンが PPP リンク上でダイアルできるようにするためには、その UUPC データベース内の次のファイルを編集する必要があります。

PPP の /etc/uucp/Devices の更新

/etc/uucp/Devices ファイルには、そのホストが使用するか、または認識していなければならない、すべての通信デバイスについてのエントリが含まれている必要があります。たとえば、あるマシンが US Robotics V.32bis モデムを PPP リンクの一部として使用している場合、/etc/uucp/Devices ファイルに次のようなエントリが入っていなければなりません。


# Use these if you have a USrobotics V.32bis modem on Port B.
ACUEC   cua/b - 9600 usrv32bis-ec
ACUEC   cua/b - 19200 usrv32bis-ec
ACUEC   cua/b - 38400 usrv32bis-ec

各 PPP エンドポイントマシンの Devices ファイル中に、それぞれのモデムを記述しているエントリがあることを確認してください。/etc/uucp/Devices についての詳細は、「UUCP /etc/uucp/Devices ファイル」を参照してください。

PPP の /etc/uucp/Dialers の更新

/etc/uucp/Dialers ファイルには、PPP エンドポイントマシンに接続しているモデムとの会話を記述するエントリが含まれている必要があります。たとえば、US Robotics V.32bis モデムを PPP リンクとして使用する場合、このエントリは次のようになります。


usrv32bis-ec =,-,  "" ¥dA¥pT&FE1V1X1Q0S2=255S12=255&A1&H1&M5&B2¥r¥c OK¥r 
¥EATDT¥T¥r¥c CONNECT¥s14400/ARQ STTY=crtscts

このエントリ内の最初のパラメータ、usrv32bis/etc/uucp/Devices ファイル内の最後のパラメータに対応します。このエントリの残りの部分には、モデムが送る文字、モデムが受け取ると予期している文字などが記述されています。表 27-5 に、Dialers ファイルの中で使用する制御コードの定義を示してあります。

リンク上の各ダイヤルアウトエンドポイントに接続しているモデムについて、Dialers ファイル内にエントリが 1 つずつあることを確認してください。特定のモデムの会話が正しいかどうか確信がない場合は、『Solaris のシステム管理 (第 1 巻)』および、そのモデムの操作マニュアルの説明を参照してください。

PPP の /etc/uucp/Systems の更新

/etc/uucp/Systems ファイルには、ローカルホストがダイヤルアウトできる各マシンについてのエントリが入っています。各エントリには、リモートホストの電話番号や、回線速度などの情報が入っています。たとえば、図 23-1 に示したホスト nomadb では、ダイヤルインサーバーについてのエントリは次のような内容になります。


nubian-ppp  Any ACUEC 38400 5551212 "" P_ZERO "" 
¥r¥n¥c login:-¥r¥n¥c-login:-¥r¥n¥c-login:-
EOT-login: bnomad password: Secret-Password

最初のフィールドに示されているのはサーバーのホスト名である nubian-ppp で、これは、asppp.cf ファイルのキーワード peer_system_name に使用されます。ACUEC38400 はデバイスと速度を示し、これは、/etc/uucp/Devices ファイルからエントリを選択するために使用されます。その後の部分には、nomadb がダイヤルインするマシンの電話番号、nomadb がログインするために使用するログイン名などの情報があります。Systems ファイルに指定する必要のあるパラメータについては、「UUCP /etc/uucp/Systems ファイル」で詳しく説明します。

構成内の各リモートホストには、ダイヤルインサーバーについてのエントリを追加する必要があります。/etc/uucp/Systems ファイルには、そのホストが UUCP 通信でダイヤルアウトする他のマシンについてのエントリや、他の PPP ダイヤルインサーバーについてのエントリを一緒に入れることができます。

ダイヤルインサーバーがリモートホストに直接ダイヤルアウトを行う場合は、それらのリモートホストのそれぞれを記述するエントリを Systems ファイルに追加する必要があります。

/etc/asppp.cf 構成ファイル

/etc/asppp.cf 構成ファイルは、エンドポイントマシン上にある PPP リンクマネージャに、リンクの反対側にあるマシンに関する情報、またはマルチポイントリンク (または動的ポイントツーポイントリンク) の反対側にあるマシンに関する情報を提供します。このマシンがブートすると、リンクマネージャはこの情報を使用して、リモートエンドポイントとの通信を確立し維持します。

基本構成ファイルの各部分

基本的な asppp.cf 構成ファイルには、少なくとも 2 つのメインセクションが含まれていなければなりません。それは、1 個の ifconfig 行と、少なくとも 1 つの path セクションです。これに加えて defaults セクションも含めることができます。このセクションは、エンドポイントについてデフォルト値を設定したい場合に使用します (defaults セクションで使用するキーワードの説明については、「構成キーワード」を参照してください)。

例 24-1 に示す基本構成ファイルは、ダイヤルインサーバーとの間にポイントツーポイントリンクを確立するリモートホスト用として作成されたものです。


例 24-1 基本構成ファイル


ifconfig ipdptp0 plumb nomada nubian-ppp up
   path
      interface ipdptp0
      peer_system_name nubian-ppp      # The name in the /etc/uucp/Systems file
      inactivity_timeout 300           # Allow five minutes before timing out

asppp.cf ファイルの ifconfig セクション

asppp.cf ファイルには、次の構文の ifconfig セクションを含める必要があります。

ifconfig interface-number plumb local-machine remote-machine up

各フィールドについて説明します。

リンクマネージャはまず、ローカルホストで ifconfig コマンドを実行して、ipdptp0 ポイントツーポイントインタフェースを構成します。ipdptp0 の中の 0 は、インタフェースのデバイス番号を示します。plumb オプションは、IP が ipdptp0 インタフェースを認識するのに必要な各種の操作を行います。nomada はローカルホストの名前です。nubian-pppは、nomada がポイントツーポイントリンクを介して接続するダイヤルインサーバーの名前です。ifconfig オプション up は、ipdptp0 インタフェースに up のマークを付けます。


注 -

ifconfig についての詳細は、「インタフェースの状態を確認する方法」と、ifconfig(1M) のマニュアルページを参照してください。


asppp.cf ファイルの path セクション

構成ファイルの path セクションは、リモートエンドポイントの名前と、エンドポイントマシン間を結ぶインタフェースの名前を、リンクマネージャに指示します。path セクションには、少なくとも下記の行が必要です。


path
   interface interface-number
   peer_system_name endpoint-name

interface キーワード

このキーワードは PPP インタフェースを定義します (ipdptpnipdn のどちらか)。例 24-1 では、path セクションに次の情報があります。


interface ipdptp0	  
peer_system_name nubian-ppp

この interface キーワードは、ローカルエンドポイント nomada が、この path セクションの記述に従ってリモートエンドポイントと通信するのに使用するポイントツーポイントインタフェースが ipdptp0 であることを表します。このキーワードは、peer_system_name をインタフェースに結び付けています。

peer_system_name キーワード

リモートホストなどのようなダイヤルアウトマシンでは、peer_system_name キーワードは、リモートエンドポイントのホスト名を引数としてとります。これは、/etc/uucp/Systems の中で指定されたリモートエンドポイントの名前です。この名前は、対応する ifconfig 行のホスト名と同じでなくてもかまいません。


注 -

ダイヤルインサーバーの場合は、peer_system_name キーワードへの引数の値は異なります。詳細は、例 24-1 を参照してください。


例 24-1 では、peer_system_name は、このリンクの反対側にあるリモートエンドポイントが、ダイヤルインサーバー nubian-ppp であることを示しています。リンクマネージャは、asppp.cf ファイルを読んだあとで、/etc/uucp/Systems ファイルの中で nubian-ppp についてのエントリを見つけます (Systems ファイルには、リモートエンドポイントとの通信を設定する方法や、そのマシンの電話番号などが含まれているということを思い出してください。「PPP の /etc/uucp/Systems の更新」を参照してください)。

inactivity_timeout キーワード

inactivity_timeout キーワードは省略可能です。このキーワードは、指定した時間が経過するまでの期間は、リンクが未使用状態であっても構わないことをリンクマネージャに指示します。その期間が経過すると、リンクマネージャは自動的にリンクを切り離します。デフォルトの時間は 2 分です。未使用期間として別の時間を指定したい場合でない限り、inactivity_timeout を使用する必要はありません。

その他のキーワード

asppp.cf ファイルには、上記以外にも、エンドポイントマシンによる通信の方法を定義するためのキーワードがいくつかあります。これらのキーワードについては、「構成キーワード」に詳しい説明があります。

マルチポイントダイヤルインサーバーの構成ファイル

マルチポイントダイヤルインサーバーの asppp.cf ファイルの場合も、基本的なセクションはポイントツーポイントリンクの場合と同じで、1 個の ifconfig セクションと、少なくとも 1 つの path セクションのほかに、必要に応じて指定する defaults セクションがあります。

例 24-2 は、例 24-1 に示したダイヤルインサーバー nubian の構成ファイルです。


例 24-2 マルチポイントダイヤルインサーバーの構成ファイル


ifconfig ipd0 plumb nubian-ppp up

path
   interface ipd0
   peer_system_name tamerlane  # The user name this remote
                               # machine logs in with when it
                               # dials this server
   	peer_ip_address nomada
                               # nomada is a remote machine that
                               # dials in to this server

# nomadb is another remote machine that dials in to nubian

path
   interface ipd0
   peer_system_name lawrence
   peer_ip_address nomadb

# nomadc is another remote machine that dials in to nubian

path
   interface ipd0
   peer_system_name azziz
   peer_ip_address nomadc

マルチポイントダイヤルインサーバーの ifconfig セクション

マルチポイントダイヤルインサーバーの場合の ifconfig セクションは、ポイントツーポイントリンクの場合とはやや構文が異なります。構文は次のとおりです。


ifconfig ipdn plumb server-name up

最も大きな相違点は、ifconfig への引数として宛先エンドポイントを指定しないという点です。代わりに、リンクマネージャは、asppp.cf ファイルの path セクションからこの情報を拾いだします。

例 24-2 では、リンクマネージャは、まずダイヤルインサーバーで ifconfig コマンドを実行して、マルチポイントインタフェース ipd0 を構成します。ipd0 の中の 0 は、インタフェースのデバイス番号を示します。plumb オプションは、IP が ipd0 インタフェースを認識するために必要な各種の操作を行います。ifconfig オプション up は、ipd0 インタフェースに up のマークを付けます。


注 -

サブネットを使用する場合は、ifconfig 行に netmask + パラメータの指定が必要です。


マルチポイントダイヤルインサーバーの path セクション

asppp.cf ファイルの path セクションは、リモートエンドポイントの名前と、エンドポイントマシンをリンクするインタフェースの名前を、リンクマネージャに指示します。ただし、マルチポイントダイヤルインサーバーでは、複数の path セクションを設けることができます。また、キーワードへの引数のいくつかは、マルチポイントリンクでは使い方が異なります。


path
    interface interface-number
    peer_system_name endpoint-username
    peer_ip_address endpoint-hostname

path セクションは、ダイヤルインサーバーが接続を確立する相手となる各可搬エンドポイントについて、1 つずつ定義する必要があります。

interface キーワード

マルチポイントダイヤルインサーバーの場合は、interface キーワードは PPP インタフェース ipdn を定義します。このインタフェースを介してサーバーと通信するすべてのエンドポイントについて、同じ PPP インタフェースを path セクションに指定する必要があります。

peer_system_name キーワード

ダイヤルインマシンの場合の peer_system_name キーワードは、ダイヤルアウトマシンの場合と引数が少々異なります。ダイヤルインサーバーの場合は、この引数は、リモートホストがサーバーとの通信を確立しようとするときに使用するログイン名です。このユーザー名は、すでにサーバーの /etc/passwd ファイル内に存在しているものでなければなりません。ログインサービスは、この名前を読み取ると、/etc/passwd ファイルと /etc/shadow ファイルの中のユーザー名とを検証して、通信を可能にします。

次に示す、例 24-2 の抜粋を見てください。


path
    interface ipd0
    peer_system_name scarlett
    peer_ip_address nomadc

ここでは、peer_system_name への引数は scarlett です。これは、nomadcnubian-ppp にログインするときに、scarlett というログイン名を使用することを示しています。

peer_ip_address キーワード

peer_ip_address キーワードは、マルチポイントリンクの場合は必須です。このキーワードは、引数としてリモートエンドポイントのホスト名または IP アドレスを受け取ります。上記の例では、peer_ip_address キーワードの引数はホスト名 nomads です。

その他のキーワード

asppp.cf ファイルには、上記以外にもエンドポイントマシンによる通信の方法を定義するためのキーワードがいくつかあります。これらのキーワードについては、「構成キーワード」に詳しい説明があります。

PPP の障害追跡

モデムの接続を正常に確立したあとでリンクに問題が発生した場合、PPP レベル診断機能を使用して障害追跡を行うことができます。PPP レベル診断機能は、リンクの動きに関する詳細な情報を報告するため、問題がどこに発生しているかを発見するのに役立ちます。

診断出力の分析

PPP が正常に実行されているときに、asppp.log ファイルには、通常の出力のほかに診断情報が含まれています。この節では、診断メッセージの意味について説明します。ここに該当する出力がない場合は、RFC 1331 を参照してください。

ホストとモデムの設定

ローカルホストがモデムに構成情報を送り、モデムがリモートホストにダイヤルしようとしたときに発生するメッセージについて説明します。これらの初期の動作は、実際には UUCP デーモンが取り扱います。これらの動作は、非同期 PPP 通信の UUCP 部分と考えることができます (UUCP についての詳細は、第 25 章「UUCP の概要」を参照してください)。

次の 2 つのメッセージは、セッションの始めに常に表示されます。これは、aspppd デーモンが正常に起動されたことを示します。


11:53:33 Link manager (1057) started 04/14/94
11:53:33 parse_config_file: Successful configuration

次の行は、パケットがローカルホストの ipdptp0 インタフェースに送られたことを示しています。これは、ダイヤルアウトが正常に行われたかどうかを判断するのに役立ちます。たとえば、リモートマシンの ping を試みたときに、asppp.log 内にこのメッセージがないとすれば、ルーティングの問題が原因でパケットが失われていると考えられます。

次に、UUCP は、/etc/uucp/Systems ファイル内のチャットスクリプトの中にある Ppac7 に一致するエントリを探します。そして、デバイスタイプが ACUTEC であるエントリが見つかったことを報告します (Systems ファイルについての詳細は、「UUCP /etc/uucp/Systems ファイル」を参照してください)。


11:53:46 process_ipd_msg: ipdptp0 needs connection
conn(Ppac7)
Trying entry from '/etc/uucp/Systems' - device type ACUTEC.

UUCP は次に、/etc/uucp/Devices ファイルから ACUTEC ダイヤラに関するダイヤル情報を探します。この情報が見つかると、UUCP は、ローカルホストの該当するシリアルポートをオープンし、その速度を 9600 に設定します (/etc/uucp/Devices についての詳細は、「UUCP /etc/uucp/Devices ファイル」を参照してください)。


Device Type ACUTEC wanted
Trying device entry 'cua/a' from '/etc/uucp/Devices'.
processdev: calling setdevcfg(ppp, ACUTEC)
fd_mklock: ok
fixline(8, 9600)
gdial(tb9600-ec) calle

UUCP は、/etc/uucp/Dialers ファイルの中に tb9600 というエントリを確認して、次のメッセージを送り出します。


Trying caller script 'tb9600-ec' from '/etc/uucp/Dialers'
expect: ("")

ホストは 2 秒間待ってから、モデムのレジスタを設定します。下記のログに示される情報は、個々のモデムに固有のものです。これは /etc/uucp/Dialers ファイルからの情報をもとにしています。


got it
sendthem (DELAY)
APAUSE
APAUSE
APAUSE
T&D2E1V1X1Q0S2=255S12=255S50=6S58=2^M<NO CR>)

次の行は、モデムとホストマシンとの間のダイアログです。expect (OK^M) は、モデムが「了解」を送ることを予期していることを意味します。2 行目の終わりの got it という語句は、ホストがモデムから「了解」メッセージを受け取ったことを意味します。


expect: (OK^M)
AAAT&D2E1V1X1Q0S2=255S12=255S50=6S58=2^M^M^JOK^Mgot it

次にホストは下記の文字列をモデムに送り、実際にはモデムがダイヤリングを行います。2 行目の電話番号は、/etc/uucp/Systems ファイル内のリモートホストに関するエントリから検索されます。


sendthem (ECHO CHECK ON
A^JATTDDTT99003300887744^M^M<NO CR>)

expect で始まる行は、ローカルホストが、モデムから 9600 bps の速度であるという応答を受け取ることを予期していることを意味します。その次の行は、モデムが応答したことを示しています。


expect: (CONNECT 9600)
^M^JCONNECT 9600got it

次の行は、リンク上でハードウェアフロー制御が開始されたことを示しています。ホストは、フロー制御情報を /etc/uucp/Dialers ファイルから入手します。


STTY crtscts

次に示す一連のメッセージは、ローカルホストが、リモートホストから標準的な UNIX ログインプロンプトが送られてくるのを待っていることを示しています。


getty ret 8
expect: ("")
got it
sandiest (^J^M)
expect: (login:)

次のメッセージは、ローカルホストがリモートからのログインプロンプトを受け取ったことを示します。ローカルホストは、リモートホストについての /etc/uucp/Systems エントリ内のチャットスクリプトから、該当するログインシーケンスを検索します。このシーケンスは Ppong^M で、リモートホストがログインするために必要です。


^M^J^M^Jlogin:got it
sendthem (Ppong^M)

次のメッセージでは、ローカルホストは、リモートホストからの ssword プロンプトを待ちます。このプロンプトを受け取ると、ローカルホストは、リモートホストに関する /etc/uucp/Systems エントリ内のチャットスクリプトから検索したパスワードを送ります。


expect: (ssword:)
login: Ppong^M^JPassword:got it

次のメッセージは、ダイヤリングとモデム接続が正常に完了したことを示しています。


sendthem (ppptest1^M)
call cleanup(0)^M

ローカルホストとリモートホストの間の通信

この時点で、ローカルホストとリモートホストの間のリンクが確立され、PPP 通信が開始されます。

セッションのこの部分の最初のいくつかの行は、構成要求 (Config-Req) です。これは、リモートホストに送られる最初の PPP パケットです。構成要求は、リンク制御プロトコル (LCP) パケットの一例です。このパケットは、構成を設定することを要求し、エンドポイントマシン間の PPP リンクを設定します。例 24-3 は、サンプルの構成要求を示します。


例 24-3 構成要求


11:54:20 004298 ipdptp0 SEND PPP ASYNC 29 Octets LCP Config-Req 
ID=4c LEN=24 MRU=1500 ACCM=00000000 MAG#=69f4f5b2 ProtFCOMP
AddrCCOMP

次に、構成要求について説明します。

残りの項目は、ホスト間でのネゴシエーションを必要とするオプションのリストです。

次に示す一連のメッセージは、無効な PPP パケットを報告しています。これらのパケットは、実際には UNIX テキストを送信しようとしているリモートホストから送られてきたものです。これは PPP に問題があることを示すものではありません。


11:54:20 004299 ipdptp0 RECEIVE {Invalid ppp packet}PPP ASYNC 7
Octets [BAD FCS] {Unrecognized protocol:    1}

11:54:20 004299 ipdptp0 RECEIVE PPP ASYNC 73 Octets [BAD FCS]
{Unrecognized protocol:    880a}

次のパケットでは、ローカルホストはリモートホストからの構成要求を受け取り、さらに別の構成要求を送ります。これら 2 つのパケットは、ID フィールド以外の部分はどちらも同じです。2 つのパケットは ID フィールドにより区別されます。


11:54:21 004301 ipdptp0 RECEIVE PPP ASYNC 29 Octets LCP Config-
Req  ID=35 LEN=24 MRU=1500 ACCM=00000000 MAG#=a8562e5f ProtFCOMP
AddrCCOMP

11:54:21 004302 ipdptp0 SEND PPP ASYNC 29 Octets LCP Config-Req 
ID=4d LEN=24 MRU=1500 ACCM=00000000 MAG#=69f4f5b2 ProtFCOMP
AddrCCOMP

次のパケットでは、ローカルホストは、リモート要求に対する確認として、構成肯定応答 (Config-ACK) を送ります。


11:54:21 004303 ipdptp0 SEND PPP ASYNC 29 Octets LCP Config-ACK 
ID=35 LEN=24 MRU=1500 ACCM=00000000 MAG#=a8562e5f ProtFCOMP
AddrCCOMP

ローカルホストは、リモートホストからの構成要求 (Config-Req) を受け取ります。


11:54:21 004304 ipdptp0 RECEIVE PPP ASYNC 29 Octets LCP Config-
Req  ID=36 LEN=24 MRU=1500 ACCM=00000000 MAG#=a8562e5f ProtFCOMP
AddrCCOMP

次のパケットでは、ローカルホストはリモートホストから送られてきた第 2 のパケットを確認し、リモートホストの肯定応答を受け取ります。


11:54:21 004305 ipdptp0 SEND PPP ASYNC 29 Octets LCP Config-ACK 
ID=36 LEN=24 MRU=1500 ACCM=00000000 MAG#=a8562e5f ProtFCOMP
AddrCCOMP

11:54:21 004306 ipdptp0 RECEIVE PPP ASYNC 29 Octets LCP Config-
ACK  ID=4d LEN=24 MRU=1500 ACCM=00000000 MAG#=69f4f5b2 ProtFCOMP
AddrCCOMP

次のパケットでは、ローカルホストは IP 伝送に関するパラメータについてのネゴシエーションを行います。LEN=16 はパケットサイズを表します。VJCOMP は、Van Jacobson のヘッダー圧縮を示しています。IPADDR の後にあるのは呼び出し側ホストの IP アドレスです。


11:54:21 004307 ipdptp0 SEND PPP ASYNC 21 Octets IP_NCP Config-
Req  ID=4e LEN=16 VJCOMP MAXSID=15 Sid-comp-OK IPADDR=192.9.68.70

次のパケットは、ローカルホストがリモートホストから、IP アドレスを含む IP 構成を受け取ったことを示しています。


11:54:22 004308 ipdptp0 RECEIVE PPP ASYNC 21 Octets IP_NCP
Config-Req  ID=37 LEN=16 VJCOMP MAXSID=15 Sid-comp-OK
IPADDR=192.9.68.71

ローカルホストは次の ACK をリモートホストに送り、リモートホストからの ACK を受け取ります。


11:54:22 004309 ipdptp0 SEND PPP ASYNC 21 Octets IP_NCP Config-
ACK  ID=37 LEN=16 VJCOMP MAXSID=15 Sid-comp-OK IPADDR=192.9.68.71

11:54:22 004310 ipdptp0 RECEIVE PPP ASYNC 21 Octets IP_NCP
Config-ACK  ID=4e LEN=16 VJCOMP MAXSID=15 Sid-comp-OK
IPADDR=192.9.68.70

次の最初のメッセージは、リンク上で IP が起動されたことを示しています。第 2 のメッセージは、ローカルホストがリンクを介して IP トラフィックを送信していることを示しています。


11:54:22 start_ip: IP up on interface ipdptp0, timeout set for
120 seconds

11:54:24 004311 ipdptp0 SEND PPP ASYNC 89 Octets IP_PROTO

次の最初のメッセージでは、ローカルホストはリモートホストからの IP トラフィックを受け取ります。そのあとのメッセージは、アイドルタイムアウトが原因でインタフェースが切り離されたことを示しています。


11:54:25 004312 ipdptp0 RECEIVE PPP ASYNC 89 Octets IP_PROTO
11:56:25 process_ipd_msg: interface ipdptp0 has disconnected
11:56:25 disconnect: disconnected connection from  ipdptp0

次のメッセージからは、終了シーケンスを開始します。最初のメッセージは、リモートホストが IP 層を終了するためのパケットを送ったことを示しています。第 2 のメッセージは、終了要求に対するローカルホストの肯定応答です。


11:56:25 004313 ipdptp0 RECEIVE PPP ASYNC 9 Octets IP_NCP Term-
REQ  ID=38 LEN=4

11:56:25 004314 ipdptp0 SEND PPP ASYNC 9 Octets IP_NCP Term-ACK 
ID=38 LEN=4

ローカルホストは、LCP 層の終了要求を受け取ります。第 2 のメッセージはその要求に対する肯定応答であり、その結果正常なシャットダウンが行われます。


11:56:25 004315 ipdptp0 RECEIVE PPP ASYNC 9 Octets LCP Term-REQ 
ID=39 LEN=4

11:56:25 004316 ipdptp0 SEND PPP ASYNC 9 Octets LCP Term-ACK 
ID=39 LEN=4

次のメッセージはリンクが閉じられたことを示しています。


11:56:29 004317 ipdptp0 PPP DIAG CLOSE

動的に割り当てられた PPP リンク

動的ポイントツーポイントリンクを持つダイアルインサーバーを使用すると、サイトでポイントツーポイント通信の持つメリットがすべて利用できます。第 21 章「PPP の概要」では、この構成タイプについて説明しています。このタイプは、ポイントツーポイントリンクを必要に応じて動的に割り当てる、1 台以上のダイアルインサーバーと通信するリモートホストから構成されています。この節全体で次に示す構成例を使用します。

動的割り当てリンクの場合のアドレス指定に関する必要事項

動的割り当て PPP リンクを使用する各マシンについて、/etc/inet/hosts ファイルにホスト情報を追加する必要があります。PPP エンドポイントの IP アドレスについては次の規則があります。


注 -

IP インタフェースに割り当てられるリモート IP アドレスに制限はありません。ただし、明確にするため、同じサブネットに属する IP アドレスだけを入れるのが最適です。


動的リンクの場合の hosts データベースの更新

動的リンク構成に含まれるすべてのマシンで、hosts データベースを更新する必要があります。

その他のファイルに関する考慮事項

次に行う手順として、/etc/passwd ファイルと /etc/shadow ファイルを編集します。動的リンク構成の場合も、リモートホスト対マルチポイントダイヤルインサーバー構成の場合と同じ手順で、これらのファイルを編集します。/etc/passwd ファイルと /etc/shadow ファイルについての詳細は、/etc/passwd ファイルの修正」を参照してください。

動的リンクの場合の asppp.cf の編集

動的リンク構成用の asppp.cf 構成ファイルには、リモートホストに関する情報と、PPP リンクに使用するインタフェースに関する情報が含まれていなければなりません。ダイヤルインサーバーがブートした後、リモートエンドポイントからサーバーが呼び出されるたびに、リンクマネージャはこの情報を使用して通信を確立します。

動的リンクを持つリモートホスト

リモートホスト用の asppp.cf 構成ファイルは、「基本構成ファイルの各部分」で説明したファイルと同じですが、パラメータ negotiate_address が追加されている点が異なります。


ifconfig ipdptp0 plumb dummy mojave up
path
    interface ipdptp0
    peer_system_name mojave-ppp
    connectivity_timeout 300
    negotiate_address on

negotiate_address パラメータは、ローカル IP アドレスの割り当てがネゴシエーションによって取得されて動的に割り当てられているかを示します。設定が「on」の場合、サーバーから供給された IP アドレスが、接続中にクライアントのローカルアドレスとして使用されます。

動的リンクを持つダイヤルインサーバー

ダイヤルインサーバーが着信パケットを受信すると、リンクマネージャは構成ファイルの path セクションを読んで、リモートエンドポイントを識別し、使用するインタフェースを決定します。例 24-4 に示す構成ファイルには、インタフェースキーワードは含まれていません。代わりに、リンクマネージャは、defaults セクションに設定されているインタフェース情報を使用します。

動的割り当てリンクを持つダイヤルインサーバー用の asppp.cf 構成ファイルは、例 24-4 のようになります。


例 24-4 動的割り当てリンクを持つサーバー用の構成ファイル


ifconfig ipdptp0 plumb mojave clienta down
ifconfig ipdptp1 plumb mojave clientb down
ifconfig ipdptp2 plumb mojave clientc down

# This means grab whatever interface is available (not in use)
defaults
	    interface ipdptp*

# Each path specifies a machine that might dial up / log
# in to this server

path
    peer_system_name tamerlane   # nomada uses the login name
                                 # tamerlane

path
    peer_system_name lawrence    # nomadb uses the name lawrence
                                 # for login

path
    peer_system_name nomadc   

動的リンクを持つサーバー用の ifconfig セクション

動的割り当てリンクを持つダイヤルインサーバー用の ifconfig セクションの構文は、次のとおりです。

ifconfig ipdptpn plumb server-name client-address down

例 24-4 には、3 つの ifconfig 行があり、それぞれポイントツーポイントインタフェースを初期化しています。


ifconfig  ipdptp0  plumb  mojave  clienta  down
ifconfig  ipdptp1  plumb  mojave  clientb  down
ifconfig  ipdptp2  plumb  mojave  clientc  down

動的リンクを持つサーバー用の defaults セクション

動的割り当てリンクを構成するときに、asppp.cf ファイルに defaults セクションを含めることができます。このセクションでは、その後に asppp.cf ファイル内に keyword が現れたときに、keyword に代入するデフォルトの値を設定します。defaults セクションの構文は次のとおりです。


default 
     keyword

例 24-4 では、キーワード interface を使用して ipdptp* をインタフェースとして定義することにより、動的リンクを指定しています。ワイルドカードを示すアスタリスクは、ifconfig セクションで定義されている任意の使用可能な ipdptp インタフェースを使用するよう、リンクマネージャに指示しています。したがって、サーバー mojave のリンクマネージャは、ipdptp0ipdptp1ipdptp2 のうち、down として構成されている最初のインタフェースを使用します。

動的リンクを持つサーバー用の path セクション

動的リンクを持つサーバー用の構成ファイルには、そのサーバーとの接続の確立が許されているすべてのリモートホストについての path セクションが含まれていなければなりません。path セクションの構文は次のとおりです。


path
    peer_system_name endpoint-username    

interface キーワードは、path セクションの中で定義されていません。これは、この値が defaults セクションで定義されているからです。 この場合の peer_system_name キーワードと peer_ip_address キーワードの意味は、マルチポイントサーバー用の構成ファイルの場合と同じです。詳細は、「マルチポイントダイヤルインサーバーの path セクション」を参照してください。

その他のキーワード

asppp.cf ファイルでは、上記の他に、エンドポイントがどのように通信するかを定義するためのキーワードをいくつか指定できます。これには、「構成キーワード」で説明するセキュリティキーワードも含まれます。

仮想ネットワークの構成

仮想ネットワークは、それぞれ離れた場所にあるいくつかのスタンドアロンコンピュータを、互いに PPP マルチポイントリンクで接続したものです。仮想ネットワークの概念については、「仮想ネットワーク」で紹介しました。この節では、仮想ネットワークを構成する方法について説明します。

図 24-1 仮想ネットワーク例

Graphic

図 24-1 に示すネットワークは、3 つの単独コンピュータで構成されています。ネットワークの各メンバーは、マルチポイント PPP リンクを介して他のメンバーに接続しています。したがって、このようなネットワークを作成するには、ネットワーク管理者 (リモートロケーションの他のネットワーク管理者である場合もあります) は、関与する各ホストでマルチポイント PPP リンクを構成する必要があります。

マルチポイントリンクの構成には、マルチポイントダイヤルインサーバーの場合と同じ一般的な手順を用います。この手順については、「構成プロセスの概要」に説明があります。ただし、仮想ネットワークには独自の必要条件がいくつかあり、それに従ってネットワーク内の各ホストを構成する必要があります。

仮想ネットワークの場合のアドレス指定に関する必要事項

仮想ネットワーク内の各マシンについて、/etc/hosts ファイルにホスト情報を追加する必要があります。PPP エンドポイント用に使用する IP アドレスを入力するときは、次の規則に従ってください。

hosts データベースと networks データベースの更新

最初に行う手順としては、仮想ネットワークに関する情報によって、hosts データベースと networks データベースを更新します。

仮想ネットワークの場合の /etc/inet/hosts ファイル

各マシンの /etc/inet/hosts ファイルには、このホストからアクセスできるすべてのネットワークメンバーに関するアドレス指定情報が含まれている必要があります。たとえば、図 24-1 に示したネットワーク内の各ホストは、次のような情報を持っている必要があります。


# Internet host table
#
127.0.0.1           localhost	loghost
192.41.47.15        nomada
192.41.47.20        nomadb
192.41.47.12        nomadc

仮想ネットワークの場合の /etc/inet/networks ファイル

仮想ネットワークは一意な IP アドレスを必要とするので、このアドレスを networks データベースに入力する必要があります。たとえば、図 24-1 に示したネットワークの番号は 192.41.47 です。さらに、このネットワーク上のホストが他のネットワークと通信する必要がある場合は、このネットワークを InterNIC のアドレス指定機関に登録する必要があります。networks データベースの編集方法については、networks データベース」を参照してください。

仮想ネットワーク上の各ホストは、ネットワークのアドレスが入ったエントリを、/etc/inet/networks ファイル中に持っている必要があります。たとえば、ネットワーク 192.41.47 の各ホストは、/etc/inet/networks の中に次のようなエントリを持っている必要があります。


# Internet networks
#
# arpanet   10          arpa
# ucb-ether 46          ucbether
#
# local networks
loopback    127
ppp         192.41.47   #remote sales offices

その他のファイルの構成

次に行う手順としては、UUCP データベース、/etc/passwd ファイル、/etc/shadow ファイルを編集します。仮想ネットワーク内のマシンについてこれらのファイルを編集する方法は、マルチポイントダイヤルインサーバー構成の場合と同じです。UUCP 関係の情報については、「UUCP データベースの編集」を、passwd ファイルについては、/etc/passwd ファイルの修正」を参照してください。

仮想ネットワークの場合の asppp.cf 構成ファイル

仮想ネットワーク上のローカルマシン用の構成ファイルには、そのネットワーク内にあってローカルホストからアクセスできるすべてのリモートホストに関する情報が含まれている必要があります。さらに、仮想ネットワーク上のマシンは、どれもダイヤルインとダイヤルアウトの両方の機能を備えたものとして構成されていなければなりません。ローカルホストマシンがブートされると、リンクマネージャは asppp.cf ファイルを読んで通信を確立します。

例 24-5 は、仮想ネットワーク 192.41.47 の nomada 用として設定した構成ファイルです。


例 24-5 nomada 用の構成ファイル


# /etc/asppp.cf for hosta

ifconfig ipd0 plumb nomada netmask + up
defaults
   interface ipd0
path
   peer_ip_address  nomadb
   peer_system_name lawrence	   	# name machine logs in with
path
   peer_ip_address nomadc
   peer_system_name azziz

例 24-6 は、仮想ネットワーク 192.41.47 の nomadb 用として設定した構成ファイルです。


例 24-6 nomadb 用の構成ファイル


# /etc/asppp.cf for nomadb

ifconfig ipd0 plumb nomadb netmask + up
defaults
   interface ipd0
path
   peer_ip_address   nomada
   peer_system_name  tamerlane  # name the machine logs in with
path
   peer_ip_address   nomadc
   peer_system_name  azziz

PAP と CHAP のキーワードに関する規則

表 24-1 PAP と CHAP のキーワードの定義

キーワード 

値の定義 

require_authentication keywords

対等システムがそれ自身を認証することを指定する。papchap のどちらかがある場合は、対等システムは認証に参加するか、または接続を終了する必要がある。デフォルト値は off

pap_peer_id peername

現在のパスについて認証される必要のある対等システムの名前を指定する。peername 文字列の長さは 1 オクテット以上。長さがゼロの文字列を指示するには、このキーワードを省略する

pap_peer_password string

対等システムのパスワードを 1 オクテット以上の長さで指定する。長さがゼロの文字列を指示するには、このキーワードを省略する 

chap_peer_secret string

対等システムが送る応答を生成するためにチャレンジ値とともに使用されるシークレットを指定する。形式は 1 オクテット以上の長さで、少なくとも 16 オクテット以上が望ましい 

chap_peer_name peername

パケットを伝送する対等システムの識別情報を指定する。名前には、NULL と、CR/LF で終わる文字列は使用できない。名前は、対等システムからの応答パケットの一部として受信されるもので、1 オクテット以上の長さからなる 

will_do_authentication keywords

システムが、指定した認証プロセスに認証された対等システムとして参加する意志があるかどうかを指定する。papchap の両方が存在する場合は、システムはどちらの認証プロトコルにも参加する意志を持つことになる。デフォルト値は off

pap_id peername

応答パケットに入れて認証システムに送るシステムの名前を指定する。長さがゼロの文字列を指示するには、このキーワードを省略する 

pap_password string

応答パケットに入れて認証システムに送るシステムのパスワードを指定する。長さがゼロの文字列を指示するには、このキーワードを省略する 

chap_secret string

認証システムに送る応答を生成するために、受信したチャレンジ値とともに使用するシークレットを入れる。形式は 1 オクテット以上の長さで、少なくとも 16 オクテット以上が望ましい 

chap_name peername

システムの識別情報を指定する。名前は、NULL または CR/LF で終わるものであってはならない。この名前は、応答パケットに入れて認証システムに送られる 

構成キーワード

この節では、asppp.cf 構成ファイルで使用できる構成キーワードと、それぞれについて定義する必要のある値について説明します。これらのキーワードのほとんどは必須ではありません。必須のものについてはその旨を示しています。キーワードについての詳しい説明は、RFC 1331、1332、1333、および 1334 を参照してください。

表 24-2 は、すべての asppp.cf ファイルに含まれていなければならない必須キーワードの一覧です。

表 24-2 asppp.cf の必須キーワード

キーワード 

値の定義 

ifconfig parameters

parameters に指定する値で ifconfig コマンドを実行するようリンクマネージャに指示する。詳細は、asppp.cf ファイルの ifconfig セクション」「マルチポイントダイヤルインサーバーの ifconfig セクション」、および ifconfig(1M) のマニュアルページを参照

path

この (現行の) パスの属性としてグループ化するトークンシーケンスの始まりを指定する。現行パスを形成する属性の集合は、後続の path キーワード、defaults キーワード、ファイルの終わり文字のどれかが生じた時点で終了する

interface (ipdptpnipdptp* または ipdn)

ネットワーク内の各インタフェースについて、ipdptp (静的ポイントツーポイント)、ipdptp* (動的ポイントツーポイント)、ipd (マルチポイント) のどれかのデバイスを指定する。ipdptpnipdn の場合は、このキーワードは、n で定義される特定のインタフェースを現行パスに関連付ける。n は 0 または正の整数でなければならない。この数は、path セクションに定義されているインタフェースと、ifconfig セクションに指定されているインタフェースが一致するようにする

 

ipdptp** インタフェースの場合は、* は、インタフェースが、down として構成されているどのポイントツーポイントインタフェースにも一致することを示す

peer_system_name hostnamepeer_system_name username

ダイヤルアウトマシンでは、ローカルマシンから呼び出したいリモートエンドポイントのホスト名 (hostname) を指定する。この名前は、/etc/uucp/Systems ファイルの中のシステム名と同じである。リモートシステム名を現行パスに関連付ける。この名前は、/etc/uucp/Systems ファイルから、アウトバウンド接続に関する、モデムと対等システムに固有の情報を見つけるために使用される

ダイヤルインマシンでは、そのダイヤルインマシンにログインするときにリモートマシンが使用するユーザー名 (username) を指定する。username と、接続の獲得に使用されたログイン名との突き合わせによって、適正なパスが決定される

peer_ip_address hostnamepeer_ip_address ip-address

宛先ホストアドレスを指定する。これは、マルチポイントリンクの場合に限り必要とされる。このアドレスは現行パスに関連付けされる。パスがポイントツーポイントインタフェースを示している場合は、この値は無視される。アドレスの形式は、ドット付き 10 進数、16 進数、シンボルのどれでもよい 

表 24-3 に、PPP 構成をさらに進んで定義するために使用できる、asppp.cf の省略可能キーワードを示します。

表 24-3 asppp.cf の省略可能キーワード

キーワード 

値の定義 

debug_level 0-9

ログファイルに書き込むデバッグ情報の量を定義する 0 〜 9 の整数。数値が大きいほど出力の量が多くなる 

defaults

次の path キーワードか、EOF 文字が現れるまでの後続のすべてのトークンシーケンスをデフォルトの属性に設定して、その間に定義されるパスに適用することを指示する

default_route

現行パスに対応する IP 層が完全に稼動状態にあるときに、このパスの対等 IP アドレスをデフォルトの宛先としてルーティングテーブルに追加するよう、リンクマネージャに指示する。IP 層がシャットダウンされると、このルートは削除される 

inactivity_timeout seconds

現行パスの接続が、終了しないでアイドル状態のままでいられる最大秒数を指定する。タイムアウトなしの場合は 0 を指定する。デフォルトは 120 秒 

ipcp_async_map hex-number

現行パスの非同期制御文字マップを指定する。hex-number は、マップを形成する 4 オクテットの自然 (ビッグエンディアン) 形式を示す。デフォルト値は 0x FFFFFFFF

ipcp_compression (vj または off)

IP 圧縮を使用可能にするかどうかを指定する。デフォルトは、Van Jacobson 圧縮アルゴリズム (vj) 

lcp_compression (on または off)

PPP アドレスフィールド、制御フィールド、プロトコルフィールドの圧縮を使用可能にするかどうかを指定する。デフォルトは on 

lcp_mru number

必要な最大受信ユニットパケットサイズの値を指定する。number はサイズを指定するオクテット数。デフォルトは 1500 

negotiate_address (on または off)

ローカル IP アドレス割り当てをネゴシエーションにより入手し動的に割り当てるかどうかを指示する。これを使用可能にした場合は、ローカルアドレスは PPP リンクのリモート側から渡される。このようにして渡された場合、0.0.0.0 を除くどのようなローカルアドレスでも、インタフェースの初期構成に使用できる。デフォルトはネゴシエーションなし (off) 

peer_ip_address hostnamepeer_ip_address ip-address

宛先ホストアドレスを指定する。このキーワードはポイントツーポイントリンクの場合に限りオプション。address は現行パスに関連付けされる。アドレスの形式は、ドット付き 10 進数、16 進数、シンボルのどれでもよい

version n

構成ファイルの内容が形式バージョン n に対応することを指定する。このキーワードを使用する場合は、ファイルの最初のキーワードとする必要がある。このキーワードがないときは、バージョンは 1 とみなされる。このマニュアルでは、バージョン 1 形式の定義を構成ファイルに使用している