はじめに
ネットワークエンジニアなら、誰もが一度はこのプロトコルと格闘したことがあるはずです。
日本のインターネット接続(特にフレッツ光などの回線)において、長年スタンダードとして使われてきた PPPoE。最近は IPoE(IPv4 over IPv6)も増えてきましたが、固定 IP の利用や特定の閉域網接続など、まだまだ現役で活躍し続ける必須技術です。
しかし、ルータのメーカーによって設定コマンドや「作法」が全く違います。
本記事では、PPPoE の仕組みの基礎から、日本の現場でシェアの大部分を占める 主要メーカー(Cisco, FortiGate, YAMAHA, NEC) の設定コマンドを解説します。
-
昔々のインターネットは、電話回線を使った「ダイヤルアップ接続(PPP)」が主流でした。「ピーヒョロロ…」という音と共に、ID とパスワードで認証して接続する仕組みです。
-
その後、ADSL や光ファイバーといった「常時接続(Ethernet)」の時代が到来しました。 しかし、ISP(プロバイダ)側は「今まで通りユーザーごとに ID/Pass で認証して、接続を管理したい!」と考えました。Ethernet は「繋げば誰でも通信できる」仕様だったからです。
-
そこで、「Ethernet の上で、昔ながらの PPP を動かせばいいやん」という発想で合体させたのが、PPPoE (PPP over Ethernet) です。

実は古い技術の「管理のしやすさ」と、新しい技術の「速さ」を組み合わせた、ハイブリッド技術なんです。
PPPoE の仕組みと接続フロー
設定に入る前に、PPPoE がどのような仕組みで通信を確立しているのかを整理しておきます。
Ethernet・PPP・PPPoE の関係
PPPoE は、その名の通り 「Ethernet(LANの技術)」 の上で 「PPP(電話回線の技術)」 を利用するためのプロトコルです。 それぞれの特徴を比較すると、なぜこの技術が必要なのかが見えてきます。
- Ethernet(イーサネット)
-
- みんなで同じ回線を共有する「マルチアクセスネットワーク」
- 手軽で高速ですが、「誰が使っているか(ユーザー認証)」 や 「どれくらい使ったか(課金管理)」 を管理する AAA 機能を持っていません。
- PPP(Point-to-Point Protocol)
-
- 1対1で接続する通信プロトコル。
- ID/パスワードによる ユーザー認証 や、IP アドレスの割り当て機能(AAA 機能)を持っています。
- PPPoE(PPP over Ethernet)
-
- Ethernet 上に「仮想的な1対1のパイプ」を作り、その中で PPP 通信を行う技術
- これにより、光回線のような Ethernet 環境でも、ISP 側で認証や管理が可能になります。
IP 通信までの流れ(2つのステージ)
PPPoE は、通信を開始するまでに大きく分けて 「ディスカバリステージ」 と 「セッションステージ」 という2つの段階を踏みます。
まず、クライアント(ルータ)が「接続先のサーバー(BAS)はどこですかー?」と放送し、相手を見つけてセッション ID を割り当ててもらう段階です。 (パケット: PADI → PADO → PADR → PADS)


相手が見つかったら、その仮想パイプの中で PPP の交渉を行います。 ここで ID/パスワードの確認(認証)や、IP アドレスの取得が行われ、完了するとインターネット通信が可能になります。 (LCP ネゴシエーション → 認証 → IPCP ネゴシエーション)


Cisco ルータ(IOS / IOS-XE)の設定例
Cisco ルータの設定例です。 「物理インターフェース」で PPPoE パケットを送受信できるようにし、「Dialer インターフェース」という仮想インターフェースで認証や IP アドレスを管理します。
設定コマンド例
hostname Router
!
! --- 1. 物理インターフェースの設定 ---
! WAN側のケーブルを挿すポートです。
! ここで PPPoE を有効化し、Dialer 1 (pool 1) と紐付けます。
interface GigabitEthernet0/1
description WAN-Interface
no ip address
pppoe enable
pppoe-client dial-pool-number 1
no shutdown
!
! --- 2. LAN側インターフェースの設定 ---
interface Vlan1
description LAN-Interface
ip address 192.168.1.1 255.255.255.0
ip nat inside
!
! --- 3. Dialer インターフェースの設定 (PPPoE本体) ---
interface Dialer1
description PPPoE-Session
!
! ▼ 【ポイント】MTUサイズをフレッツ網に合わせる
mtu 1454
!
ip address negotiated
encapsulation ppp
!
! ▼ 【ポイント】MSSサイズを調整 (MTU - 40byte)
ip tcp adjust-mss 1414
!
dialer pool 1
dialer group 1
!
! ▼ 認証情報 (プロバイダから通知されたID/Pass)
ppp authentication chap callin
ppp chap hostname user-a-site1@example.com
ppp chap password cisco
!
! ▼ IPCPでDNSとデフォルトルートを取得
ppp ipcp dns request
ppp ipcp route default
ip nat outside
!
! --- 4. NAT/NAPT の設定 ---
ip nat inside source list 100 interface Dialer1 overload
!
access-list 100 permit ip 192.168.1.0 0.0.0.255 any
!
end設定のポイント: なぜ MTU/MSS 調整が必要?
フレッツ光などの回線では、PPPoE のヘッダが付与される分、通常の Ethernet(1500 byte)よりも一度に運べるデータサイズが小さくなります。ここを適切に設定しないと、「Web サイトの一部が表示されない」「通信が極端に遅い」 といったトラブル(Path MTU Discovery ブラックホール問題)が発生します。
mtu 1454-
- Cisco のデフォルト MTU は 1500 ですが、フレッツ網(NTT東西)の推奨値は 1454 です。
- この不整合があっても接続自体はできてしまうことがありますが、通信効率が悪化したり、パケット破棄の原因になるため、必ず
1454に手動設定します。



