この章では、TCP/IP プロトコル群に含まれるデータリンクプロトコルの 1 つである Solaris ポイントツーポイントプロトコル (PPP) の概要を示します。仕様、最も典型的な PPP 構成の紹介、および PPP に関連した用語の定義について説明します。
PPP を用いると、モデムと電話回線を使用して、物理的に離れた場所にあるコンピュータとネットワークを接続することができます。ユーザーは PPP を使用して、自宅や職場から、所属するサイトのネットワークに接続できます。また、PPP ソフトウェア、モデム、電話回線を組み合わせて、別々の場所にあるネットワーク同士を結ぶルーターとして使用することもできます。PPP は、このようなマシンとネットワークを構成するための方法を提供します。この章ではその方法を紹介します。
Solaris PPP は、標準化されたデータリンクレベルの PPP の非同期実装の 1 つです。PPP は TCP/IP プロトコル群に含まれているもので、多くのルーターシステムのベンダーや端末集線装置から提供されています。Solaris PPP には標準化されたカプセル化プロトコルが組み込まれているので、ネットワーク層プロトコルにとってデータグラムの転送が透過的になります。
Solaris PPP の主な特性には次のものがあります。
RFC 1331 で定義されているインターネットポイントツーポイントプロトコルを実装
CRC を使用したエラー検出機能を提供
全二重伝送をサポート
このプロトコルの主な機能には次のものがあります。
IP が非同期シリアル回線を介してパケットを転送するためのインタフェース
要求時の接続確立
構成可能オプションのネゴシエーション
接続の切断 (自動ハングアップ)
PPP は、Solaris ソフトウェアを実行するほとんどのマシンに備わっている CPU シリアルポートを使用した、RS-232-C(V.24) インタフェースをサポートします。さらに、PPP は、Solaris ソフトウェアを実行するマシンの製造元の多くが提供またはサポートしている、オプションの非同期シリアルポートでも動作します。PPP は、使用するマシンのシリアルポートで使用可能な最大のデータ速度をサポートします。マシンのシリアルハードウェアがサポートしている速度については、コンピュータシステムの製造元にお問い合わせください。
PPP と、Solaris ソフトウェアに組み込まれているルーティング機能は、業界標準の規格に従って動作します。この規格は次のような機能をサポートしています。
IP データグラムを転送する
転送するパケットを IP 互換にネットワーク化されたシステムから受け取る
ローカルエリアネットワークメディア、たとえば Ethernet、トークンリング、FDDI などを使用して IP 互換にネットワーク化されたシステムにパケットを配送する
標準化されたルーティングプロトコルを使用しているため、ユーザーは、多数の製造元が提供する PPP プロトコルをサポートする装置との間でパケットを交換できる
PPP を用いると、モデムなどのような非同期デバイスをネットワークインタフェースとして使用できるようになります。Solaris PPP では、2 つの仮想ネットワークインタフェース ipdptpn と ipdn を構成できます (n はインタフェースに割り当てるデバイス番号です)。
PPP ネットワークインタフェースは、仮想ネットワークインタフェースとみなされます。なぜなら、Ethernet インタフェースなどのようにネットワークハードウェアを含んでいないからです。さらに、PPP ネットワークインタフェースは特定のシリアルポートに関連付けられるものでもありません。PPP ネットワークインタフェースは、物理ネットワークインタフェースとともに /devices ディレクトリに入っています (物理ネットワークインタフェースについては、「ネットワークインタフェース」を参照してください)。
使用するネットワークインタフェースの種類は、設定したい PPP 通信リンクによって異なります。ipdptp インタフェースは、ポイントツーポイントリンクをサポートしています。ipd インタフェースは、ポイントツーマルチポイントリンク (「マルチポイントリンク」と呼ばれる) をサポートしています。
この節では、PPP に関連する通信の概念を紹介します。また、最も一般的な PPP 構成についても説明します。
Solaris PPP の最も一般的な使用目的は、ポイントツーポイント通信リンクを設定することです。一般的なポイントツーポイント通信構成は、2 つのエンドポイントを通信リンクで接続したものです。この一般構成では、エンドポイントシステムはコンピュータでも端末でもよく、切り離された状態でも、ネットワークに物理的に接続していてもかまいません。通信リンクという用語は、2 つのエンドポイントシステムを接続するハードウェアとソフトウェアを指します。図 21-1 にこの概念を示します。
一方のエンドポイントが通信リンクの反対側のエンドポイントとの通信を望むとき、そのエンドポイントはダイヤルアウト操作を開始します。たとえば、エンドポイント B と通信する場合、その対等ホストであるエンドポイント A のユーザーは、rlogin end-point-B と入力します。すると、エンドポイント A は通信リンクを介してダイヤルアウトします。この場合、エンドポイント A はダイヤルアウトマシンとして機能することになります。rlogin コマンドは、モデムがエンドポイント B の電話番号をダイヤルすることを引き起こします。このコマンドが起動するエンドポイント A 動作と相手に渡す情報を、アウトバウンド通信といいます。
データが通信リンクを介してエンドポイント B に到達すると、エンドポイント B のシステムは着信データを受け取り、肯定応答信号をエンドポイント A に送って、通信を確立します。この場合、エンドポイント B は他のシステムからのダイヤルインを受け入れるので、ダイヤルインマシンとして機能することになります。通信の受信側に渡される情報と受信側が行う動作を、インバウンド通信といいます。
Solaris PPP は、次の 4 つの種類のポイントツーポイント構成をサポートしています。
ある場所のホストを、物理的に異なる場所にある別のホストに接続した構成 (図 21-1)
ダイヤルインサーバーとリモートホストを動的ポイントツーポイントリンクで接続した構成 (図 21-2)
ネットワークを、物理的に離れた場所にある別のネットワークに接続した構成 (図 21-3)
コンピュータを、離れた場所にあるネットワークに物理的に接続されているマルチポイントダイヤルインサーバーに接続したもの (図 21-4)
PPP リンクは、実質的にはローカルエリアネットワークと同じ種類の接続を提供しますが、ブロードキャスト機能だけはありません。次の各節では、上記の構成についてそれぞれ簡単に説明します。各構成の設定方法については、第 22 章「PPP 構成の計画」で説明します。
PPP を使用すると、異なる場所にある 2 つのスタンドアロンマシンを接続するポイントツーポイントリンクを設定できます。これにより、事実上、この 2 つのマシンだけからなるネットワークが作成されることになります。これはエンドポイントが 2 つしかなく、したがって最も単純なポイントツーポイント構成と言えます。図 21-1 に示した一般的な構成でも、このホストツーホスト構成が使用されています。
従来は、標準的なダイヤル呼び出し接続または一時接続の場合、ネットワークに接続できるのは ASCII 端末だけでした。Solaris PPP を用いれば、個々のマシンを PPP リンクの 1 つのエンドポイントとして構成することによって、それらのマシンを物理的に離れた場所にあるネットワークの一部とすることができます。この可搬接続は、頻繁に旅行するユーザーや在宅勤務のユーザーを含むネットワークの場合に、特に便利です。
図 21-2 に示す可搬コンピュータは、それぞれネットワーク上のエンドポイントシステムへのポイントツーポイントリンクを持っています。ネットワーク上のエンドポイントシステムを、ダイヤルインサーバーと言います。
図 21-2 に示したネットワークのエンドポイントマシンは、動的ポイントツーポイントリンクを持つダイヤルインサーバーとして働きます。これをダイヤルインサーバーと呼ぶのは、リモートマシンがこのマシンにダイヤルインすることによってネットワークに入ることができるからです。サーバーは、あるマシンからダイヤルインの要求を受け取ると、必要時に提供するという方式でそのマシンに PPP リンクを割り当てます。
ダイヤルインサーバーは、動的ポイントツーポイントリンクまたはマルチポイントリンクを介してリモートホストと通信します。マルチポイントリンクについては、「マルチポイント通信リンク」で説明します。動的ポイントツーポイントには、ポイントツーポイント通信と同じ利点があります。つまり、リンク上で RIP を実行でき、ブロードキャストが使用可能になります。最も重要なのは、物理ネットワーク上の複数のマシンが、ダイヤルインサーバーとして機能することができるという点です。これはバックアップサーバーを構成できることを意味し、したがってサーバーの重複が可能となり、管理が容易になります。図 21-2 の各マシンはネットワークエンドポイントとは直接通信できますが、互いに直接通信することはできません。ダイヤルインサーバーエンドポイントを仲介として、相互に情報を受け渡しする必要があります。
PPP を使用すると、2 つのネットワークをポイントツーポイントリンクで接続し、各ネットワーク上の 1 つのシステムをエンドポイントとして機能させることができます。これらのエンドポイントは、図 21-1 に示したのと実質的に同じ方法で、モデムと電話回線を使用して互いに通信します。ただし、この設定では、エンドポイント、モデム、PPP ソフトウェアは、各物理ネットワークのルーターとして働きます。この種類の構成方式を使用して、地理的に広い範囲にわたるインターネットワークを構築できます。
図 21-3 は、異なる場所にある 2 つのネットワークをポイントツーポイントリンクで接続した構成を示しています。
この例では、エンドポイント A と B、それぞれのモデム、公衆電話回線、PPP ソフトウェアが、ネットワーク間のルーターとして働きます。これらのネットワークには、物理ネットワーク間のルーターとして機能する別のホストが存在することもあります。また、PPP ルーターとして機能するホストが追加のネットワークインタフェースボードを備えていて、同時に物理ネットワークのルーターとして機能する場合もあります。
Solaris PPP を使用して、マルチポイント通信リンクを設定できます。この種類の構成では、それぞれ個々のマシンが通信リンク上の 1 つのエンドポイントとして働きます。リンクの 1 つの端に複数のエンドポイントマシンが存在する場合もあります。これは、通信リンクの両端に 1 つずつしかエンドポイントがないポイントツーポイント構成とは異なります。
PPP によって構成できるマルチポイントリンクには、次の 2 つの種類があります。
次の各節では、これらの構成の概略を説明します。各構成の設定方法については、第 22 章「PPP 構成の計画」で説明します。
図 21-3 では、地理的に離れた場所にある 3 台のコンピュータが、ネットワーク上のエンドポイントマシンへのポイントツーポイントリンクを介して、互いに通信します。しかし、ネットワークエンドポイントマシンは、マルチポイントリンクを介して可搬コンピュータと通信できるので、このマシンはマルチポイントダイヤルインサーバーとみなすことができます (「動的ポイントツーポイントリンクを持つダイヤルインサーバー」で説明したように、動的ポイントツーポイント接続を持つダイヤルインサーバーも設定できます)。
ダイヤルインサーバーは、マルチポイント PPP リンクの反対側にあるすべてのマシンと通信できます。図 21-4 の各マシンはマルチポイントダイヤルインサーバーとは直接通信できますが、各マシンどうしが直接通信することはできません。各マシンは、ダイヤルインサーバーを介して、互いに情報を受け渡しする必要があります。
PPP を使用して仮想ネットワークを設定できます。この設定では、モデム、PPP ソフトウェア、電話回線が、「仮想」ネットワークメディアとなります。Ethernet やトークンリングなどの物理ネットワークでは、コンピュータはケーブルで直接ネットワークメディアに接続されています。仮想ネットワークでは、現実のネットワークメディアは存在しません。
仮想ネットワーク上で各マシンをマルチポイント通信リンクにより接続した場合、マシンはどれも対等ホストとなります。各ホストは、モデムと電話回線を介して、他のエンドポイントマシンと通信できます。各コンピュータはダイヤルインマシンとしても機能するので、仮想ネットワーク上の対等ホストからのダイヤルインを受け入れることができます。
図 21-5 は、モデムと電話回線によって相互に接続されている可搬コンピュータで構成されている、仮想ネットワークを示しています。
各マシンはそれぞれ、仮想ネットワーク上の他のマシンから離れた場所にある別々のオフィスに設置されていますが、マルチポイント通信リンクを介して、他の対等ホストとの通信を確立できます。
PPP のコンポーネントソフトウェアには次のものがあります。
リンクマネージャ (/usr/sbin/aspppd)
ログインサービス (/usr/sbin/aspppls)
構成ファイル (/etc/asppp.cf)
ログファイル (/var/adm/log/asppp.log)
FIFO ファイル (/tmp/.asppp.fifo)
PPP ソフトウェアのインストールが終わると、PPP 用の実行制御スクリプトである /etc/init.d/asppp ファイルが作成されています。このファイルは、実行制御ディレクトリ内の他のいくつかのファイルにリンクしています。
図 21-6 に、PPP の各ソフトウェアコンポーネントと、それぞれの相互作用を示します。
/usr/sbin/aspppd リンクマネージャは、ユーザーレベルのデーモンで、PPP サービスが必要となったときのリモートホストへの接続プロセスを自動化します。この自動化されたプロセスは、IP トラフィックを生じさせるようななんらかの動作が生じるたびに起動されます (たとえば、ユーザーがリモートマシンにログインしたり、NFS によりマウントされたファイルにアクセスしたりした場合)。リモートホストが接続を確立しようとすると、ローカルホストのリンクマネージャが接続を完了します。
リンクマネージャの詳細は、aspppd(1M) のマニュアルページを参照してください。
/usr/sbin/aspppls ログインサービスは、ユーザーがダイヤル呼び出しを行い、ログインした後で、PPP を起動するログインシェルとして呼び出されます。このログインサービスの機能は、「UUCP ソフトウェア」で説明する /usr/lib/uucp/uucico コマンドに似ています。マシンをダイヤルインサーバーとして構成するときは、ローカルホストへのダイヤルインが許されているすべての可搬コンピュータについて、/etc/passwd ファイルの中の対応するエントリのログインシェルに aspppls を指定する必要があります。
asppp.cf ファイルは、ローカルホストの通信相手の各リモートエンドポイントに関する情報を、リンクマネージャに与えます。この情報は、構成ファイル内の path というセクションに定義します。また、path セクションは、使用する PPP インタフェースを定義し、さらにオプションとして、通信をどのように行うかについてのその他の属性 (セキュリティに関する事項など) も定義します。asppp.cf ファイルの各セクションについては、「基本構成ファイルの各部分」で詳しく説明します。例 21-1 に、変更されていない asppp.cf ファイルを示します。
#ident "@(#)asppp.cf 10 93/07/07 SMI" # # Copyright (c) 1993 by Sun Microsystems, Inc. # # Sample asynchronous PPP /etc/asppp.cf file # # ifconfig ipdptp0 plumb mojave gobi private up path inactivity_timeout 120 # Approx. 2 minutes interface ipdptp0 peer_system_name Pgobi # The name this system logs in with when # it dials this server # *OR* the entry we look up in # /etc/uucp/Systems when we dial out. |
リンクマネージャは、メッセージを生成し、それをログファイル /var/adm/log/asppp.log に記録します。このファイルに記録される詳細さのレベルは、aspppd の -d オプションか、構成ファイル内の debug_level キーワードにより制御されます。詳細については、「構成キーワード」と aspppd(1M) のマニュアルページを参照してください。
PPP FIFO ファイル /tmp/.asppp.fifo は、aspppd と aspppls の間の通信に用いる名前付きパイプです。PPP ログインサービスがリンクマネージャに接続するためには、このファイルが /tmp に入っていなければなりません。/tmp/.asppp.fifo ファイルは、リンクマネージャが作成、管理、および削除を行います。
Solaris PPP は、コンポーネントソフトウェアの他に、/etc/uucp/Systems、 /etc/uucp/Dialers、 /etc/uucp/Devices の 3 つの UUCP ファイルを利用して、通信リンクを確立します。ホストが PPP リンクを介してダイヤルアウトできるようにするには、これらのファイルを修正する必要があります。あるいは、/etc/uucp/Sysfiles を使用して、Systems、Devices、および Dialers ファイルに別の名前を指定することもできます。
これらの UUCP ファイルについての詳細は、第 25 章「UUCP の概要」を参照してください。
この節では、PPP の各種コンポーネントが、アウトバウンド接続とインバウンド接続についてどのような働きをするかを説明します。
PPP リンクの 1 つのエンドポイントのユーザーが、反対側のエンドポイントにある対等ホストの参加を必要とする活動を開始すると、アウトバウンド通信が始まります。ユーザーが rcp コマンドを入力して、リンクの反対側のホストからファイルをコピーしようとしたとすると、次に示すような動作が生じます。
rcp は、TCP/IP プロトコルスタックの各レベルを通してデータを送り出す
仮想ネットワークインタフェース (ipdn または ipdptpn) が、IP パケットの形式でデータを受け取る
インタフェースは、アウトバウンド接続を開始するための接続要求を、aspppd リンクマネージャに送り出す
リンクマネージャは次のことを行う
接続要求が、/etc/asppp.cf 構成ファイル中で構成されているパスに対応していることを確認する
UUCP データベースファイル (/etc/uucp/Systems、/etc/uucp/Devices、/etc/uucp/Dialers) を調べて、モデムと宛先システムに関する必要な情報を入手する
宛先ホストへの電話呼び出しをかけるか、適切な直結シリアル回線に接続する
対等ホストへの物理リンクが確立される
リンクマネージャは PPP を構成して開始する
データリンク層が確立され、対等ホスト上の PPP モジュールが通信を開始する
リンクマネージャはリンクを介した IP を使用可能にする
リンクマネージャは次に、アイドルタイムアウト、回線の切断、エラー条件などのイベントが発生するまで、接続を監視します。これらのイベントのどれかが発生すると、リンクマネージャは対等ホストとの接続を切り離し、アイドル状態に戻ります。
インバウンド通信を開始するホストがログインすると、/usr/sbin/aspppls ログインサービスが呼び出され、次のイベントが発生します。
ログインサービスは、/tmp/.asppp.fifo ファイルを通してリンクマネージャに接続する
ログインサービスは、リンクの反対側のエンドポイントで使用するログイン名などの情報を、リンクマネージャに提供する
リンクマネージャはこのログイン名を使用して、対応する構成済みのパスを、構成ファイルの中から見つける
リンクマネージャは、PPP を構成し起動する
データリンク層が確立され、対等ホスト上の PPP モジュールが通信を開始する
リンクマネージャはリンクを介した IP を使用可能にする
リンクマネージャは次に、アイドルタイムアウト、回線の切断、エラー条件などのイベントが発生するまで、接続を監視します。これらのイベントのどれかが発生すると、リンクマネージャは対等ホストとの接続を切り離し、アイドル状態に戻ります。
構成に含まれているすべてのマシンに PPP をインストールしたあと、PPP リンクに関する 1 レベルまたは 2 レベルのセキュリティを付加できます。
第 1 のレベルのパスワード認証プロトコル (PAP) は、最小限のセキュリティです。認証が確認されるかまたは接続が切断されるまで、パスワードを暗号化しない状態で回線上に送り出します。
第 2 レベルのセキュリティであるチャレンジハンドシェーク認証プロトコル (CHAP) は、ポイントツーポイントリンクの反対側にある対等ホストの識別情報を、定期的に検査します。認証者、つまり接続またはチャレンジ (Challenge) を開始するシステムが、対等ホストにチャレンジメッセージを送ります。これに対する応答が、リンクを介さずに渡されている「シークレット」と照合され、両者の値が一致すれば認証が確認されます。一致しない場合は、接続は切断されます。PPP のセキュリティを付加する方法については、「PAP または CHAP セキュリティのための asppp.cf の編集」で説明します。