TCP/IP とデータ通信

第 9 章 PPP の構成

この章では、PPP を構成するための手順と情報を記載しています。説明に使用する例は、リモートホストとそのマルチポイントダイヤルインサーバーの両方の種類の PPP リンクを持つ構成を想定しています。その他の種類の PPP 構成の設定方法については、第 11 章「PPP リンクの調整」に記載されています。

構成プロセスの概要

第 8 章「PPP 構成の準備」で述べたプリインストール作業が終われば、いよいよ PPP の構成にとりかかることができます。

PPP については次のことを行う必要があります

  1. PPP ソフトウェアのインストール (まだインストールしてない場合)

  2. 関与するすべてのマシンの /etc/inet/hosts ファイルの編集

  3. すべてのダイヤルアウトマシンの UUCP データベースファイルの編集

  4. ダイヤルインマシンの /etc/passwd ファイルと /etc/shadow ファイルの編集

  5. リンク上の各マシンの /etc/asppp.cf ファイルの編集

  6. リンク上の各マシンでのリンクマネージャ aspppd の起動

  7. PPP が正常に実行されていることの確認

上記の作業 1 〜 4 は順番どおりに進めなくてもかまいませんが、PPP 構成ファイルの編集の前に、すべて完了しておく必要があります。

この章の各節では、PPP の構成のための手順について説明します。

PPP ソフトウェアのインストール

Solaris インストールプログラムを実行するときに配布ソフトウェア全体を選択すると、PPP ソフトウェアは自動的に組み込まれます。配布ソフトウェア全体を選択しなかった場合は、PPP を個別のパッケージとしてインストールできます。

インストールの確認

先へ進む前に、PPP リンクに含めるすべてのマシンに、Solaris バージョンの PPP をインストールしてあることを確認する必要があります。リンクに含める各エンドポイントについて、次のように入力します。


# pkginfo | grep ppp

32 ビットPPP がインストールされている場合は、次のパッケージ名が表示されます。


SUNWpppk       # Contains kernel modules
SUNWapppu      # Contains the link manager and login service
SUNWappp       # Contains configuration files

64 ビットPPP がインストールされている場合は、次のパッケージ名が表示されます。


SUNWpppk       # Contains the 32-bit kernel modules
SUNWpppkx      # Contains the 64-bit kernel modules
SUNWapppu      # Contains the link manager and login service
SUNWappp       # Contains configuration files

PPP がインストールされていないエンドポイントシステムがある場合は、pkgadd プログラムまたは admintool ソフトウェアマネージャを使ってインストールしてください。


注 -

pkgadd を使って PPP をインストールする場合は、上記のスクリーンボックスに並べた順序でパッケージをインストールする必要があります。


pkgadd プログラムと admintool ソフトウェアマネージャについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。

PPP 構成例

この節と以後の各節では、最も一般的な PPP 構成、つまりリモートホストとそのダイヤルインサーバーをサポートするファイルを編集する方法を紹介します。図 9-1 は、この章で例として使用する構成を示しています。この例は、3 台のリモートマシン (nomadanomadbnomadc) と、ダイヤルインサーバー nubian で構成されるネットワーク 192.41.43 を表しています。このネットワークは、ダイヤルインサーバー nubian が直接接続しているローカルエリアネットワーク 192.41.40 とは別個のネットワークです。ネットワーク 192.41.40 は、ネームサービスとして NIS を実行しています。

各リモートホストについて示されている IP 番号は、それぞれの PPP ネットワークインタフェースのアドレスです。しかし、ダイヤルインサーバーは、自己の一次ネットワークインタフェースの IP アドレスである 192.41.40.45 のほかに、PPP インタフェース用として特別に作成された IP アドレスである 192.41.43.10 も持っています。

図 9-1 リモートホストとマルチポイントダイヤルインサーバーのネットワーク例

Graphic

/etc/inet/hosts ファイルの編集

構成に含まれるすべてのマシンに PPP がインストールされていることを確認したら、次に、各マシンの /etc/inet/hosts ファイルを編集します。PPP リンクの反対側にあって、ローカルマシンが通信する必要のあるすべてのマシンについて、hosts データベースにホスト情報を追加する必要があります。


注 -

物理ネットワーク上でどのネームサービスを使用しているかに関係なく、/etc/inet/hosts を更新する必要があります。これは、ブートプロセスの中で、PPP の方がネームサービスデーモンより前に起動されるからです。


