【入門編】 IPv4 PPPoEとIPoE(IPv4 over IPv6 / MAP-E / DS-Lite)のルーティング性能差 – 家庭用ネットワーク・IoT・モバイル通信実践ガイド

「夜の21時を過ぎると、急にネットが重くなって動画が止まる……」
「光回線(1Gbps)を契約しているはずなのに、スピードテストをすると数Mbpsしか出ていない……」

みなさんも、一度はこんな経験をしたことがありませんか?

実は、この「夜間のネット遅い問題」の犯人は、回線そのものの限界ではなく、プロバイダー(ISP)と私たちの自宅を繋ぐ「接続方式の渋滞」にあることがほとんどです。そして、その渋滞を避けるための救世主こそが、今回ご紹介するIPoE(IPv4 over IPv6)という技術になります。

「なんだか難しそうな英語が出てきたな……」と身構えなくても大丈夫です!この記事では、インフラやネットワークに初めて触れるエンジニアの方や、自宅のネット環境を劇的に改善したい方に向けて、パケットがネットワークを駆け巡る様子を「郵便配達」や「道路の料金所」に例えながら、一歩ずつ丁寧に紐解いていきます。

ルーターの内部でCPUがどのように汗を流して働いているのか、その舞台裏を一緒に覗いてみましょう!

—

1. 昔ながらの「PPPoE」と最新の「IPoE」は何が違う?

まずは、ネット接続の2大方式であるPPPoEとIPoEの違いを、身近な例えで理解していきましょう。

IPv4 PPPoE:大渋滞する「昔ながらの有人料金所」

PPPoE(PPP over Ethernet)は、電話線を使ったダイヤルアップ接続の時代に生まれた技術を、光ファイバー(イーサネット)に応用した歴史ある接続方式です。

これを道路に例えるなら、「1車線しかなく、毎回一時停止して通行証(IDとパスワード)を係員に提示しなければならない、昔ながらの有人料金所」です。

【自宅ルーター】 ───(ID/パスワードで認証)───> [ 網終端装置 (大渋滞の料金所) ] ───> 【インターネット】
  • 認証が必要: 接続する際に、プロバイダーから提供された user@provider.ne.jp のような接続IDとパスワードを使って「通してくだい!」と毎回サインを送る必要があります。
  • 網終端装置がボトルネック: この認証を行う場所(「網終端装置」と呼ばれる通信局内の設備)には、日本中のPPPoEユーザーのトラフィックが集中します。夜間になると、この料金所がパケ詰まりを起こし、大渋滞(=速度低下)を招いてしまうのです。

IPv6 IPoE:スイスイ通れる「ETC専用のマルチレーン高速道路」

一方のIPoE(IP over Ethernet)は、最初からイーサネット(光回線などのLAN)をベースに設計された、とてもモダンな接続方式です。

道路に例えるなら、「面倒な一時停止も認証も不要で、何車線もあるETC専用の最新高速道路」です。

【自宅ルーター】 ─────────────────────────> [ ゲートウェイ (スイスイ通過) ] ─────────────────────────> 【インターネット】
  • 認証がいらない: 回線自体(NTTのフレッツ網など)に紐づいた情報で自動的に接続されるため、IDやパスワードを手動で設定する必要がありません。
  • 渋滞ポイントをバイパス: 混雑の原因だった「網終端装置」を通らず、もっと広大で大容量な「ゲートウェイ(GWR)」を通過するため、夜間でも速度が落ちにくく、常に快適な通信が維持できます。

「それなら全員 IPoE にすればいいじゃない!」と思いますよね。しかし、ここに一つ大きな問題がありました。

実は、IPoEは基本的に「IPv6」という新しい規格のインターネットを走るための道路なのです。世の中のWebサイトやオンラインゲームには、まだまだ「IPv4」という古い規格だけで動いているものがたくさんあります。

そこで生まれたのが、今回の主役である「IPv4 over IPv6」という魔法のような技術です。

—

2. 魔法の技術「IPv4 over IPv6」の仕組み

「IPv4しか喋れない荷物」を「IPv6の高速道路」に流すにはどうすればいいでしょうか?

答えは簡単。「IPv4の荷物を、IPv6という大きな封筒(カプセル)に入れて送ればいい」のです。この技術を「カプセル化(トンネリング)」と呼びます。ロシアのマトリョーシカ人形のように、パケットの中にさらにパケットを入れ込むイメージですね。

【IPv6の大きな封筒(IPv6ヘッダー)】
  └── 【中身:IPv4の荷物(IPv4ヘッダー + データ)】

この「IPv4 over IPv6」を実現するための具体的な仕組み(プロトコル)として、日本の家庭用ルーターでは主にMAP-EとDS-Liteという2つの方式が使われています。これらは似て非なるアプローチをとっています。

MAP-E(分散型:自分で荷解きするスタイル)

