PPP/PPPoE

【図解】初心者にも分かる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 節約が可能です。詳細は以下の記事をご参照下さい。

https://milestone-of-se.nesuke.com/nw-basic/ip/ip-unnumbered

コメント

  1. より:

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

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

    • nesuke より:

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

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

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

タイトルとURLをコピーしました