Solstice PPP 3.0.1 管理者ガイド

付録 A PPP リンクの動作

この付録では、PPP リンクの動作について簡単に説明します。フェーズダイアグラムおよび PPP リンク中に送信される各種の PPP フレームについて説明します。

PPP フェーズダイアグラム

PPP リンクの確立、保守、終了を行うプロセスは複数のフェーズを通して行われ、この間、リンクの両端間で PPP フレームが交換されます。

図 A-1 に、これらのフェーズ間の遷移を示します。

図 A-1 PPP リンクの動作フェーズ

Graphic

リンク確立フェーズ

リンク確立フェーズでは、リンク制御プロトコル (LCP) を使用して PPP リンクが構成されます。LCP フレームを交換することによって、構成パラメータのネゴシエーションが行われます。ネゴシエーションが収束した場合は、リンクが確立され、認証プロトコルフェーズまたはネットワーク層プロトコルフェーズが開始されます。両エンドポイントで、リンクに対する共通構成のネゴシエーションが失敗した場合は、リンクはただちに切断されます。

リンク確立フェーズにおいて PPP フレームで送信するのは、LCP フレームだけです。その他のフレームは廃棄されます。

同位認証フェーズ (オプション)

オプションで、一方のエンドポイントまたは両方のエンドポイントが同位認証を要求することができます。Solstice PPP は、パスワード認証プロトコル (PAP) とチャレンジハンドシェーク認証プロトコル (CHAP) による同位認証をサポートします。認証が成功した場合は、リンクは起動状態のままとなり、ネットワーク層プロトコルフェーズが開始されます。認証が失敗した場合は、リンクを切断するリンク終了フェーズが開始されます。

同位認証フェーズにおいて、PPP フレームで送信するのは、LCP フレームと認証フレームだけです。その他のフレームは廃棄されます。

ネットワーク層プロトコルフェーズ

ネットワーク制御プロトコル (NCP) を使用して、ネットワーク層を構成します。Solstice PPP は、PPP における IP を構成するための IP 制御プロトコル (IPCP) を実装しています。

NCP フレームを交換することによってネットワーク層が構成されると、IP データグラムをカプセル化しリンクを通して送信することができます。LCP フレームを定期的に交換して、リンクをテストし保守することができます。

ネットワーク層プロトコルフェーズ中に、LCP、NPC、IP のフレームを PPP フレームで送信します。その他のフレームは廃棄されます。

リンク終了フェーズ

認証の失敗、キャリア消失、非活動タイムアウト時間の超過などが発生すると、エンドポイントからの要求に応じてリンクが終了します。リンク終了時に、リンク制御プロトコル (LCP) フレームを交換します。

リンク終了フェーズにおいて PPP フレームで送信するのは LCP フレームだけです。その他のフレームは廃棄されます。

PPP フレーム

PPP フレームは、構成情報やデータが入っている情報のパケットをカプセル化します。

図 A-2 に、PPP フレームの通常の形式を示します。

図 A-2 PPP フレームの形式

Graphic

アドレスフィールド

アドレスフィールドは RFC 1662 規定の PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。このフィールドは、必ず All-Stations アドレスである 0xff に設定します。他のアドレス値を持つフレームは、通知されずに捨てられます。

制御フィールド

制御フィールドは RFC 1662 規定の PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。このフィールドは、必ず Poll/Final ビットがゼロに設定された Unnumbered Information (UI) コマンドである 0x03 に設定します。他の制御値を持つフレームは、通知されずに捨てられます。

プロトコル識別子

プロトコル識別子は、フレームの情報フィールドにある情報の種類を識別します。長さは 1 オクテットまたは 2 オクテットです。

Solstice PPP において有効な値は、以下のとおりです。

0x0001 パディングプロトコル

0x0021 インターネットプロトコル

0x002d Van Jacobson 圧縮 TCP/IP

0x002f Van Jacobson 圧縮解除 TCP/IP

0x8021 IP 制御プロトコル

0xc021 リンク制御プロトコル

0xc023 パスワード認証プロトコル

0xc223 チャレンジハンドシェーク認証プロトコル

情報フィールド

情報フィールドは、ゼロオクテット以上です。情報フィールドの最大の長さは、ネゴシエーション対象パラメータである最大受信ユニット (MRU) によって決まります。デフォルトでは、1500 (Ethernet ネットワーク用) に設定されています。

情報フィールドには、構成情報やデータを含めることができます。Solstice PPP の場合は、データは圧縮 IP データグラムまたは非圧縮 IP データグラムです。

リンク制御プロトコル (LCP) フレーム

リンク制御プロトコル (LCP) フレームはリンク確立フェーズとリンク終了フェーズで送信されるとともに、リンク運用中に定期的に送信されます。PPP リンク構成のネゴシエーション、および確立されたリンクのテストと保守に使用されます。図 A-3 に、LCP フレームの形式を示します。

