PPPoE
アプリケーション層 | FTP | SMTP | HTTP | … | DNS | … |
トランスポート層 | TCP | UDP | ||||
インターネット層 | IPv4 | IPv6 | ||||
リンク層 | PPP | |||||
PPPoE | ||||||
イーサネット |
PPPoE(Point-to-Point Protocol over Ethernet)は、イーサネットフレーム上にPPPフレームをカプセル化するための通信プロトコルである。RFC 2516によって定義される。主にDSLやCATV、FTTHなどでのインターネット接続サービスでのブリッジ接続用に利用される。
イーサネットではPPPoEを使わなくても、IPパケットを直接扱うことができる。あえてPPPoEを使うのは、PPPが持つユーザ認証などの機能を使うためである。代償としてMTU減少をはじめとするオーバーヘッドが発生する。
2000年頃、ISPのIPネットワークへのDSL接続を介してパケットをトンネリングするための技術として使われだした。2005年のネットワークの技術書には、「ほとんどのDSLプロバイダは、認証・暗号化・圧縮のためにPPPoEを使用する」と書かれている[1]。一般的なPPPoEの利用では、ユーザー名とパスワードでユーザーを認証するためにPAPやCHAPが使用される[2]。
カスタマ構内設備においては、PPPoEは、ブロードバンドルーターで実装される場合と、ルーティングを行わないDSLモデムを使用する場合には、PC上で実装される場合とがある。全てのオペレーティングシステムがPPPoEをサポートしている。
PPPoEのステージ
[編集]PPPoEは、以下の2つのステージを持つ。
ディスカバリステージ
[編集]伝統的なPPPは、すでに確立されたダイヤルアップ接続やATMの上での接続であり、このような接続では、送信したPPPフレームはすべて対向側に到達する。
しかし、イーサネットのネットワークは、ネットワークの各々のノードがその他のノードにアクセスすることができるマルチ・アクセスである。イーサネット・フレームは、転送先のノードのハードウェア・アドレス(MACアドレス)を含み、これによってフレームが意図された宛先に到達する。
そのため、イーサネットを介した接続を樹立するためのPPP制御パケットを送信する前に、相手のMACアドレスを互いに知っていなければならない。ディスカバリステージで、MACアドレスの伝達を行う。また、以降のパケットの交換のために使うSession IDの確立も行う。
PPPセッションステージ
[編集]ディスカバリステージによりPPPoEのセッションが確立すると、PPPセッションステージへ進む。
PPPoEディスカバリ(PPPoED)
[編集]伝統的なPPPはピア・ツー・ピアである。それに対しPPPoEは、1つの物理的接続を介して複数のホストがサービスプロバイダに接続できることから、本質的にクライアントサーバモデルである。
PPPoEディスカバリは、クライアントの働きをするホストコンピュータとサーバの働きをするISPのアクセス・コンセントレータの間で、以下の4つの段階を踏む。最後のPADTは、既存のセッションを閉じるために使用される。
クライアント→サーバ:Initiation(PADI)
[編集]PADIは「PPPoE Active Discovery Initiation」の略である[3]。
ユーザがDSLを用いてインターネットにダイヤルアップ接続するとき、まずユーザのコンピュータはインターネットサービスプロバイダのpoint of presence(POP)のDSLアクセス・コンセントレータ(DSL-AC)を見つけなければならない。イーサネット上の通信は、MACアドレスを介してのみ行われる。そのため、コンピュータがDSL-ACのMACアドレスを知らない場合は、ブロードキャストによってPADIパケットを送信する。PADIパケットには、送信元のコンピュータのMACアドレスが含まれている。
PADIパケットの例
[編集]Frame 1 (44 bytes on wire, 44 bytes captured) Ethernet II, Src: 00:50:da:42:d7:df, Dst: ff:ff:ff:ff:ff:ff PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Initiation (PADI) Session ID: 0000 Payload Length: 24 PPPoE Tags Tag: Service-Name Tag: Host-Uniq Binary Data: (16 bytes)
Src
(source)は、PADIの送信元のMACアドレスである。Dst
(destination)はブロードキャストアドレスである。PADIパケットは1つ以上のDSL-ACに到達する。「Service-Name」タグに記載されたDSL-ACのみが応答を行う。
サーバ→クライアント:Offer(PADO)
[編集]PADOは「PPPoE Active Discovery Offer」の略である[4]。
ユーザのコンピュータがPADIパケットを送信すると、DSL-ACはPADIに記載されたMACアドレスを用いてPADOパケットを返信する。
PADOパケットにはDSL-ACのMACアドレス・名前・サービス名が含まれている。複数のPOPのDSL-ACがPADOを返信してきた場合、ユーザのコンピュータは名前とサービス名から適切なDSL-ACを選択する。
PADOパケットの例
[編集]Frame 2 (60 bytes on wire, 60 bytes captured) Ethernet II, Src: 00:0e:40:7b:f3:8a, Dst: 00:50:da:42:d7:df PPP-over-Ethernet Discovery Version: 1 Type 1 Code Active Discovery Offer (PADO) Session ID: 0000 Payload Length: 36 PPPoE Tags Tag: AC-Name String Data: IpzbrOOl Tag: Host-Uniq Binary Data: (16 bytes)
AC-Name
以下の String data
はDSL-ACの名前である。Src
はDSL-ACのMACアドレスである。
クライアント→サーバ: request(PADR)
[編集]PADRは「PPPoE active discovery request」の略である[5]。
PADRパケットは、ユーザのコンピュータから選択されたDSL-ACへ送信される。PADRパケットによりPPPoEセッションの開始を要求する。
サーバ→クライアント: session-confirmation(PADS)
[編集]PADSは"PPPoE Active Discovery Session-confirmation"の略である[6]。
PADSパケットにより、PPPoEのセッションIDをクライアントに通知する。ここで、DSL-ACとユーザのコンピュータの間のPPPoEセッションが確立される。
どちらかからもう一方へ: termination(PADT)
[編集]PADTは「PPPoE Active Discovery Termination」の略である[7]。
このパケットは、POPとの接続を切断するときに送信される。ユーザのコンピュータとDSL-ACのどちら側からも送信される可能性がある。
脚注
[編集]- ^ James Boney (2005). Cisco IOS in a Nutshell. O'Reilly Media, Inc.. pp. 88. ISBN 978-0-596-55311-1
- ^ Philip Golden; Hervé Dedieu; Krista S. Jacobsen (2007). Implementation and Applications of DSL Technology. Taylor & Francis. p. 479. ISBN 978-1-4200-1307-8
- ^ https://datatracker.ietf.org/doc/html/rfc2516#section-5.1
- ^ https://datatracker.ietf.org/doc/html/rfc2516#section-5.2
- ^ https://datatracker.ietf.org/doc/html/rfc2516#section-5.3
- ^ https://datatracker.ietf.org/doc/html/rfc2516#section-5.4
- ^ https://datatracker.ietf.org/doc/html/rfc2516#section-5.5
関連項目
[編集]外部リンク
[編集]- RFC 2516 - A Method for Transmitting PPP Over Ethernet(PPPoE)
- RFC 3817 - Layer 2 Tunneling Protocol(L2TP) Active Discovery Relay for PPP over Ethernet(PPPoE)
- RFC 4638 - Accommodating a Maximum Transit Unit/Maximum Receive Unit(MTU/MRU) Greater Than 1492 in the Point-to-Point Protocol over Ethernet(PPPoE)
- RFC 4938 - PPP Over Ethernet(PPPoE) Extensions for Credit Flow and Link Metrics
- US Patent 6891825 Method and system of providing multi-user access to a packet switched network