MAP-E(Mapping of Address and Port with Encapsulation)は、主に「OCNバーチャルコネクト」や「v6プラス」などのサービスで採用されている方式です。

  • 特徴: 自宅のルーターが、プロバイダーから「あなたに割り当てるIPv4アドレスと、使えるポート(窓口番号)はこれですよ」という計算式(マップ)を事前にもらいます。
  • ルーターの仕事: 自宅ルーター自身が「IPv4からIPv6へのカプセル化」と、限られたポートをやりくりするアドレス変換(NAPT)の両方を一人二役で行います。
  • メリット: プロバイダー側の設備に負荷が集中しにくいため、回線速度が安定しやすいです。

DS-Lite(集中型:配送センターにお任せスタイル)

DS-Lite(Dual-Stack Lite)は、主に「transix」などのサービスで採用されている方式です。

  • 特徴: 自宅のルーターは、単に「IPv4の荷物をIPv6の封筒に入れるだけ」のシンプルな作業に徹します。
  • ルーターの仕事: 面倒なアドレス変換(NAPT)は一切行わず、すべての荷物をプロバイダー側にある超強力な大型配送センター(CGN:キャリアグレードNAT)へ丸投げします。
  • メリット: 自宅ルーターの仕事が減るため、安価なルーターでも高い性能を出しやすいです。

—

3. なぜルーターの「CPU負荷」が変わるのか?

さて、ここからがネットワークエンジニアやガジェット好きにとって最も面白い「ルーターの脳みそ(CPU)」のお話です。

PPPoE接続と、IPoE(IPv4 over IPv6)接続では、ルーターにかかる負荷が天と地ほど違います。その原因を、ルーターの内部処理から紐解いてみましょう。

PPPoE接続時のルーターは「超多忙」

PPPoEを使って1Gbpsの通信を行おうとすると、ルーターのCPUは悲鳴を上げます。なぜなら、以下のような泥臭い処理を、パケットが届くたびに毎回、超高速でループ処理しているからです。

1. カプセル化の解除と付与: パケットの頭にPPPoEヘッダー(8バイト)をくっつけたり外したりする。
2. ソフトウェアNAPT変換: 自宅内のプライベートIPアドレス(例: 192.168.1.10)を、プロバイダーから貰ったグローバルIPアドレスに変換し、どのポートを使って通信したかをメモリ上の「変換テーブル」に記録する。
3. セッションの維持: 通信が切れないよう、常に接続状態を監視し続ける。

多くの家庭用ルーターでは、これらの処理をCPUの「ソフトウェア処理」で行っています。そのため、データ量が増えるとCPU使用率が100%に張り付き、ルーターが熱くなって通信が途切れる、という現象が起きてしまいます。

IPoE(MAP-E / DS-Lite)接続時のルーターは「超スマート」

一方、IPoE接続(特にDS-Liteやハードウェア処理対応のMAP-E)では、ルーターの負担は劇的に軽くなります。

1. 単純なヘッダーのポン付け: DS-Liteの場合、ルーターが行うのは「IPv4パケットの前に、IPv6ヘッダー(40バイト)をポンと置くだけ」です。計算はほとんど必要ありません。
2. ハードウェア処理(HW NAT / ASIC)の恩恵: 最近のルーターの多くは、このカプセル化やIPv6の転送を、メインCPUではなく専用の「ハードウェア処理チップ(ASICやHW NATアクセラレータ)」に丸投げできるよう設計されています。

人間が電卓を叩いて計算する(ソフトウェア処理)のではなく、専用の自動スタンプマシーン(ハードウェア処理)にパケットを通すだけなので、ルーターのCPUは冷え切ったまま、涼しい顔で1Gbps近い超高速通信を捌ききることができるのです。

—

4. 【実践編】LinuxルーターでDS-Lite(IPIPトンネル)を構築してみよう!

「カプセル化の動きを、もっと具体的に見てみたい!」というエンジニアの方向けに、実務や自作ルーター構築でも役立つ、Linux(Ubuntu等)を使ったDS-Lite(IPv4 over IPv6)のトンネル構築設定サンプルをご紹介します。

Linuxでは、iproute2 というツールを使って、IPv6ネットワークの中にIPv4を通す ip6tnl(IPIP6トンネル)インターフェースを簡単に作成できます。

#!/bin/bash
# ==============================================================================
# Linuxルーターにおける DS-Lite (IPIP6) トンネル構築スクリプト例
# ==============================================================================

# 1. 変数の定義
# WAN_IF: 物理的なIPv6インターネットに繋がっているインターフェース名
# TUN_IF: 新しく作成する仮想のトンネルインターフェース名
# AFTR_IP: プロバイダー側にあるDS-Lite終端装置 (AFTR) のIPv6アドレス
#         (※以下はサンプルのため、実際のプロバイダーの値に書き換えてください)
WAN_IF="eth0"
TUN_IF="tun-dslite"
AFTR_IP="2001:db8:ffff:100::1"

