【図解】初心者にも分かるPPPoEの仕組み~メリット,シーケンス(PADI/PADO/PADR/PADS/PADT),Unnumberedとの併用~

PPPoE とは

PPPoE とは、PPP over Ethernet の略で、Ethernet上でPPPを使うことができる技術です。日本では一番利用されているWAN用のL2プロトコルです。

Ethernetのメリットは『普及しているため安価』『高速なLANで利用可能』ですが、デメリットは『認証機能がないこと』が挙げられます

一方、PPPのメリットは『認証によるアクセス制御が可能』ですが、デメリットは『低速なWAN回線用に発展したL2プロトコルであること』が挙げられます。

これらのいいとこどりをしたのがPPPoEです。つまり『高速で安価なEthernetを使いつつ、PPPによる認証を備えたL2プロトコル』なのです。なお、認証とは、ルータに設定するPPPoE用のID・パスワードによるものです。

PPPoE の構成概要

以下に一般的なPPPoEの構成概要を図示します。

まずルータの WAN インタフェースに PPPoE の設定をします。設定内容は PPPoE の ID="abcd@efg.so-net.ne.jp"、パスワード="xxxxxxxx" だけでなく、ルータの WAN インタフェースに IP アドレスのネゴシエーション設定 (Cisco の場合は "ip address negotiated")を投入します。これは後述する IPCP による IP 自動取得をする、という意味です。

次に、ルータは NTT東・西のBAS(Broadband Access Server)=PPPoEサーバに PPPoE の認証の要求をします。すると PPPoE サーバは Radius プロキシ サーバを経由して ISP の Radius サーバに認証をかけます。Radius プロキシサーバは@以降のドメインを見て、どの Radius サーバに中継するかを決定します。これにより各 ISP の Radius サーバの IP(@ 以降のドメイン名を DNS で名前解決)を特定しているのです。また、ISP 内で Radius の負荷分散をしている場合もあります。

なお、電力系会社の回線とISP一体型等の場合は、@(あっとまーく)での区切りが無い場合もあります。

ISP への PPPoE 認証が成功すると、IPCP という機能によりルータの WAN インタフェースにグローバル IP アドレスが払い出されます。これは前述の IP アドレスのネゴシエーション設定によるものです。これと同時に、ルータと ISP の PPPoE サーバの間で PPPoE トンネリングが張られます。

PPPoE のシーケンス

PPPoE の通信確立までのシーケンスは以下の通りです。

最初の PADI は L2 ブロードキャストで BAS へ呼びかけます。PADO では呼びかけに L2 ユニキャストで返信します。PADR では L2 ユニキャストで正式に PPPoE セッション開始を要求します。PADS では要求に対して了解を返信します。以降は PPP と同じ手続きで認証等を行います。詳しくは PPP の章をご参照下さい

PPPoE ヘッダは 6Byte で、以下のフォーマットになっています。

Version と Type はともに "0001" で固定です。

Codeは、"PADI=Ox09", "PADO=Ox07", "PADR=Ox19", "PADS=Ox65"となります。

また、Session ID では例えば NTT 東西のフレッツのデフォルトでは 1 回線につき PPPoE セッションを 2 つまで接続できますが、この 2 つのセッションを区別するために使われます。

PPPoEによる Unnumbered

Ethernetインタフェースはマルチアクセスインタフェースですが、PPPoEの論理インタフェースとなるため、IP Unnumbered という技術によって IP 節約が可能です。詳細は以下の記事をご参照下さい。

【IP Unnumbered】の正しい理解、仕組みや必要性、効果、PPPoE等への適用について
【IP Unnumbered】の正しい理解、仕組みや必要性、効果、PPPoE等への適用について
『ip unnumbered = 2台のルータを1台とみなす』は間違い ip ...

Comment

  1. より:

    いつも、勝手ながら、こちらのサイトで勉強させて頂いております。ありがとうございます。プロバイダの役割(動作)をちゃんと理解したいと思っていたので、この記事は本当にありがたいです。

    ちなみに、図中のパソコンからどこかのサイト宛てのtracerouteを実行した場合、
    実行結果の2ホップ目はBAS(PPPoEサーバ)ということになるのでしょうか?
    (1ホップ目はデフォルトゲートウェイ)

    • nesuke より:

      肉さま
      コメントありがとうございます。また、いつも閲覧頂いてるとのことで嬉しく思います。

      ご質問の件ですが、実際の現場を見たことは残念ながら無いのですが、そうなるはずです。PPPoE ではポイントtoポイント接続なので接続先は PPPoEサーバ以外にありえません。かつ、PPPoEのインタフェースで IP ルーティングをするためには IP が必須であるため、tracerouteの仕組み上、必然的にPPPoEサーバから応答が来るはずです。ご参考になれば。

      また何か疑問がありましたらお気軽にコメント下さい。