図 A-3 LCP フレームの形式

Graphic

アドレスフィールド

アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。

制御フィールド

制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。

プロトコル識別子

プロトコル識別子はフレームの情報フィールドにある情報の種類を識別します。LCP フレームの場合は必ず 0xc021 に設定します。

コードフィールド

コードフィールドは以下のコードによって LCP フレームの種類を識別します。長さは 1 オクテットです。


0x01    Configure-request    
0x02    Configure-ack
0x03    Configure-nak
0x04    Configure-reject
0x05    Terminate-request
0x06    Terminate-ack
0x07    Code-reject
0x08    Protocol-reject
0x09    Echo-request
0x0a    Echo-reply
0x0b    Discard-request

識別子フィールド

識別子フィールドには、要求と応答の照合に使用される識別子があります。長さは 1 オクテットです。

長さフィールド

長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される LCP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないでください。

データフィールド

長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。構成オプション、フレーム情報、データなどのフレーム関係情報を格納します。

データフィールドに、長さ 4 オクテットのマジックナンバーが含まれる場合があります。これは、ループバック状態や他のリンクレベルの変則制などのリンク障害の検出に使用されます。マジックナンバーはネゴシエーション対象パラメータで、デフォルトではゼロに設定されます。マジックナンバーは、一意のランダムな数字によってフレームのソースを識別します。同じマジックナンバーを持つ同じ種類のフレーム 2 個を受信した場合は、リンクがループバックしており、第 2 のフレームは第 1 のフレームと同じであると考えられます。

リンク構成フレーム

リンク構成フレームは、リンク確立フェーズに送信されます。リンク構成フレームのデータフィールドには、リンクの構成オプションのネゴシエーションに使用される情報があります。リンク構成フレームには、以下のものがあります。

リンク終了フレーム

リンク終了フレームは、リンク終了フェーズで送信されます。リンク終了フレームには、以下のものがあります。

リンク保守フレーム

リンク保守フレームは、リンクのテストと保守を目的として定期的に送信されます。リンク保守フレームには、以下のものがあります。

パスワード認証プロトコル (PAP) フレーム

PAP フレームは、リンク確立フェーズで構成オプションの 1 つとしてパスワード認証プロトコル (PAP) による同位認証が要求された場合に、同位認証フェーズで交換されます。図 A-4 に、通常の PAP フレームの形式を示します。

図 A-4 PAP フレームの形式

Graphic

フレームの形式

アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。

制御フィールド

制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。

プロトコル識別子

プロトコル識別子はフレームの情報フィールドにある情報の種類を識別します。PAP フレームの場合は、必ず 0xc023 に設定します。

コードフィールド

コードフィールドは、以下のコードによって PAP フレームの種類を識別します。長さは 1 オクテットです。


0x01    Authenticate-request
0x02    Authenticate-ack
0x03    Authenticate-nak

識別子フィールド

識別子フィールドには、要求と応答の照合に使用される識別子があります。長さは 1 オクテットです。

長さフィールド

長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される PAP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないでください。

データフィールド

長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。認証ネゴシエーションに関する情報をコードフィールドに示されている形式で格納します。

PAP Authenticate-request フレーム

PAP Authenticate-request フレーム (コード 0x01) は、認証のために送信される PAP 識別子と PAP パスワードを格納しており、認証フェーズを開始するために送信されます。10 個を超える PAP Authenticate-request フレームを送信しても応答がない場合は、認証フェーズが失敗します。図 A-5 に、PAP Authenticate-request フレームの形式を示します。

図 A-5 PAP 要求フレームの形式

Graphic

PAP 識別子はファイル ppp.confsend_pap_id パラメータによって指定される文字列で、PAP 識別子長さフィールドに示されているとおり、長さはゼロオクテット以上です。

PAP パスワードはファイル ppp.confsend_pap_passwd パラメータによって指定される文字列です。PAP パスワード長さフィールドに示されているとおり、長さはゼロオクテット以上です。

PAP Authenticate-ack フレームと Authenticate-nak フレーム

PAP Authenticate-ack フレーム (コード 0x02) は、有効な PAP 識別子と PAP パスワードを持つ認識可能な PAP Authenticate-request フレームを受信した認証側によって送信されます。

PAP Authenticate-nak フレーム (コード 0x03) は、認識不能な PAP Authenticate-request フレームまたは無効な PAP 識別子と PAP パスワードを持つ PAP Authenticate-request フレームを受信した認証側によって送信されます。リンクは必ず切断されます。

チャレンジハンドシェーク認証プロトコル (CHAP) フレーム

CHAP フレームは、リンク確立フェーズ時に構成オプションの 1 つとしてチャレンジハンドシェーク認証プロトコル (CHAP) による同位認証が要求された場合に、同位認証フェーズ時に交換されます。図 A-6 に、通常の CHAP フレームの形式を示します。

図 A-6 CHAP フレームの形式

Graphic