※
ip mtuコマンドを設定する例も見かけますが、LCP ネゴシエーション(MRU)に反映させるためには、インターフェース自体のmtuコマンドを使うのが正解です。 ip tcp adjust-mss 1414-
- PC は自分が「1500 byte 送れる」と勘違いしてパケットを投げますが、途中で「大きすぎる」と判断されて破棄されるのを防ぐ設定です。
- TCP 通信のデータサイズ(MSS)を、ルータが代理で書き換えて小さくします。
- 計算式:
MTU (1454) - IPヘッダ(20) - TCPヘッダ(20) = 1414
FortiGate(FortiOS)の設定例
次世代ファイアウォールとして大人気の FortiGate です。 基本は GUI で設定することが多いですが、CLI の方が設定項目を一覧で確認しやすく、バックアップ(Config)を読む際にも役立ちます。
設定コマンド例
FortiGate では、物理ポート(例: wan1)のモードを static や dhcp から pppoe に変更して設定します。
config system interface
edit "wan1"
# ▼ PPPoEモードへの変更と認証情報
set mode pppoe
set username "user-a-site1@example.com"
set password "fortinet"
# ▼ 【ポイント】MTUサイズを 1454 に変更
set mtu-override enable
set mtu 1454
# ▼ デフォルトルートとDNSの自動取得
set defaultgw enable
set dns-server-override enable
next
end設定のポイント: ポリシーと MSS 調整
FortiGate でインターネットに接続するためには、インターフェース設定だけでなく、「ファイアウォールポリシー」 の作成が必須です。 また、MSS の調整(パケットサイズ調整)は、ファイアウォールポリシーの中で設定するのが一般的です。
config firewall policy
edit 1
set name "LAN-to-Internet"
set srcintf "internal"
set dstintf "wan1"
set srcaddr "all"
set dstaddr "all"
set action accept
set schedule "always"
set service "ALL"
# ▼ NATを有効化
set nat enable
# ▼ 【ポイント】MSS クランプ設定
# (インターフェースのMTUに合わせて自動調整されますが、明示的に指定する場合)
set tcp-mss-sender 1414
set tcp-mss-receiver 1414
next
end- ポリシーの必須性
-
- Cisco などのルータと異なり、FortiGate は「ファイアウォール」なので、許可ポリシー(LAN → WAN)がないと通信は一切通りません。 PPPoE が Up していてもネットに繋がらない場合は、まずここを疑いましょう。
- TCP-MSS
-
- FortiOS は、インターフェースの MTU に基づいて自動的に MSS を調整してくれる機能が働きますが、トラブル回避のためにポリシー内で
tcp-mss-sender/tcp-mss-receiverを明示的に設定(1414など)することもあります。
- FortiOS は、インターフェースの MTU に基づいて自動的に MSS を調整してくれる機能が働きますが、トラブル回避のためにポリシー内で
YAMAHA RTX ルータの設定例
日本の SOHO・中小企業市場で不動の地位を築いている YAMAHA ルータ。 「interface」ではなく「pp (Point-to-Point)」という論理インターフェースを使って設定を行うのが最大の特徴です。
設定コマンド例
ここでは、lan2 ポートを WAN 側(ONU接続)、lan1 ポートを LAN 側とする一般的な構成で紹介します。
# --- 1. LAN側インターフェースの設定 ---
ip lan1 address 192.168.1.1/24
# --- 2. PPPoE セッションの設定 (pp 1) ---
# YAMAHAでは "pp select" で設定対象を選んでから記述します
pp select 1
pp always-on on
pppoe use lan2
# ▼ 認証情報の設定
pp auth accept chap pap
pp auth myname user-a-site1@example.com password
# ▼ 【ポイント】MTU/MRU の調整 (フレッツ推奨値)
ppp lcp mru on 1454
ip pp mtu 1454
# ▼ MSS の調整 (MTUから自動計算または指定)
ip pp tcp mss limit auto
# ▼ NATディスクリプタの紐付け (後述)
ip pp nat descriptor 1000
pp enable 1
# --- 3. NATディスクリプタ (NAPT) の定義 ---
# "1000" というID箱の中に "masquerade (NAPT)" 機能を入れるイメージ
nat descriptor type 1000 masquerade
nat descriptor address outer 1000 ipcp
# --- 4. ルーティングとDNS ---
# デフォルトゲートウェイを pp 1 に向ける
ip route default gateway pp 1
dns server pp 1設定のポイント:NAT ディスクリプタ
YAMAHA の設定で初心者が一番つまづきやすいのが 「NAT ディスクリプタ」 です。 Cisco などではインターフェースの中に直接 NAT 設定を書きますが、YAMAHA では「NAT の動作定義書(ディスクリプタ)」を別に作っておき、それをインターフェースに適用(バインド)する という手順を踏みます。
nat descriptor type 1000 masquerade-
- 「ID 1000 番の設定は、IP マスカレード(NAPT)として動きますよ」という定義
ip pp nat descriptor 1000(pp select 内)-
- 「この PP インターフェースでは、さっき作った ID 1000 番の NAT 設定を使いますよ」という適用