リモートマシンの hosts データベースの構成方法

  1. スーパーユーザーとなり、 /etc/inet/hosts ファイルを編集するための準備を整えます。

  2. リンクの反対側にあるダイヤルインサーバー用の PPP ネットワークインタフェースの IP アドレスとホスト名が入ったエントリを追加します。

    図 9-1 では、ダイヤルインサーバー nubian の PPP ネットワークインタフェースの IP アドレスが入ったエントリが、nomada/etc/inet/hosts ファイルに入れられます。nomadbnomadc/etc/inet/hosts ファイルについても、同じことが行われます。

  3. ダイヤルインサーバーのネットワーク上にあって、リモートホストからのリモートログインが可能な各マシンの IP アドレスが入ったエントリを追加します。

    たとえば、 nomadc/etc/inet/hosts ファイルは次のようになります。


    # Internet host table
    #
    127.0.0.1         localhost        loghost
    192.41.43.3       nomadc
    192.41.43.10      nubian-ppp
    192.41.40.20      nismaster
  4. ネットワークで使用中のネームサーバーがある場合に、リモートホストのホスト名と IP アドレスによって、そのネームサーバーのデータベースを更新します。

マルチポイントダイヤルインサーバーの hosts データベース

マルチポイントダイヤルインサーバーは、一次ネットワークインタフェースのローカル IP アドレスのほかに、PPP インタフェース用の一意な IP アドレスも持っていなければなりません。ダイヤルインサーバー用の hosts データベースを構成するために必要な手順は、次のとおりです。

ダイヤルインサーバーの hosts データベースの構成方法

  1. PPP インタフェースの IP アドレスが入ったエントリを、ダイヤルインサーバーの /etc/inet/hosts ファイルに追加します。

    たとえば、図 9-1 に示すダイヤルインサーバー nubian/etc/hosts ファイルは、次のようになります。


    # Internet host table
    
    #
    127.0.0.1           localhost	      loghost
    192.41.43.10        nubian-ppp
    192.41.40.45        nubian
  2. サーバーの物理ネットワークでネームサービスが使用されていない構成の場合は、次のようにします。

    1. サービス対象となる各リモートホストに関するエントリを、サーバーの /etc/inet/hosts ファイルに追加します。

    2. 物理ネットワーク上にあって、リモートマシンとの通信が許可されているすべてのマシンの /etc/inet/hosts ファイルに、リモートホストについてのエントリを追加します。

  3. サーバーとそのリモートホストからなるネットワークの新しいネットワーク番号を、ダイヤルインサーバーの /etc/inet/networks ファイルに追加します。

    「PPP リンクへのネットワーク番号の割り当て」 を参照してください。

UUCP データベースの編集

マシンが PPP リンクを介してダイヤルアウトできるようにするには、そのマシンの UUCP データベース内の以下のファイルを編集する必要があります。

これらのファイルの編集が必要なのは、PPP ダイヤルアウトマシンとして機能するリモートホストの場合です。また、ダイヤルインサーバーがリモートホストへのダイヤルアウトを行う場合も (マルチポイントダイヤルインサーバーの場合の必須条件)、そのダイヤルインサーバーにある上記のファイルを編集する必要があります。これらのファイルについては、第 12 章「UUCP のデータベースとプログラム」で詳しく説明します。

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 についての詳細は、/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 ファイルの最後のパラメータに対応しており、これによって両者が結合されます。このエントリの残りの部分には、モデムが送る文字、モデムが受け取ると予期している文字などが記述されています。表 12-6 に、Dialers ファイルの中で使用する制御コードの定義を示してあります。

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

PPP の /etc/uucp/Systems の更新

/etc/uucp/Systems ファイルには、ローカルホストがダイヤルアウトできる各マシンについてのエントリが入っています。各エントリには、リモートホストの電話番号や、回線速度などの情報が入っています。たとえば、図 9-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 ファイルに指定する必要のあるパラメータについては、/etc/uucp/Systems ファイル」で詳しく説明します。

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

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

/etc/passwd ファイルの修正

ダイヤルインサーバーを構成するには、/etc/passwd ファイルと /etc/shadow ファイルも編集する必要があります。

ダイヤルインサーバーへのログインを許可されている各リモートホストの各ユーザーについて、そのサーバーの /etc/passwd ファイルにエントリを追加する必要があります。リモートホストがダイヤルインサーバーを呼び出す場合、自分自身の UUCP データベースを読み、ユーザー名かユーザー ID をサーバーに渡すことで呼び出しを開始します。すると、サーバーは、/etc/passwd ファイルのユーザー情報に照らして確認します。

そのユーザーのパスワードが認証されると、サーバーは、PPP ホスト用の特別なシェルである /usr/sbin/aspppls にそのユーザーをログインさせます。サーバーは、この情報を /etc/passwd ファイルのログインシェルエントリから入手します。たとえば、図 9-1 の例の場合、ダイヤルインサーバー nubian/etc/passwd ファイルには、次のようなエントリが入っています。

