PPPはWANテクノロジの中でも,もっとも身近にあるものの一つです。豊富なオプションと使いやすさからダイヤルアップだけでなく,専用線,DSL,FTTH,PHSなど多種にわたり使用されています。今回はCiscoルータのシリアルインタフェースでのPPPの利用と設定を学びましょう。
LCPとNCP
PPPはLCP(Link Control Protocol)と,NCP(Network Control Protocol)の2つのプロトコルから構成されています(図1)。- LCP ・・・ PPPのリンクの確立,維持,解放に使用される
- NCP ・・・ 上位レイヤ3プロトコルの設定に使用される

LCPはPPPのリンクの制御を行います。PPPセッション開始時にLCPフレームをやりとりし,必要な設定を交渉します。また,オプション項目も交渉します。LCPのオプションとして交渉されるものには次のものがあります。
- 認証 ・・・ 発呼側(接続する側)のユーザを着呼(接続される側)が認証します
- 圧縮 ・・・ データ部分の圧縮を行います
- エラー検出 ・・・ 障害の状況を識別します
- マルチリンク ・・・ 複数の回線を論理的に1つの回線として扱います
- PPPコールバック ・・・ コールバック機能を使えます
LCPはリンクの維持も行います。リンクの状態を監視し,正常動作しているか,障害が発生しているかなどを確認します。障害が発生している場合,リンクの切断を行う場合もあります。
一方のNCPはレイヤ3プロトコル別に用意されています。例えばIPの場合はIPCP(IP Control Protocol)がNCPになります。各プロトコルごとに設定などを担当します。
PPPのセッション確立には3つのフェーズが必要です(図2)。
- リンク確立フェーズ ・・・ LCPによるリンク確立
- オプション認証フェーズ ・・・ 認証が必要な場合,認証を行う
- ネットワークレイヤプロトコルフェーズ ・・・ NCPによるレイヤ3プロトコル設定

認証プロトコル
PPPではオプションとして認証機能があります。認証はLCPリンク確立後に行われます。PPPの認証としては次の2つのプロトコルが使用されます。- PAP(Password Authentication Protocol)
- CHAP(Challenge Handshake Authentication Protocol)
PAPは2方向(2ウェイ)ハンドシェークと呼ばれる認証方式です。ユーザ名とパスワードをそのまま送ります(図3)。
PAPはパスワードをリンク上に暗号化なしで送信してしまうため,セキュリティが弱くなっています。そのため,PAPの使用は推奨されません。
一方のCHAPは3方向(3ウェイ)ハンドシェークと呼ばれる認証方式です。パスワードをハッシュ関数を使用して簡単に読み取られないように加工して送信します(図4)。
ハッシュ関数は文字列を一定の長さの別の文字列へ変換する関数です。変換された文字列からは変換する前の文字列を推測することはできません。CHAPではリンク上に流されるパスワードはこのハッシュ関数により変換されたパスワードのため,読み取られても安全になります。
PPPの設定
PPPをCiscoルータのシリアルインタフェース上で有効にするには,カプセル化をPPPに設定することで有効になります。- (config)# interface serial [ポート]
- (config-if)# encapsulation ppp
PPPを使用するだけならばこれだけですが,認証プロトコルの設定も必要になります。認証プロトコルの設定には,自身のホスト名をまず設定し,さらに対向のルータのホスト名とパスワードを設定する必要があります。
- (config)# hostname [ホスト名] ・・・ 自身のホスト名の設定
- (config)# username [対向ホスト] passwaord [パスワード] ・・・対向ルータのホスト名とパスワードを設定
注意点として,usernameで設定される対向ホスト名は,対向のルータのhostnameで設定された名前であること。さらに設定されるパスワードは双方のルータで同じものでなければいけません(図5)。

さらに,PPPを有効にしたシリアルインタフェースで認証プロトコルを有効にします(図6)。
- (config-if)# ppp authentication [chap | chap pap | pap chap | pap]
- [chap | chap pap | pap chap | pap]
- 一つだけの場合はそのプロトコルが,二つ書かれている場合はまず1番目に書かれているプロトコルで認証し,失敗した場合に2番目のプロトコルで認証を行う
- [chap | chap pap | pap chap | pap]

また,PAPを使用したい場合,Ciscoルータは現在ではPAPはセキュリティ面での不安が存在するため無効化しています。よって,PAPを有効化するコマンドを必要とします。
- (config-if)# ppp pap sent-username [ホスト名] password [パスワード]
- [ホスト名]
- この場合のホスト名は「送信されるホスト名」なので自分のhostname
- [ホスト名]
PPPの状態を確認したい場合,主に使用されるコマンドは次の2つになります。
- # show interfaces ・・・ インタフェースの状態の確認
- # debug ppp authentication ・・・PPPの認証状態の確認