この番号(ID)が一致していないと、ネットには繋がるけれどサイトが見られない(NAT されない)という状態になるので注意が必要です。
NEC UNIVERGE IX ルータの設定例
通信事業者や企業の拠点ルータとして信頼の高い NEC の IX シリーズ。 Cisco の IOS に非常によく似たコマンド体系ですが、「どの物理ポートを使うか」の指定方法 など、細かい部分で独自のお作法があります。
設定コマンド例
IX シリーズでは、物理インターフェースで pppoe enable しつつ、Dialer インターフェース側から dialer bind-interface で物理ポートを掴みに行く設定が一般的です。
! --- 1. 物理インターフェースの設定 ---
interface GigaEthernet0.0
no ip address
pppoe enable
no shutdown
!
! --- 2. Dialer インターフェースの設定 ---
interface Dialer0
! ▼ どの物理ポートを使ってPPPoEするかを指定 (ここがCiscoと違う!)
dialer bind-interface GigaEthernet0.0
! ▼ IPアドレスと認証
ip address negotiated
encapsulation ppp
ppp authentication chap pap
ppp chap hostname user-a-site1@example.com
ppp chap password nec-router
! ▼ 【ポイント】MTU/MSS の調整
mtu 1454
ip tcp adjust-mss 1414
! ▼ NAPT (IPマスカレード) の有効化
! インターフェースの下に直接書けるのがIXの楽なところ
ip napt enable
no shutdown
!
! --- 3. デフォルトルート ---
ip route default Dialer0
!
! --- 4. 高速化設定 (NGN網向け) ---
! IXの特徴である "Fast-Forwarding" (高速転送) はデフォルト有効ですが、
! NAPTテーブルのエントリ数などを環境に合わせて拡張することがあります。
! (例: ip napt translation max-entries 65535 等)設定のポイント: Cisco との違いと高速化
dialer bind-interface-
- Cisco (IOS) では物理ポート側に
pppoe-client dial-pool-numberを書いて Dialer と紐付けますが、NEC IX では Dialer 側にdialer bind-interfaceを書いて物理ポートを指定 します。矢印の向きが逆のイメージです。
- Cisco (IOS) では物理ポート側に
ip napt enable-
- Cisco のように ACL を定義して
ip nat inside source...と長いコマンドを書かなくても、インターフェース配下にip napt enableと書くだけで NAPT が動きます。この手軽さが IX の魅力です。
- Cisco のように ACL を定義して
- NGN 網向けの高速化(Fast-Forwarding)
-
- IX シリーズは、パケット転送をハードウェア/ソフトウェアで最適化する「Fast-Forwarding」機能により、安価なモデルでもギガビット級の速度が出ます。