echo "=== DS-Lite トンネルの構築を開始します ==="

# 2. 既存の古いトンネルがあれば削除
ip link show $TUN_IF > /dev/null 2>&1
if [ $? -eq 0 ]; then
    echo "既存のトンネル ${TUN_IF} を削除中..."
    ip link delete dev $TUN_IF
fi

# 3. IPIP6トンネルインターフェースの作成
# mode ip6ip6: IPv6パケットの中にIPv4パケットをカプセル化するモード
echo "IPIP6トンネルインターフェースを作成中..."
ip link add dev $TUN_IF type ip6tnl \
    mode ip6ip6 \
    local any \
    remote $AFTR_IP \
    dev $WAN_IF

# 4. MTU(最大パケットサイズ)の調整
# IPv6の基本ヘッダー(40バイト)分、IPv4の標準MTU(1500)から引いた「1460」に設定します。
# これを怠ると、パケットの断片化(フラグメンテーション)が起きて速度が低下します!
echo "MTUを 1460 に設定中..."
ip link set dev $TUN_IF mtu 1460

# 5. インターフェースの有効化
echo "インターフェースを有効化中..."
ip link set dev $TUN_IF up

# 6. ルーティングの設定
# すべてのIPv4通信(0.0.0.0/0)が、このトンネルインターフェースを通るようにデフォルトルートを設定します。
echo "IPv4のデフォルトルートをトンネルに変更中..."
ip route add default dev $TUN_IF

# 7. TCP MSSの調整 (MSS Clamping)
# TCP接続のネゴシエーション時に、パケットサイズがMTUを超えないよう強制的に書き換える設定です。
# これを行わないと、一部のWebサイトが「白い画面のまま開かない」というトラブルが発生します。
echo "iptablesを使って TCP MSS の書き換えルールを適用中..."
iptables -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

echo "=== 設定完了! ==="
echo "ip route コマンドでデフォルトルートを確認してください。"

この設定の注目ポイント!

  • MTUの調整(mtu 1460):

IPv4の通常の最大パケットサイズは 1500 バイトですが、上からIPv6ヘッダー(40バイト)という「封筒」を被せるため、中身のIPv4のサイズは 1460 バイト以下に抑えなければいけません。これを調整しないと、パケットが途中でバラバラに分解され、ルーターのCPUに凄まじい負荷がかかります。

  • TCP MSSの調整(TCPMSS --clamp-mss-to-pmtu):

Webサイトを閲覧する際、「通信を始める前に、お互いが一度に送れる最大のデータサイズ(MSS)」を話し合います。ルーターがその話し合いに割り込んで「うちはカプセル化してるから、少し小さめのサイズで送ってね!」と書き換えてあげることで、パケットの断片化を防ぐことができます。現場のトラブルシューティングでも超頻出の超重要設定です!

—

5. まとめ & 自宅のルーター選びで失敗しないためのチェックポイント

ここまで、PPPoEとIPoE、そして「IPv4 over IPv6」のカプセル化がもたらすルーティング性能の差について見てきました。

最後に、これらを踏まえて「じゃあ、どんなルーターを選べば幸せになれるのか?」を3つのポイントにまとめます。

1. 「IPv6 IPoE対応」だけでなく「IPv4 over IPv6対応」と書かれたものを選ぶ
ただ「IPv6対応」と書かれているだけだと、IPv4のWebサイトを見る時に結局遅いPPPoEに切り替わってしまう製品があります。必ず「v6プラス対応」「OCNバーチャルコネクト対応」「transix対応」といった、お使いのプロバイダーの方式に対応しているかを確認してください。
2. 「ハードウェアNAT / IPv6高速化エンジン」搭載モデルを選ぶ
スペック表や製品紹介に「IPv6もスピードを落とさず高速処理!」といった記述があるモデルは、カプセル化の処理を専用チップ(ハードウェア)で行うため、家族全員が同時にスマホやPCで通信しても、ルーターが重くなりません。
3. プロバイダーの契約方式をマイページで確認する
せっかく良いルーターを買っても、プロバイダーとの契約が古いPPPoEのままだと宝の持ち腐れになってしまいます。まずはプロバイダーのマイページにログインし、「IPoEオプション」や「v6プラス」などの無料オプションが有効になっているかを確認してみましょう。

ネットワークの世界は、一見すると小難しいアルファベットの羅列ばかりに見えます。ですが、こうして「郵便配達」や「道路の渋滞」に置き換えてみると、すべての技術が「いかにしてデータをスムーズに届けるか」という、とても人間味あふれる目的のために作られていることが分かりますよね。

みなさんの自宅のインターネットが、この記事をきっかけに「スイスイ走れる高速道路」に生まれ変わることを願っています。一歩ずつ、快適なネットワーク環境を作っていきましょう!

コメント

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