DSL のサービスまたはサポートを顧客に提供するサービスプロバイダは、Solaris PPPoE を実行するアクセスサーバーを使用できます。PPPoE アクセスサーバーとクライアントは、従来のクライアントとサーバーの関係で機能します。この関係は、ダイアルアップリンクでのダイアルアウトマシンとダイアルインサーバーの関係に似ています。つまり、ある PPPoE システムが通信を開始し、別の PPPoE システムが応答します。これに対して、PPP プロトコルにはクライアントとサーバーの関係という概念はなく、両方のマシンが同等のピアとみなされます。
PPPoE アクセスサーバーを設定するコマンドおよびファイルには、以下が含まれます。
pppoed デーモンは、将来の PPPoE クライアントからブロードキャストを受け取ります。さらに、pppoed は PPPoE トンネルのサーバー側とネゴシエーションし、PPP デーモン pppd をそのトンネル上で実行します。
pppoed サービスは、/etc/ppp/pppoe および /etc/ppp/pppoe.device ファイルで設定します。システム起動時に /etc/ppp/pppoe が存在する場合は、pppoed が自動的に実行します。コマンド行で /usr/lib/inet/pppoed と入力することにより、pppoed デーモンを明示的に実行することもできます。
/etc/ppp/pppoe ファイルは、アクセスサーバーが提供するサービスと、PPP が PPPoE トンネル上でどのように実行するかを定義するオプションを説明します。インタフェースごとに個別にサービスを定義することも、広域的にアクセスサーバー上のすべてのインタフェースに対してサービスを定義することもできます。アクセスサーバーは、将来の PPPoE クライアントからのブロードキャストに応答して、/etc/ppp/pppoe ファイル内の情報を送信します。
以下に、/etc/ppp/pppoe の基本的な構文を示します。
global-options service service-name service-specific-options device interface-name |
global-options |
/etc/ppp/pppoe ファイルのデフォルトのオプションを設定する。このオプションには、pppoed または pppd で使用可能なオプションはすべて使用できる。オプションの完全なリストについては、pppoed(1M) および pppd(1M) のマニュアルページを参照 たとえば、グローバルオプションには、PPPoE トンネルで使用できる Ethernet インタフェースをリストする必要がある。/etc/ppp/pppoe でデバイスを定義しないと、インタフェースでサービスを提供できない devices をグローバルオプションとして定義するには、次の形式を使用する
|
|
service service-name |
service-name というサービスの定義を開始する。service-name には、提供されるサービスに適した任意の文字列を指定できる |
|
service-specific-options |
このサービスに固有の PPPoE および PPP のオプションを表示する |
|
device interface-name |
上記でリストしたサービスを利用できるインタフェースを指定する |
/etc/ppp/pppoe のこの他のオプションについては、pppoed(1M) および pppd(1M) のマニュアルページを参照してください。
次に、典型的な /etc/ppp/pppoe ファイルの例を示します。
device hme1,hme2,hme3 service internet pppd "name internet-server" service intranet pppd "192.168.1.1:" service debug device hme1 pppd "debug name internet-server" |
このファイルでは、以下の値が適用されています。
hme1,hme2,hme3 |
PPPoE トンネルに使用されるアクセスサーバー上の 3 つのインタフェース |
service internet |
将来のクライアントに対して internet というサービスを通知する。また、サービスを提供するプロバイダは internet の定義についても決定する。たとえば、プロバイダは、インターネットへのアクセスだけでなく、さまざまな IP サービスを意味する internet サービスを提供できる |
pppd |
呼び出し元が pppd を呼び出したときに使用されるコマンド行オプションを設定する。"name internet-server" オプションは、ローカルマシン (アクセスサーバー) の名前を internet-server と付ける |
service intranet |
intranet という別のサービスを想定クライアントに通知する |
pppd "192.168.1.1:" |
呼び出し元が pppd を呼び出したときに使用されるコマンド行オプションを設定する。呼び出し元が pppd を呼び出すと、ローカルマシン (アクセスサーバー) の IP アドレスとして 192.168.1.1 が設定される |
service debug |
PPPoE 用に定義されているインタフェースに 3 番目のサービス、デバッグを通知する |
device hme1 |
PPPoE トンネルに対するデバッグを hme1 に限定する |
pppd "debug name internet-server" |
呼び出し元が pppd を起動したときに使用されるコマンド行オプション、この場合は PPP デバッグをローカルマシン internet-server に設定する |
/etc/ppp/pppoe.device ファイルは、PPPoE アクセスサーバーのインタフェース上で提供されるサービスと、PPP が PPPoE トンネル上でどのように実行するかを定義するオプションを説明します。/etc/ppp/pppoe.device はオプションのファイルで、グローバルの /etc/ppp/pppoe とまったく同様に動作します。ただし、/etc/ppp/pppoe.device がインタフェース用に定義されている場合、そのインタフェースでは、このファイルのパラメータが、/etc/ppp/pppoe で定義されているグローバルパラメータより優先されます。
以下に、/etc/ppp/pppoe.device の基本的な構文を示します。
service service-name service-specific-options service another-service-name service-specific-options |
上記の構文と /etc/ppp/pppoe の構文の違いは、/etc/ppp/pppoe ファイルで示した device オプションを使用できない点だけです。
pppoe.so は PPPoE 共有オブジェクトファイルで、PPPoE のアクセスサーバーおよびクライアントによって呼び出されます。このファイルは、MTU および MRU を 1492 に制限し、ドライバからのパケットにフィルタをかけ、pppoed とともに PPPoE トンネルをネゴシエートします。アクセスサーバー側では、pppoe.so は pppd デーモンによって自動的に呼び出されます。
この節では、あるアクセスサーバーを構成するために使用するすべてのファイルのサンプルを紹介します。このアクセスサーバーはマルチホームで、3 つのサブネット、green、orange、および purple が接続されています。pppoed は、サーバー上で root として実行します。これはデフォルトの動作です。
PPPoE クライアントは、hme0 および hme1 インタフェースを通じて orange および purple ネットワークにアクセスできます。クライアントは、標準の UNIX ログインを使ってサーバーにログインします。サーバーは、クライアントを PAP を使って認証します。
green ネットワークは、クライアントに通知されません。クライアントが green にアクセスできるためには、直接「green-net」を指定し、CHAP 認証資格を提供しなければなりません。さらに、クライアント joe および mary だけが、静的 IP アドレスを使用して green ネットワークにアクセスできます。
service orange-net device hme0,hme1 pppd "require-pap login name orange-server orange-server:" service purple-net device hme0,hme1 pppd "require-pap login name purple-server purple-server:" service green-net device hme1 pppd "require-chap name green-server green-server:" nowildcard |
このサンプルは、アクセスサーバーから使用できるサービスを説明します。1 番目の service 節は、orange ネットワークのサービスを説明します。
service orange-net device hme0,hme1 pppd "require-pap login name orange-server orange-server:" |
purple ネットワーク用の service 節は、ネットワーク名とサーバー名が異なる以外は、orange ネットワーク用の service 節と同じです。
次の service 節は、green ネットワークのサービスを説明します。
service green-net device hme1 pppd "require-chap name green-server green-server:" nowildcard |
このアクセスサーバーのシナリオでは、次のような /etc/ppp/options ファイルを設定する場合があります。
auth proxyarp nodefaultroute name no-service # don't authenticate otherwise |
name no-service オプションは、通常、PAP または CHAP 認証時に検索されるサーバー名を無効にします。サーバーのデフォルト名は、/usr/bin/hostname に記述されています。前述の例の name オプションは、サーバー名を no-service に変更します。no-service は、pap または chap-secrets ファイルでは見つかりそうにない名前です。この処理により、任意のユーザーが pppd を実行したり、/etc/ppp/options で設定されている auth および name オプションを上書きするのを防ぐことができます。pppd は、no-service のサーバー名ではクライアントのシークレットを見つけることができないため、失敗します。
このアクセスサーバーのシナリオでは、次の /etc/hosts ファイルを使用します。
172.16.0.1 orange-server 172.17.0.1 purple-server 172.18.0.1 green-server 172.18.0.2 joes-pc 172.18.0.3 marys-pc |
次に、orange および purple ネットワークにアクセスしようとするクライアントの PAP 認証に使用する /etc/ppp/pap-secrets ファイルを示します。
* orange-server "" 172.16.0.2/16+ * purple-server "" 172.17.0.2/16+ |
次に、CHAP 認証に使用される /etc/ppp/chap-secrets ファイルを示します。joe および mary というクライアントだけがファイルにリストされていることに注意してください。
joe green-server "joe's secret" joes-pc mary green-server "mary's secret" marys-pc |