特にフレッツ光ネクスト(NGN)などの高速回線では、デフォルトのままでも十分速いですが、大規模拠点では NAPT の同時セッション数上限(
ip napt translation max-entries)をチューニングすることで、さらなる安定性を引き出せます。
技術解説:フレッツにおける MTU/MSS の「罠」
PPPoE 設定で必ず登場する「1454」や「1414」という数字。 「おまじない」として入れている方も多いかもしれませんが、これには明確な理由があります。
① なぜ「1454 byte」なのか?(フレッツ網の仕様)
通常の Ethernet(LAN ケーブルの中)では、一度に運べるデータの最大サイズ(MTU)は 1500 byte です。 しかし、NTT 東西の「フレッツ網(地域 IP 網 / NGN)」を通る際には、様々な管理用シール(ヘッダ)がデータの先頭に貼り付けられます。
- Ethernet MTU: 1500 byte
- PPPoE ヘッダ: -6 byte
- PPP ヘッダ: -2 byte
- NTT 網内の転送用ヘッダ: -38 byte(※網内のトンネリングやタグ情報など)
これらを合計すると、46 byte 分のオーバーヘッド(場所取り) が発生します。 そのため、ユーザーが使えるデータ領域は 1500 - 46 = 1454 byte となり、これがフレッツ接続時の推奨 MTU となっているのです。 (※ちなみに、これを考慮せず 1500 byte のまま送り出すと、網の入口で強制的に分割(フラグメント)されたり、破棄されたりして通信速度が激減します)
② MTU と MRU の違い(Cisco の落とし穴)
Cisco ルータで設定する際、似たようなコマンドが存在するため注意が必要です。
- MTU (Maximum Transmission Unit): 「自分が送信できる最大サイズ」
- MRU (Maximum Receive Unit): 「自分が受信できる最大サイズ」(PPP の接続開始時に相手に通知する値)
Cisco の仕様では、物理インターフェース(または Dialer)の mtu コマンド の値が、PPP のネゴシエーション(LCP)で相手に通知する MRU の値として使われます。
- 正解:
mtu 1454 -
- インターフェース自体のサイズを 1454 に設定します。
- LCP ネゴシエーション時に「私は 1454 byte まで受信できます(MRU=1454)」と相手に伝えます。
- 結果:送受信ともに 1454 byte で整合性が取れます。
- 間違い:
ip mtu 1454のみ設定 -
- IP パケットのサイズ制限は 1454 になりますが、インターフェースの物理 MTU(デフォルト 1500)は変わりません。
- そのため、LCP ネゴシエーションでは「私は 1500 byte まで受信できます(MRU=1500)」と相手に嘘を伝えてしまいます。
- 結果:相手(プロバイダ側)は 1500 byte のパケットを送ってくる可能性がありますが、途中のフレッツ網は 1454 byte しか通さないため、パケットがドロップしたり、無駄な再送・分割処理が発生したりします。



結論: Cisco でフレッツに繋ぐときは、必ず
interface Dialer内でmtu 1454を使いましょう!
接続確認コマンド集
設定が終わったら、実際に接続できているかを確認しましょう。 各ベンダーごとの「これだけ打てば OK」というコマンドをまとめました。
Cisco(IOS / IOS-XE)
! ▼ PPPoEセッションの状態確認 (State が UP ならOK)
Router# show pppoe session
! ▼ IPアドレスの取得確認 (DialerにIPが付与されているか)
Router# show interface dialer 1
! または
Router# show ip interface briefFortiGate(FortiOS)
# ▼ インターフェースのステータスとIP確認
# (wan1などの物理ポートにIPが付与されていれば成功)
FortiGate # get system interface
# ▼ ルーティング確認 (デフォルトルート 0.0.0.0/0 があるか)
FortiGate # get router info routing-table all
# ▼ 疎通確認 (Ping)
FortiGate # execute ping 8.8.8.8YAMAHA(RTX)
# ▼ PPインターフェースの状態詳細
# (接続時間、取得IP、DNSなどが一覧で表示される神コマンド)
RTX# show status pp 1
# ▼ ルーティング確認
RTX# show ip routeNEC(UNIVERGE IX)
! ▼ PPPoEセッションの状態確認 (State が up ならOK)
Router# show pppoe session
! ▼ IPアドレスとインターフェース詳細
Router# show interface Dialer0
! または
Router# show ip interfaceまとめ
本記事では、インターネット接続の要である PPPoE について、仕組みの基礎から主要メーカーの設定例までを解説しました。
- 仕組み
-
「Ethernet」と「PPP」のハイブリッド。接続には「ディスカバリ」と「セッション」の2段階がある。
- 設定
-
メーカーごとに構文は違うが、やるべきこと(インターフェース紐付け、認証、MTU/MSS 調整、NAT)は共通している。
- 注意点
-
フレッツ網(NGN)では
MTU 1454の設定が必須。Cisco ではip mtuではなくmtuコマンドを使うのが必須
ルータの機種が変わっても、PPPoE の技術的な仕組み自体は変わりません。 「基本の仕組み」と「ベンダーごとの方言」さえ押さえておけば、対応できると思います。
以上、最後までお読みいただきありがとうございました。