アドレスフィールド

アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。

制御フィールド

制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。

プロトコル識別子

プロトコル識別子は、フレームの情報フィールドにある情報の種類を識別します。CHAP フレームの場合は、必ず 0xc223 に設定します。

コードフィールド

コードフィールドは以下のコードによって CHAP フレームの種類を識別します。長さは 1 オクテットです。


0x01    Challenge
0x02    Response
0x03    Success
0x04    Failure

識別子フィールド

識別子フィールドには、要求と応答の照合に使用する識別子があります。長さは 1 オクテットです。

長さフィールド

長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される CHAP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないでください。

データフィールド

長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。認証ネゴシエーションに関する情報を、コードフィールドに示されている形式で格納します。

CHAP Challenge フレームと Response フレーム

CHAP Challenge フレーム (コード 0x01) は、認証ネゴシエーションを開始するために使用され、認証側によって送信されます。このフレームには、CHAP 名、および単方向ハッシュアルゴリズムによって CHAP シークレットをもとに算出されたチャレンジ値があります。10 個を超える CHAP Challenge フレームを送信しても Response フレームを受信しなかった場合は、認証フェーズが失敗します。

CHAP Response フレーム (コード 0x02) は、認識する CHAP Challenge フレームを受信したときに送信されます。このフレームには、CHAP シークレット、受信したチャレンジ値、単方向ハッシュアルゴリズムを使用して算出された応答値があります。

図 A-7 に、CHAP Challenge フレームと Response フレームの形式を示します。

図 A-7 CHAP Challenge フレームと Response フレームの形式

Graphic

CHAP 名は、ファイル ppp.confsend_chap_name パラメータによって指定される文字列で、長さは 1 オクテット以上です。

CHAP Success フレームと Failure フレーム

CHAP Success フレーム (コード 0x03) は、受信可能な CHAP 名と応答値を持つ認識可能な CHAP Response フレームを受信した認証側によって送信されます。

CHAP Failure フレーム (コード 0x04) は、認識できない CHAP response フレームを受信したとき、または受信できない PAP 識別子や PAP パスワードを含む CHAP response フレームを受信したときに、認証側によって送信されます。

IP 制御プロトコル (IPCP) フレーム

IP 制御プロトコル (IPCP) は、PPP リンクにおける IP を構成したり、使用可能や使用禁止にするのに使用されます。IPCP は、リンク制御プロトコル (LCP) の場合と同じフレーム交換メカニズムを使用します。

図 A-8 に、通常の IPCP フレームの形式を示します。

図 A-8 IPCP フレームの形式

Graphic

アドレスフィールド

アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。

制御フィールド

制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。

プロトコル識別子

プロトコル識別子は、フレームの情報フィールドにある情報の種類を識別します。IPCP フレームの場合は、必ず 0x8021 に設定します。

コードフィールド

コードフィールドは、以下のコードによって IPCP フレームの種類を識別します。長さは 1 オクテットです。


0x01    Configure-request    
0x02    Configure-ack    
0x03    Configure-nak    
0x04    Configure-reject
0x05    Terminate-request
0x06    Terminate-ack
0x07    Code-reject

識別子フィールド

識別子フィールドには、要求と応答の照合に使用される識別子があります。長さは 1 オクテットです。

長さフィールド

長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される IPCP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないでください。

データフィールド

長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。構成オプション、フレーム情報、データなどのフレーム関係情報を、コードフィールドに示されている形式で格納します。

インターネットプロトコル (IP) フレーム

インターネットプロトコル (IP) フレームには、PPP リンクを通して伝送するためのカプセル化された IP データグラムがあります。1 個の IP データグラムが PPP フレームの情報フィールドに格納されます。大型の IP データグラムは、必要に応じて分割してから送信することができます。図 A-9 に、IP フレームの形式を示します。

図 A-9 IP フレームの形式

Graphic

アドレスフィールド

アドレスフィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0xff に設定します。

制御フィールド

制御フィールドは PPP 用 HDLC 式フレームの一部で、長さは 1 オクテットです。必ず 0x03 に設定します。

プロトコル識別子

プロトコル識別子はフレームの情報フィールドにある情報の種類を識別します。IP フレームにおける値は、次のとおりです。


0x0021    インターネットプロトコル
0x002d    Van Jacobson 圧縮 TCP/IP
0x002f    Van Jacobson 圧縮解除 TCP/IP

識別子フィールド

識別子フィールドには、要求と応答の照合に使用される識別子があります。長さは 1 オクテットです。

長さフィールド

長さフィールドの長さは 2 オクテットで、コード、識別子、長さ、データの各フィールドで構成される IP フレームの全長を示します。このフィールドの値は、最大受信ユニット (MRU) を超えないようにしてください。

データフィールド

長さフィールドに示されているとおり、データフィールドの長さはゼロオクテット以上です。PPP リンクを通して送信される IP データグラムを格納します。