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 の記事をご参照下さい。
![](https://milestone-of-se.nesuke.com/wp-content/uploads/2017/01/ppp-format.png)
PPPoE ヘッダは 6Bytes で、以下のフォーマットになっています。
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/wp-content/uploads/2017/10/ip-unnumbered-3.png)
コメント
いつも、勝手ながら、こちらのサイトで勉強させて頂いております。ありがとうございます。プロバイダの役割(動作)をちゃんと理解したいと思っていたので、この記事は本当にありがたいです。
ちなみに、図中のパソコンからどこかのサイト宛てのtracerouteを実行した場合、
実行結果の2ホップ目はBAS(PPPoEサーバ)ということになるのでしょうか?
(1ホップ目はデフォルトゲートウェイ)
肉さま
コメントありがとうございます。また、いつも閲覧頂いてるとのことで嬉しく思います。
ご質問の件ですが、実際の現場を見たことは残念ながら無いのですが、そうなるはずです。PPPoE ではポイントtoポイント接続なので接続先は PPPoEサーバ以外にありえません。かつ、PPPoEのインタフェースで IP ルーティングをするためには IP が必須であるため、tracerouteの仕組み上、必然的にPPPoEサーバから応答が来るはずです。ご参考になれば。
また何か疑問がありましたらお気軽にコメント下さい。
中間PADRのところの図が(上のPADIをコピーして末尾を修正をしようとしたのかと思いますが)PADIのままになっています。
PPPoEでは、PADI→PADO→PADR→PADSという流れは周知のことで、
また、本文を見ればこれは実はPADRであるというのはわかりますが、初心者では多少混乱するかと思いますので修正をいただいた方がより良いかと思います。
PPPoEの説明でわかりやすいサイトをさがしていてこちらに到達した次第です。
> 英語漬けさん、コメントご指摘ありがとうございます。
おっしゃる通り誤植でしたので修正させて頂きました。
また何か気になるところがありましたらコメントいただけると幸いです。
何卒よろしくお願いいたします。
nesukeさん、分かりやすいサイトありがとうございます。
丁度PPPoEを知る必要がある機会があり、単語としてPPPoEは知っていましたが、仕組みは知りませんでしたので、こちらのサイトで理解出来ました。
> まぎーさん
コメントありがとうございます。もしかして X のまぎーさんですかね・・?違ってたらすみません。
お役に立てたようで何よりです!
今後もどうぞ本サイトをよろしくお願いします。
いつもこちらのサイトで勉強させていただいております。ありがとうございます。
PPPoEの通信確立シーケンスでPADOの送信元MACがブロードキャストアドレスというのは正しいのでしょうか?
送信元MACがブロードキャストになることはないと私は認識しているのですがいかがでしょうか?
> マカロニさん
コメントありがとうございます。そうですね、、PADO の Src MAC は BAS ですね。。
修正させていただきます。ご指摘いただきありがとうございます。