bin:x:2:2::/bin:
sys:x:3:3::/bin:
uucp:x:5:5::/usr/lib/uucp:
nuucp:x:9:9::/var/spool/uucppublic:/usr/lib/uucp/uucico
news:x:6:6::/var/spool/news:/bin/csh
sundiag:x:0:1:System Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag
lily:x:20:99:Dial-in Operator:/home/nubian/lily:/bin/csh
nomada:x:21:99:R. Burton:/:/usr/sbin/aspppls
nomadb:x:22:99:T. Sherpa:/:/usr/sbin/aspppls
nomadc:x:23:99:S. Scarlett:/:/usr/sbin/aspppls

/etc/passwd パスワードについての詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。


注 -

/etc/passwd ファイル中の情報に加えて、/etc/shadow ファイルもサーバーへのダイヤルインを許可されている各エンドポイントマシンで使用するログイン名のパスワードに更新します。詳細は、『Solaris のシステム管理 (第 1 巻)』を参照してください。


/etc/asppp.cf 構成ファイルの編集

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

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

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

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


例 9-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 についての詳細は、第 10 章「PPP の障害追跡」と、ifconfig(1M) のマニュアルページを参照してください。


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

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


path
   interface interface-number
   peer_system_name endpoint-name

interface キーワード

このキーワードは PPP インタフェースを定義します (ipdptpnipdn のどちらか)。例 9-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 キーワードへの引数の値は異なります。詳細は、「マルチポイントダイヤルインサーバーの構成ファイル」を参照してください。


例 9-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 ファイルには、上記以外にも、エンドポイントマシンによる通信の方法を定義するためのキーワードがいくつかあります。これらのキーワードについては、第 11 章「PPP リンクの調整」に詳しい説明があります。

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

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

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


例 9-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 セクションからこの情報を拾いだします。

例 9-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 ファイルの中のユーザー名とを検証して、通信を可能にします。

次に示す、例 9-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 ファイルには、上記以外にもエンドポイントマシンによる通信の方法を定義するためのキーワードがいくつかあります。これらのキーワードについては、第 11 章「PPP リンクの調整」に詳しい説明があります。

構成ファイルの編集

asppp.cf を編集するときは、次の点に注意してください。

ファイル内のキーワード入力については、上記以外には形式上の必要条件はありません。

asppp.cf 構成ファイルの編集方法

  1. 1 つのエンドポイントマシンでスーパーユーザーになり、/etc ディレクトリに移動します。

  2. 汎用 asppp.cf ファイルを編集して、このマシンの PPP リンクを定義する情報を追加します。

  3. アクセス権が必ず 600 に設定されるように、ファイルを保存します。

  4. 残りの各エンドポイントで /etc ディレクトリに移動し、上記の手順 23 を繰り返します。

PPP のセキュリティの付加

構成に含まれるすべてのマシンへ PPP をインストール後、asppp.cf を修正することによって、PPP リンクについての PAP または CHAP レベルのセキュリティを付加できます。「PAP/CHAP セキュリティのための asppp.cf の編集」を参照してください。

新規の PPP リンクの起動と停止

PPP は、ブート時に自動的に起動されるようにすることも、コマンド行から手動で起動することもできます。

手動で PPP を起動する方法

通常は必要ありませんが、PPP を手動で起動することができます。

  1. スーパーユーザーになり、次のように入力します。


    # /etc/init.d/asppp start
    

PPP が実行中であることを確認する方法

  1. ps コマンドを実行します。


     # ps -e | grep asppp
    

    grep の結果の出力に aspppd デーモンがリストされれば、PPP が実行中です。

  2. 結果が表示されたら、リモート PPP リンクに到達できるかどうかを確認するために、次のように入力します。


    # ping remote-host 300
    

    この例の ping では、タイムアウト値が 5 分 (300 秒) に設定されています。このコマンドに対しては、「remote-host is alive」のような出力が表示されるはずです。これとは異なる出力、たとえば「remote-host unreachable」などと表示された場合は、経路の構成が失敗したことを意味します。

  3. ログファイルを調べて、構成にエラーがないかどうか検査します。


    # tail /var/adm/log/asppp.log
    

    構成時にエラーが見つかった場合は、asppp.log にエラーメッセージが記録されています。

障害追跡と問題解決については、第 10 章「PPP の障害追跡」 を参照してください。

PPP の停止方法

  1. ネットワーク上での PPP 操作を停止するには、次のように入力します。


    # /etc/init.d/asppp stop