初心者にも分かる PPP の仕組み

PPPとは、シリアルインタフェースでの通信方式の1つです。通信のフォーマットだけでなく、制御手順も含まれます。制御はHDLCとほぼ同じ手続きですが、大きく違う点は、PPPには認証機能があることです。その他、ヘッダ圧縮や品質監視、マルチリンク等の付加機能も特徴的です。

昔のISDNの時代ではよく使われておりましたが、今は基本的に使われません。ただし、最近はEthernet上でPPPの認証機能を使う PPPoE が主流ですので、技術自体は今も使われています。

PPPはLCP(Link Control Protocol)とNCP(Network Control Protocol)の2つのプロトコルから成ります。

LCPは主にリンク確立や認証、ヘッダ圧縮、キープアライブなど、通信の環境を整える働きをします。一方、NCPは上位層に関する環境を整える働きをします。PPPの上位層としてIPを使う場合のNCPを特にIPCPと言い、DHCPのようにIPアドレスやデフォルトルートの割り当て等のNW情報を提供します。

PPPのフレームフォーマット

PPPのフレームフォーマットは下記の通りです。

F

フラグです。通信の開始と終了を示しています。"01111110"で固定となります。

A

アドレスです。常にブロードキャストであるため常に"11111111"となります。

C

コントロールです。HDLCで規定されている「非番号制フレーム」を表す"00000011"で固定となります。

スポンサーリンク

Protocol Type

PPP上に乗っているデータが制御系通信(LCP, PAP/CHAP認証, IPCP)なのか、通常のIP通信なのかを示します。

Code

制御系通信の場合、コードによって機能がさらに分類されます。

LCP/IPCPにおいてはOx01とOx02で接続要求、接続承認を行い、その後はOx09とOx0aでKeepAliveをし続けます。接続を終了するときはOx05とOx06でやり取りを終えます。

PAPやCHAPにおいてはそれぞれのシーケンスに沿ってコードが割り当てられています。

Type

LCP/IPCPにおいてはさらにTypeで機能が分類されます。

LCPではMRU(MTUと同義)のネゴを行ったり、PAPを使うのかCHAPを使うのかを事前にネゴを行います。

IPCPでは相手からIPアドレスをもらい、それを自身のPPPインタフェースに振ることができます。ただし、その時のサブネットマスクは必ず/32になりますが、ポイントtoポイントインタフェースなのでサブネットは意味を成さないので問題ありません(ルーティングではNextHopはIPではなくインタフェースのみを指定するので)。

また、DNSサーバやWINSサーバの情報も取得できます。

なお、CiscoではIPCPでデフォルトルートをもらう、と誤解しそうな設定がありますが、実際にはもらっていません。下記コマンドを設定したルータ上で、PPPのリンクが張れた際に、NextHopをPPPインタフェースにしてデフォルトルートをStaticで作る機能です。Dialerインタフェースでは通常のStaticルートを書くとCEFになりません(そもそもCEFの機能は『「ルーティングテーブル」と「NextHop IPのARPテーブル」をFIBに1つにまとめ、ルーティングを1ステップでHW処理できること』ですが、NextHopはIPではないため)が、この設定ではCEFによるルーティングが可能になります。

(config-if)# ppp ipcp route default

スポンサーリンク

Ciscoの設定-簡易構成

以下のようにR1とR2をPPPで接続する構成を考えます。R2はR1からIPアドレスをもらい、自動でデフォルトルートを作る設定とします。

(config-if)# encapsulation ppp

シリアルIFでの通信をPPPでカプセル化する設定です。これが設定されていないとデフォルトのHDLCが利用されます。

(config-if)# peer default ip address [ip address]

PPPのリンク先端末のIFにここで指定したIPアドレスを提示します。

(config-if)# ip address negotiated

peer default ip addressコマンドにより提示されたIPアドレスをローカル端末(ルータ)のIFにアサインします。その際サブネットは必ず/32になります。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする