2.

PPPoE とは(Discovery / Session / IPoE との違い / MTU 1492 の理由)

編集
この記事の要点
  • PPPoE (PPP over Ethernet) = PPP(電話線時代のダイヤルアップ用プロトコル)をイーサネット上で動かす仕組み
  • 日本のフレッツ網経由の ISP 接続で長年使われてきた。ISP が払い出す ID/パスワードで認証
  • 2 段階の動作: ① Discovery (PADI/PADO/PADR/PADS) で接続先決定 → ② Session (PPP) でデータ送受信
  • MTU は 1492 が一般的。Ethernet 1500 から PPPoE ヘッダ 8 バイトを引いた値
  • IPoE (IPv4 over IPv6 / v6 プラス等) への移行が進む。混雑時間帯の遅延を回避できる

PPPoE とは

PPPoE (Point-to-Point Protocol over Ethernet) は RFC 2516 で定義された、PPP プロトコルを Ethernet フレーム上で運ぶカプセル化方式です。元々の PPP は電話回線・ISDN・専用線向けに設計されたものですが、ADSL / 光ファイバ時代に「ユーザ認証・IP アドレス払い出し」の仕組みとして再利用されました。

日本では NTT 東日本/西日本のフレッツ網を経由して ISP に接続する標準的な方式として広く使われています。

PPPoE が必要な背景

必要な機能素の EthernetPPPPPPoE
ユーザ認証 (PAP/CHAP)無しありあり
動的 IP アドレス払い出しDHCP 別途IPCPIPCP
セッション管理 (切断・接続)無しありあり
イーサ媒体で動く×

動作フェーズ: Discovery と Session

[Discovery フェーズ] - 接続相手 (アクセスコンセントレータ) を探す
  Client                    BAS/AC (ISP 側)
    │ ── PADI (broadcast) ──→            ① 接続要求
    │ ←── PADO ──                       ② 応答 (利用可能なサーバ広告)
    │ ── PADR ──→                       ③ サーバ選択
    │ ←── PADS ──                       ④ Session ID 割当て
    │
[Session フェーズ] - PPP で通信
    │ ←── LCP Configure ──→             ⑤ リンク確立
    │ ←── 認証 (PAP/CHAP) ──→            ⑥ ID/Pass 検証
    │ ←── IPCP ──→                      ⑦ IP アドレス払い出し
    │ ←──── データ送受信 ────→           ⑧ 通常の IP 通信
    │
    │ ── PADT ──→                       ⑨ 終了 (切断)

PADI = PPPoE Active Discovery Initiation
PADO = PPPoE Active Discovery Offer
PADR = PPPoE Active Discovery Request
PADS = PPPoE Active Discovery Session-confirmation
PADT = PPPoE Active Discovery Terminate

MTU 1492 の謎

Ethernet の MTU は標準で 1500 バイトですが、PPPoE 環境では1492 バイトがよく使われます。これは以下のオーバーヘッドのためです:

[Ethernet フレーム ペイロード 1500]
+--------------------------------+
| PPPoE Header (6 bytes)         |  <- バージョン/タイプ/コード/セッションID/長さ
| PPP   Header (2 bytes)         |  <- プロトコル番号
| IP payload (max 1492 bytes)    |  <- ★ アプリのデータはここまで
+--------------------------------+

合計オーバーヘッド: 8 bytes
PPPoE 上の MTU = 1500 - 8 = 1492

これより大きな IP パケットを送ると、フラグメンテーション or DF=1 なら破棄
→ HTTPS が一部のサイトで「読み込みが途中で止まる」原因に

MSS Clamping (MSS の調整)

TCP の MSS (Maximum Segment Size) は MTU - 40 (IP 20 + TCP 20) で計算され、通常 1460。PPPoE では 1452(= 1492 - 40)に調整する必要があります。ルータ側で自動調整する機能が MSS Clamping:

! Cisco IOS でのインターフェース設定例
interface Dialer1
 mtu 1492
 ip tcp adjust-mss 1452       ← MSS Clamping

! Linux iptables
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \
    -j TCPMSS --clamp-mss-to-pmtu

IPoE / IPv4 over IPv6 への移行

日本では夜間の 網終端装置 (NTE) 混雑により PPPoE 接続が遅くなる問題があり、近年はIPoE 方式(IPv6 ネイティブで IPv4 を内包する方式: v6 プラス、transix、IPv6 オプション など)への移行が推進されています:

項目PPPoEIPoE (v6 プラス等)
認証ID/Pass による PPP 認証回線情報で自動認証
終端装置NTE (網終端装置) を経由NTE をバイパス
混雑時の速度遅くなりがち安定
固定 IPISP プラン次第で可能原則 動的 (オプションで可)
対応ルータほぼ全機種v6 プラス対応など制限あり
ポート開放自由共有 IP の制約あり

OS / ルータ別の PPPoE 設定

Linux (rp-pppoe)

# Debian/Ubuntu
sudo apt install pppoeconf
sudo pppoeconf                       # 対話的に設定

# 直接設定ファイル (/etc/ppp/peers/dsl-provider)
plugin rp-pppoe.so
nic-eth0                              # WAN 側 NIC
user "user@isp.example.jp"
password "your_password"
mtu 1492
mru 1492
defaultroute
persist
maxfail 0

# 接続
sudo pon dsl-provider
# 切断
sudo poff

Windows 10/11

1. 設定 → ネットワークとインターネット → ダイヤルアップ
2. 「新しい接続を設定する」
3. 「インターネットに接続します」 → 「ブロードバンド (PPPoE)」
4. ユーザー名 / パスワード / 接続名を入力
5. 接続

! 既存接続の MTU 変更 (管理者 PowerShell)
netsh interface ipv4 show subinterfaces
netsh interface ipv4 set subinterface "接続名" mtu=1454 store=persistent

家庭用ルータ (例: NEC Aterm)

1. http://aterm.me/ にアクセス
2. 「動作モード」を「PPPoE ルータ」に変更
3. 「PPPoE 接続設定」
   - 接続先名: ISP 名
   - ユーザー ID: xxxxxx@isp.example.jp
   - パスワード: ********
4. MTU 値: 1454 (一部 ISP) または 1492
5. 保存して再起動

PPP 認証方式: PAP と CHAP

方式仕組みセキュリティ
PAP (Password Authentication Protocol)ID/Pass を平文で送る低 (盗聴で漏洩)
CHAP (Challenge Handshake AP)チャレンジ文字列に対するMD5 ハッシュで応答高 (パスワード自体は流れない)
MS-CHAP v2CHAP を強化、相互認証

現代の ISP はほぼ CHAP / MS-CHAP v2 を使います。物理層が暗号化されていない PPPoE では PAP は避けるべきです。

FAQ

Q: 接続できるが特定サイトだけ開けない
A: MTU/MSS のミスマッチが原因。MTU を 1492 → 1454 や 1438 に下げる、または MSS Clamping を有効化する。

Q: 認証エラー (Authentication failed) が出る
A: ID の @isp.example.jp 部分(レルム)を含めて入力しているか確認。ISP によって不要な場合もある。

Q: PPPoE は IPv6 では使う?
A: 規格上は PPPoEv6 (PPP の IPv6CP) もあるが、現在は IPoE / DHCPv6-PD の方が一般的。

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. Ethernet
  2. PPPoE
  3. HDLC

最近更新/作成されたページ